SvitsGames

RestoRake: Restore the Ruins

Rake a jungle's overgrowth for coins and spend them rebuilding a ruined palace in 15 steps you can see. A day ends on its timer and always pays.

idle / incremental / pixel-art / HTML5

Screenshot from RestoRake: Restore the Ruins

RestoRake: Restore the Ruins is a pixel-art incremental game that runs in the browser. Short days of clearing pay coins, and the coins restore a ruined jungle palace one visible step at a time. There is one input and no way to fail: a day ends on its timer, never on a mistake, and every day pays.

What you do

Move the mouse, or drag a finger, over the overgrowth. Whatever the rake passes over breaks and pays the moment it breaks — weeds and bushes first, then flowers, brambles, rocks, mushrooms, slimes, stumps and crystals as the palace comes back. A day starts at 40 seconds, and upgrades stretch it.

Quick breaks chain into a combo that pays more, and a long chain sets off a frenzy that widens the rake. Events turn up mid-day: a golden bush, coin trails, a lucky hare, a boar rush, the Slime King and the Heart of the Thicket.

The shape of a game

Coins restore the palace in 15 steps: the overgrowth cleared, pillars raised, guardian statues mended, groves planted, the palace scrubbed and finally roofed. Each restoration earns coins on its own, offline too for up to two hours, and brings richer overgrowth into your days.

Six tools make the rake wider, sharper and luckier, and 24 treasures hide in the overgrowth, at most one a day, each adding 2.5% to every coin for good. Once the palace stands again you move on: coins and tools reset for Ancient Essence, and you keep one tool, your treasures and the elixirs Essence buys.

How it’s built

Phaser 4.1.0, TypeScript and Vite. The 1.0.3 release code is 353 kB gzipped, Phaser included. The layout is fluid in both orientations, so it plays upright or sideways, and turning the screen mid-day re-lays it rather than letterboxing it.

The devlog covers the traps a game that resizes like this runs into: why Scale.RESIZE can’t use device pixels, what the canvas does mid-rotation, and why a Phaser loading screen can’t cover its own bundle.