VRML Season 2 Ignite Stats

From Echopedia
Revision as of 03:50, 29 September 2022 by NtsFranz (talk | contribs) (restored from backup)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Before and throughout season 2 of VMRL Echo Arena, Ignite has developed a system for collecting and displaying game stats by use of EchoVR's built-in API. The tool used to collect this data is the Spark (formally known as IgniteBot), a version of which is availablefor public use. Some of these same stats can be collected for analysis of your own scrims.

We (Ignite) also have a collection of stats for public matches, collected using a computer running a spectator stream. Processed stats for this data is available on our stats website. The reason this information is relevant is because the information included in these two databases (the public match stats and the VRML match stats) is very similar, but their function and role in the community is very different. The VRML match data is not "our" dataset in the same way that the public match data is. This data belongs to the community. While the technology to collect and organize this data was created by Ignite, the collection was performed by the casters and cameramen from VRML. The nature of the dataset as a potential source competitive meta analysis means that we have to be careful stewards of this data. We have not done any analysis of this dataset that has not been made public. In order to allow deeper analysis, we are making this data available publicly.

However, it is important to know some of the limitations and inaccuracies of this dataset to avoid making incorrect conclusions!

For any questions about the data or to report inaccuracies not mentioned here, please contact NtsFranz on Discord. Helping find inaccuracies could prevent them from appearing in the dataset for future seasons.

Description of Tables[edit | edit source]

vrml_s2_rounds.csv[edit | edit source]

Column name Description
session_id Session ID of the match. Use this with match_time to merge with other tables.
match_time UTC of the start time of the round. Use this with session_id to merge with other tables.
private 0 for public match, 1 for private match
client_name The Oculus username of the caster/cameraman who was running the IgniteBot
version The version of the IgniteBot. This feature was added during the season, so a lot of these are NULL. Version changes could mark changes in the way some stats are collected or processed.
blue_team_score Final score of the blue team (or when the bot left the match)
orange_team_score Final score of the orange team(or when the bot left the match)
winning_team Color of the currently (or final) winning team
game_clock_start Seconds left on the clock when the round started. This value may not be correct. Needs further analysis.
game_clock_end Seconds left on the clock when the round finished. Behavior may seem strange on resets.
overtime_count Number of overtimes before this round was finished.
finish_reason Can be "game_time" (round finished normally when the timer ran out), "reset" (players hit the reset button to finish the round), "not_finished" (the bot did not see the end of the match), or "mercy" (the match ended early because of a score differential). There was a time when this was not recorded correctly for normal matches. These rows should be correct to not show anything, since the correct value may not be known.


vrml_s2_goals.csv[edit | edit source]

Column name Description
session_id Session ID of the match. Use this with match_time to merge with other tables.
match_time UTC of the start time of the round. Use this with session_id to merge with other tables.
game_clock Seconds left on the game timer when this event happened
player_name The Oculus username of the scorer
point_value 2 or 3
disc_speed The speed of the disc when it was scored. This should be the same as the message on the shield in-game (but with more digits of precision).
goal_distance The distance the goal was shot from. This should be the same as the message on the shield in-game (but with more digits of precision).
assist_name The Oculus username of the assister. "[INVALID]" if there was no assist.
goal_type The type of goal as shown on the shield in-game.
team_scored Color of the team that scored. From initial analysis, this may be incorrect, since it doesn't seem to match with goal_color correctly for own-goals. This data could be extracted from joining with the players table.
goal_pos_x Left-right position within the goal of where the disc was shot. Sometime within the season, this was made more accurate, so some shots may appear outside of the bounds of the goal due to lag.
goal_pos_y Up-down position within the goal of where the disc was shot. Sometime within the season, this was made more accurate, so some shots may appear outside of the bounds of the goal due to lag.
pos_x X-position of the player in the arena who shot the disc when they released the disc from their hand.
pos_y Y-position of the player in the arena who shot the disc when they released the disc from their hand.
pos_z Z-position of the player in the arena who shot the disc when they released the disc from their hand.
goal_angle Angle difference from straight-on of the disc velocity as it entered the goal. 0 is a straight-in shot (from the front or back), and 90 would be directly from the side.
backboard This indicates whether the disc came into the goal from the front or back, not necessarily that it bounced off the backboard.
goal_color Color the goal that the disc went in.
left_handed 0 for a right-handed shot and 1 for left-handed. This stat is estimated and may be inaccurate.
underhandedness Local (to the coordinate space of the head) y-position of the player's hand as they released the disc from their hand to take the shot.


vrml_s2_players.csv[edit | edit source]

Column name Description
session_id Session ID of the match. Use this with match_time to merge with other tables.
match_time UTC of the start time of the round. Use this with session_id to merge with other tables.
player_name The Oculus username of the player
player_number Display number of the player. This was added later in the season.
level Level of the player
team_color Team color of the player
play_time Seconds of time this player spent during game time. This time only counts while playing in the arena.
Game Stats (possession_time, points, shots_taken, saves, goals, stuns, passes, catches, steals, blocks, interceptions, assists) Final value of stats from the game's API of the corresponding statistic. While it it was attempted to merge these stats from before/after player drops, there were some errors, especially earlier in the season. Some of the stats may be doubled.
inverted_time Time (of play_time) spent with the head pointed more than 90 deg away from straight up.
won Whether this player was on the winning team.
average_speed The average speed of this player across the round. This is only accumulated during play_time.
average_speed_lhand The local average speed of this player's left hand across the round. This is only accumulated during play_time.
average_speed_rhand The average speed of this player's right hand across the round. This is only accumulated during play_time.


vrml_s2_throws.csv[edit | edit source]

Column name Description
session_id Session ID of the match. Use this with match_time to merge with other tables.
match_time UTC of the start time of the round. Use this with session_id to merge with other tables.
game_clock Seconds left on the game timer when this event happened
player_name The Oculus username of the player
pos_x X-position of the disc in the arena when the disc was released.
pos_y Y-position of the disc in the arena when the disc was released.
pos_z Z-position of the disc in the arena when the disc was released.
vel_x X-component of the velocity of the disc in the arena when the disc was released. These velocities were subject to lag interpolation error earlier in the season, and may be significantly higher than the player threw locally.
vel_y Y-component of the velocity of the disc in the arena when the disc was released. These velocities were subject to lag interpolation error earlier in the season, and may be significantly higher than the player threw locally.
vel_z Z-component of the velocity of the disc in the arena when the disc was released. These velocities were subject to lag interpolation error earlier in the season, and may be significantly higher than the player threw locally.
left_handed 0 for a right-handed shot and 1 for left-handed. This stat is estimated and may be inaccurate.
underhandedness Local (to the coordinate space of the head) y-position of the player's hand as they released the disc from their hand.


vrml_s2_events.csv[edit | edit source]

Column name Description
session_id Session ID of the match. Use this with match_time to merge with other tables.
match_time UTC of the start time of the round. Use this with session_id to merge with other tables.
game_clock Seconds left on the game timer when this event happened
player_name The Oculus username of the player
event_type One of "stun", "block", "save", "catch", "pass", "throw", "shot_taken", "steal", "player_joined", "player_left", or "joust_speed". Some of these events are generated when the game-reported stat changes, but others are custom detection algorithms.
other_player_name The Oculus username of the second player involved in this interaction. For stuns, this is the estimated person that got stunned. This name may be inaccurate.
pos_x X-position of the event.
pos_y Y-position of the event.
pos_z Z-position of the event.
x2 A secondary x-component. This is different per event. For throws, this is the velocity. For joust speed, this was the velocity at the centerline. Later versions of the IgniteBot used x value for speed when crossing the centerline.
y2 A secondary x-component. This is different per event. For throws, this is the velocity. For joust speed, this was the velocity at the centerline. Later versions of the IgniteBot used y value for speed when exiting the tunnel.
z2 A secondary x-component. This is different per event. For throws, this is the velocity. For joust speed, this was the velocity at the centerline. Later versions of the IgniteBot used z value for time to cross the centerline.


Downloads[edit | edit source]

Title Download Link File Size Short Description
Rounds File:vrml_s2_rounds.csv 226 KB One row per round of a match
Goals File:vrml_s2_goals.csv 1.98 MB One row per goal
Players File:vrml_s2_players.csv 2.69 MB One row per player in a particular round
Throws File:vrml_s2_throws.csv 17.6 MB One row per throw event
Events File:vrml_s2_events.csv 47.1 MB One row per generic event (throws, stuns, etc.)