Dreamless: Analytics for Ludum Dare
Do people like my game? Dreamless collects analytics data about each level to help answer that question. Every time a level is completed, a short record is stored in an SQL database.
How hard is each level?
You can see that levels 6 and 8 are the harder ones, averaging between two and three restarts. About 60% of the players finished the game.
Time spent in level
The first thing noticeable in the data are a couple players who spent a long time in certain levels.
select level, timeend, status from dr_levelend order by timeend desc limit 5;
One player even spent 57 minutes on level 6. This is not data we care about, it’s probably just a player who left the game open and did something else for an hour. We can ignore any level time over ten minutes when we compute the average.
select level, avg(time) from ( select level, sum(timeend) as time from dr_levelend where timeend <= 00:'10:00' group by sessionid, level ) ss group by level order by level;
Number of times restarted
Here is the query for the number of times each level was restarted. This only counts players who played each level.
select level, round(avg(restarts), 2) from ( select level, count(case when status='restart' then 1 else null end) as restarts from dr_levelend group by sessionid, level ) ss group by level order by level;
Number of players
This is the simplest query. Out of 37 players, 22 players made it to level 9.
select level, count(distinct sessionid) from dr_levelend group by level order by level;
Number of players per day
Rather than watch the game’s rating count creep up, you can find out how many people played each day. This only counts plays since the Windows port came out.
You can see how much more ratings developers earn for their early ratings. When I started rating games, I was earning ratings for my own game at about a 1:1 ratio. After a week, I have to rate two games to earn one rating for my game.
select starttime::date as start, count(*) from dr_session group by start order by start;
How long do people play the game?
Most players spend between about 5 and 10 minutes, a significant percentage stop playing quickly, and a few people leave the game open for a half hour or longer. This graph excludes the outliers.
select max(timestart + timeend) as time from dr_levelend where timeend <= '00:10:00' group by sessionid order by time;
What operating system do players use?
This only counts players from after the the OS X and Linux releases.
select osversion, count(*) from dr_session where starttime > '2014-08-31' group by osversion order by osversion;