Hi friends!

It’s not often that a game developer gets to have 7,000 pairs of eyes on his game. Boston FIG has historically been a phenomenal turnout, and there’s great feedback and exposure to be had. And, with hundreds of people playing the demo during the day, there’s also great data to be collected. Today I’m going to talk about how I’m using an analytics tool called Indicative to collect data about player behavior during Boston FIG for the purposes of balancing the puzzles. This also should serve as a tutorial so you can do it yourself!

Get An Indicative Account

I’m using Indicative 1) because my husband works there (free and immediate tech support), but really 2) because it’s free. Indicative is currently in an open beta, and while the tool is clearly designed for things like online shopping metrics, it can be used for anything. Including RPG Maker. The first step is to go to the Indicative website and request an account. It might take up to 24 hours to get one, but it’s totally free. Like, seriously, there’s no place to even add a credit card. So get one.

Once you’ve gone through the tutorials, you’ll eventually see a place to start a new project. Do so, and find the “API KEY” for that project in the top right corner of your screen. You’ll need this to start sending data to Indicative.

Get the Scripts

You’ll also need to add two scripts to your RPG Maker game, where you’d normally add scripts. The first is a WinSock script which allows your game to connect to the internet. Below that, add the Indicative script which allows you to start sending data.

There’s only one line of code to modify. Where you see @@API_KEY on line 22 of the Indicative script, add, in quotation marks, your project’s API KEY.

Events and Properties

Indicative records data broken down into “Events” and “Properties.” An Event is when something happens. A Property is a characteristic associated with that Event. So, in Vidar we record:

The “Puzzle Start” Event, which triggers any time a player enters a puzzle

“Puzzle ID” is a property of the “Puzzle Start” event, and indicates which puzzle the player is in (for example, “Erik’s Room, Left Side”)

“Option ID” is a property of the “Puzzle Start” event as well, and indicates which option out of the bank of possible options the player is playing

The “Puzzle Complete” Event triggers any time a player solves a puzzle

“Puzzle Complete” also has Puzzle ID and Option ID, but it has one more as well – “Time,” the time it took to solve the puzzle.

Hopefully, you can see where this is going. Indicative’s analytics tools allow me to quickly ask “What was the median time it took players to complete Erik’s Room, Left Side?” I can even view it as a histogram. I can then break it down by Option ID to check to see if one option is too much easier or more difficult than the others. And with that data, I can really start to balance.

When integrating with Indicative, you need to think of what questions you want to know the answers to. Once you know that, sketch out the events and properties you’d like to record.

Collecting Data

Collecting data in RPG Maker with the above scripts uses a simple script call.

Indicative::record("Event Name", {"Property 1 Name" => Value, "Property 2 Name" => Value...})

“Event Name” and “Property Name” are self explanatory. Value is what you want to store for your property value. So, using what we did above, I might do something like:

Indicative::record("Puzzle Complete", {"Puzzle ID" => "Erik's Left Side", "Option ID" => $game_variables[1021], "Time" => $game_system.playtime})

You can see pretty quickly that the Event is just a “this happened.” It’s like the guy standing at the entrance of the show with a counter in his hand, ticking off every person that walks in. A Property, on the other hand, can have a value. You use these both to record data.

Viewing It

This blog isn’t really about how to use Indicative’s analytics tools – I’ll leave that to them, they know their platform better than I do 😉 I will say one really cool feature is the funnel tool. With it, I can tell that a particular puzzle is too difficult because not enough players are completing it:

Hopefully we’ll see enough data collection at Boston FIG to do some interesting analyses. I’ll post the results after the convention, sometime next week!