Renaissance.io 2014 iOS Developer Conference

I had a wonderful three days at the 2014 Renaissance.io, a small grass roots conference in San Francisco for iOS app makers. The two year young conference is organized by Tim Burks, local iOS developer who also runs the Silicon Valley iOS Developers Meetup. Tim set about to make a community event for developers and designers that is for us, not for people trying to sell us stuff. Its filled with a wealth of colleagues to trade stories and ideas with and thoughtful speakers with insight and pragmatic advice to share.

Day one was titled 'Inspiration', Bill Budge entertained us with stories of Pinball Construction Set and early Mac development. The day was filled with talks about lesser know areas of iOS: spritekit, 3D, accessibility, iBooks, music. The highlight for me was hearing Savvy Apps' Ken Yarmosh describe his strategy for launching paid productivity apps. Ken reflected that his market is growing tougher due free productivity apps from venture funded companies that can iterate fast and release on multiple platforms at the same time. For Savvy Apps, the release early release often mantra we hear from the web space is a misfit for mobile, Ken emphasized that a productivity app needs to be a quality launch or else it will disappear quickly as an 'also ran'. I think that a minimum viable product approach is appropriate for the app store, but the key is that you can't ship bad software. The features you do ship had better work well and make a coherent experience.

Day two: 'Essentials' was a wonderful conference day full of advice on shipping software, avoiding pitfalls, keeping projects on track. Rob Napier gave an excellent presentation on techniques and APIs for security and encryption. His advice is very actionable via his library RNCryptor on github which you can use in both objc and on your server side in Javascript etc. Following Rob we heard from Laura Berger from the Federal Trade Commission. Laura described what the FTC does re privacy, fraud, COPPA, etc. She included specific examples of investigations of known apps and web sites to show us how we could be effected.  Following Laura was a thought provoking presentation by Prof. Shannon Vallor from Santa Clara University on Ethics for App Makers. It was an ethics 101 followed by a discussion of the hot topics for app makers today like IAPs in freemium games. Going through ethics, the FTC explaining our legal responsibilities, and seeing how to correctly use security APIs - where else can you get a top to bottom slice through issues? At which other tech conference can you get a wonderful hour of ethics education?

Still on day two, Michael Mace gave a fantastic keynote on user testing and UX design pitfalls. He introduced us to UserTesting.com, a pragmatic and affordable user testing service, and from all the user testing work he sees he drew up a list of common UX design problems. Michael described each UX problem and showed an example in a snippet from a narrated user testing video. I love talks like his that combine a high level point of view with specific examples and actionable advice. It becomes impossible for a developer or designer of an app to know how a new user will experience it, we need constant reminders that new users are going to see things differently. Michael did this masterfully. I already made two changes to Hit Tennis Multiplayer based on his advice.

Following Michael we listened to talks on project dynamics between consultant and client and developers and designers. Danielle Arvanitis shared her insights about different kinds of designers and how to tell them apart. She shared her techniques to tell if a designer is more interested in form or function, which is critical to hiring a balanced team. When interviewing, does the designer talk more about 'I' or about 'the user'. A form focused designer tends to talk about themselves making something beautiful, a function focused design tends to talk about users trying to get stuff done. Danielle says you need both, but form comes first.

Day three "Opportunities" included looks at bluetooth LE, cloud services, iOS7 design. A great session with Jeff Smith from Smule, where he laid out Smule's marketing strategies. He shared some rare data too: word of mouth distribution around 25% for Smule apps; split testing icons jumped Magic Piano from mid 20s rank to mid 10s rank.

The day three show stealer was Horace Dediu's keynote. You may know Horace's writing at asymco.com or his podcast 'The Critical Path'. His long form live presentation is something much much more than those though, he left me in awe.  Horace used complex interactive charts to tell a story about society, technology, and consumerism, by looking at US household adoption of different technologies over the last 100 years. We then pondered 'what does that story tell us about smartphones and apps?' 'what does it tell us about future technologies, society and the economy, our careers?' Horace said he rarely gets more than 45 minutes to speak, Tim scheduled him 90 minutes I think. Those 90 minutes flew by and I feel privileged to have been there. 

Did I convince you how great Renessance.io is yet, how unique and valuable the speakers talks were? If missing it fills you with regret then keep an eye out, because Tim will shortly be publishing videos of all the talks. Thanks to Tim and all the speakers. For future speakers, IMHO here's what made great talks: a high level point of view, explained with specific examples, and reinforced with actionable advice. See you at Renessance.io 2015.

 

 

Big Emoji New Release With Several Marketing Tests.

We finally updated Super Txt to iOS7, and we also renamed it 'Big Emoji'. Big Emoji is our 2 year old back burner app which makes a little money, but we kinda love the app so are unwilling to kill it despite almost never working on it. A year ago we had big plans for it and spent a bunch of iStockphoto credits that we'd use for new art packs. Never happened, but iStockphoto credits expire. Quick, spend 'em before they expire! Oh, and in iOS7 you can now paste a graphic directly into iMessage... which is at the heart of what Big Emoji is. And... we never really liked the name 'Super Txt'. 'Big Emoji' was the original name, but Apple didn't like it. Two years on and there are still a ton of (shitty) emoji apps around, so we figured it was time to give Apple a 2nd chance to approve the original name. So here we are, version 1.7 of Big Emoji, with:

  • iOS 7 build. (Not an iOS7 redesign mind you, just getting it to work!)
  • Shared directly to iMessages, and now also Facebook, Twitter, Weibo.
  • New art packs: Religion, Travel, Food, Home.
  • Can now buy all the art packs at once with a new bundle IAP. Its $5.99, which is a 30% saving over buying them one by one.
  • We threw out the invite your friends to win free emojis feature, because we never really built a proper version of it. Now its a retention mechanism - after a few days you get a local notification saying you have more free spins.

So while this started out just as a quick maintenance release and not wanting to waste our iStock credits, its a nice little experiment of a bunch of marketing tactics:

  • Name change effects ASO, will it rank higher, get more downloads?
  • Name change is better positioned for what the app actually is, will this result in more happy customers?
  • Name change is keyword stuffed with Facebook and Twitter now too!
  • Added 4 new art packs, which include stuff people have been asking for. Increase in $ per paying user? Increase in conversion?
  • The bundle saves people money, but it means someone can choose that their first purchase is $5.99 instead of 99c. Should increase $ per paying user.
  • Will people use it more now they don't have to manually paste the graphic in to iMessage? Will people start posting Big Emojis to Facebook & Twitter? (not really expecting that they will).
  • Getting the notification every few days that you have free spins to win emojis... that is supposed to increase retention. Will it? Will it affect conversion?
  • If we increase retention, will that improve our rank?
  • We also fixed the asking for a review link, which changed in iOS7. Will that get us more reviews and hence increase our rank?

iOS Crash Reports from Unity3D Games

We noticed customers complaining about crashes at launch of our Unity iOS game Hit Tennis 3. This was a problem we could not reproduce, and it lead us down a rabbit hole dealing with both ObjC and C# crashes. Read on to find out how to use iOS crash reports with Unity games, and how to get crash logs from your C#/Unityscript code too. For years now iOS and iTunes Connect have conspired to collect crash reports from real users, gather them up, let us download them from iTunes Connect, and view them in Xcode. However, this system has been very broken in Unity games. Maybe Unity didn’t think it mattered because Unity games aren’t written in ObjC, so who cares about iOS crash reports? Well we care. Our games have lots of native iOS code we’ve written, and we use a bunch of third party iOS libraries too. You know, for useful stuff like UI, analytics, configuration management, advertising. And anyway, for free Apple will gather crash logs and tell us which kinds of crashes are the most common among real customers. Who doesn't want to know that? So here is how to fix it and get your Unity iOS crash reports back…

Crash Symbolication and Dsym Files Explained

When an app crashes, iOS makes a crash log that shows the execution stack of the crashed thread so you can see what code was running when it crashed. A running program’s execution stack is a bunch of memory offset address of code for each method call along with parameter data. Programmers don’t know their code by memory addresses; we know it by source code line numbers. When the code is compiled, there are Xcode settings to include debug symbols into the app. These debug symbols enable iOS to generate a useful crash report with line numbers of the source code, instead of just a bunch of impossible to understand memory addresses. At least that’s what happens for debug builds. Stuffing the debug symbols into the build makes it bigger than it needs to be, so debug symbols get stripped from app store builds.  That means that crash logs from real users don’t have source code line numbers, they only have memory addresses, which makes them incomprehensible. Apple planned ahead for all this though. Xcode can compile with the ‘DWARF with dsym file’ setting. The dsym file is a lookup table that converts from the memory offsets to source code line numbers. Xcode stores the dysm file in the build archive, and it will automatically find the correct dysm and ‘symbolicate’ crash reports so that it shows method names and source code line numbers:

symbolication1

 

 

 

 

 

 

 

To do this you download a crash report from iTunes Connect, and then you drag and drop it into the ‘device logs’ area of the Organizer’s devices tab. It’s brilliant when it works, but it relies on your Xcode project build settings be just right.  When Unity generates the Xcode project it uses different settings that result in no useful dysm file (either no dysm file at all or a dsym file with no symbols). This means crash reports can not be symbolicated, making them useless. (As far as I can tell this is for no good reason, I think its just Unity’s mistake.) However it’s your Xcode project not Unity’s, just fix the settings right and you’ll have good builds.

symbolication2

Correct Xcode Settings for Dsym Files

Here are the Build Settings you need, courtesy of capyvara on Unity Answers. (This isn’t something you can do after the fact. To make this work you will need to submit a new build to the app store and wait for crash reports from that new build.)

  • Build Options -> Debug Information Format: "DWARF with dSYM file"
  • Deployment -> Deployment Postprocessing: Yes (hmmm, I have 'No', but it works...?)
  • Deployment -> Strip Symbols During Copy: Yes,
  • Deployment -> Strip Linked Product: Yes
  • Deployment -> Use Separate Strip: Yes (again, I actually have no).
  • Linking -> Other Linker Flags:   remove these: "-Wl,-S,-x"
  • Apple LLVM compiler - Code Generation ->  Generate Debug Symbols: Yes

symbolcation3

 

iOS Crash Reports for C# or Unityscript crashes.

For an app store build, Unity recommends using the player setting ‘Script Call Optimization: Fast but no exceptions’. With ‘fast but no exceptions’ the normal C# error handling is removed from the compiled code for performance reasons. With ‘fast but no exceptions’ if you try to dereference a null object reference in C#, instead of getting a null reference exception the game will just crash. While some would argue that you could run in ‘Slow and safe mode’ for an app store build and hence get null reference exceptions rather than crashes, that won’t really help most cases. Throwing exceptions in the middle of game logic will mean that Update loops or other parts of your game code won't be running all the way though. That just results in a broken game that limps along. Better to get crash reports you can find out about and fix. But Unity 4.1 and earlier, when the C# code crashes, Unity would shut down the app cleanly without generating a crash report. So iOS would not know there was a crash, and no crashes would be reported via iTunes Connect. This is a big problem if you are paying attention to crash reports in iTunes Connect -  what if the vast majority of game crashes are in your C# / unityscript code? By looking at iTunes Connect you would never know. You’d only know when users complaining in emails and app reviews. The problems we were dealing with were crashes during startup, so it was even harder for users to even email us… they can’t tap the ‘Contact Us’ button in the app if the app never even starts up! The good news is that Unity 4.2 fixes this, and by default if the C# code crashes then Unity will actually crash the whole app. iOS will see it and report to iTunes Connect.

So this is easy: update to Unity 4.2, and submit an update to the App Store. Note that these are still iOS crash reports, so you will see a C stack, not a C# stack. First off, its good to know you are getting crashes, iTunes Connect will tell you which kinds of crashes are most common. Second, your C# code is compiled to a native executable, so you will still see symbols you recognize from your C# or Unityscript.

Unity 4.2 has additional crash reporting features that you can choose to enable. Its possible to query from code for a previous crash the next time the game starts up, and crash logs can be sent to a third party server. However these are still iOS crash logs, not C#/unityscript crash logs. So I’m not sure what the point of that is… iOS and iTunes Connect do this anyway. I guess using a third party crash reporting service will collect more crash logs and collect them faster than Apple does, but the basic service from Apple has always be fine for us.

In Part 2 I’ll describe how we get logs from real players to figure out crashes in our C# or Unityscript code.

 

Results of Translating Hit Tennis 3

Apple has been emailing developers encouraging us to localize our apps, suggesting we 'get started' with a list of 13 languages. Coincidentally we just translated our iOS game Hit Tennis 3 to 14 languages by working with our favorite app translation specialist Tethras. Overall we've had over double downloads for a few weeks as we shot up the charts in a bunch of countries. We picked languages as a combination of markets where we already do well with IAP sales, and untapped markets we want to grow into. Hit Tennis 3 had a very successul launch internationally in English. Release 3.9 came out March 9th in Japanese, Chinese (simplified), Korean, Russian, Portuguese (Brazilian), French, Italian, Spanish, German, Dutch, Swedish, Turkish, Arabic.  We didn't yet do any promotion of the translated versions. Here are the best results, these graphs show downloads per day (iPhone and iPad), over the last 60 days.

South Korea

Previously we didn't have players in South Korea, now we're a top tennis game there. We hit #1 top free iPhone, #2 top free iPad, and went on to earn a Korean app store 'Whats Hot' editorial placement.

korea
korea

Japan

Japan has been a top performing country for Hit Tennis 2, now Hit Tennis 3 can take its place.

japan
japan

China

We're not yet making much money in China's app store,  but we're pleased to start to build some audience there. Hit Tennis 2 actually did a lot better when it was translated to simplified Chinese.

Russia

This took us by surprise, Russians love Hit Tennis and they buy IAPs too! Chasing BRIC was the right move.

Brazil

Very happy to break into Brazil. Another BRIC win.

Italy, France

Western Europe, especially Italy, France, and the UK, have always been good markets for us. Even though the english word 'Tennis' is almost the same across european languages, translating still had a great impact for us.

Others

We saw increases in more countries including Spain, Canada, Chile, Mexico, Portugal, Venezuela. We specifically translated for Sweden and Turkey where we had very modest download increases, and also Netherlands where we saw no improvement. A few other places with no improvement included Belgium, Switzerland, and Arabic speaking countries. Note however that while Hit Tennis 3.9 is in Arabic, the app name and app store description are not because the app store doesn't support them yet. Note that we can't conclude 'translation doesn't work for Belgium' or 'translation works best for Korea'. These are just the results we had at this time with this game. I think we can conclude however that translation can be awesome for downloads.

Revenues

Revenues from Hit Tennis 3 are split between IAP sales and ad publishing with Chartboost. We've seen IAP revenues grow in Russia, Korea, Japan, Europe, and small increases in many countries. USA and UK are still the biggest IAP earners for us, but with this translation release Brazil and Russia jumped way up into our IAP sales top 10. Chartboost income has seen a good upswing too. Overall income growth has been modest, and nothing like the gains in downloads in the individual country graphs above. That said, translating is ROI positive for us already.

The Strategy

We've done this before with Hit Tennis 2, it's a specific market strategy:

  • The name of the game is a familiar thing 'Tennis' so it gets instant recognition.
  • We translate the name of the game - instead of building up one brand in all languages we just want easy recognition of what the game is about in all languages.
  • 'Tennis' is actually pretty much the same in several european languages, so translating the app name isn't going to make all the difference for recognition in Europe. But its really good for China, Japan, Korea, Russia, etc.
  • Translating the name is huge for getting good search ranking in non english app stores, but it does risk reducing ranking for the english word.
  • The app store copy, screen shots, and the whole game are translated too, making the customer feel right at home and hence increasing all key metrics.
  • We're not doing localization - ie we are not being culturally sensitive to each country. (Though we did plan Hit Tennis 3 with locations and characters from around the world.) We are just translating as best we can using our app translation company Tethras. Translation can be really good value for money.
  • We're not using local publishers. This is an iOS game, and we think we know how to market using recognition, search, cross promotion, and mobile ads. Android is a different beast though, when we port we may look for local publishers.

Testing Unity Games on Android

We're porting our Unity 3D iPhone game Hit Tennis 3 to Android, so I've been learning about the wonderful world of Android fragmentation. I bought six different Android devices for testing, aiming to hit the main dimensions of variations in the Android world. Here's what I've learned, but don't forget that I'm an Android beginner. (Do yourself a favor and listen to Android expert Adam Berger on Walled Garden Weekly 15.)

Dimensions of Android

Android Version: Google publishes the Android Dashboard which explains how many people are using which version. Right now its 2.3.3+ Gingerbread at 40%, 4.0.3 Ice Cream Sandwich 30% and 4.2 Jelly Bean 23%. We'll be supporting 2.3 and up.

CPU: There a bunch of different SOCs (system-on-a-chip) used, but they all have ARM cpu cores. There are different speeds, and there are single, dual and a few quad cores, but every one supports either an armv6 or armv7 instruction set. Unity 4 for Android only supports armv7 (which is totally fine with us). Anything with an ARM11 cpu is armv6, 'Cortex-A' means armv7, and 'Snapdragon' is armv7.  Armv6 is only being sold in cheap low end phones. Its a deployment and customer support issue because you don't want people with armv6 phones downloading your Unity game and being disappointed it doesn't run.

GPU: This is a big deal to figure out, especially coming from iOS. iOS devices all use PowerVR GPUs, (Imagination Tech) but androids can sport PowerVR, Adreno (Imageon / Qualcomm), GeForce (Nvidia), or Mali (ARM). These differ in texture formats and how alpha is handled, and of course they all have different drivers and shader compilers. So far we've found that using ETC texture compression, which is supported by all Android devices, is working well for Hit Tennis.

Screen: Screens vary in resolution and size, so they also differ in pixel density. Android deals with this by defining screen density generalized size: mdpi hdpi, etc. Unity does a great job of helping code for resolution independence, but we still need to test different screen sizes for usability, and different resolutions for visual quality of both game graphics and supporting media like icons, splash screen, etc. Google mentioned at GDC that they care a lot about high end xhdpi devices like the Nexus line having great user experiences, so its important to have an xhdpi device to test on.

Our Test Devices

I figured out what devices we could buy cheaply, and be able to test the main variations on all the dimensions. My goal isn't to test every combination, but to cover all of the main dimensions of variations. Helpful sites for checking device specs are GSM Arena and Phone Arena.

The Huawei Fusion 2 is a really cheap phone, I grabbed one new at Target for $80 as a prepaid / no contract AT&T Go phone. I know it makes me sound old, but it blows my mind that $80 buys a armv7 CPU pocket computer with Android 2.3. The Fusion 2 runs Hit Tennis 3 at 60fps just great. I actually started off with the LG Optimus before realizing its an armv6 device and hence won't run Unity. On the high end I got a Google Nexus 4, which is actually an LG device. (Funny that Google's phone isn't a Motorola.) Its just $299 contract free for an xhdpi device with the latest Android 4.2 Jelly Bean. Wow. Makes iPhone 5 seem pretty expensive. To fill in the middle range and cover the other graphics chips I found some devices from ebay. This includes the Samsung Galaxy II, which is a good test case just because its one of the most popular Android phones around. For the same reason, I should probably get a Galaxy III too. We took our first baby steps on Android by publishing with Amazon to the Kindle, so we have a couple of Kindles, and we're making some changes to get the game working right on the Kindle 1. We had a shader problem there, not sure why, specific graphics driver issue is my guess, easily fixed by using a slightly different shader.

Let me close by reminding you that I'm an Android beginner, so I welcome any comments from readers with advice about which devices to get for more testing. Looking forward to releasing Hit Tennis 3 on Google Play in a few weeks. Thanks.

20 Million Downloads

Focused Apps passed a big milestone yesterday - company wide we have over 20 million downloads of our apps! Here's how we got here:

  • Rob made a couple of apps each back in 2008 that we have since retired. Then met at the Silicon Valley iPhone Developers Meetup thanks to Tim Burks.
  • We teamed up to start the Hunter and Johnson partnership at the start of 2009, which we've since morphed into Focused Apps LLC. Our goal was always to split our time between consulting and making our own apps. In 2009 and 2010 we shipped 5 apps for clients, and we wound down consulting in 2011. Thanks especially to Jason and Anu for hiring us and being awesome clients.
  • Sept 2009: published our companies first app, Focus for Facebook. It now has 750,000 downloads and found a niche with visually impaired users due to its clean presentation of the Facebook feed and support for voice-over. We released another app, Duck You Undo, that we've retired.
  • April 2010: we shipped our breakout game, Hit Tennis 2, and went freemium as soon as free apps were allowed IAPs. Its now at 14.1 million downloads. Its gone through 15 revisions, and is still popular on iPhone and iPad.
  • Dec 2010: shipped Santas 'lil Zombies, which was our 'lets learn Unity' project, it has only 6000 downloads. We're now updating the gameplay and will be re-releasing it in a few weeks.
  • Jan 2012: built 2 (more?) new prototype games, but we didn't bring them to market. One of these led us to the design of the controls for Hit Tennis 3.
  • Feb 2012: shipped Super Txt, which is now at 181,000 downloads. This has been our lower priority project this year, but its KPIs are good, so we'll be investing in new features and marketing next year. We are lucky to have found a couple of awesome artists who work with on this.
  • June 2012: shipped Hit Tennis 3, our sequel to Hit Tennis 2. Its now at over 5 million downloads! Many thanks to our indie colleagues who work with us on cross promotion ad campaigns. HT3 has had 6 updates, and we've recently brought it to iPad and Kindle Fire devices. Expect to see wide Android support next year. HT3 would not be possible without our wonderful 3D artist and character illustrator.

Its been a very fun few years, we're profitable, we'll continue to grow next year. Thank you Rob Hunter, you are an awesome business partner and friend.

sales
sales

Launching Hit Tennis 3 into the Charts

We just launched our new game Hit Tennis 3 into the iOS free charts, and  after just 10 days we achieved:

  • #2 Top free app in the USA (Angry Birds Seasons as Apple's free game of the week was #1).
  • Top 100 free game in 45 countries
  • Over 1 million downloads.

Hit Tennis 3 has not (yet) been featured by Apple, we didn't spend any money on ads, and we didn't get any press. We are a 2 person self funded indie company. So how did we do it?

Cross Promotion

We cross promoted heavily from our game Hit Tennis 2, and we arranged for five friends to advertise Hit Tennis 3 in their games. Hit Tennis 2 has about 1 million monthly active users, obviously a really good audience to promote the new version of the game to. We have users on two different versions of HT2, our newest version has ads implemented with Chartboost (we love you Chartboost!). The previous version has a home grown system for house ads, and both version also have a news feature. Our five friends who advertised for us have apps & games ranging in audience size and they use a range of different ad solutions. (Thanks everyone for your amazing help... we owe you!)

Below are details of the ad campaign. Data in black is measured data, blue are estimates from similar measurements, and red are guesstimates.

Ad type

Impressions

Clicks

Installs

CTR

Inst / Clk

HT 2

full screen

603,653

100,380

18,941

17%

19%

HT 2

app news

16,548

2,315

463

14%

20%

App B

full screen

405,676

93,080

8,396

23%

9%

App C

banner

6,000,000

120,000

10,800

2%

9%

App D

banner

50,000

1,000

90

2%

9%

App E

more games

600,000

90,000

8,100

15%

9%

App F

email

46,000

2,694

107.76

6%

4%

The campaign ran in 2 phases for a total of 10 days starting 6/28.  On 6/28 we released Hit Tennis 3 worldwide, and we turned on ads in Hit Tennis 2, and apps B, C, D, F. This was enough to get us into the top 25 in several big markets after 6 days, but in USA we had only charted in the free sports games category. So for that first week we were showing about 60,000 daily impressions for nearly 2000 ad based downloads a day, which grew total app downloads up to 74,000 on 7/3. By comparison our category charting Hit Tennis 2 has been getting around 10,000 downloads a day.

The second phase kicked in fully on 7/4 by adding one of our larger partners (App E) bumping our ad impressions up to over 200,000 per day for 4000 ad based downloads a day. That made enough difference to kick us up into the top25  free in the USA, and ultimately up to 300,000 downloads per day in total.

Screen Shot 2012-07-12 at 2.45.45 PM
Screen Shot 2012-07-12 at 2.45.45 PM

Costs

We agreed these ad campaigns on a barter basis... we get n clicks and installs now for our launch, and we will repay this debt for similar clicks and install of their games, either for new launches or for existing games. This is an amazingly good deal for a two person self funded indie company because it didn't cost us cash up front (but it will cost us reduced ad-publisher earnings later). How much would it cost to do this with cash instead of goodwill & trust? Fiksu maintains an index of 'cost per loyal user' which is a measure of measure of how much one has to pay in order to drive an app install. Their most recent index is $1.26, which is a bit lower than its been. A lot of the app ad networks are Cost Per Install bidding systems, and to get a lot of volume you have to make higher bids spending more per install. I don't know the bid needed to get the impression volume we had. I know that some games companies with deep pockets will bid more like $2.50 CPI and the feeling in the industry is that CPI cost is on the rise due to supply and demand.  Lets use a CPI of $1.50:

  • 20k installs from our own cross promotion,   20k * $1.50  would cost $30,000 purchased from ad networks
  • 27k installs from partners, would cost $41,000
  • Total equivalent cost about $70,000

Organic & Paid Installs

So would spending $70,000 on any game get the same results? Heck no. As MachineZone's Gabe Leydon said at Games Beat yesterday "nothing helps reduce the cost of user acquisition like a great game". For what we did with the Hit Tennis 3 launch, the promotion works like this:

  1. Ads get  the game somewhere into the charts
  2. Now its in the charts, more people see it
  3. So gets more organic downloads,
  4. Makes it go a bit higher up the charts.
  5. Now even more people see it and it gets even more organic downloads.
  6. People like it and start telling their friends to get it too
  7. It goes up higher in the charts.
  8. Repeat from 5.

Over the 10 days launch campaign period, we had about 1 million downloads in total, but only 47k of those were ad driven downloads. So thats 95% organic downloads. That doesn't happen for any old app. Why did Hit Tennis 3 perform well?

  • We launched Hit Tennis 3 during Wimbledon 2012 (biggest Tennis event in the world). This was not by accident! Tennis was in the air and on people's minds.
  • Tennis is popular, everyone knows what it is, they can imagine playing it before even seeing it.
  • Our icon is stunningly good. You can't fail to notice it in an app store listing, it screams 'tennis' and 'quality'. I can't emphasize enough how important a good icon is. There are hundreds of tennis games and apps in the store but only a small fraction have good icons.
  • Hit Tennis 3 has natural controls. The majority of people can play it in the first 20s without a tutorial. (You have no idea how hard we worked on the controls.) Ain't no stinking virtual D-pad in sight.
  • Once you start playing, the rythm of hitting that ball is fun! You are actually hitting it yourself, not controlling an avatar.
  • Chart ranking is more complex than just # of downloads. The best ranking games are the games people are actually playing, not just downloading. You need a good app with broad appeal to make this work.

Background

Rob and I been working full time in the apps business since the app store opened in 2008. Hit Tennis 3 is our 17th app I think, and our 5th mobile game. We started making apps & games in 2008, and we spent 09-10 making apps under contract for other companies.  We've been studying games, marketing, and the apps business very hard the whole time. We made the effort to attend conferences & events like 360 iDev, WWDC, GDC, Unite, iOS Dev Camp, SViOSD, SVIGDA, et al. Thats how we've built our network of friends and colleagues to ask for help. We didn't go to school with these people or something, we showed up and met them, and then we reached out asking for help. Aka networking and biz dev ;-)

Hit Tennis 3 is the sequel to Hit Tennis 2, but we deliberately designed the controls to be very different from Hit Tennis 2. As much as we love Hit Tennis 2 and we have loyal fans, the controls to Hit Tennis 2 are hard to learn. The majority of people who try it are put off by the controls and we don't retain them as players. (Ie the trier to player conversion is poor.) One of the 3 main goals of Hit Tennis 3 is to 'fix' this problem. I think we did, but it puts our core Hit Tennis 2 fans at a disadvantage because they have to 'unlearn' the controls from Hit Tennis 2. So we've gotten some blowback for this... sorry Hit Tennis 2 fans!

The biggest factor for how we designed this launch was the timing during Wimbledon. If it wasn't for Wimbledon coming around just once a year we would have done things differently. Probably would have worked more on the game before releasing it. (Updates coming soon!) Wimbledon is a worldwide thing, so we went with a worldwide campaign. Otherwise we wouldn't have advertised in every country. We would have picked just a few places to advertise. We didn't localize yet so we would only have advertised in english speaking countries, and we would probably have left out USA too in order to start with smaller campaigns.

We've done paid ad campaigns before with Hit Tennis 2 in 2010 and 2011. We've had mixed results, sometimes driving really well up the charts, and sometimes failing to. This time it looked different, I think that burst ad campaigns can't push up chart rankings as fast as they used to be able to. The market is bigger of course, but my guess is that there are real changes to how the chart rankings work, and it just takes longer now. 1 day bursts won't work any more.

Pitch Perfect - great guide to getting app reviews.

Pitch Perfect is a fantastic new book that explains how app developers can up their PR game when pitching apps to bloggers and review sites. It's packed full of advice, case studies, and mistakes to avoid. Pitch Perfect is a practical and very engaging read, so much so that I today I rode the train to Balboa Park, and that ain't where I live!  Eria Sadun and Steve Sande are your teachers. They really know their stuff because as TUAW.com staffers they read tons of app pitches every day. In fact, I personally emailed Erica twice last week, making a total of at least 4 of the mistakes she points out in the book. [Cringe.]

So app developers, here's the bottom line - get it, read it, and use the advice. Or would you rather your apps stay in the 99% with 3 downloads a week?

Amazon Kindle edition

Apple iBooks edition

Hit Tennis 3 in Production!

Sssh... in secret Rob and I are working hard on Hit Tennis 3 - the sequel to our 13 million  downloads strong free game Hit Tennis 2! Hit Tennis 1 debuted in 2008, Hit Tennis 2 in April 2010, and we plan for Hit Tennis 3 to drop this summer. One of our top 3 goals for Hit Tennis 3 is to make much better graphics, a goal I think we're reached, see what you think:

 hit tennis 3 city court

 

 

hit tennis 3 characters

 

Is Translating Your iOS Game Cost Effective?

Is it cost effective to translate your iOS game from english to other languages? For us the answer has been a clear yes. For example, here is a graph showing our downloads and revenues in Japan for a month before and a month after adding the Japanese translation. sales graph

That improvement in both downloads and revenue per download is due to the translation to Japanese. We had similar results in one other country, more modest improvements in others. When we translated to simplified Chinese we had a very big increase in downloads but hardly any increase in revenues.

Localization can improve:

  • Chance someone will tap on your app listing when browsing (if you translate the app name)
  • Download rate (if you translate the app name and screen shots)
  • Amount of fun a customer has with your game (if you localize the app itself)
  • Chance they will buy an IAP. (if you localize the app itself)
  • Chance they will recommend to their friend. (if you localize the app itself)
  • Chance of getting Apple promotions in non english markets. (if you localize the app itself)

Thats a pretty good list of potential benefits for a modest investment in time and money. If your app is performing well in its native language markets, and there is another market with a different native tongue where you are starting to get downloads, try localizing for that country and see how it goes. We've tried a couple of companies to help with translation, and the one that we like and recommend is Tethras.com. I like their pricing (which takes into account translation updates for app updates), they have great tech and a workflow that makes it convenient to move translations to and from your codebase, and they've been a helpful and supportive vendor.

 

iOS Platform Timeline

Our iOS apps industry is so old that I have trouble remembering when it all started - so I made this handy timeline / calendar. Feel free to download an editable copy & insert your own apps release dates etc as you look fondly back to distant 2007. The numbers under the year are estimates of all iOS devices sold by years end, but I didn't find particularly good sources. Other data mostly found in Wikipedia, please comments if you have corrections and I will update the chart. Thanks!

FAM Score - Evaluating Ideas for Game Projects

FAM-score-drawing

We have a hundred ideas for games but we're only two full time people here at Focused Apps. So how do we choose what to work on next? What ideas do we spend time prototyping, and which projects do we push forward to market? We developed our own 'points out of ten' scoring system called the 'FAM' score. FAM stands for Fun, Ability (our ability to produce and sell the game), and Market (which includes monetization). We award0 to 3 points in each category: 0=bad; 1=OK; 2=good; 3=fantastic, leaving 1 bonus point to add if we think there's some factor so super awesome it deserves another point.

Fun

The greatest of these three is Fun. For app store games, no awesome monetization scheme or ad campaign will make up for a lame game. We're aiming more towards casual games than hard core, for a broad market, for free-to-play, and we are consciously designing for iPhones: pocket sized, touch screen, connected, short pick-up-and-play gaming sessions. So things we consider for Fun include

  • Easy to learn / can the tutorial be integrated and very short, or none at all?
  • In the first 20s of play, can someone figure out what to do and start having fun?
  • Is there always something to do?
  • Is it too frustrating to lose?
  • Would you play it on the bus?
  • Are the controls intuitive? Do they replicate a real world action? Is there a rhythm to the controls?
  • Hard to master?
  • Natural Flow - does gameplay difficulty adapt to player’s skill level?
  • Are there challenges that require some skill?
  • Is there interesting / surprising / funny stuff to discover?
  • Is there uncertainty / chance?  I.e. do some things the player does have unpredictable outcomes. = more endorphins.
  • Is there easily attained progress? Is there a 'progress checklist'?
  • Is there a reason to come back for just one more try?
  • Does the game align with common fantasy & basic human drives? E.g. becoming rich, famous, popular, loved, laid, being great at a sport or your team winning, nurturing, driving really fast, flying, being a hero, showing off, ...
  • Are there cute puppies? Sexy women? Sexy men? Sexy cars, ...?
  • Is it nostalgic?
  • Will you want to talk to your friends about it?
  • Will you want to play with or against your friends?
  • Will you want to play with or against strangers on the internet?
  • When we show someone the prototype, can they play it without instruction?
  • When showing the prototype to an adult, do they actually play or just talk about it and then change the subject?
  • When showing the prototype to a child, do they keep playing or do they quit and switch to a different appas soon as you turn your back?

Ability

Real programmers ship. Real publishers sell. Given our strengths and weaknesses, some projects are going to be easier for us to ship and sell, and that’s what the Ability score is about. A huge part of the reason to be self employed is to do what you love, and to be motivated as a self employed person you've got to love it. It follows then that in order to ship, we only work on projects that we are really excited about. Things we consider for Ability include:

  • How excited are we to work in this?
  • How big is the project? Smaller projects ship more easily.
  • Can it make sense to release a minimum viable product and keep updating it as we build audience and tune fun and monetization?
  • Are we artistically capable? Can we produce the game art, can we buy it, or can we hire artists to produce it under our direction?
  • What is the balance between programed content (our strength) and artwork content (our weakness).
  • Will we have to design all the levels / game world by hand? Can we generate levels with code?
  • If we publish this, will we be proud of it or ashamed?

Market

This is a business. It’s our job. We want to make money by entertaining people. We don't imagine ourselves to be artists, and we really want to avoid the 'starving' part of that dream. We think about the game as a sales funnel, about how the game’s name, icon, screen-shots, first play experience, continued play, will all propel players towards becoming paying customers and advocates for the game. To succeed financially we want good conversion at as many levels as we can, and perhaps more importantly, we want to be able to measure conversion and improve over time. Things we consider for Market:

  • How broadly will the appeal of the game be, is it mass market?
  • Are people searching for title words?
  • Will people recognize something from the name and icon (before they specifically know about the game) to imagine that they might like it? I.e. how well will the game's listing perform? This is a concept we call 'swimmable', as in, 'how strongly will the app swim by itself in the sea of the app store?'.
  • Does the concept have international appeal? Is it going to be stronger in some countries’ app stores than others?
  • Will the screen shots look cool?
  • Will the game seem familiar enough that players will imagine playing it from seeing a screen shot?
  • Will the game make a story for the press? Is there a way to market the game to the online games press?
  • Is there something new or unique about the game?
  • Might Apple like the game and promote it?
  • Will the concept appeal to the same kinds of people that are playing our other games? Can we do co-marketing deals with other games who do have our target audience?
  • Can we come up with well performing ads for the game? Can we design compelling promotions for the game?
  • Will players want to promote the game to their friends? Is it social or viral?
  • Is the name memorable, easily pronounced and spelled?
  • What In App Purchases will we put in the game?
  • Are there multiple price points for IAPs?
  • What power ups could we have?
  • What wearables / vanity items could we have, and is the game social enough to justify that?
  • Can we sell levels packs, new characters, new play environments?
  • Is there a content pipeline of IAPs (that we are capable of sustaining)?
  • Is there any user generated content?
  • Are gameplay & screen layouts suitable for banner or full screen ads?
  • Is there a niche that will fit a sponsor?
  • What will the games age rating be?
  • Is there anything that might be an App Store approval risk?
  • Is there a natural progression to episode 2 of the game, or a spin off, or can we lead players into a 2nd game from this that has deeper engagement and more things to sell them?

Conclusions

We've now released two games. Hit Tennis 2 and Santa's Lil Zombies. Hit Tennis 2 is doing well for us, and Santa's Lil Zombies makes no money at all. Our FAM score for Hit Tennis is 7 (Fun 2, Ability 2, Market 3), and Santa's Lil Zombies scored 4 (Fun 1, Ability 2, Market 1). Both of these games were released before we came up with our FAM score as a tool. (The Zombies game was developed as our 'learn how to use Unity3D' project that we then subsequently released because we liked it.)

We're using FAM going forward to evaluate ideas and prototypes. We find the FAM score very helpful at keeping us in check when we get all gooey about a new game idea and when we get fed up with our current main project. FAM keeps us honest and on track with our business strategy. I think that developers fall in love with an idea, and therefore that’s what they’re going to work on, whether or not they are on track for business success. This happens to us all the time, and the FAM score forces us to reflect on why we love a particular idea. I'm not a typical iPhone user - I'm logical, I like optimizing complex systems and shooting at stuff that moves. My favorite games to play are Civilization IV and Borderlands (neither of which is even mobile). Our business strategy is not to appeal to me. FAM helps us see the difference between an idea that we love because we want to play or program that game vs an idea we love that will also be something fun for a broad audience that we can ship and sell.

I hope our FAM scoring factors list will be helpful to you. Use it as-is or develop your own list of factors that fits your business strategy. I'll write more in the future about all the sources and influences. Many are mentioned the game design and business sections of my book recommendations.

360iDev iOS Dev Conference Denver 2011

360iDev
360iDev

360iDev 2011, the friendly iOS developer conference is coming in September to Denver CO. I'll be there with the entire Focused Apps team (so that's me and Rob ;-), and we're presenting on 'How to be an iOS Consultant'. I attended the first 360iDev in March 2009, it was a fantastic place to learn what was going on in the app store, get top notch technical info, and I met a bunch of inspiring indie iOS devs who continue to publish some great apps. I attended again in 2010 and became a speaker. This is no GDC or  WWDC, which is a fantastic thing. Those conferences are huge, overwhelming, and you can't get into all the talks. 360 is small enough that you'll be able to meet the majority of people there if you make the effort, and you'll certainly be able to speak at length with many speakers and attendees. Its such a friendly conference, people will help you design your game, solve bugs, give you ideas for your next app, try to hire you, and want to join your team. Above all else this is a great place to go if you are trying to make it in the app store. Its a good mix of people from passionate newbies through to big time app store success stories. Seriously, coming to 360 will raise your game, and you'll make back a lot more than the ticket price in increased sales and better work.

One of the focuses this year is on consulting & contracting. John and Nicole have lined up a handful of us to speak on how to make it as an iOS consultant / contractor. Rob and I will be giving advice on how to get good clients and filter out waste of time projects, how to negotiate good agreements, how to structure projects to decreased risk for both parties, and how to stay ahead of the curve and demand good rates. Of course you can ask us all about our publishing businesses too like ROI from translating apps into other languages, how we promote apps, pricing models and pricing psychology, app store ranks, the state of mobile advertising, working with Unity 3D, ...

I hear its closing on selling out this year, so check out the full schedule, and then get a ticket and book flights and hotels. Looking forward to seeing you there :-).

Name the Hit Tennis Players

iOS gamers, you can contribute to the iPhone game Hit Tennis. We’re adding new players and we want fans to name them. Anyone can go to http://www.facebook.com/pages/Hit-Tennis-2-for-iOS/212023335489769 and comment on the new player pictures with name suggestions (you have to ‘Like’ the Facebook page first). Feel free to suggest your own name if you want millions of people to see it. Hit Tennis 2 is our hit iPhone & iPad game that’s been downloaded over 5 million times.

Designing and Marketing Hit Games

How do you make a hit game? Here's an essay by Tony Downey that comes as close to a recipe for success as I've ever seen: Indie Games: Designing to Succeed. READ IT. Following his advice is going to be very hard work, but making your game without following most of this advice will be just as hard work, but you'll make less money. This essay is BRILLIANT, thanks Tony for putting this together for all of us. For more advice, check out my book reviews for books on game design and books on app marketing.

Santa's Lil' Zombies - Our first Unity 3D iPhone game

Santas Lil ZombiesSanta's Lil' Zombies is our first free iPhone game build with Unity 3D, it's out now in time for Christmas! We're releasing it in 3 versions:

This casual iPhone game is full 3D but designed to be super easy for anyone to pick-up-and-play. Its a portrait mode game leaving room for iAds, and you can play one handed by holding the phone and aiming the gun with your thumb. Its very easy, in our player tests, even non-gamers who don't have iPhones were able to get into the game quickly. As we built it with the most awesome Unity 3D, its easy to publish it on the web, so santaslilzombies.com has a full free demo of the first 3 levels of the game.

iPhone Development Books 1: Learning iOS Programming

bookshelf
bookshelf

I own 91 books covering iPhone app programming, design, marketing, and business, and I've browsed plenty more. From all those books I've picked out the ones I consider to be the very best. My recommendations are split into four parts:

Learning iOS Programming (below)

Design for iPhone and Mobile Apps

Building iPhone Games & Unity 3D

Marketing iPhone Apps & Business

'

Part 1 - Learning iOS Programming

Learning to program the iPhone & iPad has never been easier due to some fabulous books. Programmers who are new to Apple have to learn Apple's Cocoa Touch SDK and in most cases will be learning Objective-C as a new programming language too. Of the 21 iphone programming books I've read, here are the best...

I recommend you start with Beginning iPhone 3 Development – Exploring the iPhone SDK (soon to be updated to 'Beginning iPhone 4 Development'). Jeff LaMarche and Dave Mark clearly introduce and explain the most important topics to get new iOS developers over the initial steep learning curve. Of all the iPhone books this remains the best for developers new to iOS. They have a companion book 'More iPhone 3 Development', but you won't need that unless you later want to delve into advanced topics.

Another great book for learning iOS programming is iPhone Programming: The Big Nerd Ranch Guide by Joe Conway and Aaron Hillegass. This books is written by the premier iOS and Mac training company in the world. It covers more topics than Beginning iPhone 3 Development, but it still starts out slow and easy, has a lot of great explanations of 'good ways to do it' and it includes introductions to Apples iOS development tools too, so you get a very well rounded kick start on the platform. Because it covers so many topics it makes a good reference later for stuff you forget.

If you like books with lots of text to explain stuff, you should start with 'Beginning iPhone 3 Development' if you hate lots of text and really just prefer short lessons on 'how to do it on iOS' then start with the Big Nerd Ranch book. But people, this stuff is really difficult when you first start, so its worth having both so you can hear two different voices when you get stuck.

Once you start writing your first app you'll find there are lots of little specific things to figure out, your best bet is to check with Erica Sadun first by looking in the pages of her wonderful book 'The iPhone Developer's Cookbook'. Its a great companion for any iOS developer, and its the one book I refer back to most often.

Programming for iPhone means programming in Objective-C. Objective-C is the C language, with dynamic object oriented extensions. Coming from any other language, you'll need to learn the Objective-C way, and for that you should check out ‘Learn Objective-C on the Mac', though there are a bunch of newer Objective-C books I've not seen (if you find one you love, let me know). Also consider adding 'Programming in Objective-C' by Steve Kochan to your library, as this is the comprehensive language reference, it will have the answer when you are trying to figure out more complicated parts of the language. Some of the more advanced parts of iOS development, eg audio processing, are done in C rather than Objective-C. This means that when you get to those you'll need to understand the crazy C stuff of pointers to pointers to functions returning references to arrays of pointers to alloced memory buffers... If all those stars and ampersands get you down you should go back to an easy learning C book, of which there are many, eg ‘Learn C on the Mac'.

More book recommendations:  App DesignGames & UnityMarketing & Business.