blog.raydenuni.com

Philosophical Ranting of an Engineer

In my final quarter at Rose, I took a class entitled Game Design & Development. This was a 10 week course where we were taught about a variety of topics about game development. The core of the class was the game that we wrote. My team consisted of five people and we spent six weeks working on our game.

Wombat is a top down 2D shooter, similar to games like Alien Swarm and Smash TV. My team wrote the game from scratch. I was responsible for basic architecture, rendering engine, collision detection, particle effects, and numerous other small features.

Considering the scope of the project, a class project where none of us had any real game development experience, the time, six weeks, and team size, I consider our game to be a smashing success. By the end of the class we had a stable engine, working weapons and magic, an interface with a map editor, a working menu system, and AI. The game is nowhere close to being publishable, nor would it win any awards, but it is an excellent working prototype. Given a couple more months, I think our team could have turned the game into something really fun.

The Good

A lot of things went well with this project. I was really lucky to find some excellent people to work with. Before starting, I only knew one person, Jonathan, but everyone was passionate about the project, willing to work hard, and a lot of fun.

We chose to make the game 2D instead of 3D. As the one who was going to write the rendering engine, I wanted to make it 3D as I had no experience with 2D. My teammates strongly suggested we make it in 2D as none of them had any 3D experience. They convinced me and the development was a lot easier because of this. Writing a full 3D rendering engine by myself in six weeks would not have happened.

Proper work division was something we did really well. Jonathan worked on AI and weapons, Brian worked on magic, Nick worked on interfacing with the third party map editor, Matt worked on the menu and the interface, and you know what I worked on. Because each of us owned a piece of the game, we were really motivated to get our part working so that everyone else could use it. There was little confusion about who was doing what and if something didn’t work right, we knew who to talk to.

We used C# and XNA to write our game. A couple of us had some experience with C# and DirectX, but little XNA experience. Both turned out to be excellent choices however. XNA made rendering easy and allowed us to worry about other more interesting features. Unfortunately we didn’t have the opportunity to run the game on an Xbox 360, but theoretically we could do that with little effort.

Subversion again played a prominent role in development. I can’t understand how people can write software without version control. Official development ended with 191 revisions.

Documentation was required for the class and required in large amounts. Writing a High Concept Document, Game Treatment, and Technical Design Document helped everyone understand what our game was going to be and what was required to make it happen.

The Bad

Art was a major obstacle. All five team members were programmers and none of us were artists although we were all too busy coding the game to make art anyway. I found a friend online to make a player character sprite for us and that turned out great, but the tile set used, weapon sprites, particle effects, and enemy sprites were all taken from other “free” games. Working with an artist from the very beginning would have helped inspire the rest of us and help make our game feel more professional.

Documentation was also a problem. We had no good way of bug-tracking. I have yet to find a decent alternative to Trac. This wasn’t a major problem as our project was not large enough that the number of bugs was unmanageable, but it would have been nice.

The lack of a lead designer made things tricky. This was a class project and no one is getting paid so we have to tailor the project to everyone’s interests. Looking back, this is not the way to design a game. There needs to be one person who has the final say in how design goes to ensure continuity. Everyone’s input is useful, but not everyone gets to be the designer. This wasn’t a huge problem with our game and we didn’t reach a point of fine-tuning game play or balancing, but it could have.

Conclusion

I really, really enjoyed working on this project. All the elements came together to make this a fun experience: interesting technology, a project I can be passionate about and excellent teammates. At this point, I would have to say this has been my favorite project I have worked on. Without my four other teammates progress will be slow and in the fall I’ll be working on new game projects so I don’t see myself working on it any more.

Sorry, comments are closed for this article.