I'm attempting to program an offline puzzle game in C++. I'm trying to figure out the best way (particularly during the alpha) to report back to me

  • Whether people finish the level
  • Where people died
  • How long they took on the level
  • The current version that they are playing

I don't currently have a public database server which I could dump it in to.

Is there any already written libraries that (for instance) drop analytics into a Google App Engine Database or Google Docs Spreadsheet?

What approach (if any) have you used for storing analytics?

  • 3
    \$\begingroup\$ FYI: it is generally considered... rude for an offline game with no online component to be talking online. Not unless the game actually asks the player if that's OK (or if it's a Steam game or something). \$\endgroup\$ Commented Jan 2, 2012 at 5:16
  • \$\begingroup\$ It would likely only be in the Alpha, and it would be marked as such. It would likely even be written into the title screen or such, and indicate when it's sending - I would be as overt as politely possible. Primary reason is - I've never made a puzzle game before, and I don't have enough resources to get a reasonable amount of beta testers in person - and I haven't got a clue of the difficulty level. Your reservations are truly considered and noted! If I did carry it on into the Final, it would be for a small group who I discussed it with beforehand, or who volunteered to help me. \$\endgroup\$
    – lochok
    Commented Jan 2, 2012 at 5:44
  • \$\begingroup\$ I agree with Nicol. You would have to do this with an opt-in option, so that users knew you were collecting the data and were ok with it. \$\endgroup\$ Commented Jan 2, 2012 at 15:26
  • \$\begingroup\$ I repeat: I would ensure everybody who I collect data from knows it. I would only be collecting data through the alpha period, with playtesters who have the game such that I can generate this data - informed playtesters, not just randoms off the internet. Again, if I did any data collection post release, it would be with a small group who actively downloaded a separate client with the intention of helping me out. Again, your reservations are noted - but I intend on doing this in the most moral and open way possible. \$\endgroup\$
    – lochok
    Commented Jan 3, 2012 at 0:33
  • \$\begingroup\$ Related: gamedev.stackexchange.com/questions/1627/… \$\endgroup\$
    – bummzack
    Commented Jan 3, 2012 at 8:18

2 Answers 2


I don't personally know of any libraries/services but I would say first search Google. A search for "game analytics" gave http://gameanalytics.com/ as a promising first result. That being said, my thought would be to register for a free server account. Then put a small script on it to accept calls to a page that would save whatever data is given to it. So, you could have a page that would accept

  • Client version
  • Level number
  • Array of locations died at
  • If level completed
  • Time taken to finish
  • Security key to prevent falsified reports (such as a MD5 of a combination of the dynamic numerical data)
  • Any other needed data

You could also save each report locally then send them in batches when the user wants to. That way they can see that it accesses the internet only when sending those reports. Given that this would be purely opt-in, I doubt many would try to reverse engineer and send false reports. Then the server script could store the reports in a MySQL database that you could sort, search, and create analytics reports from. Or, you could just pay for a more robust and secure service specifically designed for this. Again, I suggest searching Google.


While Google Analytics are more well-known for tracking websites, if you are creating mobile games in Android or iOS, there is also Google Analytics for Android and iOS native applications. Another alternative is Flurry. Both offers free analytic tool.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .