Binary Large Object  ·  v0.1.0  ·  build 249

Every dimension
has a Bob.

Only one of them crosses the line. A multiplayer platform-racer with Celeste-grade movement, a keychain that swings on a real physics chain, and a starting grid full of yourself.

One build, every platform. Cross-play from the same lobby.

4
AI personalities
9
Rarity tiers
7
Keychains
23
Tile variants
Bob, a green blob with two small eyes
LoadoutTop Hat  /  Boxing Glove
Hat
Keychain

01 — Movement

The whole game
is four numbers.

Bob's movement was ported constant-for-constant out of a Unity prototype and re-tuned in Phaser until it felt the same. These are the real values, straight from the physics table. Nothing here is generous by accident.

  1. 01

    Run off a ledge. Jump anyway.

    For a tenth of a second after the ground leaves you, the game still thinks you are standing on it. You will never notice it working. You would notice immediately if it were gone.

    0.10sCoyote time
  2. 02

    Early is not wrong.

    Press jump a fifth of a second before you land and the input waits for you. Landing and launching become one motion instead of two.

    0.20sJump buffer
  3. 03

    A dash you can chain.

    Short enough to build a rhythm out of, long enough that spamming it costs you the corner. The whole skill ceiling lives in this number.

    0.25sDash cooldown
  4. 04

    Fifty percent over the limit.

    Max speed is 4. Chain a dash out of a jump and you carry 6 until you touch something. Every track has a line that only exists at hyper.

    6.0u/sHyper speed

Plus wall-jumps, a dash that cancels into a jump, and grounded checks that read the tilemap rather than a collider box. — docs/PHYSICS.md

02 — The keychain

It isn't
a weapon.

It's a length of chain with a personality on the end, and it obeys physics whether you want it to or not. Run and it swings. Jump and it whips. Coins are collected by the tip — not by you — so the fastest line through a track and the greediest line through a track are almost never the same line.

  • Boxing Glove
    Boxing Glove#0
  • Baseball Bat
    Baseball Bat#4266
  • Sword
    Sword#4242
  • Dumbell
    Dumbell#2
  • Flashlight
    Flashlight#3
  • Foam Finger
    Foam Finger#4
  • Rubber Chicken
    Rubber Chicken#6

← Drag or scroll the rack. 7 in the base set, more behind the chests.

03 — Loot

Nine tiers.
Nine pips.

Rarity is never written on an item. It's a row of small squares on the left edge of the slot — count them and you know. It reads at a glance, at any size, in any language, and it never covers the art.

  • Common1#8a8a9a
  • Uncommon2#3aaa3a
  • Rare3#3a7ad0
  • Epic4#aa3acc
  • Exotic5#ccaa10
  • Legendary6#cc7a10
  • Mythic7#cc3040
  • Transcendent8#222222
  • Eternal9#f0f0f0

The living keys

Chests don't open themselves.

Rusty

Ground Zero

Rusty's Chest
Name's Rusty. I'm a keychain — a LIVING one!

The first key you meet, and the one that explains the plot: he opens gates to other dimensions, and every dimension has its own Bob, and all of them are racing for the same treasure. Green hills, fresh air, tracks that get tricky about thirty seconds after you stop respecting them.

  • Let's leave 'em in the dust!
  • Remember — fast feet, sharp keychain!
  • Don't blink or you'll miss us winning!

04 — Palettes

Nine colours.
Per world.

Every item belongs to a world, and the world decides what it can be dressed in. Ground Zero sits in Earth — the Verdant Realm — and these nine are the whole vocabulary. Not a starting point, the entire set: there is no cross-world mixing, so an Earth item is wearing an Earth colour or it is wearing nothing.

  • Red#FF0000
  • Orange#FF8000
  • Yellow#FFFF00
  • Green#00FF00
  • Blue#0080FF
  • Purple#8000FF
  • White#FFFFFF
  • Black#000000
  • Grey#808080

Where the colour lands

Paint
The body of the item.
Glow
A lit edge in the same colour.
Trim
A second colour on the detail.
Particles
What it sheds while you move.
Trail
What it leaves behind you.

Earth brings its own patterns and particles with it too — Camo, Rainbow, Honeycomb, a pixel particle, and Sunrays as its animated pattern. All locked to the world, same as the colours.

What rarity unlocks

  1. CommonNo effects — the item as drawn
  2. UncommonPaint
  3. RareGlow
  4. EpicTrim
  5. ExoticParticles
  6. LegendaryTrail
  7. MythicPattern, in place of paint
  8. TranscendentPattern lock, particle set
  9. EternalHSV, animated pattern

Each tier keeps everything under it. Paint stops at Legendary because Mythic and up are patterned instead — at the top of the ladder an item is not painted a colour, it is wearing one.

A new world arrives with nine of its own, and its own patterns and particles behind them. That is the whole trade: the palette is small so a world reads at a glance, and the way to get a colour you do not have is to go somewhere you have not been.

05 — Ranked

Nine gems.
Thirty-three rungs.

Every ranked race moves one number. It starts at zero, it is called MMR, and where it lands decides which gem you wear. Eight of the nine tiers split into four divisions, so the ladder is thirty-three rungs deep and you always know the next one by name.

  1. Unrankedno divisions0–50
  2. EmeraldEmerald 1 – Emerald 450–150
  3. SapphireSapphire 1 – Sapphire 4150–300
  4. AmethystAmethyst 1 – Amethyst 4300–500
  5. CitrineCitrine 1 – Citrine 4500–800
  6. HydrixHydrix 1 – Hydrix 4800–1,200
  7. RubyRuby 1 – Ruby 41,200–1,800
  8. OnyxOnyx 1 – Onyx 41,800–2,500
  9. DiamondDiamond 1 – Diamond 42,500+

Three boards, not one.

MMR
The ladder itself. Every ranked race moves it.
Wins
Total first places, unweighted. The blunt one.
Time
Best time per track. The one that survives a bad rating.

Movement syncs through SpacetimeDB, with a server-side anti-cheat monitor watching the deltas — a rating is only worth something if the run behind it was real.

06 — Gifting

Give it away.
Keep it too.

Anything you own, you can hand to a friend — and you keep yours. They get a copy, not your copy, so the two of you end up wearing the same hat instead of taking turns with it. Open the collection log, pick the item, pick the friend.

  1. 01

    You own it

    Pulled from a chest, earned, or bought. Yours outright.

  2. 02

    You gift a copy

    Your friend's log unlocks the same item, marked Gifted. Yours is untouched.

  3. 03

    The copy stops there

    A gifted item can't be gifted on. Only something you own outright can be given, so one item never turns into a hundred.

Top Hat
Top HatOwned

Can be gifted

Boxing Glove
Boxing GloveGifted

Cannot be gifted on

07 — Level editor

Build a track.
Publish it. Lose on it.

The same editor the game's own tracks were built in ships with it. Auto-tiling picks the right variant out of 23 as you draw, so a hand-drawn slope comes out looking like the rest of the game rather than like a first draft.

Where to get it
  • Cursor-anchored zoom

    Scroll in on the point under the pointer, the way every map you have ever used works.

  • Rect fill, select, move, rotate

    A real tool palette with hotkeys and tooltips, not a tile-by-tile click grind.

  • Per-tile tilesets

    Hold Q for the picker; decorations auto-invert to match the tileset.

  • Spawn slots S1–S4

    Unified, auto-renumbering, ctrl-click to select in move or rotate mode.

  • Auto-enclose

    One button drops invisible physics bounds relative to your start and finish lines.

  • Save to the database

    Levels are server tables, not local files. Publish and other people can race it.

08 — Platforms

One canvas.
Every shell.

The Steam build is the real game — every other platform is that same Phaser canvas wrapped in a native shell. Nothing is a port, so nothing is a version behind.

Built with

  • Phaser 3Arcade physics, WebGL / Canvas
  • TypeScriptStrict mode, ES2022
  • SpacetimeDBMultiplayer backend, live tables
  • ViteBundler
  • CapacitoriOS + Android shells
  • ElectronDesktop builds

Go on then.

Grab it on your platform of choice. One build, the same tracks, the same leaderboard full of yourself.

v0.1.0 · build 249 · Steam, iOS and Android