Waves In Waves

For reasons of health, both my own and Mrs B’s, this year has been a year of scant development. It has, unfortunately, been one of those years when you’re focused on getting by not doing things. Luckily (and happily) around a month or so back, the cloud began to lift. It seemed as good a time as ever to say yes to Rob Hale (of Squid In A Box) when he asked would I be so kind as to do a bit of work on the challenge mode in Waves.

After all, if you’ve barely coded a thing for a year, anything that gets you back into the swing of things is good – more so when it’s a game you’ve already had a glance at and loved to bits. It’d be rude not to.

And so, it came to pass. The challenge mode in Waves is, for the most part, stuff wot I put down onto the page. A few minor tweaks and correcting my UDK-related idiocy from Rob and of course, all the hard work in actually making the game fucking work and stuff too but shhhh. Shhh now. Yes, there’s a bit of me in Waves. I think it’s my left leg.

The challenge mode is a simple conceit – 30 second rounds wherein you have to score as much as possible within a given time to earn a star rating. Nothing totally out there, then. It’s like Angry Birds but without birds, or angry things. Or anything to do with Angry Birds. Just like that. One small crash course in using the bits of Kismet I’d need to know about later and hey ho, off we went.

Sort of.

Initially, it was a week or so before Waves was due to go on show at the Eurogamer Expo and the aim was to have the challenge levels ready for the Expo. This didn’t happen. The first week I’d spent staring at the levels Rob had left in place and not feeling a thing. They were things in a game. Compared to how beautifully the rest of Waves is designed, the bits and bobs of the challenge stages in place felt inconsequential, without purpose and more crucially, without fun. So I fiddled but hit that thing where you’re working with someone elses stuff, the point where you’re too scared to really go in and fuck with it. It’s not mine, what if I break it? And so a week passed with little of note. I tinkered, I fiddled but nothing was emerging. Just more stuff like the stuff that was there. I was devoid of inspiration.

I’d asked Rob to bang me up a small script to let me pinpoint the enemy positions in a way I was more used to doing. Essentially, I was asking for something to make things a bit more SYNSO. Rob obliged but y’know, I’ve already wrote SYNSO. Twice and a half times over. Why would I want to do it again in someone else’s game? Ah yeah, comfort zones. Fuck comfort zones, they’re rubbish. That didn’t help.

Wall meet head. Head meet wall. Rob meet Rob. It’s time for a talk. And a video. Everyone likes videos. When stuck, go and see how someone else does things.

It hadn’t occurred to me that the challenge segment of Waves was originally designed as a riff on Sequence from Geometry Wars:RE2. Quite possibly because I tended to avoid it like the plague. I did not and still do not especially like Sequence in Geometry Wars. To make matters worse, my memory of what Sequence is and what Sequence really is seemed to be more than a little out of whack. I recalled it as being more razor sharp, more precise than it is. Being made to sit down and watch a video of it I realised just how loose and faffy it was. Now I remembered why I didn’t like it. I don’t really do faffy. I hate faffy.

And I always write games better when I’m fueled by some sort of vivid and intense detest. It’s no secret that War Twat came about because of my detest of the way Everyday Shooter treats the player with its unlock system (one that now seems to be far more the norm than the outlier, sadly), I’m not sure if I’ve mentioned before how much of Squid Harder was in response to the random fucking spawns in Geometry Wars 2:Waves irritating the fuck out of me and trying to design a solution I’d be happy with but if you didn’t know before, you know now.

The War on faff begins here. Now. Right this moment. Sequence is fucking going down. Bring it, you geometric bastard. Bring it on.

I should probably turn the 360 on and play Sequence again, thinks I. Know your enemy. If you want to defeat your enemy, play his game and all that jazz. No. Fuck that. I don’t want to play it. I hate it, remember? I watch the rubbish low res video of the first stage of Sequence once more and look at it. Just look at it. It’s horrible. Evil. Wicked. I never even want to see that much again. It disgusts me to the core.

I start pacing. Mrs B and the cats don’t like it when I pace. It means things are happening in my head. It also means I’m not looking where I’m going and any second now there’ll be a squeal from the floor. I’m thinking, Mr Kitten. Hush. Don’t look at me like that, Mr Kitten. This is videogames, Mr Kitten. If you had opposable thumbs, you’d understand. This is important thinking. A plan is forming. Here comes the plan, Mr Kitten. Watch out world and watch out Mr Kitten.

I sit down. I open Kismet. I’m ready to go. Shit, I don’t know what any of these things do. Fuck.

I’ve got a screen and it’s filled with the names of the enemies. They might as well all be called Bernard for all it means to me. Where’s “the yellow one that’s sort of like irradiated spunk?”, which one is the avoid-y one that no-one ever likes in games and why isn’t it labelled “the avoid-y one that no-one ever likes in games”?

Unlike in Geometry Wars where (almost) every enemy presents a threat when used in isolation, the enemies in Waves prefer to work in unison. Strength in style and strength in numbers. One chasey thing on its own you can take down without breaking a sweat, one chasey thing plus one spready thing plus one of those things that runs into you at high speed is where the tension lies. I’ve got 30 seconds per wave, I need that tension fast.

I throw things onto the screen, test, adjust, test, adjust in quick succession. Let’s see what happens when this is on screen with that and that is on screen with that other thing. Shortly after, I have notes scribbled of what enemies work best with what. Fuck me, I’m sketching out a structure. This is going to work.

I’m going to divide the challenge stages into blocks of five. Within each block, there’ll be a loose theme to how I structure the stages:

With the exception of the boss stage, they won’t necessarily appear in that order but that’s the list of themes I’ll work to. Arc will be based around spawning enemies in arcs because arcs are pretty and because I can, Chaos would be the “break” stage that lacks a tight structure so that the player can grab a moment, circles would see enemies spawning around the player ever closer, constantly putting the pressure on and the virus stages are there for people to show how much they can up their score in 30 seconds. The boss stage, I’d hope, is pretty self explanatory.

I crack on, within a couple of days I’ve got the first block of five down and fired over to Rob. I wait for a response. I know he’ll think they’re incredible. They’re mine. How could they be anything but? I sit, Steam chat window open waiting for the praise to come gushing all over me.

“They’re too difficult”

Oh yeah, well. So are you. You’re too difficult. Your mum is too difficult and so is your cat. But not my cat, my cat is brilliant. And easy. Yeah.

Arse.

Of course, Rob is right. It’s the eternal curse. You spend days, hours and sometimes months working on things and you design, far too often, to your own level. “I can cruise through that just fine” becomes a baseline and you assume that hey, if I can do it, anyone else can. It’s an easy trap to fall into and here, once again, I’d managed to go head first.

Days spent playing with the systems Rob had put in place were days spent becoming familiar with how everything worked. Add/test/repeat for hours on end blinded me to the brutality of what I was building and contrary to what some people will tell you, hard is not necessarily good. Mostly, hard is just hard.

I needed to rethink. I needed time. Time I didn’t have. The deadline for the expo loomed and I’d spent half of my time trying running in the wrong direction and the other half building something that’s too hard to play for most of humanity. Luckily, out the blue a message popped up.

“I’ve decided to leave the challenges out of the Expo build”

Off. The. Hook. A sigh of relief knowing that for a week, Waves will be wowing and amazing the crowds at London and I can sit at home fiddling with the tiny bit of its innards I’ve been charged with, pretty much pressure free.

For once, I use the time wisely. I spend time working out ways of scaling the difficulty down and still keeping the challenges at a level that engages me. I make lists of the most brutal enemy combinations, not so I can include them but so I know not to include them. This plan goes awry when I write the shopping list on the back and throw it in the bin after a trip to the butchers. Luckily I have a memory, flaky as it is and scrape by without it. The list that is. Not my memory. Wait, where was I?

I spend ages testing how many enemies of each type I can add. Instead of using my previous levels as a baseline, I treat them as a ceiling. They’re now the last 5 levels you’ll face in challenge mode.

As well as the enemy combinations, I can base the difficulty around how hard it is to “5 star” a stage. The earlier the stage, the easier the target.

I work downwards. From the difficult final 5, I work on the “slightly less difficult 11-15″ next. Once I’ve got 11-15 playing great and flowing nicely into 16-20, I start work on 6-10. The final 5, however, take me far longer to put together. Because making hard games is easy. Making easy games is hard. Resisting the urge to splatter the entire screen with enemies because I like the shiny neon explosions is the hardest.

And I’m done. The time has come to fire it over, to send over the comparatively tiny amount of work I’ve done over to the maker and master.

I wait.

Then I wait some more.

I fuck off and go and get a brew. Did I ever mention I don’t like waiting around? I get twitchy. Tea. Now.

I sit back down.

And wait some more. Whilst drinking tea, so that’s not too bad all told.

“These challenge levels are awesome”

Naturally, I already knew this but it’s always nice to have other people point it out. There’s no point being fucking brilliant at something if no-one is around to tell you you’re fucking brilliant, is there?

“They’re a bit easy to 5 star though”

Oh. Hah.

“And there’s a bug where you clear the enemies from the screen and the challenge is marked as completed”

Oh. Hah hah.

You can still be brilliant whilst making mistakes though, yeah? That’s how it works, isn’t it? Damn you, universe.

Of course, both of these are relatively easy tweaks and Rob amends them accordingly, saving me from having to be any less brilliant for the next half hour. I get to drink my tea and bask in the glory, knowing full well that I’ve won the war. I’ve made waves in waves and they’re brilliant waves by a brilliant person. I spill my tea over myself, the cat bites my leg and I settle down for a night of zombie slaughter with friends as usual.

You can find out just how brilliant I am when Rob releases Waves on his own site and Steam very soon. Whilst you wait, do try the demo – it may not have the challenge mode but you’ll get a taster of how slick and sexy the whole package is. Even if I didn’t have a tiny hand in one small part of the game, I’d recommend it. It’s ace. Rob’s done such a lovely job on it that I’m (flouncy dramatic flourishes aside) super proud to have been able to contribute in some small way towards it.

It’s been a pleasure.