|
|
Application Development for Windows |
Programming in DirectX |
Life, Chaos & Virtual Worlds |
|
|
My documention for SplatMaze is quite lengthy, so I've put it all on its own seperate page here. You'll find notes on installation, playing, and known bugs. There's also a bonus download in the form of a custom level pack, and instructions on how to customise the game with your own levels, animated sprites and other graphics!
Download the zip file, and unzip the contents to the directory of your choice - it doesn't matter where, so long as the executable and it's four companion bitmap files are all in the same place. Double-click SplatMaze.exe to run. You will be presented with a dialogue box that allows you to specify the resolution and colour depth the game will run under, determined by the program from the capabilities of your hardware (the game looks best at a resolution of 1024x768 with 16-bit colour or higher). When you're ready, click the Play button to begin!
In the maze, you will encounter large Boulders (which block your progress and form impenetrable walls), Holes (which will kill you instantly if you fall down one), Long Grass (which slow you down while you are walking across it, but otherwise has no other ill effects), Meat Pies (which increase your health and give you points), Steel Traps (which decrease your health), and Opals (blue stones which give you a heap of points). The challenge is to navigate the maze, collecting the food and opals, without dying (from getting squashed between a wall and the outside border of the screen, falling down the holes, or running out of health), and eventually reach the Exit to the maze.

In the upper left corner of the screen you will see your current Health readout as a coloured bar. You begin each level with 100% Health. If you walk into a Trap, you lose a little bit of Health, and if you are reduced to 0% Health, you will die. Collecting the Meat Pies will increase your Health up to a maximum of 200%. The higher your Health, the faster you can move, so it is well worth collecting all the pies you can find!
In the top right of the screen is a readout of your current score. You begin each level with a score of 0. You are rewarded 1 point for every second you are still alive, and 10 points for every pie you collect. Opals are very valuable - each one you collect will give you 100 points! At the beginning of each level, you will see a message that gives you the target score required to beat that level. If you can survive long enough to attain that score, you will open the exits, which will allow you to leave that level and continue to the next (which has a higher target score).
You will die if you get caught between a wall and the outside edge of the screen. Try to keep away from the edges unless you're confident you can get out of the way if the maze suddenly changes direction.
More health = more speed. The best tactic is to begin by ignoring the opals and concentrate on getting your health up to it's maximum level by collecting the food items. A faster move rate makes it easier to extricate yourself from any tight spots you might get into while trying to retrieve opals.
Always have an escape plan. You don't know which direction the maze will move in next, so it pays to keep an eye on any potential routes you may need to take in order to avoid becoming pinned in.
The set of bitmaps used for the game's graphics are not sympathetic to the 256-colour palette used by DirectX. In plain english: the game looks crap in 256-colour mode. You should play in at least 16-bit colour mode.
On fast computers, if the game is played at a resolution of 640x480 the maze may not scroll correctly, but instead stay in the same place or else move extremely slowly. This is due to the timing mechanism used by the game to determine how far to move the maze when it draws each frame - if the framerate is too fast, the distance to move the maze will become too small and the game essentially stops working. To remedy, play the game at a higher resolution and/or bit depth. This problem will not occur if the computer it is being played on is not fast enough to max the framerate in 640x480 mode.
It is not recommended that you Alt-Tab out while the program is running, and then try to resume it later. I had been working on fixing this, but the game also picked up a tendency to crash suddenly and unexpectedly, so that will not be implemented unless I can figure out what's causing the random crashing.
I said earlier that the game was completely "skinnable". This is the advantage of having the bitmaps as seperate files instead of bound into the program itself: to change the way the game appears, you just have to repaint the bitmaps.
Theoretically, you should be able to change the size of the bitmaps and the game will still function, however it is strongly recommended that you keep the same dimensions and aspect ratio of the individual bitmaps. The bitmaps use a standard size of 64x64 for each tile/element/item, so for example, each tile of the maze is a 64x64 square, each frame of animation of the lizard is 64x64, and so on.
The game has four bitmaps:
playermove.bmp has the animations for the lizard walking in all four directions;
playersplat.bmp has the animations for when the lizard dies (explodes!), again for facing in all four directions;
hud.bmp holds the graphics for the "heads-up display" - that's the healthbar and score readouts, and any other text messages that are printed onto the screen; and
mazetiles.bmp contains the graphics used for the tiles of the maze - the food, walls, holes etc.
To change the way the game appears, all you need to do is change the bitmaps. So if, for example, you wanted to steer a chicken in the game instead of a lizard, all you need to do is change the player bitmaps to look like a chicken. If you want a different font for on-screen messages, you'll want to edit hud.bmp. It's all up to your artistic skills.
mazetiles.bmp is a special case. Rather than painting over the existing tileset, you can actually enlarge it to include more tilesets than just the one included with the game. The tiles used for the maze are stored as one tall column, but you can add extra columns to make new levels. This is probably best illustrated with an example:
|
Download: mazetiles.zip (42.2 KB) Adds two new tilesets to the game - a road-themed one and a cyberspace theme. |
The above download adds two new tilesets - a highway-theme and a cyberspace theme - to the existing outback theme. I created these tilesets, but decided not to include them with the actual game because I was worried that it would confuse the player. However, they look really good (especially at high res), and add some extra variety to the game, so I've included them here as a downloadable add-on.
![]() One day the whole world will be concrete. |
![]() Looks like my disk needs defragging again. |
The process for adding a new tileset is really quite simple. Each tileset is a column made up of 8 tiles (one for each item in the maze - walls, food etc), and each tile is 64x64 pixels in size. So each column is 512 pixels deep and 64 pixels wide. To add a new tileset, you just add another 64-pixel-wide column to the bitmap. The mazetiles.bmp file that comes with the game has only one tileset (one 64-pixel-wide column), while the add-on provided above has three tilesets (three 64-pixel-wide columns, or a total width of 192 pixels).
First, open the mazetiles.bmp file in your favourite paint program. Enlarge the bitmap to include an extra 64-pixel-wide column (it HAS to be 64 pixels, or else it may not work properly). Now you only need to paint the corresponding tiles to make your new set - you'll need something for open ground, walls, food, etc.
For example, to make my road-themed tileset, I opened the existing mazetiles.bmp, which at that stage included only the outback tileset - ie only one column 64 pixels wide. I enlarged it by an extra 64 pixels - 128 pixels in total - to make two columns, each 64 pixels wide, one of which contained the existing outback tileset, and the other which was blank. I then painted a new tile for each corresponding item of the existing tileset - so I made a road surface to correspond with the dirt ground, oil slicks to replace the long grass, mag wheels to replace the opals, etc. I'll leave you to figure out the rest.
The game will loop through the tilesets sequentially - so for the first level it uses the first column, for the second level it uses the second column (if one exists), for the third level it uses the third column (if it exists), and so on. When it runs out it loops back to the first column. So for my custom three-in-one mazetiles.bmp, for the first level it will use the original "outback" tiles, for the second level it will use the "road", and for the third it will use the "cyberspace" tiles. Then for the fourth level, it goes back to the first set of tiles - the "outback" set - and so on.
One thing that I'd really like to see is people making some of their own tilesets and sending them to me. I already have an Australian outback-themed tileset (complete with meat pies), so it would be really groovy to put together a collection of tilesets made by people from all over the world!
Finally, I'd like to give a quick mention to my intercontinental friends on the 'net at the MTMG, Phineus and Fila, for their help and feedback while I was developing this game. You legends!