Wednesday, September 3, 2014

Lessons Learned: Part 2

Whoops, I forgot to write this post after I published Catena. So let's see if I can still remember what I learned...

1.) Spend time on what matters

If you have played Catena, then you know that I included a "Custom" mode that allows you to change almost every aspect of the game.  This is actually one of my personal favorite parts of the app, because it's not just the same thing over and over.  But the problem is that very few people play Custom games, because they give no sense of accomplishment.  What I mean by that is that I did not provide leaderboards or achievements for Custom games.  There's really no point; if you can change all of the settings for the game, then a high score is meaningless.  And the only type of achievement that would make sense is one that would require the user to create an unstable game just to rack up points.  Neither of these is fun or interesting, which is why I decided to keep all achievements and leaderboards exclusive to Classic and Extreme modes.  But since the game itself is so simple, the only real incentive users have is to compete for leaderboard spots.

But I am drifting away from the point of this post.  The biggest problem with the whole situation is that I spent a lot of time getting Custom mode to work well.  It required a lot of new code, over 100 new drawables, and a significant amount of testing.  I was very pleased with the result, but in the end it is just a small addition that most users might play only a few times.  If I were to guess, I would say I spent about 30-40% of the entire development process working on a feature that is only used about 5% of the time.  And that sucks.

So what I'm trying to say is this: Try to put the most effort into those features which will be used the most.  Not that you should skimp out on quality in certain areas just because you think that it will not be used often, but if something will take you a very long time to implement, it might not be worth including right away.  You can always update later if you do find the time to get everything working.  That is, assuming you don't have someone over you telling you what needs to be the priority.

2.) Get the word out

Advertise your app!  This is something that I did not do very well, and it shows.  Personally, I hate self-promotion because it feels like I am just spamming.  I included social features in my app because I don't mind other people promoting my app for me, but I have a hard time going out to websites and letting people know about my app.  I've been reading some advice from other devs about how to raise your download numbers, and I think this is the most popular answer.  One person I read said that he spent an entire week just posting about his app on various Android app websites.  In contrast, I spent about 2 or 3 hours maximum, posting to Facebook and a few small groups I know.  This is where the social features I built in don't really help.  Most of the people who have downloaded my app are either friends or those friends' friends.  So you can share your score on Facebook, but most of the people who see that have already heard about it, because many of them are already friends with me.  Since I didn't spend much effort at all to advertise outside of my Facebook contacts, my game has gone almost completely unnoticed.

3.) App Store Optimization

This is another area in which I did not do too well.  As you may know, Google Play already has over a million apps in its store.  The market is already over-saturated, so unless you have a brilliant and unique idea, it will take a bit more for your app to be noticed among thousands of others.  This is called "App Store Optimization", or ASO.  I'm not going to pretend I really know anything about this, (as you can probably tell by looking at my app's store pages,) so if you are interested in learning more I would recommend Google.  But basically the idea is to make sure that the store page for your app is as optimal as possible for bringing in downloads.  I spent only a few hours creating the description and visuals for my page, because it didn't really interest me.  In retrospect, I should have spent much more time on improving the quality of my store page.  What's the point of spending weeks creating an app, only to have it ignored because the store page doesn't make it seem like that much fun?

I do wish that Google would let us know how many page views each store page has.  That way you could see if users are having trouble finding your app in the first place, or if they can find it but simply choose not to download it.

4.) Make sure that you actually have a good idea

This one is pretty simple.  Before you even start working on an app, make sure that it is something that people will actually use.  To be honest, I think this is the biggest flaw with Catena.  It may be addicting for the first few hours, but most people will become bored of it after a week.  I personally was kind of tired of it even before release because the initial fun had already worn off while I was testing.

Of course, all of this can be ignored if you are just creating apps for fun and/or experience.  If you are having fun and learning, then in the end it doesn't really matter what you are working on.  I am very glad that I can say that this statement applied to me.  Even though higher download numbers would be nice, in the end the development experience is what counts.

This may be my last post, at least for long time.  I have returned to school for my final year, and I won't have much time for Android development, aside from small updates to my already published apps.  So... yep.  Goodbye I guess.