Tjorra: a hill-climb driving game built from scratch in Odin and WebAssembly
Tjorra is an endless 2D hill-climb driving game. Drive a procedurally generated track of rolling hills, launch ramps, and coin/gem pickups across six terrain biomes, from grassland to a rocky mountain highway. A two-wheel spring-damper suspension model means a bad landing can flip the car or slam it to a hard stop and spill fuel; money earned per run buys engine, suspension, tire, fuel tank, and counterweight upgrades, plus new vehicles in the garage.
How to play
Use ↑/W or Right to hit the gas and ↓/S or Left to brake or reverse; on touch devices the same actions are two on-screen zones. Ride the throttle rather than flooring it: landings and steep climbs both have a grip limit, and breaking traction on a slick or steep surface is slower than feathering the pedal. A bad landing can flip the car or slam it to a hard stop and spill fuel, so match your speed to the terrain ahead. Collect coins and gems as you go, then spend the money in the Garage (G, or the on-screen GARAGE button) on engine, suspension, tire, fuel tank, and counterweight upgrades, or on a new vehicle, each with its own weight and handling. Reaching a target distance in one biome unlocks the next, from grassland all the way to a night-time city highway, so the run gets harder, and pays more, the farther you push.
How it's built
The whole game, physics, rendering, audio, and UI, is written in the Odin programming language and compiled to WebAssembly, with zero image files, zero audio files, and zero JavaScript/npm runtime dependencies. Every visual is a canvas pixel primitive; every sound is a live Web Audio oscillator. Rendering goes through Batchiness, an open-source batched-Canvas2D library that records a frame's draw calls into one buffer and flushes them across the WASM↔JS boundary in a single crossing, rather than one call per shape. Terrain and pickups are pure deterministic functions of world position rather than stored state, which is what makes the run effectively endless, and the suspension physics resolves ground contact, wheel slip, and hard-landing detection from a proper rigid-body model rather than shortcuts.
About the developer
I'm Ewald Horn, a software developer: I build all kinds of things, not just games. Tjorra is one example from a personal collection of small browser projects used to explore systems programming, WebAssembly, and simulation from first principles. I might be available for freelance development work.