Renoise For Game Development

As I’m mostly talking about consoles there, that’s probably something only very few of us would actually care about, but I think it might be worthwhile nevertheless, considering console developers are used to pay a rather hefty premium for middleware.

Trackers have two huge advantages when it comes to game development: Files can be much smaller at a much higher audio quality than anything possible using regular compression algorithms, which is great for portable systems, downloadable games and memory starved platforms like consoles, and they allow for highly interactive, dynamic scores, something pretty much impossible using regular formats like MP3. To put that into perspective: DS games can’t be bigger than 512MB, the PSP is capped at 1.8GB, 3DS at 2GB, downloadable Wii games at 48MB and downloadable DS games at 24MB for example. And Renoise is the best tracker out there - workflow, interface and engine wise. It could be a match made in heaven. Sure, stuff like VST or AU plugins wouldn’t work, but I wouldn’t consider that an issue. So what I’m suggesting is basically a XRNS playback library, optimized for the various systems, which is slightly more than a mere player. It would need to support repeating patterns and sequences, fading individual channels in and out, panning and muting them, changing tempo, modifying effects and stuff like that, and maybe some advanced stuff (on-the-fly transposing, randomization and such). That library might need to support a couple of different platforms, but you can reach all eight relevant systems by supporting only two architectures - ARM for handhelds (DS, 3DS, iPhone, Android, probably PSP2) and PowerPC for consoles (PS3, 360, Wii). Add the PC to the mix, which is already done, and you could do a true cross platform audio solution for game development, supporting all major platforms and operating systems.

A long term prospect would be engine integration, and I know that companies like Unity Technologies (PC, Mac, iPhone, Android, Wii, PS3, 360, 3DS) and Epic Games (PC, PS3, 360, iPhone) are interested in that in general. I guess companies like Emergent, Stonetrip, Dassault or Vicarious Visions might also be interested.

Sadly, consoles are closed platforms, so you can’t just go ahead and develop for them as you like. You’d need to apply for a license. That’s easy and cheap for Apple platforms, but to develop on Nintendo or Sony hardware, you’ll need a track record (which shouldn’t be an issue), and you’ll need to sign a heap of legal documents. Sadly, I have no idea how to apply as a registered PS3, PSP2 or 360 developer, but for Apple and Nintendo, it’s http://developer.apple.com/ and http://www.warioworld.com

I’ve also suggested something like that in a previous thread, when I was thinking about something like a “Renoise Dev-kit for the Demo Scene”. Without any real hope to see it in the future. I remember a few well known games from the past, using MODules for their in-game music (remember the pinball dreams series ?). The XRNS file format is quite simple to understand. UNZIP a XRNS : you’ll see that it’s just a XML file structure. You can already try to convert a XRNS to a MOD / XM for example, here : http://zenon66.altervista.org/MyApps/applications.html , and then use any kind of MOD / XM player library in a game.

Concerning the VST(i) or AU plugins, they could’ not be handled anyway by that kind of external mini XRNS player for legal reasons. So game developpers could just use the Renoise native DSP FX and XRNI. That would finally be the only reason why a game developper would use a XRNS in his game instead of a MOD or XM file library for example. But what DSP would be used in realtime ? The reverb, probably ? The delay, maybe ? A few filters ? But the Directsound DSPs allready do the job. And the lack of native 3D / Binaural positionning in Renoise won’t help 3d game developpers to choose the XRNS file format.

Finally I must say that Renoise as a DAW for now looks for sure very attractive for computergame musicians. But the DirectSound DSP library is available and look more adapted to game development, than the native Renoise DSP effects.

There were many games that used modules to play around like Deus-Ex, they used this specific sound-engine library to play these XM’s and 8-track mods.
Still, you can do a lot with MP3 snippets nowadays. Sure, there is a market for downloadable games, but i guess the .xm format is still good enough for that. Given that the player on the device has some fancy dsp tools himself and allows to play 24/32-bit samples.

MODs are still very common for handheld games, especially on Nintendo platforms. The fact that they use mask ROMs, and will continue to use solid state storage on the DS successor as well, means that storage is not only limited, it’s also expensive. On the other hand, Nintendos next generation handheld has so much more processing power compared to their current system that a more advanced tracker format might end up being a worthwhile alternative to AAC or MP3 audio. It might make the difference between using a, say, 1GB cartridge or a 512MB cartridge, with the latter being cheaper (obviously). The difference might not be huge, but if you produce several million cartridges, it adds up and becomes very noticeable. Not to mention it would be far superior for dynamic scores.

I’m well aware that the XRNS format is documented. The actual engine isn’t open, though. It would be possible to implement a playback library, but it wouldn’t sound like Renoise. Right now, with standard audio compression, you might waste a lot of storage space, but you get predictable results. If you could use the very same engine on your target platform, and achieve the very same sound, it would become a valid choice.

I understand that the XM file format seems a bit outdated, and that actual target platforms have more CPU power and should probably be able to handle more DSP effects.

If you don’t know this freeware project, you should have a closer look on it : http://code.google.com/p/protrekkr/

You’ll notice that it has some common points with Renoise : internal DSP multi effects, sample compression algorythms, but also internal synth (2 OSC). The most important thing is the included “replay routine” source code that can be used in any program (you’ll also find a replay routine for the PSP included).

In fact the Protrekkr source code is the evolution of the Noisetrekker source code. You’ll see that Protrekkr is very similar to Noisetrekker.

Historically, the early Renoise versions were also based on the same Noisetrekker source code. But the Renoise dev-team introduced a lot of strategic choices (including VST and VSTi, MIDI integration, Automation…), and has made so many changes in the original code that you won’t probably find anything left of this original Noisetrekker code in the actual Renoise versions. For now, the Protrekkr project seems the only one able to fullfill those new needs in terms of replayability on external platforms.