May contain nuts.

Lost Outpost went gold the other day ( I should really have mentioned that here shouldn't I ? ) and it's currently waiting for sign off with the sponsor, so I thought let's go through some numbers just to try and show why it's taken forever to finish.

For the 10 levels ( Plus 5 Swarm levels ) we use 396 tiles, or 1,653,371 bytes worth. When compiled all the levels come in at 2,232,249 bytes.

99% of the images have been converted to png8 to save file size ( All done by hand ) which come in as 1510 images, or 17,942,059 bytes ( This includes the tiles ).

We have 272 sound effects ( Including 7 pieces of music ), when published as a swc that's 5,547,127 bytes. To give it a bit of perspective, Outpost:Haven was our most sound heavy game before this, with 158 sounds. There are 10 different shell casing sounds, an additional one just for shot gun shells, 3 different samples for a crate being shot and 12 vocals for the automated announcement system on Haven.I went a little bit crazy with the sound I think.

In regards the source, this is more vague. Not so much the numbers themselves, I'm not just making them up, but the meaning of them. When someone says they've coded something and it's taken 2000 lines, it doesn't really mean shit as everyone codes differently. Personally I'm murder for lots of white space and for using a Class for everything ( I've been told I'd break one line out into it's own class if I could, which aside from making me laugh is very close to the truth ).So yeah take the following with a pinch of salt, it's quite meaningless, hence me comparing the code in Lost Outpost to Outpost:Haven's as a kind of benchmark ( I can only compare my own code to my own code as my style if fairly consistent ).

Outpost:Haven had 266 Classes, taking up 2,304,945 bytes. This includes 27 Classes that weren't mine, general utility stuff.

Lost Outpost uses an unbelievable 425 Classes, 4,317,541 bytes. That's fucking insane. Oh hang on it's not too bad, the same 27 Classes that weren't mine in Haven are included in that figure too. So less than 400, that's nothing...

30 unique physics objects ( Crates, desks etc. ), 133 "Non-Baddie" items. These are items which the baddie handler routine controls, but aren't strictly baddies, so it goes from the spinning fan shadow to music triggers to flushable toilets to the medi-packs you collect etc. 6 Classes are for the hidden game ( With it's assets coming in at a mere 255k ) and a majestic 37 Classes for all the particle effects, with 9 of those being various smoke effects. The overkill for the particles was for performance reasons rather than me over engineering for the sake of it.

The in-game terminals were a mere 3 Classes, although they came in at more than 4000 lines of code ( I guess if you deleted all the white space and comments, that would be about 40. I'm joking, but not by much ).

PDA, which is the inventory, maps and the log screen, was a mere 14 Classes but had more code than all the particle effects combined.

And I've started to bore myself, so it's time to stop. Just to recap, Lost Outpost is a huge fucking game which should equate to over an hours worth of total story play time.

I finally figured out ScoutCC, I looked at it ages ago and was just overwhelmed and not overly interested ( Unless you really need it for a live project it's hard to care ). It's awesome, just so good.

It helped me spot something major with my new sexy ultra quick particle routines. Yes they were sexy, but they weren't ultra quick, the opposite in fact. What I'd done is create look up tables for all the things like movement, alpha speed, scale speed etc. This was to avoid using Math.random() and was much quicker.The downside being I was creating the look-up tables in the constructor which was causing a really bad performance spike. I thought it would be fine as all the particles are pooled, so it would only be a one shot hit, but where I wasn't pre-pooling enough of each particle that hit was really adding up.

I went a "Factory" route ( I believe that's the correct term, I don't really hold with proper terms. I'm the same with street names, I can tell you where a place is in relation to pubs, but not the actual street name ). I have one class which creates all the look up tables I use and trigger that right at the start of the game so it's pre-populated with random goodness, then each particle just grabs a reference to the data it needs to do it's thing.

Next up Scout was showing that the Movieclips were causing a really large hit. We all know Sprites are quicker than Movieclips, but the difference is really quite startling.Level 4 was playing up really badly, the water level. It's turns out I'd forgot to call gotoAndStop on all the water clips I make. I have one water object, and it's as simple as simple can be. I create instances of my different sized animation clips ( 13 in total I think ), but without calling gotoAndStop on them all when you first make an instance of them, the timeline runs. So that's 13 clips running on every water object in the whole level ( I can't even estimate how many there are, got to be over 60, there's a lot of water in that level ). Simple fix and it stopped the huge performance spikes.

Right so Movieclips are very costly, and nearly everything is a Movieclip. Hmmm. I went back to my factory method, and created a couple of classes for all the animation for things like the particles ( Explosions being a good example of an animated MovieClip we used a lot ), and the baddies.These factory classes are basically just a list of public vars pointing to bitmapData, nothing more.

Let's take a baddie as a straight forward example. Rather than having it as MC, I changed it to a Sprite and put a bitmap in it, centre aligned. I then grab a reference to all it's frames ( As bitmapData ) from the factory and to animate it change the bitmaps bitmapData reference ( Ha, what a God awful way to explain that ).

ourBitmap.bitmapData=ourAnimationFrameReferencePulledFromTheFactory;

Hopefully that's a little clearer. Now all the baddies and animated particles ( Debris as well as explosions, etc. ) use this Sprite / Bitmap combo and performance has improved a hell of a lot. We use the "Ghostbusters" sequence in the canteen in level 2 for testing, as we're throwing lots of explosions in there with baddies, it's a really full on set piece, and after these changes it always comes in on time, whereas before it would lag at times.

( This may come across as slightly bitter, but it's really not, I predicted straight 8's with a 9 for sound, same as Outpost:Haven got, so I wasn't too far out. It's just the pointless nature of the FGL reviewing beast which I wanted to share. A year in development and we fucked up the mute button up, I hope you can forgive us ).

Hang on, are you looking to charge us for a free game you've been banging on about for a year ?

No, no we're not. It was always the plan, it's just how could we mention it sooner with the game not being ready ? With it being all but done now it's kinda time to try and push things forward.What this means is Lost Outpost will still be coming to a portal near you as soon as we can sell it, nothings changed there. What we're aiming to get onto Steam is Lost Outpost: The Directors Cut. That's Haven, Swarm and Lost Outpost in one sexy package. It'll be the definitive version of the game, as it should have been all along.

Let's recap. Lost Outpost is coming out to your favourite portal as soon as possible. Nothing has changed there at all, there won't be any charges, any in-app purchases, nothing.

In terms of the Greenlight page, we'd really like a favour. If you could vote for us and tweet about it it would help us out so much. It doesn't matter if you've only got a handful of followers, if you vote and just one of your friends vote that's two votes we wouldn't have got. It all adds up.

In other good news, the game is now content complete. Thank fuck. We've got another couple of weeks of bug fixing, tweaks and polish ( Plus I've got some copy to write, I've not done the info-cards yet ) but we're nearly there.

We've been crunching for weeks now, hence my disappearance from here ( It was nothing you said ).

And in saying that, this is only going to be the shortest of short updates.

We posted a new demo to our Facebook page the other day, and have had some great and really useful feedback, so that was well worth the effort of getting a vertical slice in place.Level design / build is on-going, just to prove it, here's some level 6 action:

There's still some news to come ( Although the bottom of the new site does contain some pretty big spoilers ) but for now I've got to get back to finishing our vertical slice of the first 4 levels plus the Swarm level which we're going to post to the Outpost Facebook page real ( Real ) soon.