Don’t Panic

Hello there! Welcome back.

Today marks a significant milestone for me as I have just renewed my Xamarin and Apple subscriptions for another year. When I started this journey I knew it would take time to turn this into a business yet somehow I still thought I might make it within a year. This has not happened and as a result I can’t help but think that this is both expected and unexpected. It’s an indifferent feeling that I can’t quite explain as well as I would like.

The Year At a Glance

The year hasn’t been fruitless however, as I’ve learnt a lot about the process and the people. I’ve made a significant change in my life in that I shelved atStumps, a project I had been working for years and years but never quite finished. I’ve also reached out to the greater community and became involved in MakeGamesSA, a South African game development community. I seem to have also inspired two colleagues, who have also released a game each, Save a Fire Fly and AoM.



Save a Firefly

Save a FireFly

I also delved into Twitter. Now I’m not really the social media kind of guy so getting up and running wasn’t a natural thing for me.

Most importantly though, I’ve learnt some new respect for time. I’ve learnt that I really haven’t got as much time as I thought and that I need to choose carefully the things that I do with my time.

Dont Panic, It’s The Mensa Experience

The real “achievement” came totally unexpected and it took other people congratulating me before I realized it. Last week Thursday I was invited to attend a Mensa meeting with my cousin to hear a talk by Hanli Geyser about game development.


Mensa is the largest and oldest high IQ society in the world. It is a non-profit organization open to people who score at the 98th percentile or higher on a standardized, supervised IQ or other approved intelligence test

So I was excited to hear someone who clearly knows more about stuff than I do talk about game development. At midday, I received a call informing me that the speaker had cancelled at the last minute and they wanted me to replace her. In an instant my stomach turned, my heart skipped a few beats and my emotions were shouting “DONT DO IT“. “Just say no“. I was the opposite of Nike.

It took a moment for me to stop, think and breathe. I had a “DONT PANIC” moment that would have made Douglas Adams proud. I saw it written in bold red letters on a black background. Like this:

dont panic

Don’t Panic

I reminded myself that I’m on this journey to make it a success and that I won’t ever know where the road leads unless I take it. I said yes. It was one of those “yes” then fall down to the ground moaning “what did you think saying yes” moments.

I had very little time to prepare. Less than an hour in fact, which included feeding the dogs, eating something, taking a shower and oh yeah, preparing a speech! I was rushed, so I pulled out my block of sticky’s and scribbled notes on the first one, building up the story from who I am to why I chose games and then finally ending up with some of my journey. In total I had 30 sticky’s, each with just a few hints at topics on them.

At the venue, I started my evening with a Heineken. You know, because I could. I was relaxed and I had fun with it. This was “winging it” at the next level. I only made it to the 9th sticky before my time ran out and question time began. The audience was captivated and thoroughly enjoyed the topic and I ended up saying a whole lot more about a whole lot more than I thought I would. In the questions that followed I seemed to have covered most of the other sticky’s so I supposed I still ended up using most of them. It was a wonderful experience and I am ever grateful for Mensa for inviting me in the first place.

Since then, the fact that I spoke at Mensa seems to have spread like wild fire. I have people congratulating me at work, on Facebook, on Twitter and most certainly in person. I didn’t quite realize that people view it as an exclusive club at that level. Whether that is warranted or not is not for me to say, I can merely observe the reactions of those around me and be proud that I did it…

Competitions & Artificial Intelligence

Hello my friends

I started this morning with a Vida cappucino, sponsored by a colleague. It’s an unusual start because I don’t typically go out to buy coffee since I tend to make my own. After I had added a little bit of sugar and had my first taste of the rich, creamy goodness, it occurred to me that it quite simply follows the change in routine I had in the last few days.

The next 100K Challenge

Last weekend, I started splitting my time between my new game and the next Entelect R100K Challenge. I typically don’t like to jump between projects but I seem to always end up doing it. I constantly remind myself that when I do, it appears that I don’t finish what I start, yet I’m rather good at going back to finish things eventually. I’m sure that it’s a normal notion for people to think that they go back to finish, even though in reality they don’t or that so much time passes that by the time they do it is almost too late. So I suppose I need to be extra vigilant about that. I made the shift from atStumps to dedicated ‘smaller’ games as a result of the first 100K Challenge so I’m keen to actually enter one of the challenges with a proper entry and not some last minute hack. This year it’s a Pacman challenge, where your bot needs to score more points than the opponent’s bot. I’ll see if I can squeeze it in with recent events, so here’s to hoping.

Not my first last minute entry this year

In spite of my best efforts I always seem to get stuck doing things at the last minute though. I must admit it just seems a lot harder to justify the required time that I need dedicate if the deadline isn’t anywhere near the immediate future. After all, I have a wife and children and they need some of my time too. Earlier this year I entered the Hello World Open and you guessed it, I entered at the last minute. Actually, there was no other way because you had a very short window to enter the competition but I ended up not even using all of that and only actually did something the very last weekend!

[Editorial note: this little bit added because it got dropped somewhere]  The idea was simple, you had to write a bot that had to race against other cars on a ‘slot car’ track. Sounds simple, but my oh my is there a lot to it.

The competition divided the world into 3 regions, namely West, Central and East and as a South African I found myself in the Central region, competing with all of Africa and Europe. To make things really hard, you didn’t know what the qualifying race tracks would look like before hand. In addition, before each race they would randomize the traction of the tires on the track, the weather conditions as well as the engine power of you car. This meant that for every race your car had to learn everything from scratch and you had to do a lot of calculations to keep your car on the race track.

The competition then held qualifying rounds in each region separately. In each region, there would be 4 rounds of races and after each set only a certain number of teams would progress.

Round One, not getting my hopes up

Round one consisted of 856 teams and I ended up in the 181st position with 1 win, 2 second’s a third and a fourth place. Not a bad start and in fact, a better start than I anticipated. I had a bit of a look and of the South African teams, I was the only one I could find who progressed to round 2. I didn’t expect this, I thought I would bow out early. I thought that I would realize that I missed something obvious somewhere and then regret not knowing doing it right in the first place. See what I did there? I sold myself short. I think we all do that, we prepare for the worst simply to be a little detached and to avoid disappointment. We think we please each other by doing it, we don’t. We don’t risk enough and then we ask why we don’t get the results that we want.

Hello World Open Round 1

Hello World Open Round 1

Round Two, rather unexpected

So round two, which I really never planned on seeing, consisted of 203 teams. I thought, WOW, the top 203 teams would surely beat me to a pulp. Embarrass me in new ways that I’ve yet to conjure up. Now don’t take my skepticism wrong, I know I’m a good programmer. Maybe even a great one. But I’m no mathematician. I figure math out, it doesn’t come naturally to me. Like everyone else in the competition, I followed the reddit threads about it fairly closely hoping to learn something, which I never found until it was too late. What I soon discovered though, was that there was a huge amount of math involved. The turning angles, for example, is an under-damped harmonic oscillator. Say what? You try and code a car from start to finish, test it on the race tracks and also figure out math that is completely and utterly over your head. Just too much to do for so little time. My car winged it. Well not quite, my calculations were accurate to about 0.1 but that isn’t nearly enough to compete with the guys who had the calculations spot on.

Hello World Open Velocity and Turn Angle calculations

Hello World Open Mathematical Predictions

So, as I was saying.  Round two consisted of 203 teams and I ended up the 46th position with 1 win, 3 second’s and a last place. I couldn’t believe my eyes, I had made the top 50 for Europe, Middle East and Africa! I was through to the next round!

Hello World Open Round 2

Hello World Open Round 2

Round Three, completely flabbergasted

Round three was fought tooth and nail. It came down to the last race, it was close. I finished 16th with 1 win, 2 second’s and 2 third’s. I was astounded. I would never have thought that I would be able to get this far or that I would finish 16th. It showed me that it is never as clear cut as one might think. The top 12 teams went on to compete in the final round, I had just missed the cut 🙂

Hello World Open Round 3

Hello World Open Round 3


When I Come Around

Why is it so quiet in here?

Welcome back, I’d forgive you for thinking I’ve been away but looks can be deceiving. Ok, stop staring at me-you’re right; I’ve been away but it’s not what you think. I hit a roadblock, a big one.

If you build it, he will own it

I’ve not hidden the fact that I make games or that I intend to make games in my part time from my employer and they have never had a problem with it. The problem is, whatever I do belongs to them! It turns out that while you’re under the employ of someone, everything you do belongs to them if it relates in any way to what they employ you for (unless you have some sort of moonlighting clause in your contract of employment).

I’ve always thought that so long as there isn’t a conflict of interest and you do it in your own time it would be yours. Sadly this is not true. It gets worse, they own the intellectual property rights and if you job hop, there can even be legal disputes between your old and new employers! This can just get nasty…

As a result I had to make an emergency stop, dead in my tracks. I needed written permission from my employer. The verbal agreement I had with them apparently isn’t good enough.

This took time, lots of time, but that’s behind me now and the less I say about it the better.

What did we miss?

In the few months that it took to sort out, Apple has opened the games category in the South African App store!! That has to be the single biggest iOS event in South Africa since the launch of iOS! I joined a local indie development group, MakeGamesSA and I realized that I am not as unique and alone in this as I thought. There’s a bunch of really fun people doing exactly what I’m doing and the are guys out there making a living off it! This is possible! Can you see me doing the dance of good omens? Maybe it’s good that you can’t as it’s pretty embarrassing actually.

I took Zombie Apocalypse to them and the reviews were mixed but good. Some people played it for quite some time which was really positive!! In the end I was fortunate enough to be on the receiving end of some very hard, but constructive feedback. I pulled my launch, there was more work needed. I’m not trying to be perfect, but sometimes it takes someone else to tell you what you are thinking in any case before you believe it.

The hard truth

I also took the few months I couldn’t work on Zombie Apocalypse to reflect on what I had done. I spent a lot of time playing it and messing around with new ideas. I spent hours and hours looking at my code and apart from wondering if I would be able to continue I realized that I was much too focused before. Let me explain before you throw back your shoulders and go pfft. I was too close to my code, it’s as simple as that.

The best comparison I have is that it’s like a child drawing, seeing this marvelous world unfolding on the piece of paper and the parent, well the parent can only see two parallel grey lines . So Zombie Apocalypse works and it’s not bad but it’s not a game yet. It’s an engine, there are some graphics and some things to do but the fun aspect needed a lot more attention. I needed more “production” graphics. I needed more transition effects and I need to test on a Retina iPad to be sure my graphics aren’t too small.

The future is now!

That’s all folks” I covered a lot of ground and a lot of events in a very short post, please excuse me for that, I want to look forward and not spend my time looking back.

Watch this space, it’s happening!

Mind the gap

If you recall, I received a mail from a Xamarin “Customer Success Engineer” and he asked me if I needed any help, among other things. In my reply to him I explained my obstacles in releasing and I asked if he was aware of any other indie’s who had similar limitations based on locale. His reply stumped me, not because he answered any of my questions, in fact he answered none of them. His reply stumped me because he offered me a better deal on Xamarin than the one advertised on their website.

So, as I said in the beginning, I’m not over thinking anything and I’m just going where the road takes me. He probably could have answered my questions but where would the challenge be if you had all the answers to begin with, right? As far as the road and the journey took me, cash in hand was my biggest concern with what I’m doing and here he was offering to lower that burden just enough for me to actually do it.

Behind every man

I went backwards and forwards considering it and eventually my wife convinced me to take a chance, to practise what I preach so to speak. She assured me that we’d be fine and that there’s no reason why I can’t be as successful as I want to be.

I took the bait, on good faith mind you. Good faith that I would be able to port my game idea to iOS, it would run and I could sell it. I purchased Xamarin for Business. Yes, stop rolling your eyes at me young reader. I told you before, play to your strengths. Michael Jordan was a far better basketball player than a baseball player! My strengths are fairly tightly coupled to the Windows Operating system. What’s more, I work for a blue chip during my work hours and I use Windows there so it would flow more naturally if I go home and continue to use Windows.

Not only did my wife support me to buy Xamarin, she understood that I needed a Mac. Now any guy would feel his heart skip a beat at this point. Most of the time statements like “boys will be boys” and “boys and their toys” are thrown around like it is more common than the common cold. I’m lucky that my wife doesn’t do that. Not only that, but here she was encouraging me to get a Mac, so that it can stand there and look pretty and be my build server.

I’m on a spending spree

I made a few phone calls and finally settled on a price. I was as apprehensive as can be, but I did it. I bought a 13″ MacBook Pro with Retina display. The small one, not the big one. I figured that when I could afford it I could throw parallels on there and I could do Windows development like it should be done, on a Mac 🙂

I wanted to throw the Mac keyboard away. It was frustrating typing without a dedicated home, end, page up, page down or delete button. Over time though, I started getting used to it but for the most part, my Mac was a shiny little build server in the corner of my office. Pretty to look at and a gateway to iOS.

I haven’t mentioned registering as an Apple developer, because it was the easiest part of all. Since I was one in 2007, all I had to do was renew.

And we’re off…

That’s right folks. I was working on the final product. I could code it on Windows, build it on my Mac and test it on my iPhone or iPad. Things were going great. I had an occasional hiccup, but it was mostly due to integration between the PC and the Mac and followed a logical pattern, so it was easy to work around once I understood it.

But what about Android?

I had a little niggle at the back of my head and it was called Android. Xamarin offered me the same deal on iOS and Android. What if I could release on Android too? So I waited a while, thinking about it. Mulling it over properly. When a friend of mine registered on the Windows app store and Amazon to test if the same limitations applied, I made my decision.

Thanks to John I now knew I could sell through Amazon’s App store as well as the Windows App store. Before my window of opportunity elapsed I needed to buy Xamarin business for Android too. Make no mistake, the offer had an end-of-life so I had to make up my mind quickly.

So, in the same month I went from not being able to afford to go on holiday, to buying an Mac, Registering as an Apple developer and buying both Xamarin’s iOS and Android editions. I also bought a few supporting utilities and a bunch of sounds. This was getting really expensive really quickly.

My bank loved me. So much so that I’m filling in loan forms as we speak, but that’s a different story and one for another day. Hold thumbs though, will you?

This was EPIC

This was not the end of my discovery or redefinition of what I do. It was merely the beginning. I started off with a set of walls surrounding me, cutting me off from doing what I thought I could do and I’ve surpassed them. Sure, I’ve not released a single game or made a dollar but at least I could release one. Someone might just buy it and like it. Who knows. I am under no illusions that this might very well be a one way street in which I’m to gain very little, but there’s no rule that defines it to be so. This is life my friends, we’re all along for the ride.

Where am I now?

Well, I’m glad you asked. The last few weeks have been very, VERY long. I’ve hardly slept, I’ve hardly done anything but work. This isn’t totally abnormal for me, but I did more than the usual. I can assure you that having a full time, demanding job and then creating something like Zombie Apocalypse at night is no easy feat. I had to cut myself off from most of my friends and skip out on many fun times simply because I had to work after hours, every hour. Every weekend, every minute. If you are considering doing this and are not willing to part with your social life, head my warning: DON’T DO IT.

But I did it for myself and obviously, I did it for you, the gamer.

During this time I’ve learned that the most difficult thing for me was the graphics. I drew almost 2,500 sprites in Microsoft Paint, pixel by pixel. Yes, you read that, I drew it all in paint. Remember, I’m not an artist, I’m a programmer. I could easily have done it some other way, but how would I have made sure that all my graphics seem to “fit” together. That the colour schemes are the same, that the tile sizes work etc etc? In the end, I found it easier to just draw it all from scratch. It paid off I think, the cartoon-like look I went for is kind of fun and quirky.

If I can one day afford to hire a graphic artist I will. This meant that I had to spend a substantial amount of time drawing graphics. Time that could have been much better served writing code, expanding the game concepts or well, just making it more fun.

I made a purposeful and active decision not to do everything that I have planned. I have a wall filled with sticky’s and ideas that could make the game lots and lots more fun, but at this rate I need to get it into your hands so that YOU can tell me what you want and what you think. If you don’t like it, then I’ll move on to the next idea. If you like it, I’ll keep refining it. To me, this is the minimum viable product. I would love to give you more in the first go, but that’s not possible right now. Anything I do rolls into another idea and another idea. To implement these ideas I need time, support and money. I have none of those. So bear with me, this is our journey as much as it is mine.

I mentioned that I purchased some sounds for the game. Initially I used sounds that were in the creative commons domain and I have to say, there were some good quality sounds that I replaced by ones that I now own the rights to use. I still don’t know what I’m going to do about game music.

The game, well it’s almost done. Last night I added a sword and grenades so that you could have a little more options when you kill those pesky Zombies! I have a large town map and you can enter into any building you like. Buildings are a safe zone, where Zombie’s won’t go. This gives you a chance to recover your health and to change gear. Also, you can stand on the roof of certain buildings and throw grenades on the zombies below.

Watch this space, I’ll be submitting to Apple VERY soon.

In game samples while testing various weapons

In game samples while testing various weapons

Here be dragons

I am a creature of habit. Sometimes I resist change simply because of that and other times I change simply because I know I resist change. On top of that, I’m a purist, so I like getting my hands dirty and being in control. To me, this meant monogame made perfect sense, as I could build my own engine to do whatever I wanted in the way that I wanted. This strategy had served me well in my professional career so I had no reason to think it would fail this time. As I said, I’m a creature of habit.

Sure, my judgement might have been clouded and I didn’t quite spend as much time looking at other frameworks as I did monogame. It also has to be said that at this point I had already converted my ‘Battle City’ to XNA and the idea of just porting that to monogame to run it on a device just made sense. But how?

Xbox Screenshot

My ‘Battle City’ clone in action on the Xbox

Follow the breadcrumbs

Luckily they make it quite clear on the monogame website, you need Xamarin. So I promptly followed the trail of cookies that so far had led me to game development, Xbox gaming and I was on the Xamarin site, downloading their 30 day trial.

This solution, this one thing that meant I could now change my game in such a way that it could work on iOS and Android presented me with a problem. I don’t have an Android  device. This should be ok, because I have an iPad and a few iPhones that are collecting dust from years past. The irritating thing though, I had to pay to be an Apple developer and I’m not even sure I can do this.

Remember when I said I couldn’t go away on holiday because I can’t afford it, well, that’s true for paying to become an Apple developer too. I don’t have money to throw around and if I spend the money I need to be sure I have at least some chance of generating some form of revenue.

Ok, let’s move back a little, I mean, it’s $99 we’re talking about. Living in South Africa is a curse when you have to spend dollars, but it’s a blessing when you get them. That’s because of the Rand/Dollar exchange rate, which as I type is 0.098/1. So, every dollar is worth R9,80. So, $99 is a lot of money in Rands.

So I settled on Android, which I could do for free provided I could find a device to test with. Luckily for me, it just so happened that my mother had a Galaxy Tab which I could borrow for a few days.

Sailing the seven seas

At the time the mere mention of creating a game was a complete stretch for me as I wasn’t sure if I was comfortable telling anyone about it. You might be thinking I’m ashamed, but that wasn’t it. I was motivating myself and having fun but at the same time nobody would think I was doing something that mattered. I’d be ridiculed and told to do other things or spend my time better. Just this morning a colleague asked my why I’m writing a game, wasting the fact that I’m probably the best networking programmer in the country and here I am writing a game that’s not even networked! I pushed on, nonetheless and borrowed the Galaxy Tab. Ping back to Sean right here, you’re a rockstar man.

I felt completely outside of my comfort zone. This was uncharted territory for me. I was expecting to see signs of “here be dragons” all around me. I was borrowing a device, to write software for something I couldn’t afford to buy, so that I could release it on a platform I couldn’t test for.


My ‘control‘, if I could call it that, was to go back to something I knew. I knew, that if I got it working on the Android device, that I couldn’t sell my ‘Battle City’ clone. So I needed to do something different. I substituted the tank with a guy somewhat resembling Robert Trujillo from Metallica. I didn’t plan on this, but my limited graphics skills meant that was the best I could do. It was only by pure luck that I went ‘hey, that looks like Robert!’. My ‘Battle City’ clone went to what can at best be described as Pack-A-Gun. Imagine a pacman type clone where you ran around on the screen wielding a gun, shooting bad guys who are coming at you from all angles and shooting back.

This was incredibly fun on the Xbox and I slowly started drawing graphics, things like tables, chairs and pool tables. Before I knew it, I had something that resembled an office and the game looked a little better. But it lacked purpose. This was good enough to test with though. I mentioned that it was fun on the Xbox but it’s worth mentioning twice because it really was fun. But it was mindless and without purpose of any kind. Would that ever be good enough to sell a game? I didn’t think so…


He resembles Robert a bit, doesn’t he?

Curiosity killed the cat

Getting the game to run on Android was the easy part, getting the sound to work properly was an irritating mission. Eventually I just disabled the sound but the point here is I could get it working on the Android if I spent enough time on it. Don’t get me wrong, getting the audio to play is not that hard, but to control the audio and play certain things at exactly the moment you want, is a headache.

So my curiosity got the better of me. I got ahead of myself, I went to Google and started looking at what I needed to do, what process I needed to start if I wanted to release the game on the Google Play store. I wasn’t prepared for what followed. Remember my story about the Xbox and the hoops I had to jump through to get the game running on it? Remember I mentioned that as a South African I can’t take part in the Microsoft Indie Developer Programme? Guess what, I can’t sell my game on the Google Play store either.

Go to Google and search for disappointment. I’m sure by now they have added my portrait next to the word in the urban dictionaries. If not, insert whatever words of disappointment you’d like here. I could release my game, but Google didn’t have a way of paying me if I wanted to sell it.

So why sell it then? What happened to seeing where the road takes you? It’s simple, I need to buy licenses and software to make this happen. Software I can’t afford to buy as it seems I can’t afford to live these days. What’s more, I spend so much time working that unless I can generate some kind of revenue from it, it would make more sense for me to sit back, relax and just do something else. Also watch series and movies, which believe it or not I don’t do, I work. Insert any funny remark about making games and expecting to make some kind of revenue here. I get it. Odds are against me, let’s move on though.

Be the change you want to see

So this is just frustrating. We keep hearing that the old era is gone and South Africa is this changed beast, yet sometimes it still feels like we live in isolation. We’ve had the iPhone since 2007, we still can’t [legally] download games in South Africa. Jung would call us insane for expecting something different I suppose.

So let me re-iterate:

  • I can’t be a Microsoft Indie Developer because South African’s are not allowed at all
  • I can be a Google Android Indie Developer provided that my game is free
  • I can register on Apple and sell on the iOS App Store but nobody I know can buy it because no games allowed in South Africa

So those were the issues I could do nothing about. iOS was the de facto option. Thank you universe, message received loud and clear. If only that was it, but there was one more problem, I didn’t have a Mac, not even an old one. So here’s how it works, you install Xamarin on your PC (on which I plan on working) and you also install it on your Mac. Whenever you want to compile your code for iOS, the PC sends it to the Mac and the Mac has to do the work. You can’t develop for the iPhone or iPad unless you have a Mac. I didn’t want to work on the mac alone for the same reasons I dropped Objective-C and XCode in 2007, I want to play to my strengths, which happens to be Windows and C#. Sure I can work in C++ or Objective-C, but then it would take me much longer to do what I already know how to do in C#.

Crunching some numbers

So here’s how I saw it playing out financially:

  • Registered Apple Developer costs $99 anually
  • Xamarin for iOS (with Visual Studio supported) costs $999 anually
  • Graphics & Sound $???? for every game I make
  • Mac of some kind $1000+ which is probably a once off every few years

This just felt wrong. All of it. I couldn’t afford a small break away for a weekend and I was moaning at having to pay $99 I didn’t have to register as an iOS developer, yet here a few days later my only option was to spend at least $2000 just to get going! Now that’s a lot of money even before you apply the Rand/Dollar exchange rate. On top of that, I couldn’t afford a graphic artist or sound engineer so I’m going to have to pull a rabbit out of the hat.

On top of this, I can’t test on my iPhone or iPad unless I fork out all of that money.

The restaurant at the edge of my universe

Now I know what you’re thinking, there’s no such thing as a free lunch. But just think about it, if I sell my game for $1 I’m sure there’d be people moaning. Even some people I know would scrutinize me for charging anything, as software should be free and open. But even if I wanted to give it away for free, I’d still end up paying all these license fees annually, so I’m paying lots of money that I don’t have for you to play my games that I make myself, without the help of a sound or graphic artists. What’s more, I can’t really share what I do with my local community because they’re not allowed to buy it!

So why do it at all? I can’t remember how far into my 30 day Xamarin trial I was at this point, but I received a mail from a “Customer Success Engineer” at Xamarin. He was enquiring about my Xamarin trial and asked if I needed any support.

I didn’t want to reply straight away. In fact, I wasn’t sure if I wanted to reply at all. The one thing I couldn’t ignore was that the path had lead me here and there was an open end to it, if I didn’t reply I’d never know what if.

Enter the Zombie

I had a long hard look at what I was doing and after chatting with my brother-in-law and my wife, randomly decided to substitute the “bad guys” with “Zombies”. The point of the game was to have fun shooting and what’s more neutral to shoot at than zombies? I decided that if I could get the game working, with some kind of graphics, with multiple levels, on the Galaxy tab, I would reply to the mail and include screenshots.

I had no idea what that would mean, but I would do it. My leave was almost over too, so I had to do it quickly. I wasn’t sure what I was expecting, but eventually I had a working version and I replied and also included a few screenshots…

The town. The mailbox is the entry point into a building


The view once you enter a house

Hello World

a While ago I was feeling the pressure at work and needed to let off a bit of steam. I had been working hard and I just felt that the time was right to do something different. This is easier said than done as I don’t take breaks often and like most of you I suspect I don’t reward myself enough. I have been working real hard at not forcing things, to take things as they come and to see where the road takes me. So this was an opportunity to do something different.

I didn’t have anything coming up at work so I took 3 weeks off, just like that. I don’t know who was more surprised  me or my boss. Now, when I say that I certainly couldn’t afford to go on holiday I really mean it. Budgets are tight these days, but it didn’t matter to me as my wife had just started a new job couldn’t go away even she we wanted to. I’d stay home and do my thing.

The basic plan

I planned on spending my 3 weeks working on atStumps, a cricket game I have been working on since, well forever I suppose. My wife wouldn’t be shocked if I spent all my time on it as that’s what I’ve been doing for years. The roots of the game goes as far back as my mIRC scripting days as a youngster, before I knew any proper programming languages but I suppose the most concrete starting point for the current version of the game started in 2007 sometime.

I remember sitting on the train on the way home, when an email alert popped up, a local company had launched an AI challenge. Now for the initiated this is rather simple: create an ‘computer player’ for whatever game they specify and then your ‘computer player’ (or AI) competes against those of other programmers. This was it. Something that I could spend some time on and I had 3 weeks to have fun with it! I was so intrigued by this email that I missed my stop and had to get off a station later and wait for a return train. I was going to enter this competition. This was the perfect Friday, the start of my holiday.

My first working game

To test my A.I, I figured I needed to create the game, so that I could play against it. The competition was for a ‘Battle City’ type clone, so I created an engine that could play the game and a front end that could draw the world. This caught the attention of my kids, who wanted to play the game.

Now this is where pride overrides anything else. I’m a TCP/IP specialist, and it had just so happened that I had finished my low-latency TCP/IP library the day before. The challenge was on to make the game work multi-player.

By the end of the weekend, we were all playing my version of ‘Battle City’ on the local network and my kids almost enjoyed my map editor more than the game itself. This was a problem to me, as my son would be on my brother-in-law’s computer and my daughter would be on mine. We were effectively sidelined on our own PC’s!

To Xbox, or not to Xbox. Do or do not, there is no try

Then it hit me, I have an Xbox. Surely I must be able to run my game on the Xbox! If you’re still reading at this point, I guess this is where you start grinning because that has to be tough, right? Turns out that porting my ‘Battle City’ to XNA Game Studio was easy as pie. Before I knew it, my game was ready for the Xbox. But, err, the Xbox was not ready for the game.

You see, Microsoft has made it such that you can run your XNA games on your Xbox, but in order to do so, you need to install Microsoft XNA Game Studio connect on the Xbox. If you’re in the US or Europe I suppose this is a 10 second event for you, BUT, for us in South Africa, this turned into a mission of several days! See, we’re not allowed to install XNA Game Studio connect! In fact, we can’t even find it on our Xbox Market Place! It’s not available for our region!

This was strange to me, just this past April I attended Microsoft TechED in Durban. The theme was ‘Africa Rising’. So Africa is rising, but not allowed to do what is common place in the rest of the world. So how exactly should Africa rise? But this is a topic for another discussion, back on track I go.

So, it turns out, that if you are a student, you can register on Microsoft Dreamspark and then, using that registration, you can register on Xbox live and then, once you jump through all the hoops you can link the two accounts and then, after 3 days of debugging, scratching your head, giving up, trying again, giving up again, trying again, you get the picture right? Eventually, once you’re properly frustrated and can’t figure out what else to try, magically things will work and you can install XNA Game Studio Connect on your Xbox. Luckily for me, my brother-in-law is a student. From that point on, it was 10 minutes and we were running the game on the Xbox.

The standing ovation

Now if you have kids, you’ll know that look on Christmas morning when they open their presents, that awe and amazement that you can almost feel in the air. Got the picture? Right!, So showing your game off to your kids while running it on your Xbox is nothing like that. I kid you not, “oh ok” better explains their facial expressions. But I was proud. This was the best waste of 3 days I’ve ever had. It was promptly followed by whatsapp’s to friends and colleagues showing my ‘Battle City’ off on the Xbox. I didn’t get any standing ovations, but still, this was a moment to remember. It felt like I had just defeated Microsoft. Why should this be so difficult to do?

By that night, I had my computer back and could continue working, while the kids played on the Xbox. I had a long chat with my wife as it was bothering me that I had spent all this effort and I could do nothing with it. If you haven’t figured it out by now, the Microsoft Indie program is not available to South Africans, so even if I were to use this new found freedom to create something and install it on my Xbox, I can’t publish it!

Enter monogame. With monogame, you can run your XNA game on iOS and Android! Now this had me excited. Years ago, I dabbled a little with Objective-C and registered as an Apple developer to see what the fuss was about. But, being a C# guy I didn’t want to re-learn things just so that I could use it on Apple. What’s more, I couldn’t use any of my current expertise so I let it go. With Monogame, I could leverage of my skills and do something for both iOS and Android!

This was the beginning of my journey. Hello World, I see you.

[2013/08/20: I added some headings based on feedback from friend & colleague Sean Hederman]