Quantcast
Channel: KEREBUS » theseus
Viewing all articles
Browse latest Browse all 10

My Year as an Amateur Android Game Developer

$
0
0

Back in February of 2010 I was coding in the offices of our customer – a semi-big Finnish company. It was interesting from a technical perspective, but the project had changed directions about half a dozen times in the past 6 months. I guess it lacked someone with some backbone to lead it according to one vision. Instead they were bending over to anyone with an opinion and we had a veritable software Frankenstein on our hands. Despite being a neat programming challenge the product itself was a mismanaged collection of random features in which my own faith was close to zero. It’s at times like these you start looking elsewhere for something that would bear more meaning.

I’ve done my own random software projects now and then and the last few years my interest had shifted to products that could make some dough. I had often taken ideas to the implementation stage, but most of these projects ended up fizzling out due to lack of motivation, becoming cute tech demos in the corner of my hard drive or in a forgotten code repository. In spite of that I was getting that urge to create something of my own again.

A MOBILE FUTURE NOT TOO DISTANT

I had read about the fortunes some lucky developers had managed to make on the AppStore, but the real gold rush seemed mostly over. On the other hand the Android platform was gaining traction and it had a serious lack of fart applications; and I reckoned those fart applications needed developers. I had a crappy old Symbian based Nokia phone and thought it might be time to get one of those new fangled smarty phones. The iPhone was only available from one operator (not mine), and developing for it required a Mac, which was an even steeper investment. This made me hop on the Android bandwagon. I ended up scouring an auctioning site for an HTC Hero and on the 28:th of February 2010, I had the winning bid on a white HTC Hero. In the beginning of March a package of used mobile electronics had arrived much to the glee of a new owner.

The horse sticker wasn't included. I had to accessorize it myself.

Soon even your grandma will be ruled by a smart phone overlord

I played around with the Hero – and compared to my Nokia it was night and day. I came to the conclusion that these smart phones were going to be our overlords very soon. We’d be fiddling with these buggers updating our tweetbooks, fouring our facesquare, reading, chatting and playing on the go. In fact I concluded the gold rush was far from over, it was merely beginning. It wouldn’t be over until most people were conducting most of their online time on their phones. I don’t know where we’re now, but if we’re not there yet I think it’s pretty safe to say we’re getting closer.

LOSING MY MOBILE DEVELOPMENT VIRGINITY

All hyped up about mobile development and with an old-new android phone I was ready to jump in. First off was the perpetual “hello world” application. This was a crucial moment in determining if I was going to develop anything at all for Android. Any hiccups in the install and setup of the sdk, or the deployment of the first application which would require hours of troubleshooting is usually a decisive motivation killer. Surprisingly I had none of those problems. It was an easy setup and painless to get that “Hello World” application running on the phone. This first hurdle was a breeze.

On the left: Snake. On the right: What puts bread and butter on the table - the three tier architecture.

I started playing around with the example projects. There was a Snake game which had a tile based graphics engine. It was simple enough for me to comprehend. I say simple enough for me comprehend due to the fact that I almost exclusively do “enterprise” software. That means a lot of backend java and some not so snazzy web-based or desktop-based front-ends. Many of my spare time projects were graphical in nature, but it paled in comparison to the pile of experience I had in database based applications and the likes.

So I picked the game engine for Snake apart and for the heck of it started making a turn based puzzle game I had played many years ago. I chose it since its logic was easy enough to be a suitable programming challenge. In a couple of evenings I had a rough playable prototype. To move my character on the screen I had to use the trackball. It moved without animation one tile at a time, and the game only had one level. It lacked a touch interface, animation, graphics and generally a lot of work, but it was playable and that really motivated me. I figured this might as well be the thing I develop since I liked the game and I had made it this far already, but it wasn’t an original game and I didn’t have a clue about licensing and such.

The Java applet of Theseus I had played years ago

SEEKING OUT THE DESIGNER

The name of the original game was Theseus and the Minotaur. I had played a java applet based version years ago during my studies. I remember stumbling upon it when I was searching for algorithms on maze generation, which I probably had some fine reason to do. I remembered that the original designer had a web page about puzzle games of some sorts and it was pretty easy to find it – Robert Abbott’s page about logic mazes. I think he had created the game back in the 80s when it was played with pen and paper.

Yesteryears gaming device

PopCap's take on Theseus and the Minotaur: Mummy Maze

The web page had a section of different implementations of Theseus. Here I noticed someone had already made the game for the iPhone among other platforms. Then it dawned on me that I hadn’t even checked if it existed for the Android. It didn’t, not by the same name at least. I googled around and turns out the game was more popularly known as the Mummy Maze. A game popularized by PopCap. I was a bit discouraged at first since I wasn’t about to be the first to rekindle this old puzzle. A lot of people had beaten me to the punch, a bunch of times, on a bunch of different platforms. The iPhone version had been a success though, and the Mummy Maze seems to have been quite successful as well. That meant that I wasn’t the only one liking the game and if I could make it for the Android I’d have a proven concept for that platform.

I e-mailed Robert on the 13:th of March and asked him if it’d be ok to create a version of Theseus on the Android. A few days later he replied that he’s been waiting for someone to bring it to the platform. We agreed on some license fee based on sales and I was happy to have the support of the original designer.

I had a successful formula and the exclusive rights for bringing it to the Android. This was promising.

YOU WILL PROBABLY FAIL

A picture of Android's thriving market back in 2010. The tumbleweed there is probably a free low quality application. Worst analogy ever but I'm not giving it up

Searching for information I found a lot of foreboding warnings of how nobody was making money on Android Market. There were no paying customers and a majority of applications were free.

It didn’t really detract me. Nobody was making money now but by the time I was about to release it might be gold rush time. Besides, most of the apps seemed of really low quality and I wouldn’t have paid for them myself. I was going to deliver something more polished than the standard fare.

THE BRUSH STROKES OF A LESSER ARTIST

iPhone Theseus. This is either some obscure reference to greek mythology or two marbles on a chessboard covered in matches

The game’s mechanics were so simple it didn’t take me too long to get the first rough prototype ready. Thus far I had been using the same tiles as in the Snake example that came with the Android SDK. For inspiration for my own graphics I was lucky to be able to sneak peek at what the iPhone developer, Jason Fieldman, had done for his iPhone version of the game. He simply had some pretty looking marbles on a checkered board, so I went the same route. It seemed smart – simple and suited for a small screen.

Theseus on the Android. Admittedly not as pretty as its iPhone sibling

I like drawing with pen and paper but doing it on a computer is not my forte. Regardless of that I downloaded a trial of Photoshop and followed an on-line tutorial on how to make a glass ball. It looked like shit. Frustrated and tired I gave up on Photoshop. A couple of days later I downloaded an Illustrator trial – and by editing some pre-made symbol of a blue marble I made the blue ball that became Theseus. I copy/pasted this and made another red one with horns representing the Minotaur. Then I made different color squares with gradients to use as the checkered board. This took me the better part of a whole evening of which most of the time went to learning Illustrator. However, I would tweak the graphics several times later on; obsessing over the right shade of blue, if it’s the correct size, if it’s too shiny or if the Minotaur should have straight or curved horns.

At some point I stopped and decided to be content with the graphics. The unnecessary gradients on the squares were probably distracting and the color choices might’ve not been the best but I didn’t see major improvements to make. I decided they were good enough for a puzzle game.

What turned out to be the darker side of graphics productions was to convert the vectors into correctly sized bitmaps, create two or three different resolutions of each image and save them as PNGs in your project’s resource folder. That’s stuff you should automate if possible; and I never did. This conversion was so tedious and boring it became the biggest hurdle to improving the graphics.

RESOLUTION INDEPENDANCE

Android phones come with different resolutions, so I made sure the graphics scaled to maximize the usage of the screen, which is why I needed different resolutions for my graphics. If I programmatically scaled an image too far away from its original dimensions it’d end up looking all jagged and crappy. In addition to that some levels were wider than taller so I wanted it to be possible to put the game in landscape mode. This would play well with my auto-scaling graphics that would just re-scale itself whenever you flipped the phone. On-screen controls seemed like they’d waste valuable screen real estate so I skipped them, which spared me having to worry about how to lay them out according to level size, resolution, portrait and landscape mode.

THE INTERFACE AND HOW TO USE IT

Without on-screen controls the game only offered trackball and touch screen swipes as input methods. This made for a more challenging learning curve since there wouldn’t be any obvious buttons to press on the screen.

Design your UI so even someone with the attention span of Homer could play it.

Whilst play testing the game with friends I got fed up with having to explain how to play the game, so I realized I had to put some effort into making a good tutorial. First I mistakenly used the “wall of text” method. I had a tutorial level where the player who walked through it got long click-through instructions. A minority of the players read them and the rest just clicked them away, ignoring any instructions, and subsequently getting stuck. To them it just seemed like a click-through EULA.

So I ended up splitting the instructions up and made sure the texts were as short as possible. That helped a bit, but what really made the difference was putting a colorful picture beside the text. I guess the pictures made the instructions more inviting.

Left: Wall of Text == Bad. Right: Short Illustrated Text == Good

KEREBUS – THE FACE OF MY IT-VENTURES

My startup advisor was an avid collector of bargain radios

I was well under way with development and was seeing light at the end of the tunnel already in April, which I happily told Robert as well. I hadn’t figured out what I had to do to be able to sell the game though. There were two big question marks. Did I need to register a company – and how was I going to sell the game; since selling applications hadn’t been enabled for Finnish citizens yet.

In Finland you better have registered a company if you were going to make over 8500€ in sales a year since you are then required to pay VAT on sales. Well I figured there might be a small chance I’d make that dough in 2010 so I concluded that I better register a company before releasing the game. I went to some informative meeting here in Helsinki on founding a company that was ok, but it didn’t answer many of my questions. I was able to reserve a one-hour session with a free startup advisor of whom I had planned to ask about contracts and taxation. The advisor was a gentleman at least 60 years old, and I guess he did these advising gigs on the side of retirement. I think in the one-hour session I had with the advisor I got 15 minutes of useful information, which was mostly about how to fill my form for founding the company. On the tax and contractual issues he couldn’t answer anything but refer me to some random lawyers, neither who seemed like experts in the subject matter. The rest of the time he spoke about his hobby of collecting radios. That’s a good 45 minutes talking about radios. They weren’t antique radios or rare in any way. They were just radios he’d gotten at a bargain price. In fact it was the bargains he was actually collecting. All in all I think I got my money’s worth from this advisor since it was free, and he got to talk about his radios.

At the end of May I paid a 70€ registration fee and submitted the form for founding my company- Kerebus.

THE INTRICACIES OF INTERNATIONAL TAX LAW

Laprohaig. Relatives, this buys you the best IT support

During learning about starting up a company I was also investigating the issues with selling the app. Since I wasn’t able to sell apps on Android Market as a Finnish citizen back then, I had to have someone outside of Finland sell it for me. Plan A was to sell the game through a friend in Germany where Google had enabled commerce. I probably spent a month on figuring out tax law and how I should bill the reseller of my game. I gathered I could look stuff up in books as well as any lawyer or accountant. I did end up uncovering most mysteries by myself but without being able to reaffirm my conclusions I felt like I was on pretty shaky ground. Finally I remembered that my uncle, whom I had helped with computer troubles in past years, was in the accounting biz. He usually gave bottles of whiskey for the computer help but I figured he owed me anyway since it wasn’t single malt. He didn’t know the answers himself but asked some of his accounting friends who emailed me the answers.

One of the peculiarities was that for the license fee I was going to pay Robert I had to pay 23% inverse VAT to the Finnish government. It all seemed bizarre and utterly demotivating. Tax law had been one of the most uninspiring subjects I had ever studied and I’m happy to forget anything I learned. I’ll refer to an Einstein quote, “Never memorize what you can look up in books”, either that or get someone else to do this soulless work for you.

Tax Law - that's why I look this awesome.

Anyway. It turned out my friend in Germany was to move back to Finland so I had to go with Plan B – sell through one of Robert’s acquaintances, Yann, in the US. This turned out to be favorable decision since the taxes in the US are more straightforward and considerably lighter compared to Finland or Germany. I could also organize for him to do the license payment straight to Robert within the US so I didn’t have to pay the inverse VAT.

THERE’S NO GAME WITHOUT LEVELS

With the boring issues of company and reselling resolved I could concentrate fully on development again. I was getting close to ready but was lacking levels. The other versions of the game had 87 levels, all of which were designed by Robert and some other guys I gathered to be some hard core puzzle aficionados. It was agreed that I could reuse the original 87 levels – this way I didn’t need to design any new levels for the initial release of the game. I had a text-based format for defining the levels. I painstakingly defined a couple of levels by writing wall coordinates by hand into a text file before deciding I had to make a level editor.

Making a level editor was easier than I thought, well worth the time put into it. I coded the first working revision of it during a 4-hour train ride from Helsinki to Vaasa. I made it a Swing/Java app. I hadn’t used Swing for some years but turned out it was just like riding a bicycle – a really ugly bicycle.

The level editor. Ugly but gets the job done.

So what I did for the original levels was to draw them in my level editor and export them into my text format. I also made a couple of my own levels so I could be among the level designers.

SIGN YOUR NAME IN E-BLOOD HERE, HERE AND HERE

For any contracts I was recommended to get a lawyer by our good startup advisors in Helsinki. So as usual I disregarded the sound advice of Mr. Bargain Radio and skimped on the lawyers. Instead I used one of Robert’s old contracts, which he had signed with some Spanish dude who had released a board game in Spain based on one of his designs. I used it as a template and just changed the names and tweaked the text to suit our situation. Afterwards I emailed this to all signing parties and defined that by replying “I AGREE” to the email they’d agree to the terms. Emails are considered binding contracts in most European countries and the U.S.

OH YEAH, I WAS SUPPOSED TO RELEASE SOME SORT OF GAME

Initially I had told Robert I’d probably release in April. If I started in mid March that means that I would’ve made it from inception to release in about a month and a half. It was now August, which meant I had blown up the original time budget by a considerable amount. The development probably took a bit longer than expected, but my insistence on founding a company and figuring out all the tax issues beforehand set me back significantly. I also had my month long summer vacation, during which I was supposed to code, but I ended up enjoying the summer instead. Good for me.

So on the 14:th of August the game got released. The release itself was fairly uneventful. Straight after release I got a pre-paid UK sim card from Ebay, luring Android market into thinking I was a UK citizen, so I could buy my own game. According to Yann (the reseller) I wasn’t even the first buyer, someone else in Massachusetts had paid top dollar to buy my game before me. The free demo version, which I released simultaneously, was getting 10, even 20 downloads a day. It was all rather exciting.

The excitement faltered when I realized the amount of downloads was always 10 to 20 a day. I couldn’t follow the exact download count of the pay version since Yann was publishing it, and I didn’t want to bother him with update requests too often. The download count on Android market stayed below the ”

GUERILLA MARKETING

To boost downloads of the game I thought I’d do some guerilla marketing. I tried mentioning the game in the comments of some blogs and game sites, but it didn’t do much except make me feel like an idiot.

“Have you checked this super puzzle on android. It’s called Theseus and the Minotaur!”

I don’t know if that’s the kind of stuff other guerilla marketers do, but to me it seemed moronic.

The alternative app markets at the time had a low number of users. SlideMe was the only one where I got any significant downloads of the ones I tried. GetJar is supposedly a bit bigger too but I managed to miss that one. I did try to submit the game to some review sites; but no one picked up on it. My negligible marketing effort didn’t have any effect as far as I could tell. I knew I had to get my app out there somehow but I preferred to do coding. I read somewhere that when a programmer has a problem he tries to solve it with more programming. I feel I fell into this category. I knew I had a marketing problem but instead I preferred to refractor my code, tweaking features X and Y, and adding feature Z. I knew this wasn’t addressing my main problem but I did it anyway.

MY TIME AS MICHAEL WINSLOW

So the game was out. I had released much later than planned but I still considered it an early release since it lacked a lot of features, like sound.

Michael Winslow of Police Academy

Sound seemed like the least important feature in a turn based puzzle game. It’s almost always the first thing I go turn off from an options menu, but a couple of people had asked for it; and I wasn’t getting much feedback. So I made sound effects that I felt would improve the user experience. Something distinct when you die, escape, wait a turn and so on. First I tried some free online sound libraries, but they didn’t have anything fitting my purposes. I ended up recording all of these sounds myself with my own voice. I used Audacity for the recording and post processing of my sound clips. A bunch of “Whee!”, “Munch munch munch” and *Click*.

Whee!

Sound did make the game experience more engaging; and I could probably add more of it and maybe even some sort of optional music in the title screen.

“JUST IN” MARKETING

It didn’t take me long to discover that updating the app lead to a spike in downloads because you got to the top of the “Just In” list. However, you could only jump up to the top if it had been a week since your last visit there. With an unknown app you’d get 90% of your downloads from being in the “Just In” list once a week. So in the early weeks and months I kept upgrading the game actively. Later on I just kept churning out a couple of levels each week.

The effect of being in the “Just In” list is of course a well know fact which the developers of Sex Tips, Trivia Games, Sexy Girl Wallpapers and so on know very well. Curiously these guys find some meaningful update to do every week in their dozens of template-based applications.

I can't wait to see what the next update to Sex Tips holds

The optimal time to be in the “Just In” list seemed to be during Sunday evenings. That time slot will give you double the amount of downloads compared to a weekday. I don’t know if this is because the Sex Tips developer and others only do releases during weekdays and don’t spam out other apps or because people like to play games on Sunday evenings. Might be both.

The amount of downloads you get by being in the “Just In” list has decreased remarkably since August 2010. I guess the competition is getting tougher.

CLOSING THE FEEDBACK LOOP

I was following the download stats daily and updating the game in response to the little feedback that I got, but I didn’t really know if my changes had any effect. The download stats don’t really give you much insight. You know that someone downloaded it but don’t know if they even played, for how long or which level they spend most time on. You don’t know if you’re retaining users. I stumbled upon Google Analytics for Android and integrated it with the game. I also noticed Flurry later on and I might’ve chosen that instead had I known about it.

Theseus Visitors 2010-12-05 to 2011-01-08

Visitor statistics. The peaks occur right after updates to the game.

You can program your app to collect events and it’ll send them back to Google Analytics at a set time interval. I was able to see which levels were the most played, what functions the players used the most (e.g. restart and hint), how many minutes or seconds they spent in the game in average, resolutions of their phones, bounce rates etc. All kinds of stats which you can overanalyze, but at least you have something to go on.

It made the game development sort of a game in itself where the aim was to improve the right numbers.

NOW A BLURB ON PAID MARKETING

At some point I got a 75€ voucher for Google AdWords so I decided to try it out to market my game. I might’ve screwed it up somehow, but targeting only android platforms and doing display and sponsored search results had no effect at all. The Cost per Click ended up being something like $5 which is way more than what the pay version costs. I suspect AdMob might be more effective (but I haven’t received a voucher for this yet *hint* *hint*).

RETENTION

I kept adding levels to get into the “Just In” list, but I had mistakenly also helped retention – i.e. the game’s ability to keep old players interested. I realized this when I read this blog post which included a video with some Angry Bird guy. He was saying they keep updating Angry Birds to keep the old players interested. I made it a point to include new levels in updates for both the pay and free versions of the game regularly since.

PUTTING CHARACTER INTO MY CHARACTERS

This angry bird made me want to make my minotaur angry too

2010 rolled into 2011 and the game hadn’t really taken off. I had developed all the features I believed would make a difference already and was mostly adding levels now. The one thing that bugged me the most was the graphics but I didn’t know in what direction to take it. Not until I was watching another video with some Angry Bird guy again explaining how they built their game around their characters. I decided that was what my game lacked the most. My characters were glassy balls and nobody could relate to such inanimate objects.

I fired up Illustrator again. This time around it wasn’t that painful to create stuff since I knew how to use the tools. I still wanted my graphics to be simple so I still went with circles for characters, but this time I gave them eyes. I also wanted the graphics to look cleaner so I got rid of some gradients, which in my opinion improved it considerably.

The minotaur got meaner and Theseus gained eyes.

Since Theseus now had eyes I added some minor sprite animations to Theseus so he could blink and fall asleep. Making changes to the graphics, which there is much more of now, is as tedious as ever.

THE STATE OF THE MINOTAUR

So it’s over half a year since the first release, and over a year since I started this venture.

The free version of the game has 17556 downloads right now, 4378 of which are still installed (24%). The pay version has been bought somewhere in between 100 and 200 times, although most certainly closer to 100. The price is at $2.55 currently.

I estimate that less than 1% of the people who download the free version will end up buying the game. 163 people have rated the free version of the game on Android Market, which is also about 1% of the people who downloaded it. Currently it has 4.23 stars out of 5.

Sleep tight

The AdMob ads in the free version, which have been there for 4 months, have yet to make $10. The total revenue of the paid version should be between 250 and 350 dollars, of which Google takes 30%, and Robert and Yann get their shares. The rest is subject to Finnish income tax. Not that it matters with these sums. But it’s safe to say that reaching the 8500€ (about $12000 currently) for which I had to register my company was a pipe dream.

The game has received 18 updates after the initial release including bug fixes, tweaks, sound, hints, animations, new graphics and 56 new levels.

This isn’t meant to detract anyone from creating apps. This might be a commercial failure but I wouldn’t have kept this up if I didn’t enjoy doing it. As for any problems you encounter you just shoot them down one at a time and go forward.

WHAT’S NEXT

What now? I don’t know. I’ll probably keep on adding levels. I have some improvement ideas but they probably won’t result in any tipping point. I could have another jab at marketing though – like writing a blog post about my experiences developing the game. It’s worth a shot.


Viewing all articles
Browse latest Browse all 10

Trending Articles