Wednesday, March 11, 2009

First Game

The first game that I've been working on developing is a trivia-style game. Because it's not like anyone else has had that idea for the iPhone yet. (That would be sarcasm). There are currently at least 5-10 games for the iPhone that are trivia-based games with one using the same style of game-play that I'm exploring.
For those that know me, they know that trivia is one of those games that I love - I mean truly love. I know a lot of information about things that have no practical relevance and I delight in knowing it. Like knowing that the plastic end of a shoelace is called an aglet. Yeah, sad, I know.
When I left iTi in November Susie (my wife) and I began talking about things that I could do and the one thing that made the most sense was to write games for the iPhone. We were getting new phones at the end of November and it just made sense to work on iPhone games since it's such a hot market. It's also a tough market. I heard that there are now over 25,000 apps in the App Store. A lot of them are free, but a significant portion cost something. And Apple apparently keeps 30% of the sales, meaning that on a $4.99 game, the developer's only getting $3.49. No wonder Apple likes the App Store. :)
Anyway, Susie and I came up with a list of like 15 game ideas. A couple of days later it dawned on me that I should do something that I know well - like trivia! So I began working on a trivia game. And ran into my first roadblocks.
As I mentioned in my first post, I've been developing software professionally for over 15 years and writing code for almost 28 years now (scary, huh?). Most of that development work has been in Windows using Microsoft Foundation Classes (what MS pushed for years before they came out with .NET and C#). Developing for Mac is a bit different and some of the things that I'm used to doing in Windows aren't available or are done in a way that's just different enough that my brain can't seem to grok it. In particular, I ran into issues with views and view controllers. I'm actually still having some trouble with them and have sort of put development on the back burner.
The main features of my game are that it will have a server back-end that will provide the questions. The main benefit that I see with this approach long-term is that if the back-end works properly then I can expand it to be practically any other platform - Windows, Mac, Android, etc. If you're at all familiar with NTN trivia, this would be a mobile version of that. Online leader boards, etc.
I've also flirted with several different ideas for how to monetize the whole enterprise. One idea is that I provide the game for free (which gives me a much broader exposure) but then put ads in the app (using AdMob) and/or on the online leaderboard (using Google AdWords or similar). This would be a good passive revenue stream and be completely independent of Apple's limits on payments (I have read that they don't issue any payments unless you surpass $250 sales in one region).
Another idea for generating revenue is to have a free version that doesn't store your scores online or track your progress, but lets you play a few games before needing to restart the application. The issue I see with that is that it could likely be cracked very easily and then people would be able to have unlimited play (without the leaderboard).
In all situations, security and insuring that the player has a legal copy is one thing that will need to be addressed. It's also something I need to learn how to do effectively on the iPhone. I read a post by the author of Dapple where he said that the first sale of his program was to a cracker who posted it up on a warez site within 5 hours. Ouch.
As for the trivia game, I've started building the question database and hope to be able to find solutions to the navigation issues I've been experiencing. The issue I'm running into is that while the game flow system I have in mind is simplistic, it's not fully supported by the iPhone paradigms, so I have to find ways to make it work within Apple's constructs. Once that flow problem is resolved, I should be able to integrate everything else relatively easily (there is plenty of sample code that does what I want to do). Then I just need to make sure the application is secure and get it published. :)
More to come later.