Tuesday 11 December 2007

A 'simple' game logic diagram

To make things easier, I decided to make a plan of how Slipslide's logic system is going to work. The first step in doing that is deciding what things will require modules, and how the modules interact with each other. So, to simplify the process, I produced this flowchart. Although it may look a mess at first, it's actually quite simple if you look at it for a few minutes; for a better understanding of why it's done that way you might want to read my description of Slipslide and how it works. Anyway, back to the chart; it basically outlines what each of the modules do, and illustrates with the arrows which modules are called by which others and so creates a sort of hierarchy. If you're wondering what the colouring's for, red means it's managing something, blue indicates a loader of some sort and green denotes individual and self-managing entities. Namely, the character and the blocks. The "Main" module is the centre of the entire game and has control over everything, so it is coloured white to make it stand out against the other modules.
On the actual game development front, there's been a slight change in the way the game will work. Instead of having a tiled grid of 80*60 tiles, each 10*10 pixels in size, we've changed it to a grid of 25*20 tiles each of which is 24*24 pixels. This is because the previous method used an obnoxiously large amount of screen space and the tiles were incredibly small (plus puzzles would take days to create with that many tiles). We needed to strike a balance between a reasonably sized window with tiles that are of a visible size, and a large enough space so harder levels are possible. The resulting window is 600*480 pixels in size, which I think is a good size as there's still space for other things on the screen if needed (this is intended to be the sort of game you find yourself playing while your homework assignment is open in the background as you 'take a short break'). And 25*20 tiles is perfect; the original Pokémon puzzle used a grid of 13*12 so the number we have allows for some very complex puzzles to be made.
What I need to do now is create the pre-alpha release, a fully functional game demo with the character, blocks and a background in order to work out how to do some of the problematic things like physics and z-ordering; something I'm going to end up putting off for several days. It's not going to be an enjoyable task, but once it's done I can start work on the final game engine which will work with animation, sounds, menus and the like. Then I imagine I'll try bringing it all together with an alpha release that contains all the sprites and things for one level. After that, it'll be a case of designing and making all the art for the 25 levels I plan to put in, and of course setting up the block layout, then putting in all the menus and intermission screens and such. In fact, I may need to create a special class for them actually.
*Leaves to update flowchart*

No comments:

Post a Comment