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.
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.