In the last few days I worked a bit more on Bomberman. Time for another status update, but first a little demo:
What Is Finished?
Last few days made some progress with Bomberman. As it stands I’ve added basic support for controllers. I still need to clean-up the code and fine-tune the controls, but I won’t focus on this right now.
The asset loading system is improved a lot. I’ve made sure most content (images, config files, etc…) is loaded from the ZIP file now, previously a lot of the images were still loaded from the application bundle.
I’ve added an extra state for player characters: Cheer. The characters will cheer when they finish a level. Not a big addition, but it’s these minor additions that can make a game more enjoyable.
I’ve also added support for pausing the game, which was very easy with SpriteKit. Basically one can set a boolean value ‘paused’ on the root node of a scene and all it’s children will be paused auto-magically. I’ve bound this pause functionality to the controllers and to ‘escape’ on Mac OS X. The pause functionality will be great for making screenshots.
Work In Progress
Now I want to focus on testing this game on my AppleTV.
When playing on the AppleTV I want to see if the framerate is acceptable. On my MacBook Pro I get a good 60 FPS most of the time, I hope performance on the AppleTV will be similar.
I will also focus on adding audio support in the coming days.
Finally, I should add support for the Apple Remote and make sure my SteelSeries controller connects as well.
The following work remains to be done:
- Add level transitions.
- Add power-ups.
- Add sounds.
- Add music.
- Improve points handling when monster and walls are destroyed. The score textures should not be part of the assets ZIP file, but generated based on a score value in a config file.
- Create a main menu.
- Create a settings menu.
- Create a proper HUD for display of lives, power-ups, etc…
- Create more interesting monsters by adding more states, e.g. a Chase state so monsters can chase the player.
- Create custom graphics, sounds & music.
- Create a marketing website.
- Cache data like images and audio. Currently every time an entity is created, files are read from the filesystem.
- Pre-load audio. Currently the first time a sound is played, there’s some visual lag.