One of those side projects is my documentation of all the game ideas I've had that I think are feasible, and I'm somewhat glad I've been doing that as it's a big help in charting out the direction I should take, both for my present project and for the next. While there are still some questions up in the air (such as "Do I want to ever go professional and sell games? If so, when?"), there are some basic themes I've spotted in my ideas that I now think I should follow.
Forgive me if I spend the rest of this journal entry thinking aloud (or at least in text!), but maybe this would be interesting: it's got some of my philosophy of what games should be buried in the rambling.
As I look through all these projects, there's a definite trend towards a common set of game elements. The most common by far is procedural generation. I've always admired those games that have included any form of this; from the map building in Civlization to the random dungeons in rogue-likes. And for years - even before I'd seen most of these games - I've been dreaming of games that incorporate on-the-fly content at a much deeper level. Generated maps are one thing, but generated missions would be better. Especially if they logically flowed on from each other or made sense based on the current state of the game world. Then add some generated characters with generated motivations based on a generated theme and you've got a generated story. Note that I don't think this should be limited to the standard RPG rogue-like fare; I think nearly every genre out there could benefit from more procedural generation.
So what are the benefits of procedural generation? The obvious reason I see most often is replayability: that's useful, but I think are more powerful reasons; really good linear non-random games are replayable too. It's the potential for customising the game that draws me to generation. Done the right way a player can tweak the parameters of the game to get the experience they want. Changes of difficulty, emphasising one gameplay dynamic over another (for example: stealth over action), incorporating a player designed avatar deeper into the game world, there's lots of potential there. Plus with generative elements incorporated throughout the game rather than just at world creation, you can get the game to adapt to player choices. Interactive storytelling could be richer. Or the relative success of a player in a battle in a flight simulator can spill over to the overall success of the army in the war.
I'm probably going on a bit too long about this particular element, but looking through my game designs it's clear that's something I want to work on. Designing generation algorithms looks like a whole heck of fun. Admittedly I still need to keep working on the basics; it would help if there's a solid game to use the generation after all, but I'm starting to think it might be a good idea to try and steer toward greater emphasis on this feature. To start with, I'll put a level generator into my present puzzle game. Then after that's finished, I might spend some time working on a couple of tech demos to see what I can do.
One thing I'm very weak on is tool development, mostly through my lack of knowledge of GUI programming. It's pretty clear from the larger projects in these journals that a lot of their success stems from their good use of in-house tools, and for any of my more complex ideas tool dev is a total no-brainer option; just gotta have tools. So I'd better work on this ASAP. I've got a book on wxWidgets on my bookshelf that I've only skimmed over, so I really should start off with some simple exercises once Project Penguin is done.
Another thing I think would be a big help is the use of a good scripting language. I'm slowly coming to the opinion that it's far better only have the low-level stuff done in a language like C++, with everything else done in a higher language that doesn't have to deal with all the hackery of low-level work. Although I'm uncertain as to what the best first scripting language is to learn I'll probably go with Lua because once again I already have the book (this time I have gone through some examples, but it was quite a while ago and I've forgotten everything). Maybe I can tie this into tools.
General Tech Development
The final thing I'd like to work on is a little hard to explain, because it's really a little bit of everything. With most of my game ideas I've found it really hard to write down exactly why I think they're good. For a lot of them it's not so much the raw gameplay dynamics, it's something a bit more raw and emotional then that. My gut feeling is a lot of the appeal of game comes from the polish rather than the mechanics of a game. It's the way the gameplay and the graphics and the music all roll together to form a cohesive unit. I think this is one area of game appeal that indies have a huge advantage in, as it's much easier to express a cohesive vision in a small development team than with a large one.
With my games, I've got a fairly clear idea exactly what I'd like them to feel like. The challenge is how to express that in terms of code and art. I've been meaning to slowly incorporate some of these tech ideas in my games, but maybe I should think about developing the tech first and them seeing which games would work with it.
So what does all this mean in terms of what I should do?
Does this mean I should be changing the present direction of my game development? No, not really. In fact I've been more or less trying to do all this over the last year. The problem I think I've had is that with so many elements to deal with I've ended up trying to do too much at once, ending up falling in a heap. Now I think part of the problem is that I've been expecting to implement some of these feature in an actual game, whereas for the more experimental stuff it would be far better to do a general tech demo, figure out what works well and what doesn't, and then move on from there.
So my present plan is to put more emphasis on finishing my present project: Project Penguin. I really like this idea because in essence it is very simple but has all the elements of being a nice little game. However, I should probably focus more on actually finishing the game than getting every little thing perfect and incorporating all these high concept ideas. The point (as I keep trying to remind myself!) is that by building a reasonably solid little game I can better figure out what I need to improve on for my next project.
However, after Project Penguin I think it would be best to spend some time working on the elements to improve my games rather than focus on a large game design. I'd like to make some proper tools, integrate that with an engine, and learn some scripting. I'd also like to work on a bunch of little features that I think would really help with making a game shine, such playing around some more with SVG, music and work on my animation skills. Finally, I'd like to work on a tech demo or two that plays around with procedural generation in some way; maybe a general purpose map builder would be a good place to start? It doesn't have to be tied with a game in particular.
Then once I've got some of these features done, I can go back to my list of game designs and see which work best.
Now I've got all that sorted out, I can focus more on the task at hand: making that game! I'll also have to remember to come back and re-read all this once that game is finished [smile].