Getting started

Install DarkRoast, connect it to Blender, and play your first level.

1. What you need

2. Install the engine

  1. Download Windows build from the download page.
  2. Unzip it somewhere permanent, for example C:\BlendForge. You’ll get:
    blendforge.exeThe engine you test with. Has a console window, stats overlay and hot reload.
    blendforge_player.exeThe shipping version Package Game copies into your finished game.
    blendforge_addon.zipThe Blender add-on. Don’t unzip it — Blender installs it as a zip.
    *.dllVisual C++ runtime, so nothing else needs installing.
SmartScreen? The programs are code-signed by Sentient Bean LLC, but Windows may still ask until they’ve built up download reputation. Click More info → Run anyway.

3. Install the Blender add-on

  1. In Blender open Edit → Preferences → Add-ons.
  2. Click the ⌄ menu at the top right and choose Install from Disk…
  3. Pick blendforge_addon.zip and make sure BlendForge is ticked.
  4. Expand BlendForge in the list and set Engine executable to C:\BlendForge\blendforge.exe. A green tick reading Using: … means it’s found.

4. Your first level

  1. Start a new General file in Blender. Keep the cube, camera and light.
  2. Add a floor: Add → Mesh → Plane, then scale it up (S 20 Enter).
  3. Move the cube up so it’s sitting on or above the floor.
  4. In the 3D viewport press N to open the sidebar and click the BlendForge tab on its right edge.
  5. Put the 3D cursor where you want to start and click Add Player Start. The arrow points the way the player faces.
  6. Select the cube and in Object Components set Body to Dynamic.
  7. Click Play (or the ▶ button in the viewport header).

The game window opens. Walk with WASD, look with the mouse, left-click the cube to pick it up and right-click to throw it.

Everything is Static by default. Floors and walls just work. Only change the Body of things that should move, fall, or detect the player.

5. Change it while it runs

Leave the game open and go back to Blender:

6. Add your first script

  1. Select the cube. In Object Components → Script click the new-file button. This creates Cube.lua from a template.
  2. Change any area of Blender to the Text Editor to see it (the Scripting workspace has one ready).
  3. Replace the on_update function with:
    function on_update(self, dt)
      self:rotate(0, 0, 45 * dt)   -- spin 45 degrees per second
    end
  4. Set the cube’s Body to Kinematic (scripts and animation move Kinematic bodies; physics moves Dynamic ones) and click Play / Update.
  5. Look at the cube and press E — the template’s on_interact shows a message.

Controls

KeyActionGamepad
WASD / mouseMove / lookLeft stick / right stick
SpaceJumpA
ShiftSprint
EUse the thing under the crosshairX
Left clickPick up / dropRB
Right clickThrowRT
Ctrl (hold)Crouch: lower, slower, and you stay down under anything lowB
VFly mode (Q/E down/up), while testing your level; packaged games don’t fly unless the level allows it (player_options{fly=true})
CFirst / third person (if the level allows it): you play as an animated cowboyRight stick click
RRespawn
EscPause menu: resume, restart, volume, mouse speed, controls, quitStart

Every control can be rebound in Pause → Settings & controls.

Graphics quality: the first time a game runs, it picks Low, Medium, High or Ultra for your graphics card (Low on Intel and AMD integrated graphics). Change it under Pause → Settings & controls.

VR: start a level or a packaged game with --vr to play in a Meta Quest (Link or Air Link) or SteamVR headset. Left stick moves, right stick snap-turns; the right controller aims (a red dot shows where) and its trigger grabs or shoots, the left trigger throws, the right grip uses, the left grip reloads (respawn), A jumps, B crouches, X holsters, Y pauses and a right stick click switches weapon. The HUD and menus float in front of you: point at a menu and pull the trigger to click. Add --vr-scale 1.3 for a sharper picture if the graphics card keeps up; VR draws lighter than the desktop unless you add --vr-graphics full (both are saved). Standing, your eyes are put at the player’s eye height, the characters’ own, whatever your real height (a second after the headset starts tracking; crouching for real still crouches). With no headset it plays on the desktop.

Try the samples

The Samples & docs download has a samples folder. Open samples\test_level.blend and press Play to explore a level with coins, doors, a lift, a gate, a ball spawner, sounds and an animated tentacle — click any object to read its script. No Blender? Drag samples\test_level.glb onto blendforge.exe.

For racing, open samples\racing_demo.blend: your car against three AI drivers over three laps. See Cars & racing.

For 2D, open samples\2d_demo.blend: a pixel-art side-scroller (A/D or arrows to run, Space to jump). See 2D games.