ORBIS
a pocket-planet action RPG in the browser
A pocket-planet action RPG in the browser.
The product
A single-player 3D action RPG set on a tiny planet you can walk all the way around. Tab-target combat, quests, and a HUD, running in the browser with nothing to install.
- Playable build
- 2026
Walk all the way around a tiny planet, pick a target, and fight; in the browser with nothing to install.
Play ORBISThe build
Context
A tiny planet, one milestone at a time
The build plan is explicit from the first page: single-player only, no server, no networking. Gravity in the world pulls toward the centre of a small sphere, so a hero can walk the entire way around the planet, over the top and under the bottom, with a curved horizon the whole way.
The plan names the sphere-gravity controller and the camera that stays grounded on it "the hard part of this project," and the whole schedule is built around proving that feeling right in the first milestone, M1, before anything else gets touched. Nine milestones, M0 through M8, carried the game from that first proof to a feature-complete build.
What it does
Walk the planet, tab-target the fight
A hero runs, jumps and orbits a walkable planet with WASD and mouse, fights roaming creatures with WoW-style tab-target combat and a six-ability hotbar (a melee Strike, a cast-time Firebolt, an area Whirl, a self-heal Mend, an area Frost Nova and a fast ranged Spark), and takes three quests from a village NPC: cull six pests, gather four glowcaps, then defeat a named Brute on the far side of the world. Killing and questing both feed a working XP and levelling system with save and continue.
A July 2026 polish pass reworked how targeting feels: a settings toggle switches between Auto, where the reticle continuously follows whatever it rests on, and Classic, where Tab still cycles and a click selects first. In both modes, left click strikes the selected target and right click fires the equipped ability instead of a hardcoded one. A follow-up commit the same week added free aim: the reticle can drift inside a cone before the camera turns to follow it, so a fast flick does not lose the target.
Engineering
Vite, TypeScript and three.js under React
The stack, pinned in package.json, is Vite, TypeScript and three.js (0.185.0), driven through React Three Fiber with drei for helpers, Rapier for physics and postprocessing for the bloom and tone-mapping pass; zustand holds state and Vitest tests the pure logic core. The build plan's own reasoning for React Three Fiber over raw three.js is the HUD: a hotbar, unit frames, quest tracker and dialog box are "the hidden bulk of the work," and rendering that in React over the canvas is what keeps it cheap.
The pure logic layers (sphere maths, combat, mob AI, the quest engine, wayfinding bearings, targeting) carry no React or store coupling and are unit-tested. The build log records the suite growing milestone by milestone: 35 tests at the combat milestone, 44 once quests landed, 54 once the wayfinding work (bearing and arc-distance maths) shipped in July, and 61 once the targeting-mode rework landed later that month, still green through the accessibility pass.
What it is, and what it is not
A procedural hero, not a rigged one, yet
The build log is upfront about two gaps a screenshot would not show. No rigged, Mixamo-style glTF character could be sourced inside the build environment, so the hero, creatures and NPC are a procedural articulated placeholder driven by a real animation state machine (idle, walk, run, jump, attack, cast, hit, death), with the glTF swap path fully wired so a conforming model drops in with no code change. Audio follows the same honest pattern: no audio assets were available, so effects and the ambient pad are synthesised through the Web Audio API behind an interface built to swap in recorded files later.
Frame rate is flagged throughout the log as something a headless build cannot verify; the software renderer used for automated milestone checks floors at roughly two to five frames per second regardless of the actual scene, so every milestone's performance claim is marked as a pending human check on real hardware, not an automated pass.
Where it stands
Feature-complete, then a second polish pass
Milestones M0 through M8 shipped between late June and mid-July 2026, and the build log marks v1 "feature-complete end to end": running the planet, hotbar combat, three quests start to finish, death and respawn, a menu, a save system and a synthesised audio pass. A second pass, six further stages covering the HUD, the title screen, wayfinding, onboarding and settings, and accessibility, followed in mid-to-late July: a redesigned hotbar and unit frames, a title-screen orbit camera, an on-screen compass and distance markers for over-the-horizon quests, a contextual tutorial and a settings panel, and a colourblind palette with a contrast and reduced-motion pass.
The targeting-mode and free-aim changes landed last, dated 19 July 2026 in the git history, as direct responses to play feedback rather than a scheduled milestone. The build log's own status line calls the whole polish pass complete and human-verified, with tuning the aim feel and recording real frame-rate numbers per scenario as the remaining open items.