Over at the indiegamer forums, we have this annual tradition of someone starting a thread where we report our activities and progress during the year that passed, and our plans for the coming year. This is an adaption of my post.
So, these were my goals for 2012:
Add more fun and do more marketing for Kobo II, to hopefully sell more than symbolic numbers to mostly Kobo Deluxe fans.
Actually make some money, one way or another. More contract work, most likely.
Get a proper toolchain for ZeeSpace going, for less work, better results and smaller downloads.
Find or write(!) a simple but effective Linux MIDI sequencer that doesn’t crash all the time, or just frustrate me to no end. The state of these things is just ridiculous…
And, well… I dunno? Anything fun I can come up with, that might make some money, directly or indirectly.
And, the results:
FAIL – I did release three tech previews that were increasingly “playable”, but didn’t get anywhere near what I had in mind. “Lost” at least half a year to engine coding and…
SUCCESS – …contract work! So, at least I’m not bankrupt. Things are going to take even longer than originally intended – but I’m still in business.
FAIL – Basically gave up on structured/procedural graphics for this game at some point, as it just seemed to require too much engine and tool development. However, doing anything reasonably good looking in GIMP is rather time consuming too…!
FAIL/SUCCESS – Actually, I didn’t even bother. Turned out just hand-coding the music in Audiality 2 (formerly ChipSound) script worked better than expected, so I just kept doing that.
FAIL – No time for that…
So, all in all, I only got about halfway to my goals for 2012.
One thing that turned out better than expected though, is the Audiality 2 sound engine. (Formerly called ChipSound.) It’s now doing multichannel modular synthesis with subsample accurate scripting, has a proper unit/plugin API and stuff – and it’s all hard realtime. So, a few more simple DSP units, and that thing will do pretty much anything I ever wanted to do in terms of game audio.
New goals for 2013:
Keep working with my current main client. Less negotiations and research – more paid work!
Kobo II: Multiplayer! More fun! Proper levels! To speed things up without dumbing down the mechanics, I’m going to drop my custom physics engine for Chipmunk. A persistent scene graph rendering engine is going in, to improve performance and eliminate OpenGL from the scripting level.
New release of Kobo Deluxe! It’s had somewhere around 200k downloads, and is also included with a few Linux distros and other things – but few of those players have any idea there is a related game in development!
Finish a small sidescroller I started working on: Project Pixelfire.
Port at least one game to OUYA – probably Project Pixelfire. (Too heavy scripting in Kobo II, so that’s probably going to need a native compiler. Later…)
Get back up to speed with music! Almost dropped coding for music about two decades ago – but then I burned out, and this is about all I’ve done over the last 15 years. I’m beginning to realize I need to pick it up again to stay sane.
Audiality 2 is a realtime audio and music engine, primarily intended for video games. While it supports traditional sample playback as well as additive, subtractive and granular synthesis, the distinctive feature is subsample accurate realtime scripting.
Audiality 2 (previously released as ChipSound) is used for sound effects and music in the game Kobo II. The name originates from an old structured audio and sampleplayer engine, originally developed as part of the XKobo port Kobo Deluxe. The old engine is no longer maintained, so the new one, which has similar goals but much greater potential, is now inheriting the name.
Now official: The Kobo II sound engine, ChipSound, becomes Audiality 2.
This placeholder front page replaces the old Audiality site until the proper site is ready. There will be downloads, documentation, sounds, music and scripting examples.
The engine remains Free/Open Source under the zlib license. Version is bumped to 1.9.x for upcoming development releases, until the stable 2.0.0. C API prefixes become a2_/A2_, and the script file extension changes from csl(ChipSound Language) to a2s(Audiality 2 Script).
One reason for the name change is that loads of things are already named ChipSound and similar. Further, the old Audiality (formerly the unnamed sound engine of Kobo Deluxe) is no longer developed, while the new engine has similar applications but much more potential, so it makes sense to pass the name on instead of just abandoning it.
What to expect in the first Audiality 2 release (done and mostly working already):
Modular voice structures.
Various voice units, such as oscillators, filters, waveshapers, delays etc.
Public unit API for plugin (native code) units.
Subvoices can be “inlined”, allowing the parent voice to process their output.
New builtin waveforms: pulses and YM3812 style sine variants.
Support for JACK and host application provided audio I/O.
Decided to make some new recordings of the current versions of the songs in Kobo II. These are all full length versions, and I’ve made an attempt at actually improving the sound with the JAMin mastering tool, rather than just compressing the living daylights out of it.
And, these tracks, along with a bit of ingame sound effects (some of the new weapons, item pickup sounds, the soothing hum of the new spawn deck etc) are now on SoundCloud, which seemed like a good idea for various reasons.
The other day, Disasterpeace mentioned an idea about speech synthesis based on pulse waves, and I remembered playing around with something like that back in 1995, while doing sound effects for a little university project game.
I actually found the original code, and ported it to ChipSound! The original was done in Borland Pascal on DOS, using the sound, nosound and delay calls. It’s basically PWM/hardsync with occasional noise generated by randomly modulating the frequency; all “commands” issued with 1 ms granularity. (Except for the “m”, where I was apparently creating a half-amplitude pulse by setting the frequency to 40kHz, whereas the ChipSound version is just creating a very short pulse.)
It’s all very primitive, and there’s a lot more tweaking that could be done – like adding multiple formants to improve the vowels – but the point is, it seems like one might actually get away with synthesizing speech using only fixed amplitude pulse waves.
A recording of the ChipSound version, first with some flanger and delay effects, and then mostly dry: pc-bot-emergency.mp3
As I mentioned in my previous post, I have decided to release the native part of Kobo II as Free/Open Source – and next up is the final, major part: EEL with its bindings to OpenGL, ChipSound (that previous post) and ZeeSpace (included), a small physics engine and some other stuff.
I have decided make regular releases of EEL with EELBox along with Kobo II in order to make the game available to more players. I just don’t have the time and resources to make proper builds for other platforms than Win32 at this point. (Even though I’m actually doing the development entirely on Linux. The irony…!)
The release is in the download section, as usual. See the ChangeLog for more details.
Like 0.3.4, this version uses ChipSound for sound synthesis. ChipSound is now under the zlib license!
Note that this is not really an official release aimed at EEL users. Things are under heavy development, and I just don’t have the time to touch anything that isn’t strictly needed for Kobo II and my inhouse tools at this point. Contributions would be welcome, and I’ll try to answer questions, but please keep in mind that these are just my private tools that I use to get my job done at this point. Use at your own risk, etc.
I’ve decided to officially release the engines (scripting, physics, sound and 2.5D rendering) behind Kobo II as Free/Open Source, in order to make the game available to basically anyone with OpenGL and a C compiler.
Actually, older versions have already been released in conjunction with The Grumpy Pinball Ball, but at the time I hadn’t decided on a license for the sound engine, ChipSound.
Don’t expect this to be seriously usable production code! I am indeed using it for Kobo II and various tools, but I implement only the very features I need right now, so expect a generally odd feature set, little documentation and a few dangling wires.
First out is ChipSound, which is now under the zlib license.
Included with this is a small SDL based test program that demonstrates how to load, play and control sounds, and how to implement oscilloscopes by wiring an application callback to the “master” voice.
The included work-in-progress demo songs belong to Kobo II, and are NOT covered by the zlib license. They’re only provided as examples of what can be done with ChipSound. More info on some of these songs can be found here, here, here and here.
Finally, Tech Preview 3 is out! Basically, things haven’t been going my way lately, and I’m also at the point where I have to do other stuff to pay the bills, which is a situation that does not blend with custom engines and unusual solutions. But even so, here it is!
ZeeSpace is on vacation for now, awaiting a proper toolchain – but in the meantime, there will be some nice high altitude battles instead. Parallax scrolling, for the true retro fans out there!
There are now two game modes; a more true Survival Mode (much more aggressive spawning; no continues), and the beginnings of a new Campaign mode that is a bit more like the old Kobo Deluxe – except we have physics around here! That is something I’m going to leverage big time later on.
Trying to get Kobo II TP3 out this weekend, and if that goes well, I might do something like this, and maybe submit it to the GDC Pirate Kart. Monochrome sprites, some layered sprites, glow effects, parallax scrolling and of course, chip inspired music and retro sound effects. And, it will be fast and hardcore! Might throw in some basic physics as well, for that extra retro-futuristic twist.