I have always found it easiest to learn new languages by looking
at real working code. I've learnt a great deal from studying
Ira Rainey's code, for example. However, what is sometimes difficult
is to break down really big programs to learn from them without
spending an awful lot of effort.
I hope to provide a greater insight into my program
by showing it grow as different functionality is added. It also gives me the
opportunity to discuss the problems encountered along the way and suggest solutions
where appropriate.
This method of progressing with my game is not entirely altruistic. Each time that
I'm happy with my code I've saved it and moved
on with the next version. So, when things go
disasterously wrong, I can go back to the last stage
and start again. I've also tried to ensure that the code
is easy to read and that I've stuck to standards that allow
me to expand this easily. My boss would be proud of me.
My game started off by using what I needed from the "bouncing
ball" demo code and has gone on from there. I've chosen a 2D game because
I thought it would be easier. In my defense,
the C language is new to me so I've been struggling.

I think that there is one area of the standard gaming genres
which now lies untapped: Multi-player games.
A game can be as simple as providing an arena and
a set of battle rules for players to pit themselves against each other. I'm
fond of the idea that when these rules are correct then the game becomes something much
more; the game inherits the qualities of the players themselves.
I would suggest that the simpler and more natural that the rules are
then the better the game. Good games of this genre do not have a finite lifespan.
My friends still play SuperBomberman when there's a 64, PSX and PC sitting there.

This is a two player game. The arena is an overhead view
of a house as you would see it on
an architect's plans. There are two separate stages to the game.
The first stage is where player one selects in turn
a variety of traps to place around the house. It is
announced that player two must look away or leave the room
while this is done. In the second stage, player two must break in to the house, find the safe and get out with the
jewels. While he is doing this player one is setting off traps left, right and center attempting to stop player one.
Each successfully deployed trap injures player two. Either player two gets out with the jewels or he gets killed.

I have included all the source code here for each stage. Each one builds on the last stage, so if the intermediate
stages are not of interest to you then it's best to just look at the last one. Also, at each stage I've included notes on what
I've done and the problems I have encountered.

Getting something on the screen (30.1.1998)

Moving it around (16.2.1998)

Displaying the house and stopping when you hit a wall (3.3.1998)

A bigger house and a scrolling mechanism... in progress