Friday, February 14, 2014

Preparing Achievements and Leaderboards


     My last hurdle with DragCore is getting the Game Center / Google Play Game Services functionality working. Every time I try to activate achievements o leaderboards the game crashes. A very annoying type of roadblock. Today I'll be re-watching setup tutorials and tracing my steps to make sure I'm not overlooking something. 

     Something I can talk about here though is how I prepared achievements and leaderboards for the first time. It was an interesting experience and I hope to better take advantage of these tools in the future. Details are below the page break.




     Admittedly achievements were a last minute thought for DragCore. Even though I planned to include these features I didn't define each one until the rest of the game was working. And by that I mean a week ago. Most of the achievements are related to reaching milestones like "Beat Challenge 50" or "Earn 80 Crystals" but a few are a bit more creative like "Lucky Day" where you get an achievement for setting your HP or Goal to 777 and winning.

     I want my future games to have more interesting achievements that reward players for straying off the beaten path. Little things that praise creativity because the game already rewards you for reaching milestones. The achievements I design for my next game will be more thought out and integrated in a more solid way.


     Setting up achievements was as simple as filling in some basic info and giving it an icon. I just used the game's app icon this time but I'd like to make custom achievement badges for my games in the future. You can make an achievement hidden until it's earned (good for surprise ones like the funniest one in Portal 2) or even make achievements that can be earned multiple times like Robot Unicorn's daily challenge. A setting I wasn't expecting was the amount of points each achievement awards you. I knew they'd all be worth something but I was unsure if it calculated by a trophy system like PSN or set-point based like Xbox Live.

     I found that Google Play points allow any one achievement to have a maximum value of 200 points and iTunes Connect only allows a maximum 100 points per achievement. This makes it a bit more complicated making the achievements equal on both platforms, but they don't crossover anyway so rescaling the values for each achievement isn't too bad.


     The next thing I tackled was making leaderboards. After finishing the first one I knew making one for all 99 challenges would kill me. I went back into the game's code and made it so that only challenges 1, 99 and all others divisible by ten had a leaderboard. I also rebalanced those levels to make each one feel unique so every leaderboard is special requires mastery of different playstyles. DragCore takes advantage of it's multiple enemy types now and adds a bit of competitive play to the mix.

     Apple offers ways of combining leaderboards in Game Center, for things like Global leaderboards separated by country or combing boards that had either time and points. Instead of doing that however I made a simple leaderboard group for DragCore titled DragCore Champions which conveniently organizes all 11 of my leaderboards into a easy to navigate menu. Or a least that's what it should do. I'm unable to see for myself until I get DragCore to stop crashing every time I push the GPGS button.


     Adding these types of features really does improve the game a lot. It also adds potential for promotion as lots of games can be discovered through invitations via Game Center or found on the popular apps list within the Game Center/GPGS app itself. Now if I can just get them to work I can put DragCore out there and see how much it can grow.

No comments:

Post a Comment