Tower Defence - The Plan

Basic development plan for my Tower Defence game. Part of an assignment in 2D game creation.

Written the by Thomas Cairns.

Introduction

Currently I'm attending the course Game Programming 1: Computer Games in 2D at Uppsala University with Jerry Jonsson as the course director. As part of the course, I will be creating a game during the coming six weeks. I think the description of the assignment sums up the task quite nicely.

This first part is an individual assignment to create a game using C/C++ and Simple DirectMedia Library (SDL). The game should be a clone of a classic arcade game selected from the list of choices.

Source: Jerry Jonsson, 5SD804 - Assignment One - Project.pdf

Alongside the project I will be documenting things that I learn during the development, and the progress of the project.

Assignment

The arcade games we where provided to select from are the following, Frogger, Space Invaders, Tetris, Pacman, Galaga, Digger, Zelda I, Duckhunt, Super Mario Bros, Bomberman, Nethack, Scorched Earth or own suggestion. I decided to go with the last option and ask if I could do a Tower Defence game. The reason to go with another games then provided is that I haven't played the classics all that much and I don't want to spend half the project learning how the game I'm creating should work.

As a base for the project we are creating the core of the game together with our course director who will be coding the solution live during our lectures. However some minor implementations have to be done by ourself, and of course we have to implement what is unique to the game we chosen.

To expand upon the assignment we can also implement some of the features listed below. Each feature gives a certain amount of point, the points will be combined and counted towards a grade that is above pass if properly the feature was properly implemented. The options suffixed with an asterisk are the features that I want to implement within the game.

Vision

There are a whole bunch of different tower defence games and even games that are based on the same concept have varying implementations. The direction I want to go is to based the game on a sub-type called Element Tower Defence. Ironically in my planning I'm not including much of the elemental system, the reason is simply based on the time restriction. The elements would require another resource system, a tower combination and relation system, and a specific mob type. However the rest of the game is solid and I want to keep that.

Image of the standard terrain in a Element Tower Defense map

Image of the standard terrain in a Element Tower Defence map.
Credit: eletd.com

Plan

The engine that we are creating together is not yet complete but with only six weeks to go I want to get started. During the weekend I began planning what kind of structure I want my code to have. The structure is largely based on the basic engine that is provided by the course with minor additions of objects that I know will exist. In the future I will most likely make some larger modifications to match my own preferred flow, but for now it will give something to work with.

Code structure in UML format

For the project I have also decided to work around the method of dividing work into tasks. The task structure is based on agile working methods, for example Kanban or Scrum. There are a few reasons for me to take this route:

Tasks grouped into week based columns

The division and naming of the task are suited to be reminders for me, and it was not created with other readers in mind so it will most likely only give you a basic overview.