Build on desktop. Take your game further.
Use the Studio and command line on Windows, macOS or Linux. Export a standalone game for your host system, or prepare a mobile build with the platform tools and runners below.
| Platform | Studio & CLI | Export target | Graphics | Experimental VR (Professional) |
|---|---|---|---|---|
| Windows | Yes | Yes | Vulkan | OpenXR |
| macOS (Apple silicon) | Yes | Yes | Metal | OpenXR via MoltenVK |
| Linux | Yes | Yes | Vulkan | OpenXR |
| iOS / iPadOS | — | Xcode project | Metal | — |
| Android | — | APK and AAB | Vulkan | — |
Desktop exports target the operating system you build on. Every export is a development build or a distribution build; mobile exports also need a runner built for the platform. See the requirements below.
Desktop
OpenDBC is a single opendbc executable: start it without arguments for the Studio, or
use it from a terminal. SDL3 GPU uses Vulkan on Windows and Linux, and Metal on macOS.
Exports include the engine shaders for their target graphics backend.
Desktop exports bundle opendbc-runner, a small player without the Studio or the BASIC
compiler, next to your verified program and its assets. The Studio also runs your programs in
opendbc-runner, so a crash never takes the editor down. Exported macOS apps need
macOS 13.3 or later.
A development build (--unsigned on the command line) is ready to try on your machine.
A distribution build is ready to ship: signed with a Developer ID, notarised and stapled on macOS,
signed with a code signing certificate on Windows, packed as an archive on Linux. Signing identities stay on your machine, in the
Studio preferences or in OPENDBC_* environment variables; OpenDBC never stores a password.
Mobile
Mobile targets embed a runner built apart from the Studio, from the same OpenDBC sources
(the ios-runtime and android-host CMake presets). The Studio's Build window,
like the command line, lists what the target still needs on your machine. The output folder must exist:
mkdir dist
opendbc export game.dba --dialect dbc --target ios --output dist
opendbc export game.dbpro --dialect dbpro --target android-apk --output dist --unsigned
The mobile targets are ios, android-apk and android-aab. On macOS,
ios writes an Xcode project for devices and the simulator; you sign and archive it in Xcode.
Android builds need a JDK 17 or newer and the Android SDK; a development APK or AAB is signed with the
debug key, a distribution one with the project keystore. App identity, version, icon, permissions and
the Android keystore are project settings. See the
export guide for every
target and signing variable.
For games built around the keyboard, OpenDBC provides touch controls: touching the top, bottom, left or right of the screen presses the arrow keys, the centre presses space, and the back action is escape.
Experimental desktop VR
Desktop VR is available in the Professional profile; Classic reports its commands as unavailable.
It uses OpenXR 1.1 through Vulkan. The headset runtime must offer stereo rendering, opaque composition and the
XR_KHR_vulkan_enable2 extension. macOS also needs MoltenVK and a compatible OpenXR runtime;
installing MoltenVK alone does not provide headset support. Programs that use no VR
command keep the normal renderer. If VR cannot start, the program stays in its normal window.
Automated tests use a simulated runtime. Real headsets and the Windows/Linux VR paths have not yet been qualified. Standalone Quest, controller buttons and haptics, hand tracking and passthrough are not supported. See the VR guide.
Building from source
Requirements: CMake 3.24 or newer, Ninja and a C++20 compiler (Visual Studio 2022 or newer on Windows). CMake downloads the other dependencies; Linux also needs the GStreamer 1.16 or newer development packages, used for video. See Get started.