Not a clone — the actual retail game on Steam. I train agents in a headless simulator running >2,000× real time, then deploy them onto Geometry Dash 2.2 through a custom C++ mod. Along the way: a controlled DQN/PPO/GA comparison, sim-to-real transfer, and a full official level cleared.
What's in the project
I care more about being precise than impressive. Every claim below says what it actually is, including where it stops.
Same observation, reward, and levels; five seeds each. All three solve it — but with its default exploration, PPO traps in a local optimum on 4/5 seeds where DQN and GA don't.
A policy trained only in the sim drives the retail game via the mod (~11%); a checkpoint search on the real game clears the full cube section (~35%).
The complete official level — via learning from demonstration: a recorded human run replayed deterministically on the real game. Not autonomous RL, and I say so.
A network trained on that demonstration predicts the human's jumps at 90.7% validation accuracy (jump F1 0.82) — a genuinely learned imitation policy.
Training across randomized physics widens the policy's tolerance to the sim-to-real gap by ~1.7× vs a point estimate — the textbook fix, measured with a number.
Result #1
| Algorithm | both levels | seeds | out of the box? |
|---|---|---|---|
| DQN (double) | 100% | 5/5 | yes |
| Genetic Algorithm | 100% | 5/5 | yes |
| PPO | 100% | 5/5 | needs tuning |
With its default exploration (entropy 0.01), on-policy PPO converges to "take the free progress, don't risk the jump" and stalls at exactly 21.6% on 4 of 5 seeds — through the entire 3M-step budget. A 5× entropy increase (0.01 → 0.05) is the whole difference between 1/5 and 5/5 solved. Value-based and evolutionary methods never fall in. This is the kind of thing a single-algorithm project can't surface.
Result #2
A policy trained on one exact set of physics overfits the sim — which is why the sim-trained agent dies ~11% into the real game. The standard defense is domain randomization: jitter the physics every episode so the policy learns to survive a range, not a single point estimate. I trained DQN with and without it (5 seeds) and measured the tolerance to held-out physics error.
Results #3–5
The sim renders shareable clips, and the mod records footage straight off the retail game. A few of them:
Architecture
The retail game is the evaluation target, not the training loop — that's the whole idea. Training happens in a simulator thousands of times faster than real time.
The part I won't hide
These are the most credible thing in the whole project, so they go up front, not in a footnote.
VERIFY in the source.Built with