Gaming Your Way

May contain nuts.

Using Scout to optimise Lost Outpost

This is going to be a bit of a techy post, so if that's not your thing please feel free to move along. Oh, one sec, before you do, here's some Lost Outpost coverage we've had:

http://truepcgaming.com/2013/09/27/given-a-lot-of-love-lost-outpost-interview/

http://www.twitch.tv/coopheroes/b/467397568 ( Interview with Lux plus play through )

Right, let's talk optimisations.

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.

And that's our little story.

Squize.

PS. I know I promised not to do it too often, but we're still after some Greenlight loving, http://steamcommunity.com/sharedfiles/filedetails/?id=177695239 cheers.

Knocked it out of the park!

Lost Outpost is up on FGL,

Something tells me the reviewers heart just isn't into it.

( 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 ).

Squize.

Lost Outpost on Greenlight

Just to emphasise the point, just in case the title wasn't enough

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.

Our page is here: http://steamcommunity.com/sharedfiles/filedetails/?id=177695239

Thanks. Oh, and don't worry, the blog isn't going to turn into a constant "Vote for us", that would bore me silly.

Squize.

Lost Outpost Trailer

So we've got some good news. Let's start with the trailer should we ?

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.

Squize.

It's been forever hasn't it

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:

I've literally just finished that level off, hence me having 5 mins to post here.

So we're looking at 3 more levels, all of which are already in some state of development, and the Swarm levels, and that should be nearly it game content wise.

We're getting closer...

Squize.

A Ule by any other name

Yet more news we've got to shoot directly into your eyes, like a milder informative kind of pepper spray.

I guess the biggest news is that Outpost2:Stranded isn't a thing anymore.

Not because someone called me a name on twitter, I'm not fucking 12 years old, but because of trademarks and the like. Boring stuff.

There we go, O2 is now "Lost Outpost". We're still going to call it O2 for weeks, it's like writing the wrong year on a cheque all the way through January.

We should really have made a microsite to announce this properly. Hang on a second, we only did.

Lost Outpost site.

Check us out planning ahead properly for a change.

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.

Squize.

Ch-Ch-Ch-Changes

So I've been teasing big announcements for a while now, and today I can finally mention the first one.

Lux and I have been working together for a while now, since Ionic, and with him recently leaving his job to go indie we decided to set up a business together, Garage Collective.

The site has just gone live, www.garage-collective.com

What does this mean for GYW ? Well it means all my future games will be released under the GC brand, so I guess Outpost:Swarm was the last GYW game from me, which is a weird thing to say after devoting so much time to all things GYW.
But that doesn't mean the death of either GYW or this blog. Olli and I haven't fallen out or anything, setting up garage collective with Lux just makes business things a lot easier with a clean start, plus Olli is still developing games under the GYW banner ( I may be the most vocal, but I'm but half of a team ).
I still want to keep the development of games posted here, because I have more freedom here to say when something is shit, I don't have to keep my prose as shiny.

And that's the first of a few more big things that hopefully we'll get to you guys over the next couple of weeks.

Squize.

This isn't going to end well

Thought I'd show a quick grab of Swarm mode now it's back in. I don't think Jameson is going to survive this somehow.

Just in case you were wondering, that highlighted area is a "Hardpoint", earn double cash for every kill you get in there.

Squize.

The size of this thing

I'm well overdue posting here aren't I, and in saying that this is only going to be a very brief post.

Currently I'm restructuring the bullet code in the game, which has a knock on effect that I have to update the baddies, and what we call "Noninteractive baddies". These are objects we treat as a kind of baddie so one set of code can handle both, so for example they're triggers for playing music stabs, enabling the flies, the large fan shadows etc. Basically everything which isn't a physics object, like a crate or a desk, or a baddie.

I've just done a quick count up whilst going through them, and there are currently 96 of these objects. That's a hell of a lot of unique things in a game. Also on the subject of numbers, there are 232 sounds in the game, and I can see that rising to at least 250.

This is a beast of a game.

Back to it for me, this soul destroying updating won't do itself. Maybe next time we can talk about Swarm mode seeing how that's back in the game now.

Squize.