dualthrust

CRT-green cave lander — two engines, nothing else

dualthrust: lifting off from a landing pad

Play in the browser

The whole game runs in a web page (WebAssembly + WebGL / software). Keyboard and gamepads work; browsers start audio only after the first key press or click. Built with Emscripten and packaged with Nix.

Play dualthrust (WASM)

Download

Built from the same source as the browser version, version 0.2.0-dev.63+g6d7cd35.

  • R36S and other PortMaster handhelds Native aarch64 build for the R36S (ArkOS). Put the zip into ports/PortMaster/autoinstall/ and start PortMaster, or unpack it to /roms/ports/.
  • Linux (source / Nix) Build from source with Nix (nix run github:Grumbel/dualthrust) or CMake, SDL2 and Box2D.

About

A small CRT-green cave lander with two engines and nothing else. Each trigger drives one engine: push both to climb, favour one side to rotate and slide sideways. Fly through a 2D cave, set the ship down on a landing pad, and haul crates with a winch and hook. The ship is a real rigid body (Box2D) with sprung landing legs; gravity never stops pulling. Written in C++17 with SDL2; all sound is synthesised on the fly.

Playing

Equal thrust lifts you straight up, uneven thrust spins you, and a tilted ship pushes sideways. Land slowly and upright on a pad (or anywhere the ground allows). Hard impacts destroy the ship; softer ones bounce. Retract the landing legs for tight tunnels. Deploy the rope, grab one of the twelve crates, and deliver it to a pad — heavy loads pull the ship down.

Eighteen ship presets (Narrow, Medium, Wide, Barge, Dart, Gnat, Hauler, Frigate, Atlas, Dragonfly, Colossus and more), switched in Options or with S. Heavier ships are steadier; the big four-thruster ones use the sticks for extra thrusters.

Controls

  • Triggers, L1/R1, or stick up (left/right) — left / right engine
  • W / Up, Down / Right Alt — extra thrusters on the big ships
  • Left Ctrl / Right Ctrl (or A/D, arrows) — full thrust; Shift for half
  • Space (keyboard) or X (gamepad) — retract / extend landing legs
  • Q / E or D-pad left/right — deploy / retract the hook cable
  • R or A (gamepad) — grab / release a crate
  • Enter or A/B — respawn after a crash
  • Y or G — new cave
  • Tab, mouse wheel, or D-pad up/down — zoom (Near / Medium / Far)
  • S or Select — next ship
  • X — swap left/right engines
  • F or Alt+Enter — fullscreen
  • M — sound on/off
  • Start / Escape — pause menu

On-screen hints follow the last device you used (keyboard or gamepad).