Wednesday 11 March 2009

Alternative game concept

Current game concept
Toggle, the game I have been developing, is a 2D puzzle game where the player controls a ball which is moving at a constant but bounces off solid objects such as walls and closed gates. The player must use 'toggles', which are embedded in the floor and toggle their own coloured gates' states. A gate can be either open or closed and there are 3 different colours, yet combinations of those colours for the gates which are affected by more than one coloured toggle.

The objective of the game is to reach the black hole which the ball falls through to the next level. This is achieved by toggling the gates in the right combination and navigating the ball through the level. The challenge in the game is two-fold: both controlling the ball and solving the puzzle whilst under the pressure of controlling the ball.

Challenges
A lot of the challenge in the implementation of the game has been about achieving the ball movement. The game simply stores the angle of velocity, which the player can affect with the left and right arrow keys. From this, it calculates where the ball should move to next using trigonometry.

Another big challenge in the game was that originally, because of inherent restrictions in the game engine, the ball movement was unmanageably jerky. The games engine, MegaZeux, uses a limited character set, where each character, or tile, is 8x14 pixels in size. Game objects are limited by the game engine to move one character at a time, so moving one pixel at a time proved a great challenge for implementation. This was achieved by storing pixel coordinates of the ball rather than board coordinates and then the ball was blitted to the character set each time it was moved.

For level design, I have coded the game objects to be as easy to interact with as possible. For example, if you would like to place a gate on the level, a 'gate' object has to be selected and then the colour can be selected from a palette. The game will automatically place a gate at the relevant place during the gameplay.

Alternate game concept
The player must control a ball around using only the mouse to tilt the three-dimensional maze. The ball will be affected by gravity, but the direction of gravity will change when certain pads are hit by the ball. The game would test the player skill of control over the ball and several puzzles where pads would need to be hit in a certain order. Hitting an erroneous pad could have disastrous consequences and send the player far back in the level.

This would again test my math skills -- trigonometry would play a big part of calculating how the ball would move -- along with more general problem solving skills which are inherent in any coding.