Six islands to explore
A garden, burrows, a fiery desert, a snowy summit, a stone factory and a purple moon. Every map is available from the start.
Six little islands, five explorers and a pocketful of treasure. Pick a level, collect gems, jump past hazards and reach the flag — a 2D platformer playable directly in your browser.
THE EXPERIENCE
Choose an explorer, discover an island and reach the yellow flag. Collect every coin and all 3 gems to finish; healing hearts are optional. The factory needs its switch, and Purple Moon needs its key.
A garden, burrows, a fiery desert, a snowy summit, a stone factory and a purple moon. Every map is available from the start.
Collect every coin and all three gems, stomp slimes and avoid spiked creatures. Ladders, springs, moving platforms, conveyors and locked gates keep each island different.
Five explorer colours, three hearts, two checkpoints per map, original synthesized music and playful Kenney sounds. Best scores stay in your browser.
Hazards cost a heart; falling returns you to your checkpoint. Lose all hearts and restart the map. Reset does not heal or respawn collectibles. The game requires JavaScript and Canvas 2D; sound starts after your interaction.
Behind the build
Product story
How do you turn a sprite collection into a small world worth exploring? Pocket Planet began with Kenney’s New Platformer Pack: friendly astronauts, terrain, enemies and collectibles sharing one playful visual language. These are 2D assets, not 3D models. The goal was six immediately selectable levels, each introducing a different mechanic. Portfolio visitors can play with a keyboard or touchscreen without creating an account.
I laid out the main route, gaps, elevated reward branches, enemies and two checkpoints for each level. Players must collect every coin and all three gems before reaching the exit; healing hearts are optional. Locked gates still require their switch or key. Later levels introduce slippery ice, moving and falling platforms, springs, conveyors and gates opened by a switch or key. I implemented simulation, collision, multi-touch input, Vietnamese/English interfaces, browser-local records and the complete level-to-results flow. Original sprites and sound effects are by Kenney under CC0. The background melodies and victory fanfare are synthesized with Web Audio; I do not claim authorship of the sprite artwork.
A fixed 60 Hz simulation runs separately from the React interface. Canvas 2D draws sprite atlases, parallax backgrounds and visible world objects. Tapping or holding jump produces different heights; coyote time allows a jump just after leaving a ledge, while jump buffering remembers a jump pressed shortly before landing. Input tracks each key and touch contact independently. Hiding the tab, pausing or rotating a phone to portrait stops gameplay and audio until the player resumes. Music and effects have separate controls. Blocked storage or unavailable audio does not prevent play, and failed visual assets offer a retry screen. The game lives in the existing portfolio without a new backend or accounts. Its case study loads text and screenshots; simulation, atlases and audio belong to a dedicated play route.
The local build includes six unlocked levels, five character colors, three hearts, checkpoints, coins and three gems per level. Per-level records preserve the best time and highest coin/gem counts. Players can pause, restart or continue to the next level. Automated checks exercise real movement to collect every coin and gem and finish all six levels, jumping and collision rules, health, checkpoints, collectibles, locked exits and records. Browser tests cover controls, level selection, pause, rotation and asset failures. This is a single-player game without online multiplayer or leaderboards. Emulated browser checks do not replace testing on individual physical phones.
07 images