Awoooga. Awoooga. No, Kris Akabusi isn’t in the building, that’s my “we are changing engine” claxon going off!
As I was saying last week, we have really been pushing the code for Project 2 over the past few weeks and it’s highlighted a few weaknesses in the engine that we are currently using (Blitz). Without giving too much of the game away the main area where the Blitz engine is weak is with masking 2D images, which is a crucial factor in any game that you want to look “the biz”.
Let me give you an example. When our artist draws 2D images he applies an anti-alias effect on the images which prevents you seeing all the harsh computer lines and generally makes the images look a lot more polished and a lot more professional. That’s all well and good, but the way that the Blitz engine handles 2D sprites is a little dated. Basically it takes the sprite and applies a “mask” colour to them, but it can only be a single colour on an RGB scale (255,0,255 in this case – being bright pink!). So, let’s say that you draw the sprite on a bright pink background you can tell the engine to ignore all the bright pink bits and just display the remainder of the image. Which is great in theory, however the issue with anti-aliasing is that in order to give the anti-alias effect, the paint programs effectively “blends” the edge of the image with the background which means that when you then apply the strict mask (255,0,255 remember) it will only “lose” that specific colour, and if the anti-alias has changed just one digit of those colours, then it wont mask and you have a lovely pink “aura” around your image.
There are ways around this of course, but the predominately involve losing image quality and therefore something we cannot entertain at all. The new engine gets around this problem by using Alpha Channels rather than masking. Alpha Channels are essentially a further data “container”, you have RGBA. The Alpha channel effectively controls how much of the background of the image shows through. So you can get this much more effective and clean image, hence this is the way forward. The choice of engine is also quite significant for us as it’s the same one we will be using for Project Blast! This means that we can cut our teeth with the engine on a relatively smaller, simpler project before going in all guns blazing with Blast!
The engine change isn’t quite as dramatically time consuming as it perhaps could be, most of the code we have already written can simply be ported across to the new engine with the minimum of fuss and we can crack on getting the game finished. It could’ve been worse I suppose. We could’ve been tied into Blitz at a late stage of development and then it would’ve taken us much longer to port over.
This is another of those moments which makes me fully appreciate the amount of time to get games done and completed and in the market – we are all still learning about all this really and I guess that with each decision we make we learn a little more.
In terms of other stuff, our website is currently going through a few changes – I’ve seen the new proposed website and its much better – has lots happening on the home page whilst still not appearing too cluttered. It looks really cool, and with any luck it wont be too long before we switch over to the new look. I guess I was hoping to coincide that with the announcement of Project #2 but we’ll play it by ear and see how we go over the next few weeks.
Right, I’m off to try and figure out how on earth I can bring all this together whilst looking for opportunities to sneak out of the gardening and crack on with the coding. Its like being on a #RoChain gang sometimes.