Before I get my hands dirty creating a new project, it is worthwhile to scratch down a list of the assets your game will need. Not just art or sound assets, but programatic assets as well. it also helps to have a good idea of what platform you are going to use (graphics, that is) before starting. I have converted a game from Core Graphics to OpenGL halfway through the development cycle and it was not much fun, believe me. Be aware, this is a minimal list, I will remember a lot of stuff later as I need it. ^^
Assets (Art and sound).
- Art work (Game board graphic, button graphic, menu and loading screen, possibly a font sheet).
- Sounds (button push, failure sound, multiplier sound, game over sound).
- A view to display the game
- A menu to allow selecting different difficulties, viewing high scores, etc
- A graphics engine, I will use openGL ES 1
- A class to load and manage textures
- A class to load and manage sounds
- A class to maintain a grid of different sizes.
- A class that represents a button
- A class to manage the map and the buttons, and to interpret game state.
- A class to show a HUD, with score, pause buttons, etc
All of these elements are containers for more complicated game logic, which I will break down later, but for now a hierarchy of how the game is laid out is already emerging. The View owns the menu, the renderer and the game state machine. The state machine owns the hud, the map and the buttons, the buttons own references to sounds and textures, although the classes that vend these references are not owned by anyone (This will make more sense later, bleh).
Tomorrow, I’ll start creating the various elements, and if I have the time i’ll get a rudimentary game working (I have a lot of these elements pre-prepared ).