The Micro Machines project is an attempt to recreate the water level from Micro machines with a few tweaks within a time limit of 2 weeks. The goal of making this game was to dissect and recreate a similar game and try to apply the techniques learned so far when applicable.
For this project I wanted to try something new and different, instead of making a preset world I wanted to make a level creator. I created a grid where the player could drag preset tiles onto to lay down the track. The tiles are grid like constructed, once the track is designed I use the technique of tile mapping to create a world grid and construct the level. For example a blue tile will be water while a green tile will become bubbles or a bomb, I also included each tile with an in and out indication, these are used for way pointing the AI. One track could be saved at the time, you didn’t have to recreate the track each time you wanted to play the game.
The bubbles in the original game where meant to push the player back onto the track, however during development it was much more fun to have them bounce all over the place that I choose to go for that and have static bubbles as outline for the track keeping the player inside.
The bombs where a criteria for the little tweak by hitting one it would provide an impulse, depending on the ships position it they could either be a speed bonus or an obstacle.
Because the entire game is with spherical objects I used a 2D distance check for collision. Because checking each bubble for collision will become costly I make use of a quad tree data structure to store my bubbles.
The game can be player with up to 4 players, AI or human. Human players have the freedom of choosing their own control scheme so the game can be played on one keyboard.
With the waypoints in the level I create a track for the AI to follow, but rather going from A to B, I draw a line between A and B and project onto that line from the AI, knowing I am still going the right way. This added more dynamic in its behavior.
In the end I placed to little waypoints making the AI getting stuck in corners.
- I had to create my own sprite rotation logic to make the ships turn.
- I also integrated SDL_Mixer to be able to play some background music.