Gaming Your Way

May contain nuts.

6 not out

Just a really quick one today. It's our 6th birthday, hurray for us.

I'd like to say so much has changed, but no, we're still writing juvenile crap on the blog with the occasional game release in between.

So yeah that's our news, what have you been up to ? ( I'm just being polite, we really don't care ).

Squize.

See, told you we're back on it

Quick update about O2, I'm going to try and post more about it as we've been a bit too secretive as not to spoil anything plus we don't like showing things with placeholder art.

Here's an image with placeholder art. 

Since I started back up on it I've been working on level 4, which is the 2nd Lee level in the game ( You get to play as both characters this time ).

It's a sewer based one, like the one ( Or was it two ? ) we had in Outpost:Swarm, although I've refined how we handle the water this time so it runs much quicker.

That big red thing ( I've called it a gyroscope in the code, I'm not sure it's the correct word though ) is spinning around at a high speed blocking your exit, almost as if someone has sabotaged it to block your way...
Anyway hacking the 4 terminals on the level will reduce the speed enabling you to pass.

The level is taking ages to put together, like they all do, as there are more one off effects in this one and the gyroscope itself was a mare to get running, as it has to use the Nape physics engine for the collisions. In fact it's still not done, we're not having check points in this one like in O:H as I made a real mess of them, so you'll get the temporary forcefield like in O:S. But this thing will kill you outright on contact, and we can't have you regenerating in the room with it, as you'll either be able to sneak past it when the forcefield is up, or you'll just lose all your lives to it, either way is bad.

So my options are:
a) Put an invisible wall in the way to stop you going in there until it's safe to do so.
b) Letting you go in there, but if it kills you, you start at pretty much the location that you're at in the screenshot.

Nothing is easy. I think I'll go for b) as I have to detect if it kills you as it'll still be running slowly even when all the terminals are hacked. It could be nice if when it hits you you just splat. I think we're going to have more blood in this one than the first, if we're going to be classed as adult in content anyway then we should take advantage of that, so it leaving a big circular smear of blood could work well.

And this is what we've been doing every day we've worked on the game basically. Coming up with a cool idea we want in the game, then realising how much that screws things up and becomes a special case, then coding that special case.

More words soon.

Squize. 

2012 in words and pictures

It's that time again. These normally take forever to do, but I think this one can be knocked out in about 5 mins as we've done fuck all this year.

Shall we start ? Yes, lets.

January:

As always we have our birthday in January, we're 5 now, and still not imploded under the weight of our stupidity.
We were still basking in the lovely Outpost glow ( 2011 that came out, and we've still not finished the sequel. The Beatles still release more albums than we do games ).
We did have an interesting interview with Jean-Philippe Auclair, author of The Miner, which I'm sure you all use now.

February:

We picked up a little head of steam this month. It started with the first image from Outpost:Swarm and the start of the DN8:Pulse development.

We actually finished the first beta of Swarm at the end of Feb if I remember correctly... but there was still a way to go before it would see the light of day.
Olli also pimped a rather lovely lego house he'd put together.

March:

More DN8:Pulse, I tried to be quite active about it's development on the blog, posting weekly updates ( Which is very active compared to the last couple of months on here ).
Want to see some glowy bullets to help fill this post out ? Yeah, why not. 

And that's month 3.

April:

A great month, with both Swarm finally launching on Miniclip < I thought I should link to them, they're an up and coming portal and need all the traffic they can get.
We also got a pre-release review of DN8:P on the excellent FlashMush blog, which we were happy about.
But when exactly did DN8 II, the stage3D mix, come out ?

May:

Ah, the 1st of May. Thanks to Jules and Rob at TurboNuke for sponsoring that bad boy.
One thing we learned was never ever bother doing a stage3D game, as these stats revealed.

Overall I'm pleased with most of DN8:Pulse, I'm glad I did it, but I did make an actual loss on the game after paying for the ( Great ) art and music. It did well on newgrounds ( Our only daily 1st ), got a great review at Jays, and died on it's arse everywhere else.

( Never do a stage3D game, I can't stress that enough ).

June:

I hit 40, and for some reason didn't mention it. Normally I like to big up my birthdays.


I did finally write up a postmortem for Swarm, which was good to do. I really like that game, yes it's limited in scope and with hindsight we could have dropped more references to the story in there, but the AI is cool and it just plays nice and simple.

Also a sneak peek of "Quantic Velocity", our failed game this year. We started off using stage3D, then saw just how badly DN8:P had done, restarted it as a horizontally Uridium like game, then restarted it again as a vertical scrolling one. Just an aborted mess. I'm kinda glad Lux and I went through that, better on a smaller game than a large one we really care about.
I don't think we had a clear enough focus on what it should be, and then I backed myself into a corner with the baddie AI and it was just easier to save the assets for another day.

July:

Nothing much to see here, apart from work finally starting on O2. So we're 5 months, nearly 6 months, into it's development and still no private beta. There are reasons...

August:

We pushed O:Swarm out to Facebook as a little experiment. Due to a lack of pimping on our behalf it's pretty much stayed as it is, we want to go back to it and give it more social love, but if no one's playing it then there's little point ( And no one is playing it 'cause of a lack of social features. Oh ).

Worth doing, just to see all the hoops we have to jump through to get a game on there, and it's far from dreadful, we just didn't expand on it as we could have.

September:

I experimented with HaXe NME. I'd like to go back to it sometime, but when I really don't know.

On the O2 front I added specular lighting, which if I do say so myself, looks fucking stunning.

Hurts lower end cpu's, so it'll have to be an option, which is such a pity.
Also Lux nailed the title screen for O2, which is important as I really like a title screen in place on a game as it helps set the tone ( I'm sure I've mentioned this a million times before, so I'm going to cut myself off before I bore myself ).

October:

Bit of an almost constructive post from me for a change, about Survival horror. If nothing else it was a slightly indulgent way for me to get things into perspective for O2.
The comment which started it all, and quoted in that post, has really helped define what we're going to do with O2. Lots more one off set pieces ( Which is one of the reasons it's still in development ). 

Swarm made it's merry way to Newgrounds, and did quite well ( After being fucked in the eye for a daily 2nd. These things don't normally matter to me, but there was some strange voting that day, which also screwed us for the Halloween comp. Bitter ).

 

And that is officially where the year ended for us. In nearly 6 years of doing the GYW thing we've never let the blog slip for so long. Two actual releases in a year, one a sequel and one a spin off ( And a cancelled futuristic racing game ). Not the most productive we've ever been.
Let me explain, it's not you, it's me. We've been suckling at the adver-game teet a lot more this year than other years. We don't pursue freelance work, but sometimes it just lands in your lap and you'd be silly to say no to it.

So this year we did a quiz plus mode7 driving game for Goodyear ( We're not overly proud of it, hence the lack of mention of it on the blog. Very low budget, and it unfortunately shows ), I did a couple of Flash games for a certain cigarette company ( NDA'd up on these, I don't think I can even mention the agency I worked for ), then an Android tablet app for them which was purely for "in the field" employees, so that's not even available to get anywhere.
Then in November I went over to the US for a month ( Just got back on the 21st December ) doing more Flash stuff for the same company, but mainly JS/HTML ( And no, not "HTML5" which is just a stupid nonsense catch all term for all different kinds of tech, as I had to learn quite quickly ).
I think in total there are 6 Flash games, a tablet one and 4 or so html apps that Olli and I have worked on that we've been unable to mention on here.

See, we're not that lazy, we've just changed from being open and honest about everything to being sly. And evil. It's the new direction for us.

Ok, I guess this it the part we look to the future. I'm currently playing with porting Chock-A-Box over to html. That was originally a game in a day for me in Flash, it's fucking well not in JS. On the 2nd Jan I'm back full time on Outpost 2, which I'm really looking forward to and from there...

We think O2 will be our last sponsored game, it's just a badly broken business model ( There's a blog post on it's own, maybe I should bite my tongue until we've sold O2 ). In the new year we're going to be looking at new tech and new ways to get our games out there.

Thanks for always sticking with us, and we wish you a happy New Year.

Squize.

Is it survival horror ?

Every now and again I like to check in on the games on NG, to see if we've got any new comments as I think it's important to maintain a relationship with our players ( I wish I could say the same about Kong, but it usually just makes me angry. Sorry, but it's true ).

Anyway a recent comment really got under my skin, I don't know why, somethings just do don't they.

"It isn't scary. A rather glaring flaw in a Survival Horror game, isn't it?"

Ok, possibly a valid point, so I decided to look into scary games to see what we were doing wrong in comparison. I've finally bought Dead Space, after reading every other comment telling us that Outpost:Haven is so similar ( Oh you crazy kids, we stole everything from Alien Breed, not Dead Space. We're old ), so my survival horror playing is quite limited, the old Resident Evil games and that, so I'm sure there are other examples which will disprove my theories, let it be.

The core themes in survival horror gameplay seem to be:

- Restricted movement. You're always kind of sluggish which creates a feeling of vulnerability, which increases the fear. Knowing your avatar can't parkour up the wall to safety means you're always going to be drawn into a confrontation. They normally add a run button for those between the action bubble times, as you don't want to be plodding between scary rooms, but when you're in actual combat the run is usually pretty ineffective.

- Restricted view. RE and Dead Space use that over the shoulder 3rd person view for a reason. Your own avatar creates tension as it blocks a lot of your view, forcing you to rotate around to see that blind spot. It's the gaming equivalent of opening the big fridge door when you know the beast with the teeth and claws is going to be there when you close it again for a shock reveal.

- Monster closets. A jump is the easiest way to get a shock, the toaster makes me jump every time when it pops, and I know it's going to because I put the bread in there. A lot of games in this genre rely on that, the monster jumping out of nowhere to make you fill your pants. Which leads nicely onto...

-QTE. Tap the hell out of (A) to get away from the thing with the razor teeth, otherwise it's going to eat your face. The only way you can really have monster closets is to allow the player to break free ( And almost turn it into a mini-game ). Basically it's a fix for broken gameplay. If you played a platformer and a baddie appeared out of nowhere and killed you, you wouldn't play that game again as it's not fair. Monster closets aren't fair, so there needs to be a fix for that unfairness so they can keep the easy scares, and QTE's are just that.

- Limited Resources. In the DN8 games I tried to always make you, our sexy player, the most powerful thing on screen. You should always feel like you can kick arse, and it's just the sheer weight of numbers of the baddies which make it a challenge.
In a survival horror game it's the opposite. It goes back to that word again, vulnerability. You're always trying to get more ammo and health, and usually you have to sacrifice something cool out of your inventory to make room. You're traditionally the weakest thing in the game, it's an uphill struggle, good vs evil, Davis vs Goliath. Like most horror stories the end evil is always more powerful than the protagonists, and it depends on a mixture of their inherent goodness and cunning to beat the unbeatable. Survival horror games have just taken that and ran with it.

- Sights and sounds. A lot of games both visually and sonically play on our fears. It's an inbuilt impulse to dislike certain things, a rotting corpse is nasty because it's in our DNA to think it's nasty, it's to stop us eating it and getting ill. Animals that scurry and slither scare us on a deep biological level as we know they're a potential threat ( Even cats and dogs don't like shit like that, that's why they always spin around a couple of times before sitting down, to make sure there's nothing nasty beneath them to sink it's venom dripping fangs into them ). There's a reason bees are yellow and black, we have all these inbuilt hangups that are just part of us ( And for anyone reading thinking "I'm not scared of spiders though, and they scurry" well you're wrong. So very fucking wrong ).
There are quite a lot of key things like this, and a lot of survival horror games play on them, that's why you'll see a lot of baby type monsters in a game, we're designed to protect the young ( That's why kittens and puppies are so cute, big eyes, cute noses, they are things that we respond to and want to protect. Animals aren't silly ) so having the young turn against us and transform into something horrible jars us. Likewise things bursting out of bodies plays on our sexual hangups in a very deep way. These are cliches, but they work as they're built into is. How many games have you played with a creepy child's laughter, or a woman's scream ? These are on buttons for us.

So where does that leave us with the Outpost games ? Pretty much screwed. We're a top down game which doesn't restrict the players view, as that would be cheating. We can't impair your field of view too much as then that becomes a mechanic [ Creating a forced sense of vulnerability ] which overrides the actual gameplay. Sure we can put you in a room and kill the lights, but we have to turn the lights back on before anything crawls out of the dark, otherwise it wouldn't be fair.
Likewise, we can't really use a Quick Time Event when you're under attack as, well, it's not really playing a game is it ? Mashing a key over and over to be released is a crude fix for a bigger problem. So many games which use that approach will have sequences when there are baddies lined up, and if you get it wrong you're button mashing one baddie and as soon as you break free the next one gets you. It's not enjoyable, it's just a sense of relief when it's over, as it means the frustrating part has ended. It's the gaming equivalent of scratching an itch. As we can't ( Or rather won't ) use QTE's, we can't have monster closets as such. Yes we have spawn holes, but they're always pretty well sign posted and they never trigger so close to you that you can't react.
One thing we did do was restrict movement to a certain degree. Your avatar moves pretty slowly, and even slower when shooting / collecting items / bumping into tables and chairs. This was slated so much that in a dot release of Outpost:Haven I speeded up the movement, and in both Swarm and O2 the movement is faster by default. Not a great success there then.

What other tropes can we take away and use in a top down 2D Flash survival horror ? We sort of limit your resources, but not to any huge degree because we can't use a lot of the above we have to depend on that old chestnut, weight of numbers, to create a sense of terror ( Look at any non-Resident Evil zombie game in the past forever, they're dumb and slow for the most part, but there's just so fucking many of them ), and in Outpost:Swarm we take that to the nth degree, that is basically the whole game.

One thing I didn't mention above was the narrative, as that's common in most games ( Even Donkey Kong has some bullshit story attached to it ). If we do that right, and ground it in realistic terms you can relate to, it can help give us some horror for "Free".
The whole Owlmen theme improved the Outpost games a lot, it hopefully stopped it being a battle between various sprites and became a unravelling mystery. There's a reason Stephen King mostly grounds his stories in realistic environments, it makes it easier for us the reader to believe it, and when the shit goes down it could be us there facing off with a clown with silver eyes. That's why we have papers scattered on the floor in Haven, you know by the time we have big mining ships in space like that paper won't be a thing anymore, we'll all have Google Glasses as contact lenses, or drilled straight into our brain. But to try and ground it in something relatable we use paper as a simple short hand for disarray. We've all unfortunately seen the after math of explosions in office buildings, and dozens of stray sheets of paper is one of the images you take away from that. It doesn't fit the time we're trying to portray, but it fits the theme we're aiming for.

Lastly, we can't compete visually with 3D survival horror games, we're restricted by the format we chose, but sound can make a large difference. I was really proud of the sound we had in O:H, it was so much work but well worth it. With O2 we're adding a lot more, I've just the other day added an "Ambient Sound Manager" which plays additional random noises in the background, which really adds to the experience.

Ok, we're at the end, well done for making it this far. The question was "Is it survival horror", and after looking at the genre, it's still hard to say. Cop out answer I know. We don't adhere to all the usual cliches, but I think it's more than a spooky version of Gauntlet. All I know is that one small comment, in what was really a great review by a Newgrounds member, has inspired me a lot. Both to look into the genre as a whole, and to try and make sure you mess your pants whilst playing O2.

Squize.

Specular lighting

Progress with O2 is still going well, there's just a silly amount to do.

I've spent the past few days swearing at getting bump mapping in the game, creating a specular lighting effect. I think it was worth the pain.

The level without the lighting effect

With specular lighting

I'm really pleased with the effect. I did originally have both diffuse and specular, with the thinking that the outside level floors would look great with the diffuse mapping, but in reality the CPU cost wasn't worth it for the effect, it just didn't look as good as I wanted, so some perfectly good code was killed off today ( But I'm sure it'll make a return, in maybe an iso dungeon crawler, just a wild shot in the dark ).

Squize.

Outpost 2 title animation

Isn't it great when you can just be lazy and link to someone else's blog ?

Construction of the title animation.

Lux has done a great write up of all the steps which go into making the Outpost title screens just so insanely lovely. Maybe one for the artists out there rather than the coders, but getting an insight into good design is always important for everyone.

Squize.

HaXe, NME and I

Start of the week I had a play with HaXe / NME, I figured it was more than worth a day or two to play with them.

It was a mixed bag to be honest. I use FDT as I'm a Mac boy ( Plus I just like Eclipse, I don't understand the hate for it ), and they've really improved HaXe integration in it, but, HaXe and NME are different beasts, and the support for NME isn't as good. I did find a handy ant script for it, but... it may sound petty but it's a bit of a workflow breaker. Not a huge deal having to run an ant script, and I'm sure there would be someway to add it to the launcher chain which someone smarter than me could figure out, but screwing with my workflow really bugs me, and these simple little changes soon become an annoying chore. I don't want development to have more steps than it had before, that's the opposite of progress.

I'd read mono-develop was good with NME, and as Unity uses that and I'm looking ahead slightly, I thought I'd give that a go. Sometimes its better to start afresh rather than shoe horn things into your current setup. It's, well, it's ok but it's no FDT. I was missing auto-importing and code completion seemed to be lacking ( Again this could be a learning curve thing, I'm sure some people will read this and be screaming that I'm a dumb arse, it's just a simple key combo of <whatever> ).

So I set about porting O2, I mean it's just Float rather than Number, Int / int and Void / void pretty much. Got as far as my Init class where I call my fpsCounter and arse, first brick wall hit. From what I can tell you can't really included a code laden swc if you're using NME. Time to convert the code over to HaXe, which didn't take too long as there's virtually no code in the fps counter. K, job done, how do I include the assets I need ?

I had it in my head that HaXe supported importing swc's directly now, but the only info I could find was for importing swf's. Being the stubborn dick that I am, and stupidly believing my brain, I lost a load of time trying to find how to import a swc. You can't. K then, lets just import the swf. That was a bit of a struggle as I got my head around it, but at the end of day 1 I had NME set up, mono-develop installed, and 3 classes up and running with a fps counter. Oh.

Day 2 I started adding my Layers class, which required some assets from my huge assets.swc ( swf now ). It seems imported assets have to start with a capital letter ( Something I'd discovered doing the fps counter ), argh, I'm a camel case boy, every single asset export name in every game I've ever done is lower case. It's ok, it's fine, this will pay off when I'm running O2 on mobile at 60fps without stage3D. And now it's saying under mono-develop that it all compiles fine without errors, but there's no swf to run. What now ? ( Also before that I'd seen that my simple little 3k outputted swf was 24k when built with NME, there were some additional classes being shoved in there, but that's not a worry, shit it's only day 2, there's going to be things I don't understand and the community is really lively around NME so nothing to really worry about there )

At this point my spirit was starting to break. I wasn't liking mono-develop, the swf was taking nearly as long to compile as the full blown game using the Flex compiler just by adding the assets in there, and there wasn't a swf to test even at the end of it.

Fuck this. Time to go back to FDT and HaXe, let's get that working, then look at NME after. Ah, FDT I missed you, so much quicker and the build times are stupidly fast. Copied everything back over into the HaXe project and then this line gave me an error,

mapPlayField=new BitmapData((640/32)*7,(640/32)*6,false,0);

Really ? It seems using a division in HaXe casts the number as a Float, but the BitmapData constructor expects an int, which quite rightly threw an error. It makes sense, it's logical, I get it. It needs casting as an Int. But that was the exact moment this camel's back broke. I could either plough on for the rest of the week porting O2 to HaXe, and then hope that runs out of the box with NME, with the performance improvements I'd expect, or call it a day. You can guess which option won.

If this seems critical of haXe / NME, it's not meant to be. They're both as sexy as you like, it's more a combination of things. Losing my workflow, a lack of patience, and just the vast scope of porting a project as huge as O2. I've got an upcoming client project which targets Android ( I may be an indie, but an indie who needs to afford food ) and I'm going to use NME for that, it's a perfect way to test it and I'm glad I've done this ground work, it wasn't two wasted days, but when it comes to porting a large existing project I think it's not feasible until you've got a lot more experience of working with it under your belt.

Squize.

PS. Thanks to all the guys who helped me via Twitter, wow, Team HaXe / NME are like Amiga owners in their love of the platform.