Writing a game the hard way – from scratch using C – Part 1

Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this first episode I figure out what kind of game to make, look at some shareware games of the past and get a basic game engine working, using nothing but C code – no external game engines or modern development tools.

I’m using my Agon Light proto game library which is available over on my Github repo. If you want to follow along, grab a copy!

The kind of game I want to make is similar to the games I used to play on my ZX Spectrum or Atari ST. A kind of game known as “shareware”. This was a way of releasing software back before it was easy to upload files to the Internet. A person releasing a piece of software as shareware would usually create a demo version. In this demo version would be a request to buy the full version of the game by mailing money to the developer, in exchange for receiving a copy of the full piece of software.

Some developers made this work very well and allowed them to create games that otherwise wouldn’t have been possible with a big commercial distributor. It also gave games a certain style as they weren’t restricted by having to be “marketable” to the mainstream game playing public.

Having played a few of the shareware games I remember from the past, I have come up with the following game design ideas. I want my game to

  • Be an arena shooter
  • Have multiple types of enemies that behave differently
  • Include some sort of problem solving to the gameplay
  • Maybe the player does something to open the exit of the level
  • This might involve manipulating the game world in some way

I don’t yet have much clue what the game will look like, or what the theme or story behind it will be. I’m open to suggestions though!

The next part that I need to do is get collision detection working. So far I have a very rudimentary “moving rectangles” prototype where I can play around with getting satisfying controls and game mechanics working.

Leave a Reply

Your email address will not be published. Required fields are marked *