Peer review and beta testing is essential to all software businesses

I'm an indie developer in every aspect of the term 'indie', I'm not against working in a team, I love it in my day job but unfortunately there aren't many software developers in this town and even less available to sit down with me and let me bounce ideas off of them.

Sometimes being clever isn't enough, software is a marketplace where perspectives matter and getting as many perspectives on your product before dropping your MVP (minimum viable product) on the public is what can make or break your product releases.

So what can you do if you are like me and don't have people who can sit down and talk about your products readily available?

Beta testing!

It's not uncommon to perform beta tests within your small development group and yourself following good TDR (Test Driven Development) but there is so much more to a good product release than finding bugs, you need to find issues with your UX (User Experience).

How do I do a closed / public beta?

  1. Pick a distribution platform - iOS has limited ways to you can beta test but if you have a way to collect UDIDs from potential participants then adhoc distributions are not that difficult and don't put too much stress on the participant. You can give them this website to make instructions easier. Look at other options as well, Test Flight has received good praise.
  2. Get analytics - You can't rely on your beta testers to give you feedback, especially if you have never met them. Use a service like parse to feed back useful data such as how many levels were completed in your game, how many retries, how many error screens were presented, etc. 
  3. Add a dummy payment system - In-app purchases need to be tested too, when designing your store kit classes be sure to implement a way to set a boolean switch for test mode where it can allow purchases separate to the actual store kit. Use compiler #if statements to make sure the code can't be manipulated in release.
  4. Let the participants give you feedback - What I like to do is set up a form in google documents stored on my google drive. You can make fairly detailed forms, make them public and then see all the background data collected in a nice neat spreadsheet without spending a cent. Then pick a logical point in your game (such as at the end of the final level or after 20 attempts to then ask them if they would like to provide feedback and send them to the form. This is important as you are narrowing down the feedback to people who actually played the game to a specific point.
  5. Ask for more feedback - In addition to the above, have a separate form for bad experiences. Measure the number of memory warnings, error screens, crashes, levels failed and then ask them if they would like to submit a bug / issue report. You will see this data in your analytics but its important to get the direct opinion of the user as well.

Hope you find this useful and is enough to get you started. Don't fall in to the "I know everything" trap.

5 things Apple could do to make Game Centre better.

Apple are known for their ability to look at something and see why it is good, not just from a technology perspective but the user experience and joy of each individual tiny action. One area I feel they have struggled though is Game Centre, here are a few ways I think they could improve it:

  1. Cumulative Gamer Score  - Each game centre game has achievements but there is actually very little incentive to go out and grab a heap of games in order to boost your cumulative total of gamer points. It's gotten better in iOS7 but still a long way off being perfect. The Gamer Score needs to be a bigger feature and everywhere.
  2. Better Friend Management - Why not integrate with Facebook, twitter, contacts, etc to build up a large friends list of gamers who you can invite and challenge to games? Then take it a step further to show their gamer score and some other details on their contact page and integrate game invites and special sharing of custom game events via iMessage.
  3. Allow Developers to Share certain Content in GameCentre App - We all have the little game centre app on our phones but it is rarely visited. Apple need to find a way to boost it's usefulness by allowing for news, deals, content offers to appear on a "wall" like feed. This feed can also show significant game events like someone getting an achievement or sharing a high score / screenshot.
  4. Party Functionality - Now that MFI controllers are coming it is fair to say iOS is stepping up it's game. Wouldn't it be great if you could have something like a group FaceTime call with 3 or 4 friends then, switch to a match of a FPS game with all of them in the same group and continue talking maybe even with a PiP.
  5. Allow Developers to Be Your Advertisers - This really isn't hard, if games were able to integrate more fluently with game centre and show players their cumulative gamerscore, what friends they have online, what their friends are playing, do they have room in party, etc. There are so many ways developers can promote services of game centre and it will only encourage more people to use it.

While I understand a lot of these features have probably been denied in the past because it would take away from their overall goal of having a phone or tablet for all purposes, not a heavily game orientated platform, these changes might help people discover portable gaming and how great it can be.

I'm sure they are watching what Microsoft and Sony have been doing with their latest consoles and I hope they plan to learn from their trials.

New years progress report

2014 has kicked off and so have I on the 12 games in 12 months challenge. I chose a simple game to start off with and it is kind of more of a training tool for cashiers than an actual game.

Progress has been good though and I hope to get it out within just a few weeks so as to have plenty of time to work on Februarys project as it will most likely be more difficult.

I'm trying to decide on the format for the book, I want to explain all the core functionality fairly well so the menu template will most likely be a separate project.

To keep things as simple as possible I will most likely be working towards making these projects very property list heavy so you can get started with less hard coding.