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).
–
Nicol BolasJan 2 '12 at 5:16

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.
–
lochokJan 2 '12 at 5:44

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.
–
Gerald P. WrightJan 2 '12 at 15:26

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.
–
lochokJan 3 '12 at 0:33

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.