Creating games from start to finish

Tuesday, January 22, 2008

The Basic Idea



Now that I've decided to make a game I have two main goals moving forward. First off, I want to flesh out the design for my game idea. And secondly I want to experiment with some small samples to get a feel for my tools before I jump into programming my main game. This posting is going to be from the first category, where I start the process of fleshing out my main game idea.


Guiding Principals


Before even considering what game I want to do I wanted to lay out some design goals for my game. These principals are guided by such things as the name of my site (cutelittlegames), the amount of time I'm willing to spend on these projects, current trends in freeware games, my available tools and the type of games that I like. In just half an hour of thought I came up with the basic principals seen below.



  • Genre: FPS, RPG, Wargame, Shooter and Platformer are all out when considering what game to make. The first reason for excluding several of these genres, FPS and RPG in particular, is resources. I've not the time to create the amount of 3D graphics (FPS), content (RPG) or game logic (Wargame) needed to really do a game justice for several of these genres. The second reason for exclusion, one that applies to all of these categories, is competition. I'm not out to sell a game here, but if I want my game to get noticed I'm going to have to avoid categories already populated with quality indie games. Sure I could make a platformer, but would anyone want to play it as opposed to Cave Story (below) or N?


  • Graphics: While 2D gaming is alive and well in the indie community (see above) I want to give 3D a try for my first game idea. Part of this motivation is that I've always found 3D modeling to be interesting, even given my relative dearth of artistic talent. Also, it seems that OSS has finally gotten a 3D modeler, Blender, to the point where it can compete with commercial products like Maya or 3D Studio Max. The downside of 3D graphics is some of the complications that they will introduce to a linear algebra n00b like myself (collision detection, complex camera transforms). To mitigate this issue I've tried to pick a design that shouldn't require quite as much 3D knowledge as your average 3D game and you can see this reflected in several of the design goals below.


  • Levels: Since I'm learning 3D modeling at the same time as game programming I need to cut down on the amount of artwork that I need to create as much as possible. This means that I've got to keep my levels as simple as possible and as few as possible. Again this rules out many of the more complex genres and moves me more in the direction of puzzle or strategy games.


  • Tone: A common theme from many indie games is a light-hearted tone of play. While there are notable exceptions (mostly in the adventure and RPG categories) indie games tend to fall into what would be called the "quirky" category. For examples check out games like Castle Crashers (below) and Wik and the Fable of Souls. I believe that this is in a large part due to mature and serious tones lending themselves more to graphically intense games. By virtue of limited time, resources and download size indie games go for graphics that are more artistically inspired but technologically limited and the tone is altered to match. I'm going to go along with this principal and keep the tone of my game light-hearted and avoid long or serious exposition.



  • Multiplayer: While I know that multiplayer adds in a slew of programming issues I'm going to try to include both local (in the first pass) and online (in later versions) multiplayer in my game. My first reason for doing so is that games that create strong community just about always have strong multiplayer components. Think Halo or Worlds of Warcraft for big name games or Gunbound for indie projects. Secondly, I think that my game design choices will create a game that scales well for online multiplayer. I'm not going to design a game that requires lighting fast response like Halo or Virtual Figher 5 Online or that needs to support massive numbers of concurrent players like an MMORPG. And finally, coding for multiplayer means that I might not need much in the way of opponent AI, which is great considering that I'm already biting off enough new programming tropes without tackling AI as well.
Conclusion

By creating the above points I've started to flesh out the basic idea for how I want my final game to look. My game is going to be a 3D puzzle, virtual board game or simple strategy game with a light-hearted tone. Also, it needs to have a relatively limited number of levels and art assets and the multiplayer should be two player versus mode only. With this basic design I can dig back into all the game ideas that I've ever had (and any game player worth his or her salt should had plenty of these) and start to flesh out more details about the actual game, which I'll be doing in a later blog post.

Saturday, January 19, 2008

The Motivation

Like many brave geeks before me, I want to create computer games. There is a whole generation of programmers like me who cut their teeth on creating XMS boot disks so that they could get X-Wing to run on their home PCs, or who ran over to a friend’s house with an IP address written down on a sticky note to get DOOM up and running over the modem. Games are in our DNA and (contrary to what many pre-videogame agers seem to think should happen) for many of us this love doesn’t die out was we get older. In addition, the creative impulse seems to run pretty strongly in gamers, it seems that a higher percent of video game players want to actually create games, in contrast to the number of movie fans who actually want to create their own movies.

But aside from a brief summer camp at Digipen as a High School student (in which I let all the actually talented coders on my team do all the work) I’ve never actually done any game programming. I’ve always considered the barriers to entry for the C++ / DirectX world to be a little too high for me to take on for just a hobby. But now that technologies like Flash and XNA have arrived it seems like a great time to jump in and try to actually hash out some cute little games.

As the name implies I’m looking to create bite-sized games that don’t require massive time investments and that I can finish to completion. That last part is important to me as I know that many hobbyist programmers peter out after they choose to tackle too advanced a project. I want even my early “hello world” project to be fully “games” as opposed to just tech demos. And I want to plan out one main project and not move on until I’ve completed it to my satisfaction.
With that said my next posting will be starting the basic design of my first cute little game.