Where the hell is Topia?
As i've said before in this blog, Topia is proving to be a hell of a lot of coding work. Some of this is fun, creative gameplay and graphical stuff but, being the only coder on the project, I also have a lot of irritating system level crap I have to deal with. Here's what has been going on since the last blog. This is possibly going to be a little boring in technical but that's been my life for months now so I thought I should spread the 'fun' around a little. If you aren't interested in technical details you should probably wait for the next blog which will feature a video with sound effects. You've been warned...
At the end of May I replaced the old file system with something rather more direct and powerful. They old one was very cool, designed to enable background loading on hardware that doesn't support multitasking (for example Nintendo DS) but was kind of getting in the way on hardware like iOS (and everything else we're planning to support) where something less clever on another thread makes more sense. This was pretty simple but I'd been putting it off for a long time.
With the new filesystem in place I was able to start on the changes to the editor. Up until this point 'editing a level' consisted of selecting a bunch of parameters for the fractal generator and a 'time of day' for the lighting. With the new system in place it was possible to paint landscape changes into the editor and store these as part of the world's definition. These changes were vital in making it so that a Topia levels are well under 64kb each. Before this levels were taking around 3mb, this is a 50x saving which means we will be able to include is many levels as we can come up with without bloating the download size into hundreds of megabytes. At this point I realised I had to optimise the landscape moulding code and worked out a sneaky way of getting a 7x speed increase to fix loading times. A really cool side effect of this is that the in game building tools can now be much larger, making building landscape feel even cooler.
I also added a bunch of extra features into the editor (which will be part of the full game) including complete control over lighting and atmospherics, the ability to paint paths and save out a level already populated with creatures. At some point after the initial release the editor will be released to players in an update. In it's current state it can't be let out to the public as it'd just confuse most players and confused players just quit your app and give you a one star review. I know this for sure from the stats of how many people finished the second level of Ground Effect...
I then spent a week working on another project that I will blog about later. This was for an iOS unity based project from a very cool new startup and they happened to need a couple of mad custom shaders written in a hurry. It was cool to finally get to use Unity. It's clear that something like Topia could actually be made with it (something I hadn't realised before) but you'd be doing so much work in native plugins that you'd lose most of the benefits of using it. Cool to get a little Unity experience though.
It was great to actually be working in an office with other developers, some of them guys i'd worked with before many years ago. The atmosphere of a working office hugely increased productivity so I hung around their office for a couple of extra weeks working on Topia. During those weeks I completely rewrote the multitouch handler making it 100% responsive on all devices.
I also ditched Ground Effect's over-complicated and, paradoxically, under-featured sound system and went straight to OpenAL. The new sound system supports blending between multiple ambiences and 3D sound placement. Not rocket science and probably standard these days but all pretty new to me and very impressive that a phone can mix these many channels without grinding to a halt. The game is awesome with the sound in. I'll blog some details just as soon as I can make a video with sound.
Since spending a week or so on the sounds (thanks for the samples Josh) i've been focused on creature AI. Tikes (the fast carnivores) can now decimate herds of Pinos (the cute blue sheep) and i'm thinking the initial release won't just be a 'sandbox' we were planning, it'll also feature 'Pinos v Tikes' as the first minigame.