Game Analytics & Telemetry System for Godot 4
GDInsight is a comprehensive data visualization toolkit built for Godot 4 that enables gameplay events to be collected, stored, and visualized directly in the editor. This system transforms raw telemetry data into meaningful spatial visualizations including volumetric heatmaps, movement paths, and event markers, providing game designers with actionable insights into player behavior.
Engine: Godot 4.5 Project: 3D Third-Person Controller by GDQuest Database: MySQL with PHP backend
The system collects and visualizes the following gameplay data:
- Player Deaths: Position, damage type, enemy responsible, timestamp
- Player Movement: Position, velocity, looking direction, timestamp (sampled)
- Enemy Deaths: Position, damage dealt, weapon used, timestamp
- Damage Events: Position where player took damage
- Attempt Tracking: Each death creates a new attempt ID
- Session Management: Automatic session creation and tracking
-
Volumetric Heatmap
- Uses Godot's
FogVolumewith 3D texture density maps - Shows aggregate death positions across ALL attempts
- Dynamic bounds calculation based on data
- Uses Godot's
-
Movement Paths
- Color-coded by velocity (blue → red spectrum)
- Continuous curve visualization using
ImmediateMesh - Shows player movement for specific attempts
- Temporal information preserved
-
Event Markers (Waypoints)
- Player Deaths: Red spheres with cross icons
- Coin Pickups: Yellow spheres with coin icons
- Enemy Deaths: Green 3d models of the enemy
- 3D billboarded icons always facing camera
- Attempt-specific markers
Game Runtime → PHP Backend → MySQL Database → Godot Editor
Location: Bottom panel → GDInsight tab
Features:
- Category toggles (Waypoints, Player Path, Heatmap, Player Replay)
- Attempt selection via SpinBox
- Real-time data fetching
- Visualization clearing controls
- Status feedback
Tracks gameplay sessions from start to end.
Stores player device information and links to sessions.
Records player position, velocity, and looking direction over time. Used for path visualization.
Logs death events with position, enemy responsible, and damage details. Used for heatmap and waypoint generation.
Tracks damage events that didn't result in death.
Records player combat actions against enemies.
Base URL: https://citmalumnes.upc.es/~hugopm/
- connect_db
- end_session
- get_insight_data
- hello_world
- new_attempt
- new_player
- player_attacked
- player_damaged
- player_died
- player_moved
- start_session
-
Play Game Session:
- Run game (F5)
- Data automatically collected
- Each death increments attempt ID
-
Open Editor Visualization:
- Stop game
- Open the main scene in editor
- Open GDInsight dock panel
-
Load Data:
- Select attempt ID
- Check desired categories
- Click "Get Data"
-
Inspect Visualizations:
- Heatmap: Gets all the death from the players and creates a volumetric heatmap
- Waypoints: Event-specific markers (deaths and enemy kills)
- Path: Movement trajectory
- Replay: Timeline of player movement through the path
-
Clean Up:
- Click "Clear All" to remove visualizations
- Load different attempt for comparison
Developed by: @mdoradom @hugoplanell @martagnarta Course: Data Analytics - CITM 2025-2026 Engine: Godot 4.5 License: MIT
Dependencies:
- Godot Engine (MIT License)
- PHP 7.4+ (PHP License)
- MySQL Community Edition (GPL)
- GDQuest 3D Third-Person Controller Demo (MIT License)
