Skip to content
Janclab Matija Janc · Platform & AI engineer
complete

POLARITY

A two-player co-op puzzle-platformer built on magnetic charge — like repels, opposite attracts — whose physics constants were re-measured in a sandbox because the design doc's numbers produced almost no force at all.

Live, in your browser — not a screenshot.

force constant re-derived: 280,000 → 12,000,000
6 sectors from an ASCII tile-map builder
55-check headless suite · bot-driven physics sims
deterministic 60 Hz · 2-player co-op on Android TV

Problem

I wanted a co-op platformer where the puzzle is the physics: two players solve rooms by attracting and repelling each other, charged walls and crates. The mechanic only works if magnetic force feels right across a full room and stays deterministic enough to test.

What I built

A complete Godot 4.7 game with three force models, six ASCII-authored sectors and a central tuning core. Fixed 60 Hz physics plus virtual input lets headless bots play the real mechanics frame by frame; the 55-check suite gates Android TV builds in CI.

The hard part

The design specified the correct inverse-square equation but the wrong world: K = 280,000 produced almost no movement at the hundreds-of-pixels distances used by real levels.

I built a tuning sandbox and re-derived the constants empirically. The point-charge value landed at 12,000,000, with separate caps for ferromagnetism and a close-range taper. Those measured behaviours became bot-driven regression tests, so later edits cannot quietly weaken wall-walk, slingshot or hoist mechanics.

Results

Two players can finish all six sectors on Android TV with DualSense pads. The re-measured physics now carries the game, and CI verifies the real simulation before producing an installable APK.