A HTML5 sokoban game. It was a challenge to develop a game in less than 24 hours total time. To clarify, this means 24 hours of development time, not one calendar day.
Initially, I kept progress in a log format here. Coming soon is an article on this entire process.
- Project scaffolding, set up HTML/CSS and basic JS file. Inclusion of PIXI library and game loop setup.
- Setup game "class" in JS, setup basic messaging.
- Setup GameObjects and interfaces.
- Setup Components and interfaces.
- Setup basic level, begin support for configuration file loading.
- Finished converting to TypeScript. Added SpriteComponent. Created GitHub repo and checked in code for the first time.
- Added BaseGameObject class, fixed messaging.
- Began work on AnimatedSprites.
- Finished AnimatedSprites.
- Added AssetLoader and AssetManager to streamline asset loading process.
- Began TileMap implementation. Created some "better" assets to test with.
- Finished TileMap implementation. Added a lot of documentation comments. Added message broadcasting. Past halfway point now, starting to think about which features to cut.
- Added ability to unsubscribe to messages. Also added spawn component (which listens for messages).
- Tweaked/added assets. Updated tile map. Decided on cutting pickup items/powerups feature. Can add after project completion.
- Multi-level loading working. Fixed bugs with object and component destruction. Tied a temporary UI control to switch levels.
- Tweened player movement added. Sokoban Controller component added, which tracks game state. TileMap checks added for bounds.
- Added crates. Player is now able to push them about and they collide correctly with walls and other crates.
- Goals working. Began adding screen fade logic.
- Added keyboard input handler. Fixed screen fades. TextComponent added. Move counter added top play screen.
- Added UI elements to play screen. Added summary screen. Tweaked previous UI controls.
- Added audio, including music and effects. Added UI controls to mute SFX or music independently.
- Added options menu and ability to select level.
- Added remaining levels. Performed minor tweaks. DONE!
Still To Do
- Add more visual variety to the levels, especially tile sets.
- Character animations (including cattle)
- Cut scenes/story
- UI polish/animations