Starting Off Big

The Dream

Ever since I was introduced to the real time strategy (RTS) genre of games I wanted to create my own.

That’s the type of person I am, always wanting to build and create.

If you think about it an RTS is probably one of the most complicated games you can develop. Each RTS is jam packed with components from across the spectrum of computer science courses you can take. Ranging from simple data-structures, to parallel computing, to memory management, and even to search and reasoning AI algorithms. This isn’t the whole list either, it gets bigger and bigger as the game gets more sophisticated. So you can see how this would make creating an RTS an almost impossible task for someone who has never studied these topics, let alone has never even coded their own “Hello World” program.

Well I didn’t let that stop me.

I rummaged through the Internet looking for tools that would allow me to create the things that I wanted. Eventually I came across a user friendly tool called Game Maker.

Game Maker was a simple to learn tool as it provided a drag and drop feature for new coders. However, it was a tough tool to master. When I started to use Game Maker, I didn’t immediately begin working on the RTS but I did have the idea in the back of my mind. I first began with a simple game to learn the fundamentals of the software, that game turned out to be Gloops. Over time as I became more comfortable with the software, I stepped it up a notch, no, in fact I jumped in head first into the RTS.

In order to create the RTS or a game that represented any form of an RTS I had to teach myself the programming language that was built into the IDE. I was still using the drag and drop feature of the IDE at the time. After a few weeks of reading tutorials and forms, I started to understand the syntax of the language, however I was far from knowing what was needed to make an RTS. Having a good grasp of the Game Maker language (GML), I began to read up on RTS concepts like unit movement, unit selection, and resource gathering.

After a countless number of hours learning a debugging, I had a very crude alpha version of the game. The unit movement was not based on a search algorithm but used simple collision detection to determine where to move the units. The selection of units was a crude variable check instead of using a list to store which unit was selected. The resource gathering had race conditions that were not evident to me at the time. Basically, the whole game was made by someone who just a month or two ago had no idea what programming even meant. The game wasn’t perfect, nor was it complete, but I did learn so much from it. The countless hours spent on debugging helped tremendously when it came to debugging code later in college.

After a couple years of college in the summer, right before I transfered to UCSD, I worked on the RTS for a bit just to see how far I have gone. I think I spent about a week working on it before I moved away and you can see the difference in the changes. You can read more about this project here

Updated: