User Tools

Site Tools


CKC Analytics

CKC uses a two-part analytics system, which tracks individual stats per machine, as well as more in-depth global stats.

Local Data Tracking

Each local copy of CKC creates and maintains a local SQLite database file, which records all data concerning games played on that local machine. Periodically - (after a game, or a session, or at the start of a new session) CKC uploads the recent play data from the local database file to a central database stored on the server.

In a future update, we plan to give players the ability to review their own local game data - games played, games won per character, etc.

Since this data is stored locally, it will not be preserved if CKC is uninstalled. It also is not preserved between machines.

Global Data Tracking

Individual player data is uploaded to a central database, where it can be reviewed & used as a basis for balance changes, feature prioritization, etc. For example, if a great number of people are trying to play CKC without a controller, or using a certain bad configuration, or eschewing multiplayer for single-player sessions - we can use that data to help decide what features to emphasize in future releases.

Ideally, balance information such as global & local win % per character would be available via a web portal.

Tracked Data List

Each game stores the following info in a table at the start of the match:

  • Match ID - A unique ID for this battle. (should we also save a session ID, which could persist for several matches?)
  • Game Start - the time & date the match started. (we could make time and date two columns if you like)
  • Game Location - string - can be local or online
  • Game Type - string - can be LMS or Points (LMS = Last Monster Standing - currently our only game mode.)
  • Initiated By - string - can be new game or story mode or rematch or monster select or custom game
  • Custom Game Name - string - name of custom game, or story mode (which are really just custom games that ship with releases)
  • Map Name - string
  • Player 1 ID - a unique ID for this Steam account.
  • Player 1 Monster - string - monster name
  • Player 1 skin - string - name of skin used for monster. Can be default or a truncated folder name.
  • Player 1 team - string - can be none or red or blue (potentially others if we add new team types)
  • Player 2 ID - P1 will always be a valid steam account. Non-Steam people (local players) are P1 Guest, P2 Guest etc. Where P# is the player with a valid Steam ID on the same local machine.

Match End Data:

  • Match ID
  • Resolution - string - can be victory P### or tie P### or disconnect (Up to 3 players could win or tie, so P1, P13, or P234 are all valid strings.)
  • Match Length - int - length of match in seconds.
  • Menu Length - int - length of time host spent in menu before match started.
  • Monster Select Length - int - length of time host spent in monster select before match started.
  • Level Select length - int - length of time host spent in level select before match started.
  • P1 ID - steam ID. Can be P1 Guest, etc.
  • P1 Final Points - int - points at end of match. Set to nil if it wasn't a points match. (Don't use 0, since some folks could score 0 in a points match.)
  • P1 Final Health - float - health remaining at end of game.
  • P1 Powerups collected.
  • P1 Energy Spent - int - amount of energy spent by P1 over the course of the match.
  • P1 Rage Spent.
  • (Repeart P1 data for all players present.)

Damage Event Data:

  • Match ID
  • Timestamp
  • Attacker ID - string - steam ID (or guest)
  • Attacker Monster - string - name of monster
  • Defender ID - string
  • Defender Monster - string
  • Damage Dealt - float
  • Attack Name - string - the animation being played by the attacker.
  • Defender Anim - string - the animation being played by the defender (before their reaction anim.)
  • Reaction Anim - string - the reaction animation played by the defender.

Note that sometimes a single attack can hit multiple monsters. This could create multiple rows of data.

analytics.txt · Last modified: 2014/07/29 22:46 by simon_strange