Call it designer ego, but I think the world owes me something when I release a game. I mean, I spent like 5 months making this thing from scratch and now it's SO pretty and therefore everybody including my hero Jordan Mechner should be playing this.
Ignore everything I just said. Obviously the first version bombed and I went back to drawing cute levels on my napkins. Not GOOD enough. I still wasn't communicating with my players!
As an indie, I had a bunch of friends that helped playtest and shape the game into something that we *think players will like. I've gotten lots of "dude, this is awesome stuff"-type compliments, but these meant nothing when the game goes into the wild.
Shiny new term
I heard about this new thing they call analytics. Turns out you could see what the player is doing in your game, track their behaviour, tweak it to give them a great experience!
I googled for "game analytics" and found this free cross-platform service called Playtomic . Holy cow: it tracks player events and presents it in a pretty GUI that even a noob like me can fathom. Perfect!
Background of my game
Private Joe is a 2d platform shooter. You play a soldier and try to eliminate enemies with various weapons. Gain coins, badges and powerups along the way. The web version is playable here
Here are some metrics that I'd like to share from my game's 30 levels.
Metric #1 - Beginnings and Deaths
Blue line: steep player drop rates right after Levels 1 and 6.
Orange line: most players get killed in levels 5, 6 and 10.
Note: I excluded Level 10's deaths because it's a boss level. I shall write a separate article about boss level analytics soon
What I didn't expect was a high number of players dying in Levels 5 and 6. I had to investigate the cause of this! First thing that comes to mind is to record the x,y coordinates where players die frequently, and plot this over the level map. Enter heatmaps!
Metric #2 - Heatmaps
These were pretty easy to implement. Added the tracking code, uploaded the maps of Levels 5 and 6 as .PNG files, let Playtomic crunch the numbers.
Heatmap of Level 6
StartPosition (Purple box) : Spawn position of player at start of level
WeaponBazooka : Collecting this unlocks the Bazooka for the player
RefuelStation: A checkpoint to emit messages ( not important here )
Ger_schutzer: Basic enemy soldier
Ger_captain: Advanced enemy soldier
Ger_tank2: Advanced enemy tank
Notice the two colorful spots in Level 6. The first (300,200) is green-bluish, signaling a lower intensity of deaths. The killer is the 2nd, more colorful one near (600,200). What could be the reason?
The enemy tank packs a powerful punch. Getting hit by a tank shell gives 3x more damage than a regular bullet from an enemy soldier. Most players die fighting the 2nd tank, because their lives were reduced too much after fighting the 1st tank. Having two health packs after the 1st tank didn't seem to help much.
To reduce death numbers, I could add more healthpacks, reduce tank damage, remove the soldiers, remove the 2nd tank, etc... the options are endless for the game designer. Without analytics, I wouldn't have considered them!
Let's look at another heatmap
Heatmap of Level 5
This is a survival mission, requiring 60 seconds of not dying before winning. A wave of soldiers will approach from the right every X seconds, trying to force the player into a defensive position.
Some players get pushed back by the wave of enemy soldiers, causing deaths near (30,200).
Most players get killed between x=500 and x=650 (death zone). It makes sense: players are inclined to move to the right once the level loads. They couldn't beat the small tank just above the ledge, taking heavy fire in the process from incoming soldiers. To pour salt on the wound, I also had an enemy jet bomber drop bombs on the player's head every X seconds (avoidable of course).
Too much action is concentrated in the death zone. Are tanks just too powerful? Should I just remove the jet bomber? Maybe increase the interval between enemy soldier rushes? All valid options to try out.
Summary: Heatmaps are awesome: you get to see where the action is, and tweak the game accordingly. My goal is to allow more players to progress through, so I made a few *secret decisions that would not affect other levels too drastically.
Metric #3 - Favourite weapons to buy
Appears that the rifle (blue) is the favourite weapon, followed by the pistol (orange). Ironically, these were the two weapons I spent the LEAST development time making. I poured most time into making fancy Machine Gun recoils, Grenade mechanics and Bazooka explosion effects. Bummer.
Does that mean I wasted precious dev juice doing unimportant things? No. I just had to tweak the other 7 weapons to make sure they're utilized more. This can mean: increasing firepower for the big guns, reducing the prices ( players need coins to purchase weapons ) or giving players more "trial bullets" to begin with.
So now we have like a billion options to test against. This sets the scene for a future AB or multivariate testing. To do this, we can use the "GameVars" feature in Playtomic to selectively manipulate variables in-game. AB/multivariate testing is a science which deserves it's own article: more on this in future posts...
Metric #4 - Favourite menu items
I expected most players to click on the "Store" button and it turned out right! Players need to spend the coins gained from defeating enemies.
It appears that initially, the "Objectives" and "How to play" links got a lot of clicks because players were figuring out how to play. To placate this effect, I added a simple tutorial that pops up the moment players start Level 1.
Over time, more players cared about the Store and Inventory, possibly due to low bullet count. Opportunity rings! I could implement a 12 or 24-hour return bonus that awards free bullets if players come back to play.
Metric #5 - Free vs. paid
As a kid, I always hated the "INSERT CREDIT TO CONTINUE" screen in arcades. Just couldn't afford all the quarters it took to finish Asterix and Obelix.
To encourage players with zero lives to continue playing, I offered them two choices: