Choosing the Technology

Posted November 1, 2009

This would be a pretty lame blog about game audio and game design if I never actually made any games. So today, I decided to start sketching out the structure of a game I’d like to create as a portfolio piece. Before I did anything else I thought, “What do I want to get out of making this game?”. Since I’m not designing to make money, I figured I might as well set some technical and creative goals and analyze the tools available to me for making this game.

I’m studying music composition and sound design, so I began with a list of requirements with respect to those aspects, then included some broad goals for gameplay :

  • Sound
    • Implementation with pitch shift variation
    • Positioning (2d or 3d), distance rolloff, environmental reverb
    • Possible inclusion of doppler and other advanced effects would be nice
    • Recorded dialogue
  • Music
    • Cohesive, but varied style
    • Evoke multiple, complicated emotions
    • Multiple levels of intensity for each emotion
    • Implement with stems, branching, and combinations of both
  • Game Design
    • Must be fun and mechanically engaging (I do actually want people to play this)
    • Must be dramatically engaging, would be nice to make the narrative partially interactive
    • Mechanics must not be too complex, will likely follow a traditional gameplay and input model
    • Short duration of play, with some replay value

Having established some technical requirements, I began looking at possible tools for development. The driving force behind my decision was audio requirements, so I began with a list of engines I had heard of and narrowed it down from there.

Unity

  • The developers of Unity recently dropped their Indie license cost to $Free. I’ve heard that Unity is a lot of fun to work with, and can be easily deployed as a standalone application over the web, or even on Wii and iPhone. Xbox 360 support is apparently on the way as well. Right now I’ve got a little arcadey military action game  that I can run from the Dashboard in OS X. However, I asked around, looked at the developer’s site and it seems that Unity’s audio implementation is a little limited in what you can accomplish in comparison to the nice fancy tools I’ve become used to playing with like FMOD and Wwise. It has positioning with rolloff and pitch shift of course, but I’m not certain if the pitch shift is a static value or if it can be altered in realtime. I also did not find anything about defining different reverbs for different environments. My download is almost complete, so soon I’ll be able to explore fully what it has to offer.

XNA Game Studio

  • Recently my friend told me about Microsoft’s Dreamspark program. Apparently it’s been out for a year and I never knew a thing about it. Visual Studio Professional 2008 is also finding its way onto my hard drive. XNA would be cool to work with, especially considering as part of Dreamspark you also get a year free of Creator’s Club Premium Academic so theoretically you could get away with publishing your first Xbox Live Arcade game without paying the registration fee. I would just need to acquire an Xbox (my brother wasn’t about to let me take ours away to college), and possibly an Xbox Live Gold membership. This could kill two birds with one stone, since the NYU Music Videogames Research Project is starting to look at working with the Rock Band Network and you need the Creator’s Club membership to program songs and make money. Also, XNA contains the XACT tool, which is essentially Microsoft’s version of FMOD, so I know I would have a lot of flexibility in the audio implementation.

The Game Creators

  • This is a company based in the United Kingdom that makes products geared toward hobbyist game programmers, or people who are just learning to program and would like to make games. I used their older product, DarkBasic Classic when I was in middle school coding some rather ugly games with my friends, but recently they put on a monster sale in which they sold their new language and game engine, DarkBasic Professional along with physics and AI plugins as well as a whole bunch of other useful game creation tools. In addition, they have a product called DarkGDK, which is essentially their BASIC-style commands made accessible as a DLL in Visual C++ 2008. Because of the simplicity of using these tools (example syntax: LOAD OBJECT “model.3ds”, 1), they’re great for getting something up and running quickly. And with DarkGDK, I could use FMOD for audio instead of DarkBasic’s built-in audio and be able to get some nice realtime DSP effects.

As soon as I saw the Dark Game Studio Bonanza, I ordered a copy right away, and have actually already begun playing around with it. The physics plugin, DarkPhysics, unfortunately has an implementation for a character controller that doesn’t have any easy way to jump. So, my first project in working with DarkGDK/DarkBasic Professional and DarkPhysics was to implement smooth, parabolic jumping that would work with both box-shaped and cylinder-shaped rigid body character controllers.

Unity and XNA Gamestudio are still very appealing though. Anyone have any experience to speak of working with either of those?