Do not use fun names like Overlord, 1984Engine or IDrinkYourMilkshake for your telemetry code
The gathering is done on the players device. Each event that one wish to sample is stored in a buffer. The buffered data is then is sent to the telemetry when possible to minimize the impact of the gameplay experience.
Most metrics for a game can be associated with navigational data. That is a location, line or a area. For example a chat message with encoded position can be used to look for where the players ask questions to other players. To make this data useful a spatial visualization tool is also needed.
Each data message is called a sample and the sample type decide what the message contains. Below follows an example of messages that can be used.
Played: The player played the game. Start time and the amount of time played.
Crash: If the game did not shut down correctly.
Progress: How far the player is along in the game.
Fail: The player failed in the game and needed to restart from last checkpoint.
Hardware: Collect info on the users hardware.
Options: The options the player choose to use when playing.