Mobile Game Development: learn your weaknesses and strive for consistent quality in all areas

Having taking a few iOS projects from conception to release on the Apple Apple Store, I’m starting to discover patterns in how I go through the development process. I plan to use this information to tune how I handle future projects, resulting in efficiency improvements as well as a higher quality result, hopefully leading to a larger user count.

I recently became more aware of the stages I go through in a typical project. I start development in what I would call a “creative” stage, where I am thinking of new ideas and enjoying the implementation process, as well as the iterative design that goes along with that. At some point when the project far along enough, I start to feel the need to just release something – what I’ll call the “get it done” stage.  I think this stems from my fear that other things will come up in my life and not have time to finish the project, or that I’ll just get bored of it and quit partway through, similar to why I would be hesitant to start reading a long novel.

The “get it done” stage is dangerous because the remaining tasks are done quickly, with lower quality than things done in the “creative” stage. For example, I usually create my app’s icons near the end of the project, and rush to just get something that looks reasonable enough. This is a bad idea since an icon is an extremely important part of the overall marketing presence of an app, and some people have even claimed changing only a game’s icon resulted in a major change in the download rate. Another example of this is creating a tutorial, as well as general visual polish.

For my next project, I’m going to try to get myself to think more long-term, and not jump into the “get it done” stage until the product is nearly ready to be released with high all-around high quality. It may be appropriate to rush to the finish line if there is a hard release date you are aiming for, for example to coincide with the release with a new OS version. But in cases where no such deadline exists, there isn’t much value in pushing things.

I am not sure if it is an appropriate comparison, but this reminds me of when I used to train in running to shave time off my mile. I measured how long it took for each 1/10th of a mile, and I found I got the best result when I had a good balance between these times. As opposed to having one or two areas where I sprinted and exhausted all my energy, a consistent good speed gave the best result. I feel that app development is similar, in that a consistent push through all areas is the best way to get a well-rounded product.

If I feel like I am too busy to make proper progress on a hobby project, rather than rushing it to release I’m going to try to just take a break. Odds are that I can just continue where I left off, whether it is a week or a month later.

The exception to this discussion is if you are working on your first mobile app or game. In that case I think it’s OK to just get something on the store, since you’ll gain valuable knowledge going through the entire process for the first time. For your second project, you can slow down and properly plan things out using your newfound knowledge. If you are worried about a low-quality app giving you a bad reputation, you can always pull it off the store at any time.

Mobile Game Advertising: don’t be afraid to get creative

There are hundreds, if not thousands, of sites out there that can be used to advertise your mobile game, in the form of directory listings, reviews, or forum posts. If you have enough time on your hands, you can try to submit your game to as many as you can find, but in many cases you’ll be required to pay some sort of fee to be listed or to accelerate the process, which can take weeks or longer.

If you are getting into mobile game development gradually, you will likely start out by releasing your game as free. But this means that if you start reaching into your pocketbook you’ll quickly be in the red, which isn’t a great way to get motivated to continue game development as a hobby.

Besides sticking with just the free sites, you can try to get creative to avoid paying some of these fees.

To give an example, I recently received an email from one of the sites I did a free submission for my latest game, which had a long advertisement about the paid service, talking about the benefits of a premium listing plus the fact it was on sale.

The text, however, had several English grammatical mistakes or awkward parts, and while reading it I had a mini Eureka moment.

I replied back to the email, saying that I would like to help clean up the marketing text which would surely bring in more paid users. In exchange, if I could get a premium listing as compensation, that would be great.

In less than a day the admin replied back and said we have a deal. I rewrote much of the advertising text, and though I am not a specialist in this area, the end result was much better than the original one. The admin said I will get a premium listing in the next week or so. (If this doesn’t pan out I’ll be sure to let you know in a later post)

These sort of opportunities come by only once in a while, but if you keep an eye open and think creatively, you might be able to find some unique ways to further your game’s marketing efforts.

In my case, I only saved around $15, but the satisfaction from a well-handled negotiation was worth many times this. Creating a win-win situation for both parties is one of the key parts of business-minded thinking.

Mobile game poll

It’s been about a week since my latest game for the iPhone, Dokusen: The Art of Domination, has been released. I am planning on writing more details about how the game is doing in the App Store, but for now I’ll just say it is doing much better than my previous game based on the data from first few days.

In order to get some feedback on the game to help me improve it and future games I create, I’ve created a simple poll.

If you have a iPhone device, you can check out the iTunes page here and download it if interested. Or if you are not looking at this page on your mobile device, you can just search for “Dokusen” in the app store on your iPhone.

If you can’t or download want to download it that is fine too, but please consider taking the poll to explain why that is so.

You can also check out the game’s app preview video here.

Apple Connect App provides incorrect download statistics

I check my app’s download statistics on Apple’s Connect app pretty frequently, and was surprised when a weekly total for my latest app was significantly less than the daily count from a few days ago. I tried restarting Apple’s app, but got the same figures.

Starting to get concerned that the figure reported a few days ago was mistakenly inflated, I checked the download statistics on the iTunes Connect site (under the Sales and Trends area), and was relieved to find the aggregate numbers there were close to what I had seen in the app for the daily numbers. The numbers in the App Analytics page are all still zero, probably because the app has only been out a week.

I have no way to verify for sure which number is correct, but the odds are that the aggregate numbers being displayed in the Connect app. In my case, the numbers were over 10x smaller than they should be, which is a pretty serious bug.

If this doesn’t correct itself, I may send Apple a note since it’s pretty bad a bug this basic could escape unfound by testing. But maybe it only happens in a rare situation that doesn’t effect most users. Though the numbers are slightly different for my apps that have been out for several months, the difference is no more than 10 downloads.

If a company like Apple can’t provide accurate download statistics, it might be wise to consider using some 3rd-party SDK like Flurry which should give a more accurate count, plus much more information on how your app was used. I haven’t tried this myself, but am considering it eventually.

If anyone has noticed this bug please let me know.

Dokusen: The Art of Domination – Coming soon to Apple App Store [6/22/2015]

app_icon_1024

After the usual week and half wait, my latest game was approved by Apple for distribution in the App Store for iPhone. I’ve decided I’m going to release it on Jun 22, but before then I’ll give a little more information about the game.

Dokusen, which means “Dominate” in Japanese, is a casual puzzle game that was loosely based off the ancient board came of “Go”, and involves trying to capture more space than the opponent(s) through a series of turns where each player chooses to claim a square. For those who are not too familiar with Go, you can think of it as being similar to the more modern game of Othello (sometimes called Reversi). An interesting fact is that this latter game was invented by a Japanese person and was influenced heavily by Go itself.

Since this game is free, and I’m developing it as a hobby, you might wonder why I would go to the trouble of setting a release date and delaying like this, when I could deploy my app to the app store with a few clicks.

One of the reasons is because I’ve heard that games released on Sunday statistically have more downloads, though I don’t have a great amount of faith in that. All things being equal, just changing a game’s release date to a different day of the week shouldn’t change the number of downloads that much.

A bigger reason is that by giving myself a few extra days I can more carefully plan my marketing strategy, which at this point will mostly consist on advertising an several forums. I did a bit of this for my previous game, but did it with less organization and several weeks after the game had been released. I’m hoping my renewed advertising efforts, plus a greater focus on visuals and ease-of-use in the game itself, will give a little more favorable results this time.

But above all, doing this makes me feel more like I am doing Game Development with a capitol “G”, meaning it’s much more than just writing a bunch of code. By doing this I can get a little taste of what it means to truly design, implement, release, and market a game – the full end-to-end process which is similar to what real game companies do (albeit at a much smaller scale). I’m also hoping that whatever I learn with this experience will be useful down the road, regardless of what I end up doing 5 or 10 years from now.

An argument for longer app store approval wait times

If you aren’t already familiar with the process of submitting to the Apple iOS App Store, lately you have to wait an average of 11 days until your app is approved. That assumes things go well, however, and if they don’t you could end up getting rejected, resubmitting (or appealing) and spending a month or more until your app actually gets listed, if ever.

The first time I found about this I was pretty annoyed, and I imagine that many of you felt the same. This can be ever more frustrating if you know that the Android store typically takes a day (at most) for the entire process, or so I’ve heard.

After going through this process a few times, I’ve finally come to the conclusion this large wait time actually benefits both the developer and the app store, for several reasons.

First and foremost, I feel that developers who know in advance they’ll have to wait for over a week will typically strive for higher quality than with a quick review process. I’ve seen this in my (very subjective) assessment of iOS vs Android apps. Specifically, developers are more likely to test their app more thoroughly because they know any bugs they find later, no matter how small, will take quite some time to get in the hands of their customers (though I’ve heard in rare cases Apple will make exceptions to fast-track critical issues). Also, since the iOS App Store has an image of being ‘strict’ in terms of what it permits, this will make developers think twice about much of their code, and as a result use APIs more properly. [I’ll leave the matter of whether the Apple app store is actually ‘strict’ for another article]

Another way to look at it is the professionalism, and sense of really releasing a product that this long delay gives to the developer(s) involved. There’s a feeling of satisfaction that you did something significant, and maybe even had a bit of luck on your side.

Although devs have the option to keep working on their app or game while waiting for app store approval, I generally don’t recommend this. The reason is that if you get rejected, you’ll probably want to submit the same exact version you submitted previously, with one or two surgical fixes, as opposed to a version with a bunch of new things that might fail the approval process in a different way, complicating things. If you are using source control this shouldn’t be hard in theory, but merging your changes can still be an annoyance.

I find this week or two period of respite really good for my mental state – it allows me to take a break from all of the focused development I’ve been doing and clear my head. This is a good time to put on your marketing hat and begin final planning of where, how, and when you will advertise your app or game once it is released. Hopefully you submitted it with the option to wait for manual release to the store after the approval process is complete, since this allows you some freedom for when you release. This is important if you are aiming to release on a certain day of the week, for example.

Other options for this break time are to begin planning what your next set of features will be, or even what your next app or game will be if you are ready to make that jump.

With all the money Apple has, it shouldn’t be too difficult to hire a bunch more people and keep the approval process to a maximum of a day or two. But I believe  they are purposefully keeping it roughly a week (with some variation) because of these benefits.

The only real disadvantage I can see to the long app store approval (besides frustration and uncertainty) is that if you working with a customer you might have to wait longer until you get paid. For one-off projects this can be troublesome, but anyone trying to make a business dealing with apps should consider pipelining several jobs at once, so that while they are waiting for approval for one job they can be progressing on another.

On a final note, I have heard many reports of Apple being inconsistent or illogical with some of the reasons they deny apps from the store. I think some of this is because consistently training everyone is difficult, but also for budgetary reasons because being extremely strict for all apps would take even more time. I see some parallel to the IRS’s audit process, whereby a few people get a stricter review and as a result the average level of adherence to the rules increases.

Game developers: iMovie is your friend!

When I made my first iOS game, I decided I would make a proper app preview for it, since I feel it is one of the most important factors that determine whether someone decides to download it from the app store. After doing a little research about editing programs, I ended up choosing Apple’s iMovie program. The movie I ended up with was pretty simple, but good enough to show off the game’s basics.

A few weeks ago, I had a need to do some video editing for another project, and was going to try a more “proper” editor like Final Cut Pro (there is a 30 day free trial), but due to my familiarity with iMovie I ended up using it again. With my experience from the app preview, I was able to ramp up pretty quickly and do some advanced editing to splice together my film.

I had the impression that iMovie was only for basic editing, but after this project I realized it was extremely powerful. The learning curve is a bit rough initially, but you can get over it pretty fast and be editing in practically no time.

iMovie, especially for a free program, sports a surprising number of features, including transitions, titles, sound effects, independent editing of audio and video, and export to a variety of formats including Vimeo and Youtube. It also has a special mode for iOS app previews that helps you get the right filetype to Apple at submission time.

For my next iOS project (to be released shortly), I decided on using iMovie again, and in only a few hours was able to edit together something even better than my first game’s preview.

Even if you don’t have a need to create app previews for iOS games, having editing skills come in handy whenever you want to show off your game to someone else quickly, without having to actually install it on their machine. This can be great for finding investors, additional developers, or other staff to add to your project.

I’ll close with a few tips I learned using iMovie:

1) Part of the reason for the initial learning curve in iMovie is because of the way clips and movies are organized. When you first start the program, you can import clips into your library, organized by “Event”, but you have to start a new movie via File->New->Movie/Trailer/App Preview before you can actually start editing. The confusing part about the iMovie Library window is that it contains both the list of movies, plus all the clips for a certain event. If you click on a movie it will change to it, but the list of clips is global so doesn’t change.

2) iMovie doesn’t have a “Save” option which makes me uncomfortable, but if you are paranoid you can make a backup of your movie in the aforementioned library window by right clicking and clicking “Duplicate Movie”. I appreciate that the program is supposedly saving after every action, but the “Save” option would make me feel much better. It’s nice to know the undo option goes back pretty far, however.

3) In both the iMovie Library (top center) and main (bottom right) panes, you can change the clip size via the little film icon. You can also change the zoom level via a horizontal slider in the latter pane. When I use iMovie I frequently adjust these depending on what task I am working on. For example, for fine-grained editing (to sync up two scenes perfectly) I would zoom in pretty deeply.

4) A bunch of special effects can be accessed via the little icons at the top of the upper right pane (which shows the current frame). When I first used the program I had trouble finding these.

5) iOS app previews are different sizes for each device, and creating one for each device type is time consuming. You can re-scale from one size to another by creating a black image in a program like Gimp or Photoshop, and then importing it in the first frame, and making it last only 0.1 seconds. I was able to do this to scale a preview made from video recorded on a iPhone 6 to iPhone 6 Plus size, though I had to create a new project, import the black image, then cut the scenes from the iPhone 6 project to get this to work. If you actually have a physical device I would still consider recording each one separately, especially if your app/game’s UI changes significantly depending on the screen size.

Why you *really* don’t want to make your mobile game anything but free

In the last year or so, I’ve had conversations with several developers who had tried to put their game or app on a mobile store with a price of “only” 99 cents. Of course, all of them were disappointed with only a handful of downloads.

Several years ago, I had the thought that if I could make any money, even a few dollars, it would be a way to get my foot in the door of a new opportunity. After that point, all I had to do was keep working on increasing that income slowly but steadily, and eventually I could make a significant amount of profit.

But, after having a few apps on the store myself, and doing some research, I realized how wrong I was.

I don’t have the exact figure in front of me, but I’ve read several places that nowadays something like 90% or greater of mobile games are free. Frequent browsing through iOS games pretty much confirms that, especially given that the apps I usually peruse are in the “popular” categories and even many of those are free. But what is more important than the fact that most are free is that many of the free games are really well made, with top-class graphics and gameplay – clearly something not done by a lone developer.

As you might expect, many of these games use in-app purchases to try and make a profit, and some games still use advertisements, though use of ads seems to be gradually decreasing over time (I consider that a good thing). There are other free games which, surprisingly, seem to have neither of these – the only explanation is that they are just trying to get their name out there in preparation for a followup game.

As a budding mobile game developer, it’s easy to fall into the trap of thinking your game will somehow be special, and achieve great popularly while earning you thousands of dollars (at a price of only $0.99). While this might be true if you have one or more people on your team with a great deal of experience making and promoting mobile games, for the average small team or hobby developer your odds are not so great.

So let’s say you were trying to decide between making your game free, where you could potentially have a few thousand downloads, and 99 cents, where you would be lucky to have a few hundred downloads (if that). Your first instinct might be to go for the cash, but that would be a terrible waste.

The reason is that while very few small-time game developers will make much money on their first game, they have a great potential – the potential to gather precious information.

The more downloads you get, the more chances you have of getting reviews, either directly in the app store or from a third-party website. Reviews are one of those things whose value can’t be measured easily. Not only do they tell you someone cared about your game enough to write a review, but they get to the heart of what a user enjoyed, or didn’t enjoy. For my first app I only got a handful of reviews, but they were all very valuable information, and helped me drive updates.

Another advantage of free games (especially if they have no in-app purchases or ads) is that it’s much easier to advertise them on the net, or with friends. You’ll less likely to get people saying your spamming or just trying to make a quick buck from a forum post. You still need to exercise caution and tact when advertising, but it’s a little bit easier.

Also, there is a higher chance your app will go ‘viral’ if it’s free, since all that takes is one or more people who have popularity to happen to mention your game, whether in a tweet or on their blog. At $0.99 if you get only 50 downloads compared to 500 when free, your odds of going viral are 10x higher when free.

And don’t forget other sources of hard data. Now with Apple’s analytics being released to all developers you have much more data to mine, and even the most basic data can be extremely valuable if you know how to analyze it. For example, using the number of reported upgrades gives you some idea how many people actually cared enough about your game to not delete it immediately. If you have used something like Flurry in your app you have even more data from each person who downloaded your free app. Tools like this can help you determine engagement, which is a measure of how much the user was really involved when using the game. Did they make it to level 7 after 2 hours of play, or give up due to frustration in the middle of the tutorial?

The other reason the bar for paid games is so high is because there is so much competition even in the realm of free games. As a user, I can tell that there is a major psychological difference between free and 99 cents, regardless of the monetary fact it’s “only 99 cents”. I’ve only paid for a handful of iOS games, but I’d say that at least 30% of them were disappointments which I stopped using after only one or two sittings – in spite of the fact the screenshots or app preview seemed impressive. Gameplay does matter. After being fooled I’m even more hesitant to spend anything on mobile games. In spite of my annoyance with the concept of in-app purchases and the “freemium” model (especially coming from PC gaming where everything used to be one-time purchases), I have to acknowledge that using free games to get users to experience the gameplay is a key aspect of the current mobile game market.

As a final note, while it’s true that you can do aggressive advertising to help up your downloads for both the free and paid models, your improvements in the free case are bound to be more drastic. Compare spending a few days of advertising all over to increase your sales from $20 to $40, as opposed to making free downloads jump from 1000 to 2000 (with a handful more reviews).

Once you’ve reached a moderate success with the free model, you can then either decide to add in-app purchases, ads, make a ‘pro’ version (as a separate download), or just use your newfound knowledge and start over with a new project. Whichever option you choose you can leverage the popularity of your free app to drive traffic to wherever you are trying to actually make money.

iOS development: why did my downloads plummet after only a few days in the store?

For those of you dabbling in iOS apps, you may have noticed a phenomenon whereby your app’s downloads drop significantly after a few days in the app store. You might have been getting ~30 downloads a day but now it’s only 1 or two. Not only have I experienced this myself but I’ve heard the story from a few fellow developers. What gives?

I don’t have any official information on how the Apple app store works, but I’m pretty sure I have a good idea what is happening here.

If you think about how people find apps, the number one way is surely through the app store itself – browsing the latest recommended games, new games, or in some other specific category or list.

None of these categories is infinite, and even if they were, mostly people would just look at the first few on the list. So the question is where and how Apple decides to showcase new games in their store.

They could give everyone a limited time (say one week), and then remove them – but that isn’t optimal since after all Apple’s goal is to get the total number of app downloads. This is obvious for paid apps since they get a cut, but even for free apps, the more people download games on their devices the bigger their market share is. And free games always have the chance to evolve into games with in-app purchases later.

Given this motivation, what they are likely doing is giving all new applications a chance, which means listing them on some relatively high-visibility category. I’m not sure if that is the “new apps” one or something else, but the exact place doesn’t matter. They do this for approximately a week, and then based on the number of downloads, they decide to either keep that app on the list, remove it completely, or maybe even upgrade it to a list with even higher visibility.

So if you happened to get a hundred downloads in the first week, you might be wishing to at least retain that level of popularity, but Apple determines this is not nearly good enough and declares your time in the limelight is over. You could beg to Apple and say “But, if I only had a few more weeks I would gather so much more popularity!”, to which they would respond “Sorry, you had your chance.”

With a huge number of new apps coming in each week, I’d say they are forced into this sort of strategy.

There are some unanswered questions here. For example, do they ever give you another chance on a high-visibility page? What happens for updates?

I don’t know all the details, but based on my recent experience they don’t seem to be giving another full chance when there is an app update – thought it could depend on the extent of the update.

What this all translates to is that to really have your best chances for a popular app, polish the heck out of it before putting it on the app store, since your first week may be your best chance to show Apple your app really has what it takes. Even without Apple’s help, you could advertise your game various places and eventually build up a big user base, but that’s significantly more work and takes much more time.

iOS development: Don’t unknowingly limit your users

Recently I asked a friend to try Play The Field, after which he replied he could not because the game required iOS 8.3, but his iPhone was currently still at 8.1. I hadn’t realized the app was set such that “Deployment Target” (in the XCode project’s General settings under “Deployment Info”) was set to 8.3, which means that 8.3 is the minimum OS required to install the game. This was very valuable information, and in the next release I’ll change this to 8.0.

Just be careful because your program may be using Apple APIs which aren’t supported by certain older OS versions. The father back you go the more you have to worry about writing code to dynamically detect the version and use alternate APIs.

If you are new to mobile development you might take the stance of “Why don’t the users just upgrade to the latest OS?”, but that naive stance won’t help you get any more downloads. There are several reasons people might avoid an upgrade: risk avoidance of new bugs and security problems, inability to upgrade on a jailbroken device, and fear of bricking their device. You may think having a device destroyed by an upgrade is impossible, but I have had a MacBook Pro totally messed by a failed OS upgrade before.

I doubt that once I remove this restriction the downloads will come pouring in, but it’s literally a single click to fix (excluding the whole process of uploading a new version to the app store, which I would have to do eventually anyway). Creating an iPhone version was significantly more difficult, but had the same end result – reducing a reason that user’s couldn’t download the app.