The Concept -- Background and Overview
Historically, my hobby work has been focused on middleware and libraries. Game code was sort of incidental to the whole thing. I've written two games to date; both of these games were for school projects. They were also extremely small and simple, being more proof of concept than true games. (Although conveniently, both were pretty fun.) Of particular note is that in both of these cases, the game concept was not mine. I made tweaks, and I certainly appreciated the simplicity and cleverness of the concepts -- but I was never the originator or main designer. I mostly just provided advice on what I could and couldn't build technology for. Even at work, I'm just building someone else's game.
I don't like this state of affairs.
I'm an engineer, and I love it. Messing with engines, designing classes and interfaces and subsystems -- all of that is great. But those challenges exist in all of software development, and although they very slightly, they're still there. I got into game development to make games. And it's not that I lost sight of that; I've been painfully aware of it in my productive-yet-not 8 years of working on this stuff. The problem isn't that I don't want to make games. It's that I'm just not good at it. My ideas are typically thinly veiled ripoffs of games I played recently or just really enjoyed. Original ideas were totally lacking. Hell, I don't even have any original twists on existing ideas. I can't make an FPS with a single twist or combination of twists that makes it different from the other games out there. And I refuse to make clones.
On top of all that, i don't have the art skills or resources to build the games I really want to build. So I'm stuck using stock assets pulled off the web, which are painfully generic. I made some attempts to find an artist/designer to help me out, but that was a miserable failure as well. Designers in general tend to have some issues with understanding scope limitations and tech limitations (this is deliberate to some extent), and going to amateur designers made the problem much, much worse. All I got were ludicrously grand ideas that completely missed the point of what I was trying to accomplish.
Imagine my surprise, then, when my mind actually managed to generate an idea that was both original and doable on my own.
Unfortunately, it's a difficult idea to solidify. Extremely difficult. Its existence in my mind is more the evocation of moods and senses than real gameplay. I can tell you how the player is supposed to feel and think while playing. I'm not sure I can tell you just what the hell it is they're supposed to DO while playing. This particular journal entry is more for my sake than yours; I'm hoping that by forcing the concept into the vulgarities of written language, I can transform it from its rather abstract state in my mind to something concrete and implementable.
There's another part to all this. I've been a musician for a long time, and I love composing music. I'm not very good at that part. I've done some work, but I've only ever managed to produce two complete original songs. (Starting to see a trend here...) If you want to listen to them, they're online:
* Battle of the Apocalypse
* Hoarder's Legend
It's been a year two years since I wrote that last one. I have been really interested in doing more work lately, this time with live guitar work. Unfortunately, I've been seriously lacking in ideas, unable to extend any of the small themes I've thought of into anything substantial. That's always been a problem for me; I am not sure what it was that allowed me to build those two tracks. This problem has been reflected even in my guitar work, which is nothing but a pale reflection of popular rock and metal.
Once again, imagine my surprise when, at much the same time, a coherent and original musical vision emerged in my head.
I've been playing a game recently called ">Every Extend Extra Extreme (E4). It's from the same people who did Rez, and shares similar themes. I picked up an idea from this game that I've been somewhat obsessed with lately: procedural, reactive music. Half the idea is quite commonplace; the music reflects what the player is doing, giving them audio cues and setting the mood. The other half is a bit more exotic. The idea is that you don't simply play some kind of level up chime or start a battle theme or something. Instead, the music is dynamically built up to reflect the player's progress. Things start off slow and simple, the game and the music both. A little while later, things are in full swing, reflecting your actual game status.
I'm not building a game like E4 or Rez, but they are without a doubt the genesis of my concept, and I'm taking cues from them in what I'm doing. That core idea of reactive procedural music is key. Not to the gameplay itself, which is totally independent of the music. (The music affects the game in E4. I'm not interested in doing that, because the design and technical challenges involved become somewhat more complex.) The game could trivially be played with the sound muted, and it wouldn't to external appearances be any different. But the music is still critical, because it is the defining quality that sets the feel of the game, and that's where the inspiration from Rez and E4 comes into play. The music isn't part of the game; it's part of the experience.
In my case, I want the music to feed off the game much, much more heavily than in Rez or E4. In those games, the music is essentially just looped trance built on a set of layers which are turned on as the game progresses, and sped up in the case of E4. I don't have a problem with that; it's simple, effective, and catchy. I just don't think that it takes it nearly as far as it could go. So what I'm working on is truly dynamic, reactive music that is built up, taken apart, and put together again differently in seemingly intelligent patterns. I say "seemingly" because the real rules for the construction of the music are going to be quite simple and straightforward. But by assembling simple pre-recorded fragments using a simple set of rules, I'm hoping to see emergent behavior that results in a virtual DJ, like you'd get in a proper club playing house/trance. Note that I'm still using samples -- full blown procedural synthesis is awesome, but it's not the goal here. By being clever about the rules governing the system and the composition of the microtracks that it controls, very simple logic should be able to create very sophisticated results.
So then, there are really two separate but closely related concepts here. One is the game itself; the other is the music. Both deserve their own entries, and I prefer not to mangle them here. Both are, after all, quite nebulous -- I only wrote this entry to give those entries some context. The topic of emergent behavior is key to both visions. You can start to understand the vision set forth for the game by reading about Boids, if you're not already aware of it. Written by Craigs Reynolds in 1986, it's probably the most well known and classic example of emergent behavior in an AI computer system. The game is fundamentally Boids, but taken several steps farther. As for the musical vision, it's all hidden in Hoarder's Legend, although I suspect it won't be clear what that means until I elaborate. That track is the model for the development of the new music. Although the new stuff seeks a much different feel, far more intense and vibrant, the fundamental structure derives from Hoarder's Legend, and it's that structure that allows me to create the music as a complex, sophisticated whole even though it's nothing more than a machine following some simple rules. (Which raises some awkward questions about my abilities as a composer. Oh well.)
So that's a rough overview of how I got to where I am right now, and where it is I'm trying to go. There's still a lot to talk about with both the game and the music, since I haven't really explained either one. I don't know how long this project will take, but I'm planning to rapid prototype as soon as the basic concepts have solidified. I'll probably make that prototype available when it's ready. Not "if" it's ready. I absolutely believe this will work, and I will not give up on this one so easily. It's been a long time since I had a creative project to be excited about.