OpenDBC
Menu

The tools to make it playable

Create a 3D scene, add a 2D interface, give it sound and put the player in control. OpenDBC brings the engine, editor and command line together in one opendbc executable.

Classic or Professional: choose your starting point

dbc DarkBASIC Classic

701 command and function forms implemented. Another 29 legacy forms are compatibility stubs: calls are accepted, but the original feature is not performed. They cover FTP, CD audio, WINDIR$ and switches for old hardware such as EAX and T&L.

dbpro DarkBASIC Professional

1042 core command and function forms implemented, with user-defined types, typed arrays, stacks and queues. Forms that do not run yet, including those of DarkPHYSICS, the Enhancement Pack and 3D Cloth & Particles, report a diagnostic.

One profile per run

Use --dialect to choose explicitly, or let the project settings and unambiguous syntax select the profile. Classic and Professional keep their own language rules.

Checked before it runs

Programs are parsed, type-checked and compiled to bytecode that is verified before the virtual machine executes it.

Counts come from the language catalogue and include distinct forms of the same command. Use the reference to check the exact forms your project needs.

The Studio

The engine

3DPrimitives, models (.x, .dbo, 3DS, OBJ, FBX, glTF, MD2, MD3), limbs, meshes, animation, collision, static worlds and DBPro's own BSP format
SceneryClassic matrices, DBPro terrains, fog, backdrops, point, spot and directional lights, particles
Professional effectsBump, cube and specular mapping, cameras that draw to images, screen effects, shadows, fire and snow particles, automatic collision
2DDrawing, text with font selection and fallback, bitmaps, images, sprites, Classic bobs
MathsDBPro vectors, 4×4 matrices and their transforms
Physics87 DBPro ODE forms on Jolt Physics: boxes, spheres, capsules, cylinders and triangle meshes, forces, collision messages, rays, joints and a character controller
AudioWAV and MP3 sounds, 3D sound with a listener, recording and music; MIDI music through a built-in General MIDI bank, the same on every platform
VideoANIMATION commands in both profiles, decoded by the system's media framework (not yet on Android)
MultiplayerThe net game commands of both profiles over ENet, between OpenDBC games
InputKeyboard, mouse, game controllers with force feedback, touch zones on mobile
DataFiles, folders, memblocks, arrays saved to disk, clipboard; Classic registry values kept in a file
PluginsClassic LOAD DLL loads native plugins written for OpenDBC with its C SDK; the original 32-bit Windows DLLs cannot load
RenderingSDL3 GPU: Vulkan on Windows, Linux and Android; Metal on macOS and iOS

Beyond the originals

Desktop VR

Fourteen opt-in Professional commands put a program in an OpenXR headset. Experimental: tested with a simulated runtime; real-headset qualification is still pending. Requirements and limits.

Exports

Ship a desktop app, an iOS Xcode project or an Android APK/AAB, as a development or a distribution build. Exports carry verified bytecode, assets and a separate runner without the Studio. See export requirements.

Debugging

F3 shows a live overlay (renderer, objects, camera, errors); F4 dumps the scene and renderer state to text files.

Command line

run, check, inspect, build and export: scriptable, with a headless mode for tests.

Know what your project can use

The reference is generated from the compiler's language catalogue. It lists signatures and support states for each profile. Automated tests check the behaviour of implemented forms. Examples are tracked separately for compilation, execution and output.

Some legacy features need changes: DirectX 9 assembly and effect containers are unsupported, and BSP loading currently handles DBPro's own format, not Quake maps or PK3 archives. Start with the existing-project checklist before porting a game.