Impossible is a small 2D platformer I made with my kids during Montreal's winter weekends. We used it as a shared level-design exercise: one child built a challenge in Tiled, the other tried to beat it, and then they swapped roles and raised the difficulty. That cycle gave the game its name.
- A playable retro-style platformer built with Phaser
- Levels created with Tiled Map Editor, discovered automatically from
assets/maps/ - A level workflow designed for quick family experimentation
- Live TMX reload while developing, so level edits appear in the running game
- A local top-five leaderboard saved in the browser
- Retro visuals and sound generated from the project's local assets and Web Audio
The level editor is Tiled Map Editor. Open the tileset at assets/ReferenceTileset.tsx, edit a map, and save it. The development server notifies the game about the change. This makes it easy to build a challenge, watch someone try it, and then revise the level.
Requirements: Node.js and npm.
npm install
npm run devThen open http://localhost:5173.
Useful commands:
npm run build # create a production build
npm run preview # preview that build locally| Action | Keys |
|---|---|
| Move | A / D or left / right arrows |
| Jump and double jump | W, up arrow, or Space |
| Throw a star | J or X |
| Mute audio | M |
| Return to the menu | Esc |
The menu uses the up/down arrows or W/S, then Enter or Space to select a level. Completing a level shows its time and the browser-local leaderboard.
Maps live in assets/maps/. The Vite configuration finds every .tmx file there and adds it to the game's menu automatically.
The parser supports orthogonal 32x32 maps with CSV-encoded tile layers. Recommended layer names are:
GroundVisualandDecorfor visualsPlatformsfor solid areasHazardsfor dangerous areasCollectiblesfor starsEntitiesfor the player spawn and enemiesExitsfor the level exit
Object types cover actors and gameplay markers, including player spawns, enemies, and exits. For the complete Tiled conventions, see src/systems/level-parser.js.
src/
scenes/ game screens and gameplay
entities/ player and enemies
systems/ TMX parsing and leaderboard logic
config/ game, color, asset, and level configuration
dev/ live level reload bridge
assets/
maps/ playable Tiled levels
reference_pack/ sprites and tileset assets
This is a playful family prototype, not a polished commercial game. It is here because making something small, silly, and unexpectedly challenging with your kids is a pretty good way to spend a winter weekend.