Game Development Community

dev|Pro Game Development Curriculum

Plan for Gary Preston

by Gary Preston · 05/09/2005 (3:26 pm) · 3 comments

Saturday 7th May marked the start of GID#12 which I've been looking forward to all week. Unfortunately I was out all saturday night and by the time I crawled out of bed sunday, it was already around 12pm. Since hearing about GID I've managed to miss every event and was determined not to miss this one, even if I only had 12 hours of sunday left to GID in.

The theme was augmentation, although after about 5 minutes thought I decided I didn't have time to think of a game that would fit the theme. I've wanted to create a turn based strategy game for some time, so I decided to prototype a greatly simplified version. If any of you have every played Konquest that ships with KDE, you'll have a good idea of what my aim was :) At a pinch you could say that your augmenting the neutral planets with your fleets :P

Originally I was hoping to have AI in the game, or networked multiplayer but due to time constraints I ditched those ideas and instead planned on a 2 player (via same computer) only game. The rest of this plan covers the development of my first GID, which even though I did it solo, I have to say I had a lot of fun :)

Linux and windows downloads can be found at the bottom of this plan. Just wanted to add a quick thanks to everyone in the gid irc channel for an entertaining weekend.

1pm - Sunday

Having decided on creating a T2D version of Konquest, I set about creating the main game area. First stop, a quick background created with "The Gimp" (and when I say quick I mean it :P). Amazed by my work of art, I took a well deserved break and had sunday dinner. (Apologies to any artists out there who take offense to me calling my images "art" :P)

www.figmentgames.com/downloads/gid12/images/day1/13-00.png
14.30 - Sunday

Having spent all of 5 minutes working on Conquest-T2D so far, it was time to get back to work, right after a quick cup of coffee (this happened a lot). I spent a little time adding some neat planets that bear a striking resemblance to an asteroid. I also added a dynamic tile map and populated it with a planet(asteroid) for each player and 5-10 random neutral planets along with a GUI to provide info about the planets.

The planets are all stored as a simset within a galaxy script class. Whilst doing this, I realised I didn't know torque script quite as well as I thought and ended up spending some time reading through the various script resources.

17:45 - Sunday
With the galaxy/planet datastructure complete, planets now had randomly generated production, name, position and fleetsize stats. Two planets were randomly selected to be the players home planets and their starting stats matched. I spent a while making sure the code supported as many players as you want by simply changing a single $Game::MaxPlayers variable, however I never managed to find time to make a gui for selecting the number of players and entering names/player colours, so its stuck with 2, even though the support is there for loads more.

The next screenshot shows the state of play at around 8pm. By which time I'd added mouse selection of planets and display of planet information in the info gui on the right hand side of the screen. I had planned on making a random name generator for the planets, but time got the better of me, so planets ended up been called "AAA1", "AAA2" etc

www.figmentgames.com/downloads/gid12/images/day1/20-54.png

21:00 - Sunday

Most of the work for the next few hours was spent adding the background game logic. It was around this time I realised the game needed to support multiple orders from the same player in the same turn and ended up going off on a tangent creating an orders list class for each player as well as a order class. Players could now issue as many orders as they wanted, sending their fleets off to colonise or attack any planet on the map.

www.figmentgames.com/downloads/gid12/images/day1/00-03-mon.pngwww.figmentgames.com/downloads/gid12/images/day1/00-03-mon-2.png

2am - Monday

I'd spent the past two hours working on the game logic for combat. This was much simpler than I'd expected, mainly due to the way the planets were organised in the galaxy datastructure. The final version of the turn end order processing isn't really fair, since player 1 always has his orders processed before player 2, but it will do.

The final game play element needed before I headed off to bed was the victory condition check. If any player has 0 planets left at the end of a turn, they may have lost. However, an additional test was needed to check whether the player had any ships en-route to another planet, since those ships could feasibly result in the player having a planet again next turn.

12:00pm - Monday

With the game now playable, all that was really left to implement was delayed fleet movements, so that ships take a number of turns to reach a destination planet, depending on the distance from their origin. Most of the day however was spent tidying up the look of the game. I added a few programmer art planets, as well as blended a square of the players colour around player owned planets and a grey square around neutral planets. I also spent a bit of time reading up on the GUI in Torque, which up to now I've pretty much avoided using. The game looked a whole lot better with coloured player names and a splash screen/main menu.

All in all the game took around 16-18 hours over sunday/monday, probably less considering the number of breaks I took. Lesson for future GID'ers, GID + TV = BAD!!! :) Overall I'm pretty happy with final game, it's playable even though it's far from finished. Its missing computer controlled players, networking support, decent graphics/gui and better game play rules. Another few minute work and I could have modified the end turn button to make it fit in more, but there are lots little changes that could be done. Perhaps in the future I'll revisit this and add in network support along with a gui to select number of players :)

The only dissapointment was that I didn't have time to create a better combat system, instead I ended up making combat boil down to the player with the most ships at the planet wins that fight. However finishing a GID is a great feeling :) So all in all, I'm a happy programmer and can live with the games shortcomings :)

Anyhow, heres a few final screenshots.

www.figmentgames.com/downloads/gid12/images/day2/finished1.png
www.figmentgames.com/downloads/gid12/images/day2/finished2.png
Game Download
www.figmentgames.com/downloads/gid12/linux-conquest.tgz Linux Conquest - 1.6Meg (tgz)
www.figmentgames.com/downloads/gid12/windows-conquest.rarWindow Conquest - 1.3Meg (rar)

#1
05/09/2005 (5:47 pm)
Nice job! I'd be interested to see this developed further.
#2
05/10/2005 (3:37 pm)
I've fixed the link to the windows download, the file had the wrong extension.
#3
02/06/2007 (12:56 am)
My first idea was to develop konquest for windows by myself becouse I like it very much.

But I found it here. Unfortunatly I cant execute it on my machine.
I havn't got any idea why its closing without any information...
When I choose debug it with VS2005 it say:

Unhandled exception at 0x00000000 in t2d.exe: 0xC0000005:
Access violation reading location 0x00000000.

Need I any cpeshial skills to execute it?

Sorry for my engish...