Unlimited Possibilities through Code
This morning I got an email from Apple that my Nextpeer enabled Infinite Asteroid Dash is now approved and in the store. Phew. That only took a few MONTHS of effort.
First, go to the Nextpeer site and make sure you have the most recent SDK from Nextpeer. Older SDKs are still be rejected from what I have seen. Update your app to the most recent version, when you submit I recommend in the notes to the reviewers section you add something about Nextpeer. I added a statement that I was introducing multiplayer through a third party product and included the link to Nextpeer. I told them that I have the most recent SDK from them that has been approved by Apple for use in games. Viola! It was approved (after only 7 days!).
For more information on Nextpeer visit their site, and read my previous post about how I am using them.
I have been having email exchanges with the nice folks at Nextpeer. See my previous posts about being rejected by Applefor more information about Nextpeer and why this was so frustrating. Apple had rejected one of my apps because of my use of the Nextpeer SDK to add multiplayer support. Nextpeer told me yesterday to update to the latest SDK and resubmit, Apple should approve it now. Should be interesting, because without multiplayer in the Asteroid Dash game it just isn't very compelling of a game. Competing against your friends score, or even random strangers makes it much more interesting.
Here are some screenshots of the current SDK. I really like that they added a new screen after playing. It is basically a screenshot of your last checkpoint before the end of the game, with your score shown! So now you can tweet it, or post it on Facebook to prove you really did get that score. Nice touch.
Well this week I finally have some good news! I now have not one, but two apps in the iOS store. The first one (American Classic Slots) went live about a week ago, and the second (Infinite Asteroid Dash) just went live today. I figure this is a good time to talk about some lessons learned, and explain some shocking numbers around income.
Infinite Asteroid Dash - This is a super super simple game where you tilt the device to avoid asteroids as long as you can. This was to teach myself some UIKit and learn the Objective-C syntax needed to do some of this stuff. The game is a success from that standpoint, it showed me a lot of things that I am changing in future titles.
American Classic Slots - This is another UIKit game that was quick and easy to build thanks to some template code. But I am flat out shocked at how much money this has made in just 7 days (more below).
Let's get the ugly out of the way now... Apple has a serious issue with the amount of time it takes to respond to submission failures. The Asteroid Dash app took over 7 weeks to get in the store. This is just silly.
I would wait an average of 7 days to get a response to a question. The rejections were always polite, and usually to the point. Of course they would stop at the first thing they didn't like, so you fix that and then go through the whole process again and again.
They had an issue with the fancy NextPeer SDK I raved about earlier. Despite that there are 2000+ games in the store using the SDK they have now decided they don't like it. I tried to argue my point and even gave them the company contact if they have problems with something they are doing, but of course that took 7 days to get a "not our job to fix your vendor" email. Much as I expected.
In the end I had to rip out all the multiplayer which I can only assume will kill this app as a fun game more than a day or two. Having your face books friends that you could challenge and play against was a lot of fun. Maybe NextPeer will get their stuff working soon so I can use them again.
Apple announced last week at the WWDC that they are adding videos to the App Store so consumers can see better what the app looks like while it is being played. This pretty much admits that the current store (images only) is not good enough. While I like the Android video feature, I really feel that having a good strong trial system is far, far better. Why make users go through buying an app and then asking for a refund? Just give them a trial of the app! If they don't like it they will have never bought anything and not need a refund.
Do you think this is a plan to keep more money by refusing refunds? I can't believe that is true. Maybe Apple does make a small amount of money off apps that people are unhappy with and don't raise a fuss. But don't you think that the barrier to spending money is so high that people just stick to free apps instead? I know people who will not spend ANY money on apps because they were ripped off for $0.99 one time. This seems incredibly silly to me.
Literally Windows Phone has had this ability since day 1. Trial apps make it so much easier for users to actually use the app before they buy. You can easily add a trial to a Windows Store app. Did this solve all the problems? No, people still prefer free apps. When I ask people why they don't buy apps on Windows Phone the answer is usually vague, or they still complain about being ripped off on that one iOS app years ago! Some users don't know the trial ability is in the platform. Others don't think to go look at paid apps, they just go to free apps first.
This is sort of a cult mantra among most developers. It seems everyone thinks that Casino games are just money makers. I don't know if that is true, in fact I doubt it, but I am willing to find out. I made a simple slot machine that is built using a totally different technology than my first app. Mostly because I wanted to play with UIKit and see how it worked. I figured it is sort of like XAML on Windows Phone and wanted to learn it.
This was a surprisingly fun app to build. This took me about 50 hours total including all the artwork. I bought a source package that included the basic framework from a tutorial site and then used that as a base to build upon. The graphics took me the majority of time, but I am pretty happy with how they turned out.
This app also adds the ability to earn achievements using the iOS Game Center system. It is surprisingly easy to add to your game, and I think those types of "game"ing for players is really effective. I don't know how many players on iOS care about their Game Center score compared to Xbox score for example, but it will be fun to find out.
I have never been so frustrated by a review system in my life. Submit app, wait random period of time ranging from 1-3 weeks get rejection letter spelling out a chapter and verse that you go read and it does not apply to your app...
I have two apps that have been through six rounds of rejection / resubmit cycles. In the first app the reviewer doesn't like the vendor I used for multiplayer (NextPeer).
I am using NextPeer because they have a great multiplayer SDK that makes it super easy to add a head to head style of competition in your game with very little work on your part. If no one is online it even replays a recent player to give the user the thrill of competing with someone else. I personally found this aspect to be the only reason I liked a couple of games, so I wanted it in this first super simple game I was writing. I figured even if the game was pretty boring that players might be a couple times to compete against someone else. If the player logs in with Facebook they can even challenge their real friends to a match, etc. I thought it was brilliant and want to add it.
Today I am launching a new experimental phase of my app development. I have officially submitted my first app for the iOS Store. I know a few of my friends will be freaking out at this point and thinking I have gone to the dark side. Slow down, take a deep breath and read on.
This is a REALLY simple game that I built over the course of a couple weeks to teach myself iOS programming first and foremost.
Part of this code came from a template I found online, part was written by me. Most the graphics I did using Microsoft Expression Blend, some were from art packs I have gotten from various packages. It was a fun project just to see how the "other" developers live in this world.
Well, I would say I am still learning a lot. I am amazed at how mature and immature the iOS developer market is at the same time. They have some amazing third party tools like NextPeer that let a developer add multiplayer to games with very little code. This is one thing that Windows Phone and Windows Store apps just do not support. And this is not the only one of this type of library, there are dozens of them.
At the same time I think the tools (specifically Xcode) are just so far behind Visual Studio as to be almost laughable. I have seen iOS devs that are lighting quick, but I wonder what those guys would be like with Visual Studio. Productivity is just so different. Small things like right click include that header for me, or find the correct library, are just missing.
I really love technology. I mean why else would I be an evangelist if I didn't love tech? I also work with a lot of really large companies as a part of my day job, and they are all going cross platform at this point. They are building for Windows Phone and Windows, but usually after they have their iOS and Android apps in play. I need to be able to speak to these developers on their terms, using their tools, etc. I also think that the future is going to be multi platform for just about any serious project. So I want to learn how to do it for my own apps as well.
I will be interested to see how many downloads simple games can get on each platform (I am doing another game for Windows Phone, Windows 8, iOS, and Android). I will be interested in comparing them for downloads, eCPM, in app purchases, etc.
I also see a huge value in actually going through each platform "end to end". Design, coding, deployment, ads, monetization, etc. How can you talk to others about it if you have never done it? So this is my low-friction way to get into all the stores and experiment while picking up tips along the way to help others.
This will not come as a big surprise to many, but I think maybe my reason why is a little different than most. Microsoft is missing that gateway device for kids that are too young to get a PC or a Windows Phone. Something like the iPod, iPad or Google Android tablet device.
This is usually a birthday or Christmas present, and they almost immediately switch all present requests to gift cards for their new ecosystem. Of course kids don’t call it that, they don’t know they have just made a major decision point in tech for their future. They just thought it was cool they had the same device as their friends.
Most of these devices are bought (rather then rented per the current US cell phone market model), so that makes them unique. Many parents are price sensitive to giving an 8 year old a piece of technology.
In my kids own classes during middle school the device of choice was the iPod. These kids would literally spend $100’s in gift cards on music, movies, TV and apps. Now normally you would think that is just what kids do, they spend money on short term thing like that. But now the bigger decision comes when they hit about 13 and go to get their first cell phone.
This was an amazing read for me. Not because of the writing, but because of the subject. I was a middle school kid at the time Karateka came and I played the game on my Commodore 64, and was instantly mesmerized by the game and its effect it had on people. The story was good, but it was the first game that actually had a cinematic feel for the play. You felt like you were part of a movie. Now this was a kid version of me, but I was in awe. My friends and I would play for hours and talk about how the animation was created.
I started writing games as a result of playing this one. I never achieved his level of success, but did have quite a few published while I was in high school. I even went on to work at a game company and made a few PC and console games in the mid 90’s.
This is a collection of his personal journal during the time he built Karateka. It is raw and a little scattered. I went through all those same ups and downs as a kid (sort of still do as an adult!). It was refreshing to me to see something that I took to be an act of utter perfection was actually a labor of love for someone who struggled with it's creation.
It was also a little scary to read wondering if he was going to flunk out of Yale. I knew a lot of geeks when I was in college who ditched a lot of classes to work on projects, but few of them ever actually finished what they were working on. So it is sort of amazing that Jordan was able to complete what he started, I think it was as much do to his parents encouragement as his own tenacity.
Refreshing read to see that others in the same field had a similar start and rough road. It is too easy to look back at your finished products and think it was obvious that is what was going to happen from the start. Every project I have ever worked on goes through a similar path of finding the right deliverable. You never start with a clean idea from the beginning and proceed to the end. This was a fun geeky read. Would have enjoyed hearing some of his coding travails as well, but this was very satisfying for a geek like me.
If you also know Jordan’s name he was the creator of Price of Persia and has published a journal about the creation of Prince of Persia.
Found this great post about the game itself from another gamer.
Love Is a Backwards Kick: The Romance of Karateka
Had totally forgotten about that backward kick.
The game in the Karateka Classic Game in original 8 bit glory is available on iOS and Android. I played through the Android version today, brought back a lot of memories. Took me WEEKS to complete when I was a kid. Having the rewind in the Android version saved a lot of time.
I have had a long love afair with LINQPad. I started using it when I was building data queries for VistaDB. I would use LINQPad to compare my code against SQL Server. It was so much easier than using SSMS for quick code comparisons. Take a look at my previous post about using LINQPad to help you learn LINQ.
There is a new Book from Packt publishing specifically about LINQPad entitled Building Interactive Queries with LINQPad.
I am just starting it today, but will post a follow up article with a review of the book.
©2010-2012 Jason Short. All Rights Reserved. The opinions expressed herein are my own and do not represent my employer’s views in any way.