Posts Tagged ‘ xbox ’

A year of being published – but what now?

InterSceptre, my first released game, launched a year ago. Since then, two more have followed it and been progressively more successful. But with Windows 8 imminent, my hobby has an uncertain future.

The figures:
Title Launch Date Total Downloads Revenue Model Revenue Gathered
InterSceptre 13/6/2011 128
(of which paid: 16)
Paid app with free trial $15.84
Rummycomb 1/12/2011 8582 Free app with advertising None
Incoming! 19/4/2012 11482 Free app with pay-to-play credits None

So basically, no money.

InterSceptre (and Ben’s game AstroSwag) had a big launch (well, we thought it was big) – plenty of coverage in popular blogs, we did a few presentations at UK WP groups, YouTube trailers etc., and the Marketplace was a lot smaller a year ago. I’m sill pretty disappointed with how it turned out.

By the time Rummycomb came out, we’d met people at Microsoft and Nokia, through people we’d met at the XNA-UK groups; they helped promote Rummycomb which immediately got it to a wider audience. Rummycomb uses AdDuplex – a cross-referring network, which at one time also offered paid ads. The idea was that people playing other games would find out about this great free puzzle game and download it too… but I’m really not sure how well that worked, if at all. From AdDuplex’s paid ads, it made less than $2 on an install base of 5000 with 200 daily players before AdDuplex closed the scheme and went referral-only. Shortly, it will re-launch using AdRotator which will mix AdDuplex referrals with Microsoft PubCentre pay-per-shown adverts.

Incoming!, along with the other games in the Leda Arcade Collection, allows you a handful of free-to-play games per month, and beyond that you need to purchase game credits (10p to play) – which Ben engineered using PayPal integration via our web site. But the credit sales have been practically non-existent. We had practically no press coverage despite us approaching the usual blogs and forums with press packs and YouTube videos. Nokia however offered to promote the LAC games in their early days; subsequently Microsoft (without our involvement) have Featured several of the LAC games in the Marketplace, which helps downloads immensely and kept us near the top of the “Free Classics” section – but the download graphs make it obvious when a promotion is underway.

Forget about the price tag

Not that I’m in this for the money, per se – money would be nice, but I spent 20 years writing games for fun that were seen only by me and my best friend. So the download counts themselves are reward enough, for now.

But since this is a hobby and not a business, there’s only so much I can afford to spend on it – and being a family man, that’s quite a low figure. I can justify the $99/year to be an App Hub developer, and a contribution to web/database hosting costs, but that’s about it really.

Which leaves me in a dilemma about where to go next.

The Platforms

The original attraction towards XNA was not Windows Phone 7. That was a nice bonus which came later. It was because this was the way that indie developers could write games for the Xbox – arguably the largest console market in early 2010 when XNA came to my attention, and perhaps still today. There didn’t seem to be any way for indies to develop for the other console platforms – that’s changed recently with PS Vita and so on, but not so much back when we started this trip.

InterSceptre started as a game for PC and Xbox, but through the XNA-UK group it seemed there was an opportunity to win an Xbox by developing a Windows Phone game – so I quickly went about seeing what it would take to adapt the half-finished game over. Not too much as it happened; but I finished too late to enter the competition (it was won by my Leda Entertainment partner Ben). InterSceptre has subsequently been launched for PC via IndieCity, and I’m still toying with an Xbox XBLIG release.

The seed, however, was sown. Mobile Gaming was on the up and up, and seemed to suit the kind of games we liked writing – cute puzzlers, simpler retro-style 2D arcade games. Neither Ben nor I were particularly inspired by first-person shooter MMORPGs which seem to dominate the console world. We felt we could fill the “5 minute rag” niche that mobile gaming offered.

However, the life expectancy of XNA, and XBLIG, is… uncertain. Microsoft have still not declared whether XNA will continue to be supported and developed for Windows 8 (we already know Silverlight will be dropped). We think we know that “legacy” applications will continue to run on Windows 8 (at least on Intel if not ARM), but it seems pointless to me to keep developing on a framework that is being deprecated and will see no further investment. Whether XBLIG will be available on the next generation Xbox remains uncertain, and how developers should code for Windows Phone 8 is also unclear. We are nervous.

A droid for all occasions

I’ve blogged before about my adventures with Android, but all problems aside it might be the easiest jump to make. Fragmentation is an utter nightmare, but I do know how to write in Java at least. And Android easily has the lowest cost-to-entry of the available options: all the development tools and SDKs are free, and it’s a one-off $25 fee to become a Google Play developer. If I’m happy never to make any money (since no-one on Android will pay for anything) then I could churn out games that the majority of phone users would actually be able to download (and maybe even play, if it happened to work on their specific hardware).

Interestingly, it looks like the Sony PlayStation world may be opening up to indie developers. Talking a look at the SDK, it’s all remarkably similar to Android with a thin veneer of Vita painted over the top.

Apple of my eye

Being an iOS developer has obvious attractions – the strongest ecosystem overall, with users who don’t mind paying for things. Learning Objective C will take some time, but I’ve learned my way into enough languages now to know that it’s no big deal; if you can code well in one you can generally code well in all of them, with the help of an “API translator” that helps you map concepts between libraries. Microsoft have helpfully published such a guide, albeit in the opposite direction.

The key barrier to entry here though is cost – although the App Store developer membership is the same as for Microsoft ($99/year), a games development quality environment will set you back at least £1000 for the MacBook, plus an iPhone (on contract?) and probably an iPad (another £500?). That’s money I just don’t have to spend on my hobby, and I’d be mad to go into this on the expectation that I could make it back from App sales. And it’s mobile-only, unless Apple have plans for a game console that they’ve not yet shared with the world. So this route is, basically, closed.


Unity is one of those develop-once, deploy-everywhere environments; and it seems you can partially code in a C#-like language. there have also been special offers; go through their online shop at the right time and you can get a free licence to develop for both Android and iOS. Fantastic!

But there’s currently no way to deploy Unity to Windows Phone 7 (Microsoft won’t allow any emulation/VM on the phone, perhaps because an emulator/VM would have to be written in native code to be fast enough, and they won’t allow that) – no big deal perhaps, but the same is true of Xbox or any of the console markets as Unity does deploy to all of the major console platforms. Unity is also heavily geared towards precisely the kind of ultra-realistic 3D games I hate playing and don’t want to write. And although the licence may be free, you still can’t deploy for iOS without running on a Mac, even though the code is common across iOS and Android (no, it doesn’t make sense to me either).


The other option in this vein is Mono, a .Net implementation that is available for both iOS and Android. Mono sounds perfect, particularly as there are several open-source libraries that help developers write C# XNA games for Mono (for example MonoGame and ExEn, although ExEn is being deprecated – hopefully to be merged into MonoGame), with the promise that the same code (with a few compiler directives) can be cross-compiled and deployed to Xbox, WP7, iOS and Android devices – and now also Sony PS Vita; the development kit for Vita is also free and is apparently based on MonoGame.

What’s not to like?

Well, the cost. Although all the SDKs and IDEs are free, the licence for the Mono deployable runtime is $999.99 per developer, per platform, per year – and of course doesn’t include the entry fee to be a developer on those platforms. If I were a games studio, it’d be an absolute no-brainer; I’d write everything in C# and deploy to all platforms (WP7 and Xbox thought Visual Studio; iOS, Android and PS Vita through Mono). But as a hobbyist, I simply can’t justify two grand a year just to say I’ve got something on the App Store and Google Play as well as in the Marketplace.

So what happens now?

We wait, and hope things will become clearer during the Microsoft developer conference next week (June 20th?). Surely the XNA developers’ fears are unfounded – the Marketplace is still chronically short of games and applications compared to the competition, and Microsoft couldn’t possibly be so daft as to cut us all off at the knees by deprecating the environment. We know games houses have been pressing for native code on Windows Phone rather than using XNA, but Microsoft seem to be progressing more towards managed code in Windows 8.

I have no fear of going back and writing C++ and DirectX games, if that’s what it means. It’ll be a shame to lose some of the syntactic sugars that C# offer, but I’ll write in whatever language and tool combination gives me the greatest audience at the least cost.

I just hope that Redmond don’t force me across to Java, Android and PlayStation.


InterSceptre, a game 20 years in the making

InterSceptre is one of Leda Entertainment‘s pet projects, and has passed through several names and guises since the early 1990s. With a PC release on IndieCity imminent, and a possible XBox 360 release before Christmas, I wanted to look back over the development of the game from the earliest 16-bit incarnations through to the Windows Phone 7 release of the game earlier this year.

This slideshow requires JavaScript.

The original concept was for a futuristic bat-and-ball tennis style game, similar to Pong  but played on the vertical rather than horizontal axis (I’d never seen Pong; I assumed that it was played up-down rather than left-right partly because that’s how tennis is televised in the UK, and partly because I thought it would be too easy to defend a narrow gap with a wide space between the bats). The aim of the game is to get a shot past your opponent’s bat and off the screen. To make this more interesting, behind each player there is a row of blocks that first have to be destroyed (by hitting the bricks with shots) and then the winning shot fired through the gap presented. In that sense, InterSceptre borrows from two other classic games – Arkanoid and Breakout.

The concept proceeded through several generations, as I returned to it from time to time as my coding abilities improved and I learned more about the capabilities of STOS Basic:

1991: The first generation of the game was called Reflekt. The graphics were crude, the sprites moved in a jerky fashion and the collision detection was highly dodgy (shots often leapt through blocks undetected). Shots travelled in straight lines and were simply blocked, not even reflected – I probably didn’t get that far into writing the game before I was distracted by the next idea!

1992: You can’t keep a good idea down. I returned to the game the following year, and Reflekt II was born. It was one of the few games I actually completed writing on the ST, although there were a few bugs and crashes (Ben eventually ironed all of these out, and released the game as Reflexor, since no-one other than the two of us had ever heard of the original Reflekt). Reflekt II had bouncing shots and bonuses but not the centre bat or the white holes.

1995: InterSceptre (ST) was a game born from the STOS Missing Link extension, specifically the new Zones concept. Previous versions of the game had few large blocks behind the players which were too easy to get a shot through. With InterSceptre, it was possible to have many more and smaller blocks thus making the gameplay harder, and also freeing up space in the programming for more features: aliens and bonuses. The game was at least partially written in 68000 Assembler (I still have the collision detection code!)

InterSceptre on the ST was highly configurable; the user could turn on or off many of the game features (inertial control, centre bats, shot bounce, directional shots, black holes…) – features that survive into the XNA version of the game. InterSceptre was almost finished, but never released, on the ST (I think work was done to release a demo version of the game as Freeware…) InterSceptre (ST) had enemies that roamed the screen, getting in the way and destorying blocks, and it had black holes that swallowed shots – but no curving them round the screen.

It’s visibly the same game as the version released 16 years later. I was using alternate transparent and opaque pixels on the logo and the in-game drop shadows to try and create the illusion of translucency that is now so easy via alpha blending. Most remarkably of all perhaps is the visual difference between this version and the original Reflekt – how far I came in such a short time… and how little I’ve changed since!

2005: After writing ‘Get In The Ring‘ in C using DirectX for a university project, and some time fiddling with a platform concept game in C, I had a go at writing InterSceptre in C++ since I saw the possibilities OO would bring to games writing. Basic gameplay (bats and balls bouncing off each other and the environment, bricks being destroyed and the game won or lost) was working well and so I started porting the graphics over from the ST version. But I didn’t really get anywhere with it, and by late 2005 the project was effectively dead. Unfortunately no screenshots of this era exist; I don’t have a .exe of this version and so it lives in limbo. However, the game graphics from this version – the player bats, the game logo – were carried over unchanged into the PC and Windows Phone version, and the core code and class structure live on.

2010: When Ben reignited the desire for games writing by introducing me to XNA, I thought where better to start than with a game where I already had the code and the graphics? The core game classes were easily translated from C++ to C# over a few hours, and the game has evolved out from there, being significantly re-factored along the way as I got to learn XNA better. It’s been a fun proving ground for 2D games development, getting away from the old STOS limitations (how many sprites, how much processing).

Alpha channel work has been a revelation. About half the programming notes I have from the early PC days are about how I would go about doing lighting and transparency effects in a 256-colour restricted palette (since moving to 16 or 24-bit graphics would at the time have been too slow). Much of that is irrelevant now since I can use alpha-blending effects to effortlessly achieve something that was previously the result of a lot of mathematical heavy lifting (converting between the RGB and HSI colour spaces in order to reset pixel intensities), some of which even made it to code (that C-based platformer I referred to earlier).

Back on the gaming trail

A lifetime ago, I used to write computer games on my Atari ST. Then I went to university, got a girlfriend, got a job, and suddenly I didn’t have the time any more. I didn’t think I missed it much; now and then I’d get a bit nostalgic, but I’d moved on.

Then last week my old sparring partner showed me XNA.

I’d played with DirectX back in the late 90s. It was a horrible blend of Windows ugliness and C syntax, full of explicit casts and pointers. I’d put a couple of demos together, wrote my Masters thesis in it, and got some crude lightsourcing going, but basically it was back to the same old problem: no time. Certainly when most of the time was spent fighting incompatible Windows APIs. Even simple things like co-ordinates were represented differently…

So when I saw Ben’s shoot-em-up, and that it was basically 50 lines of code on top of some standard boilerplate, the bug bit me again. And bit me hard. Especially when you find out that XNA offers (for a fee) the ability to upload your game to XBox 360 Marketplace, and manage the revenue share for you.

Upshot: I’ve spent the last 2 days of commuting time converting my last project from C++ into C#. Watch this space for in-game screenshots.

I’m not usually a Windows Fanboi. This time last week I was on the verge of wiping my laptop and putting Ubuntu on it. No longer.