Category Archives: Game Design

Jetboard Joust DevLog #2 – Player Movement and Gameplay

Been working on the initial player movement for ‘Jetboard Joust‘ (my ‘Skateboard Joust‘ sequel) this week which, of course, also entails thinking about how the gameplay is going to work.

And the more I think about it the more I’m convinced that there’s enough ‘endless runners/jumpers/droppers/flappers/flyers/hoppers’ etc out there and I should really do something different.

So I fancy making the gameplay similar to, possibly the greatest arcade game of all time, Williams ‘Defender‘. A scrolling world that loops back on itself with a set number of enemies to destroy per level. It’s a format that doesn’t get much love nowadays but I have such strong memories of being huddled in awe around a ‘Defender‘ cabinet after going swimming on a Saturday as a kid that I think I should pay some kind of tribute to it.

Maybe the reason the format doesn’t see much action on mobile is that it requires a much greater degree of control than an ‘endless runner’. ‘Defender‘ had what seemed like a bewildering set of controls for an arcade game in it’s day. Of course, we’re all used to multi-button controllers nowadays but, as I wrote in a previous post, an iPad is most definitely NOT a gamepad so there’s no way I’m going to go down the fundamentally flawed ‘onscreen gamepad’ route.

For the mobile version I want to keep the controls as simple as possible and control everything via tapping either on the left or right of the screen. After running a few tests I think I can get this to work – tap on one side to thrust, tap and hold to reverse direction. Tap on the other side to fire (hold to repeat fire for weapons that support it).

This method means you’re almost always moving at a constant velocity left/right (unless turning) but in initial tests it seems to work OK and feel pretty intuitive. Much of the work is in getting the ‘bounce’ of the thrust action to feel right – more on that later…

Oh yeah – check out the parallax scrolling too! And I know the main character anims not working!

Dev Time: 2 days (including project setup)
Total Dev Time: approx 4.5 days

previous|next

mockup_3x
Don’t Remember Her At The Swimming Baths

mockup_3x
First Stab At Player Movement And Parallax


I Could Never Last More Than About Two Minutes

Jetboard Joust Devlog #1 – Overall Art Style

Looking back at my (frankly rather awful) ZX Spectrum title ‘Skateboard Joust‘ reminded me that there was always something pretty decent in the core gameplay concept of using your flying skateboard as a weapon when mid-jump.

As I need something else to work on whilst development on ‘Attack of Giant Jumping Man‘ slows down (hopefully temporarily) I thought about revisiting ‘Skateboard Joust‘ – almost as a penance for my sins in bringing such a dreadful game into the world into the first place! Maybe I can make a half-decent sequel and bring my gaming karma into alignment somehow?

I think I could get this mechanic to work as a simple two-button ‘endless scroller’ which might be nice for mobile and possibly even PC so I’ve been working on some visuals for the game with a view to making a prototype at least.

I’ve been going for a retro look in keeping with the game’s heritage, but rather than going for a full-on Spectrum emulation I’ve decided to keep to simple, restricted Gameboy-ish colour palette which I may change as the game progresses. The result is somewhere between Gameboy and Spectrum.

Game art is not my strongest suit and always takes me ages. I’d much rather be working with @PVBroadz but it this instance I need something I can crank out on my own. Pretty pleased with the result so far though – feel free to tell me what you think.

Dev Time: 2.5 days.

next


mockup_3x

Have I Got Any Better At Pixel Art In The Last 30 yrs?


mockup_3x

Test Animation For The Main Character


mockup_3x

Retro Revenge – Click For A Closer Look

Enter The Junkyard

Yeah, it’s been quiet around here lately. Ooh look – there’s some tumbleweed.

Funny old game this #indiedev business. The bottom’s (finally) falling out of the mobile Java market and, let’s face it, it’s practically impossible to make any worthwhile cash from the AppStore or Google Play due to the woeful lack of curation and avalanche of sub-prime content therein. It’s all about the marketing these days. Fine if you have the budget or are a marketeer. I’m not – I just want to make cool games.

So myself and @PVBroadz have changed tack a little and have formed Joystick Junkyard. We’re not ditching mobile but are developing quirky, high-quality ‘future retro’ titles with a focus on more traditional gaming platforms such as PCs and consoles as much as phones and tablets. We’ve just completed a playable alpha-demo of our first title – ‘Attack Of Giant Jumping Man‘.

Check out the Joystick Junkyard blog here – or follow us on Twitter here.


jj_logo_420w

Tomorrow’s Retro Games Today

Subterranean Nightmare – How Jet Set Willy Destroyed My Life

It’s 1984, and I am a spotty fourteen-year-old obsessed by Mathew Smith’s latest bizarre creation – Jet Set Willy. Jet Set Willy is the sequel to Manic Miner, at that point one of the most popular ZX Spectrum titles to date – and amazingly it’s a quantum leap ahead of its predecessor. There are something like 60 levels in the game, all of which can be explored in a nonlinear manner. It’s surreal, atmospheric, and feels absolutely vast.

But – there’s a problem. The original release of the game is impossible to complete due to a number of bugs. One room in particular – The Banyan Tree – has what’s obviously supposed to be an exit blocked by an impassable block. My brother and I have some limited experience tinkering around with ZX Spectrum machine code so I make a fateful decision – if you can’t beat the game fairly, hack it!

Fortunately you don’t need to be Mathew Broderick in ‘War Games‘ to figure out the Jet Set Willy level format and even a certified numpty such as myself can manage it. I start by writing a BASIC program to PEEK at every address in RAM and print out the associated ASCII character (we’d done something similar in an unsuccessful attempt to win £25k for completing Domark’s text-based adventure ‘Eureka‘*).

Scanning through the memory it becomes clear where the level data is stored as you can read the names of the various rooms. From there it’s a matter of POKE-ing randomly in the nearby memory space – then launching the game, seeing how the level has changed, and trying to figure out what exactly you’ve just done. Wait five minutes for the game to reload from cassette tape, rinse and repeat.

I can’t remember exactly how the level data was formatted but it was pretty straightforward. Each byte (I think) described four ‘blocks’ (two bits for each), with each block being either solid, passable, deadly or empty. After this was a bunch of data containing the graphics for the various blocks, the level name, and parameters describing how the enemies moved. Once I’d figured this out the excitement of designing my own levels quickly overtook the desire to complete the original game – I forgot about The Banyan Tree and wrote a level editor in BASIC aiming to somehow publish my own version.

That project eventually became ‘Subterranean Nightmare‘ – an unashamed Jet Set Willy rip-off that was published by US Gold / Americana Software in 1986. It was written from the ground up but used pretty-much the same level format as Jet Set Willy with a few additions. It contained a few bugs, a lot of bad puns, half-decent graphics and terrible sound. Critical reception was mixed and I received the princely sum of £6,000.00 for it which was a fortune back then and still a significant chunk of change now. From then on, barring a brief flirtation with graphic design and digital marketing in the 90s, it’s been game dev all the way.

There were a couple of (at the time) innovative features in Subterranean Nightmare which I’m still pleased with in retrospect. Firstly, you could save your progress to cassette tape (a feature I’d never seen on any arcade/platform type game at the time), and secondly there were a series of barriers which blocked further progress until a percentage of the game had been completed. It seems ridiculous now but games at that time were usually either completely open (like Jet Set Willy) or completely linear (like Manic Miner) – I wasn’t aware of any title that utilised this combined approach.

One supposedly ‘original’ (i.e. not completely lifted from Jet Set Willy) feature that a few reviews picked up on was the fact that you can jump on some of the enemy’s heads in order to catch a lift to higher platforms. I’m ashamed (ok, not that ashamed) to say that this was actually a particularly pernicious bug that I couldn’t be bothered to fix – deeming it much easier to write it in as a ‘feature’ instead.

Looking on the map you’ll see a level that contains a bunch of large numbers. This was my home phone number at the time and was only supposed to be accessible after completing the entire game. Unfortunately a combination of two bugs made that room just about accessible form the first screen (with some fiddling about) so my parents were inundated with phone calls from geeky kids thinking they’d won some kind of prize. Most of the calls were from Scotland for some reason.

Now, if you’ll forgive, me I must go perform a quirkafleeg…

Subterranean Nightmare On World Of Spectrum
With reviews, maps, emulator images etc

Subterranean Nightmare Walkthrough On YouTube
I can’t believe someone actually did this!

You can read about the next Spectrum game I created, ‘Skateboard Joust’, here.

* The £25k Eureka prize was eventually won, legitimately, by Mathew Woodley – a kid in my year at school.

cornflower
Jet Set Willy’s Bathroom – Where It All Started

floppy
The Banyan Tree – Bringer Of Much Pain & Sorrow

floppy
Bad Puns And Adolescent Search For An Arty Signature

floppy
The First Screen – The Barrier On The Left Disappears When You Collect Your First Object

subterranean-nightmare-map
The Full Subterranean Nightmare Map


Not Even I Would Have The Patience For This…


Thirty Years Later – It All Led To this(!)

Retry – Why Both Apple And Rovio ‘Could Try Harder’.

Everyone knows how difficult it is for indie devs without a massive marketing budget to get visibility on the AppStore, which is why the minimal amount of curation Apple does is so important for indies – and why it’s doubly depressing to see the “Editor’s Choice” section of the AppStore so often filled with big-budget, big-name titles. Do consumers really need to have yet another ‘Saga’ or ‘Angry Birds’ game rammed down their throats when King/Rovio’s overflowing marketing coffers are quite capable of doing that without Apple’s help? Whenever I take a look at the “Editor’s Choice” section the vast majority of it seems to consist of titles that have already been pushed at me through some other marketing channel (usually Facebook or in-app advertising).

Anyway, self-righteous moaning aside, I thought I’d give Rovio’s ‘Retry’ (which was #1 in the “Editor’s Choice” section a few days ago) a spin and see if there was enough quality there to justify it’s placement. Despite my sour-grapes cynicism and automatic distrust of big-budget apps I’m working on a pixel-art type project at the moment and the game art intrigued me if nothing else.

What a major disappointment. ‘Retry’ is a game so woefully lacking in imagination that it makes ‘Custer’s Revenge’ look like ‘Ocarina Of Time’. My real problem with ‘Retry’ though is not the paucity of original ideas within it, or that it’s a bad game (it’s not actually that bad if I’m honest). My issue with it is that the boardroom level thinking that must have given birth to it is so obvious that Rovio may as well have transcribed the meeting minutes in the App Description:

“Fellow Directors, I feel we’ve reached about level 7 of the game they call ‘Shit Creek’. People are getting bored of ‘Angry Birds’ and the shareholders are getting twitchy about all these layoffs. We need another Big Idea – something to prove “Angry Birds” wasn’t just a fluke. You all get paid enormous salaries – what have you got for me?”

“Well, that ‘Flappy Bird’ game was huge and it was made by just the one guy. Imagine if we took a concept that braindead and then threw shedloads of money at it!”

“Good idea – we wouldn’t even need shedloads of money. These mofos love that retro pixel-art shit and it’s a piece of piss to churn that stuff out. We can even copy some old SNES games!”

“Sold! We can’t use a bird though, too hard to animate. What about a plane – they’re easy to draw?”

“Genius idea – we could call it ‘Big Budget Flappy Plane’!!”

“We’re so cool. No wonder this company is worth biilions. See you soon Rovi-bros!”

I do like the art though, the art is pretty cool. And it’s not really nicked from a SNES title – it’s simple, chunky, colourful and general very appealing. And the plane control is quite nice when you get the hang of it. The main problem (and it’s a big problem) with the gameplay is that the sprite sizes and game physics are so designed that you simply can’t see far enough in front of you to react effectively to what’s coming up, making success more about memorising the levels than anything else. I guess if that’s your thing though….

Did I mention I have a ‘Flappy Bird’ clone coming out? Guilty as charged, your honour.

retry1
Retry – aka Big Budget Flappy Plane

retry2
Budget Wouldn’t Stretch To A Crash Anim Though

custer
Custer’s Revenge – Don’t Even Go There


Floppy Frog – NOT a Flappy Bird Clone, Honest

The Last Of Us: Dawn Of The Dull?

‘The Last Of Us’ has become somewhat of a video gaming sacred cow. With 90%+ review scores across the board and more awards stacked up than there are ET cartridges buried in the Nevada desert it’s been hailed as a work of genius, praised for its complex narrative and even labelled the ‘greatest video game of all time’. Edge magazine awarded it a rare 10/10 and put it at third place in their ‘best games of the (PS3/360/Wii) generation’.

Why is it then that I didn’t find it very much fun? Yes, the story was pretty good – and the voice acting certainly well above par. The environments were varied and beautifully rendered and the character animation fantastic – it’s just that as a game I found it rather, well, dull.

I know I’m not going to receive much love for this but I need to get it off my chest so here are some of the reasons why I found ‘The Last Of Us’ to be a huge disappointment…

1. Too Many Clichés
I’m not talking about narrative clichés here but videogaming ones. There were so many of these in ‘The Last Of Us’ that sometimes I thought I was back in 1996 playing some kind of Resident Evil/Tomb Raider crossover. Pick up the plank to cross the gap. Move the ladder. Give me a leg up. Push the crate (yes, seriously – crate-pushing in 2013 in the ‘best video game of all time’). Grab the floating palette thing. Then do this again, and again. These weren’t what you’d call ‘puzzles’ either – most of the time the solution was so bleeding obvious that you were just left going through the motions of carrying out the same repetitive action, this is not ‘fun’ – it’s manual labour.

2. Exposition
Always an issue when videogames try and tell a story and dealt with, largely, in the usual clunky manner in ‘The Last Of Us’. There’s a lot of cut scenes (never a good thing in my book), but what’s worse is that ‘The Last Of Us’, like ‘Resident Evil’, seems to have been set in a universe where characters feel compelled to write their life-story/darkest secrets on little notes and then leave them about the place. ‘To Whom It May Concern – Oh no, something really horrible has happened so I have stashed all my weapons in the room with the red door and written the combination for the safe in lipstick on the fridge’. You know the kind of thing. At points it’s laughably cheesy. Where the exposition does work is in the dialogue between characters as you play, the downside of this is that for this approach to work you need large chunks of the game where not much is really going on – which brings me neatly on to…

3. Environments
Yes, they’re big. Yes, they look great. But they’re static, empty, and devoid of any life or interest. ‘But wait’ I hear you say – ‘This is an eerie, post-apocalyptic landscape, there’s not supposed to be anything going on. Everyone’s either dead or hiding’. Sorry, but I don’t buy this argument. ‘Red Dead Redemption’ had significantly more expansive landscapes but somehow these always felt interesting. Maybe it was the characters and wildlife that populated them, albeit sparsely, that made them feel somehow ‘lived in’. Maybe it was the true open-world nature of the game. The environments in ‘The Last Of Us’ on the other hand felt to me like gallery pieces, something you could admire but not touch. And when you were interacting with them it was the age-old repetitive task of looking in drawers for the same-old supplies, health packs, extra ammo, yawn yawn. Whilst doing this for what felt like the 1000th time I was wondering whether if I released a game called ‘Lost Car Keys’, where you simply had to traverse a series of houses looking in drawers for your lost car keys, whether it would win any awards? Probably not.

4. Human Enemies
The human enemies in the game are basically bullet-fodder and the AI is pretty hopeless. On one hand we’re supposed too be taking this game seriously as a piece of character-driven narrative, then on the other we have Joel dispatching legions of these characterless ‘evil henchmen’ without so much as a word of dialogue or hint of remorse. This is particularly jarring at the last stage of the game as the ‘Fireflies’ are hardly portrayed as being totally ‘evil’, yet Joel dispatches them with reckless abandon. Even worse, we have enemies who can watch someone they’ve (presumably) been working with for some time get shot in the face next to them, and then return to standing still, chewing on a cigarette and talking shit two minutes later as if nothing’s happened. And as you progress, predictably, the enemies get harder not by any kind of increase in the AI but simply by an increase in their numbers and mysterious ‘bullet sponge’ ability. It doesn’t work.

5. ‘Infected’ Enemies
There are four different types in the entire game and none of them are particularly interesting so dealing with them becomes pretty repetitive pretty quickly. It pales in comparison to the plethora of enemies in Resident Evil 4 for example, let alone one of the ‘Souls’ games. You must only be about a third of the way through the game at the most before you’ve seen everything it has to offer in terms of enemies/combat – the rest is pretty much just rinse and repeat. Compared to the delicately nuanced ‘Souls’ games I found the combat mechanics in ‘The Last Of Us’ clunky, unpredictable and unsatisfying – particularly when dealing with many enemies.

Those are the key issues I had with ‘The Last Of Us’. I’m not saying it was a ‘bad’ game (I played it through to the end which is a fairly rare thing these days) – just that I don’t see it worthy of the fawning adulation that’s been heaped upon it, especially in terms of its frankly pretty tedious and uninventive gameplay. It’s the story alone that kept me opening those drawers and pushing those wooden pallets.

I should also mention that there were, undoubtedly, some awesome moments in the game. The point where you come upon the grazing giraffes was a real corker – a strangely uplifting experience – hope in a shattered world. And the story arc that begins with Ellie, alone, hunting a deer is also very effectively realised. You feel her vulnerability in that sequence, and her horror as the true nature of her new comrades is gradually revealed. It’s a pity that it ends with the ‘burning restaurant’ scene – a pseudo ‘boss fight’ which to my mind was one of the most irritating sections of the entire game. The ‘listen’ mechanic (probably the only really original gameplay feature) works very well (though it never seemed important enough to warrant ‘upgrading’) and is certainly way more immersive than the usual HUD/scanner affair.

Ah, they’ve all been evacuated. That’s why this place is so empty!


My car keys must be in here somewhere.


I’ve checked in over a hundred drawers – surely I didn’t drop them down there?


It’s OK, give him two minutes and he’ll totally forget this ever happened.


Playing as Ellie is far more interesting than playing as Joel.


Probably the most majestic moment of the game. Almost Worth opening 1,000 drawers for.


iOS Rate App URL Links In MonoGame / Xamarin

So, in the aim of trying to get a simple ‘rate me’ type link working in Floppy Frog I’ve been trawling the Internet and wading through the usual plethora of conflicting information. It really is surprising that such a simple and necessary piece of functionality isn’t better documented or supported by Apple.

Anyway, the best I could come up with is the following (using info from various sources). This should work in pretty much every version of iOS. Seems Apple did something weird with iOS 7 which they then fixed with iOS 7.1.

The ‘id’ parameter is the numeric app id which you can get from iTunes connect. The ‘Purple Software’ parameter in the second URL, whilst it looks like something that should be changed, is actually some weird Apple thing that needs to stay there. Bizarre, I know.

Note that this will NOT work in the iOS Simulator. Hope this helps someone…

using MonoTouch.Foundation;
using MonoTouch.UIKit;

public void RateApp( string id )
{
	String url;
	float iOSVersion = float.Parse(UIDevice.CurrentDevice.SystemVersion);

	if (iOSVersion >= 7.0f && iOSVersion < 7.1f)
	{
		url = "itms-apps://itunes.apple.com/app/id"+id;
	}
	else
	{
		url = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id="+id;
	}
	UIApplication.SharedApplication.OpenUrl(new NSUrl(url));
}

And just for some gratuitous search engine bait, here’s some cool Flappy Bird Videos.

Creating App Promo/Demo Videos With Adobe Premiere

One of the things I’ve had to do with Floppy Frog is create a promo video for uploading to YouTube. I’ve made many promo videos for my JavaME apps and games but these were very simple and I’ve never had to do them in a YouTube-friendly format.

I used to use iMovie for promo videos until Apple changed it from a very simple, flexible and useable tool into the pile of arcane, prescriptive and utterly useless garbage that it is now. For the last few years I’ve been using Apple’s Quicktime 7 pro which, ironically, was much more suited to task than the ‘new and improved (read ‘ruined’) iMovie.

But, Quicktime 7 Pro was not going to cut it (pun intended) for this task so I decided to try Adobe Premiere. Overall I found it a good application for the task in hand though getting the settings right was somewhat time consuming, I’ll therefore detail the process here.


1. Capturing The Video

I thought initially that I’d capture video from the iOS Simulator. Bad idea. It runs much too slowly. Next attempt was to run Floppy Frog on the iPad and capture using Reflector as an Airplay Receiver. Again, bad idea. Frame rate was OK but quality wasn’t up to scratch.

Third attempt was to run the Android version of Floppy Frog using the GenyMotion emulator and capture using the excellent Snapz Pro. Success! GenyMotion runs Floppy Frog just as fast as it would on device and Snapz Pro is a highly configurable and useable screen capture tool. It even captured the audio without a hitch. Had to purchase the full version of GenyMotion to get rid of the ‘free for personal use’ message but I don’t begrudge them that as it’s a fantastic piece of software at a reasonable price.

GenyMotion also has the benefit of being able to configure device display height/width so you can set up a virtual device that’s ideal for the video format you want to capture. In this case my video will run on YouTube at HD 1280*720. Floppy Frog is a portrait game so I wanted a device size that wouldn’t look too ‘squished’ within the HD landscape frame, therefore I set up a virtual device of 600*720 and captured at this size at 30fps which is the frame rate at which the game runs.


2. Import The Video Into Premiere

You’d expect this bit to be easy, and it is easy to simply import the captured video into Premiere. Where I ran into difficulties was that Premiere organises all video into a ‘sequence’ and setting up a ‘sequence’ that matched my video capture settings seemed impossible. All I could do was choose from a series of preset sequences and changing the preset sequence settings was not allowed for some reason. The key issue was that none of the preset sequences ran at 30fps, only 29.97 fps and when Premiere attempted to match my 30fps captured video to the 29.97 sequence settings I was getting horrible interlacing effects.

The solution was to start the Premiere project with any old sequence settings, import the captured video, then select the captured video and choose ‘New Sequence From Clip’. This creates a new sequence matching the captured video settings exactly. Only issue was my video was captured at 600*720 and I wanted a video running at 1280*720! Solution: capture a few seconds of random 1280*720 30fps video using Snapz Pro, import into Premiere, then create the sequence from this. The 600*720 video can now be dragged into this new sequence no problem and the 1280*720 capture can be deleted from the project.

Next issue (which most people probably won’t run into) is that my sound hardware runs at a 48khz sample rate whereas my video was captured at a 48khz sample rate. For some reason Premiere seems pretty flaky about converting between the two (whatever the project Audio settings) so I had to make sure my captured video was saved with the audio running at a 48khz sample rate.

3. Export The Video For YouTube

Once the video is comped together in Premiere it has to be exported at high-quality for uploaded to YouTube. I got and tweaked ‘export media’ settings from a YouTube tutorial and they might be slightly overkill quality-wise but I’ve added screenshots on the right…

4. Sit Back And Watch The Traffic Roll In

Or maybe not. But here’s the finished product anyway…

premiere_vid_youtube
Adobe Premiere YouTube Video Export Media Settings.

premiere_audio_youtube
Adobe Premiere YouTube Audio Export Media Settings.

Floppy Frog – Don’t Flap, Hop!

Recently it has become abundantly clear that the JavaME platform, from which I’ve been deriving a living for more than ten years, is no longer going to be viable platform for a mobile gaming company to support, let alone rely on for a main income stream.

In Spring this year I decided to take the plunge and port all of my library code to Xamarin/Monogame so that, going forward, I can (in theory) develop across the Android, iOS and WinPho platforms with pretty much a single codebase.

There were a number of reasons for choosing Xamarin over other cross-platform solutions such as Marmalade, but the key one was the ability to code in C# which would make the porting of my extremely large (you may read ‘bloated’) existing codebase significantly easier.

I can’t say the process has been easy – there has been much weeping and gnashing of teeth, but overall I am pleased with the Xamarin/Monogame solution. The ‘single codebase’ promise is working out in practice and I find C# a great language to work with.

My first game built ‘from the ground up’ for Monogame has just been released on the App Store and Google Play. Floppy Frog is a deliberately challenging endless jumpy platformer inspired by the likes of Frogger, Flappy Bird, Doodle Jump and Paper Toss, though without being a ‘clone’ of any of these. It’s available for free, currently monetized with AdMob ads. The game is very simple but I’m very pleased with it.

Give it a go – download for iOS or Android. Any positive reviews/ratings are of course much appreciated!