Monthly Archives: October 2014

Why Being An iOS Developer Makes Me Feel Like Lance Armstrong

Is it because working at the cutting edge of a fast-changing new technology is a non-stop thrill ride? Like the nail-biting descent off the Col De Tourmalet, you never know quite what’s round the next corner. Just grit your teeth, hang on, and try and enjoy the ride?

Er, nope.

Then is it because you have to commit and be in there for the long haul? Plan ahead, cope with the many ups and downs, don’t let the smaller setbacks knock you off your game. Stay focussed and know that if you’ve put the groundwork in and prepared well and can hang in there your determination and persistence will win out?

Wrong again.

It’s because Lance Armstrong was a cheat.

And the excuse that he gave for cheating was pretty much that everyone else was cheating. Taking performance-enhancing drugs, though he knew it was wrong, was simply his way of being able to compete on a level playing-field – a necessary evil. The system was flawed and he was just trying to make the best of it.

Apple’s iOS AppStore is similarly flawed. It’s pretty much impossible for a small, independent developer with no marketing budget to speak of to cut through the noise – whatever the quality of their work. And as so many are resorting to the ‘performance enhancing drugs’ of app title/keyword manipulation, fake reviews, bought reviews/downloads and the like, it puts a huge amount of pressure on others to do the same just to level the playing field. The result is a dysfunctional, ugly mess that works neither for the developer nor the consumer. One huge, cancerous, cannibalistic peleton with ‘Flappy Bird’ and a few others at the head and everyone else desperately scrapping amongst themselves to get in their slipstream. Eventually it’ll disappear up its own arse like those cartoons of a snake eating its own tail.

So far I’ve drawn the line at buying reviews or downloads – when things sink to that level you may as well be spamming Viagra for a living. I have changed the title of ‘Floppy Frog‘ though. It’s now ‘Toss The Floppy Frog And Bounce Around The Spikey Lilly Pads‘. Ridiculous, I know. And I may have a ‘Flappy Bird‘ clone launching soon (just because I had it hanging around of course). If I was a pro athlete they’d probably have banned me already.

Give us a break, Apple. The drugs don’t work.


Lance Armstrong – The Bastards Must Have Spiked My Champagne!


Floppy Frog – Now Officially A Tosser

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.


An iPad Is Not A GamePad

So Don’t Treat It Like One.
Been thinking a lot about in-game controls this week as I work on a new title, and trying out a bunch of other games in the process.

It’s funny that, whilst the touchscreen is viewed as a superior interface to a mobile device (and is in most respects), as an interface to games it can be very limiting – unless you’re prepared to think outside the box a bit.

There are some games where you just want buttons to press. Platform games are a good example. You pretty much need left/right/jump as an absolute minimum and (on ‘old school’ platformers particularly) these need to be pretty accurate. The lazy approach is to treat the mobile device like a gamepad and just overlay a D-Pad type control over the touchscreen – hey, it’s not THAT different right? Wrong!

This approach just doesn’t work in my opinion. You need the tactile feel of real buttons under your thumbs/fingers to know where the controls are. You also need to be able to position your thumbs/fingers over the relevant control ‘at the ready’ without activating it, something that is impossible on a touchscreen.

The more buttons added to the pseudo-gamepad style interface the worse the problem becomes. Super Crate Box is a good example. Great game, but one that cries out for proper gamepad/keyboard control and is all but unplayable in it’s pseudo-touchscreen-gamepad iPad incarnation. So often I found myself failing, not because I made a wrong decision or didn’t react quickly enough, but because I’d hit the wrong virtual ‘button’ – the cardinal sin of any game UI.

There are other solutions though, I’m quite a fan of the ‘swipe’ as a touchscreen control method (see Floppy Frog) as it allows you to define a bunch of parameters with one single gesture (e.g. direction of jump, velocity), but swipe has it’s issues as well – not least the lag between touch and release.

Kid Tripp has a nice approach, paring down the platform game to a series of very simple controls that are activated by a short or long press on either side of the screen. In this scenario the touchscreen does kind of work like a gamepad because the controls have been so simplified. It’s a good solution. I still find it way too difficult to play, but that seems like an intentional game design decision rather than a failure of the control system.

To be continued…


Super Crate Box – The Virtual D-Pad Is A Fail


Kid Tripp – Simple Controls That Work


Floppy Frog – Much Control From One Gesture

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.