Using Heatmap Tool
POINT CLOUD HEATMAP TO TRACK PLAYER MOVEMENT IN PLAYTEST SESSIONS
TLDR: we track the player position at 2Hz and write it to a CSV file. The CSV file then gets parsed as a point cloud and visualized via VFX. Big thanks to dylanebert for this tutorial on visualizing Gaussian Splats in Unity.
STEP 1: Track the player's position.
Then we write it to a file, in this case, we write it in OnDisable() and OnDestroy(). This means CSV gets written anytime the player dies or the game is exited.
STEP 2: Importing those CSV files to Scriptable objects for the VFX graph to use.
While short playtests can only be about 1000-3000 points, since we are making a heatmap, we will use many samples, meaning it could go as high as 100k points as we scale this tool. It is always better to leave these kinds of SIMD tasks to the GPU, therefore VFX graph.

STEP 2.5: Looking at the path the player took.
Since each line in the CSV is in order of time, and we do timestamp it too, we can replay how the player moved. With the 'Show Path' part of loading, you should see cubes being drawn in the scene. The Importer tool has created a GameObject with HeatmapPath.cs attached.
Scrub the Time Slider and you'll get real-time playback of the player's movement. If this data is useful for heatmap later, go ahead and 'Generate Splat Data', and it will create the scriptable objects.


STEP 3: Preparing Heatmap.
In the Heatmap Maker tool, drop in all the scriptable objects you want to make heatmap out of. This will make a new 'Heatmap' scriptable object in the assigned location.
STEP 4: Viewing Heatmap.
Drag the 'Heatmap as Splat' prefab, add SplatDataBinder component, and drop in the just-made Heatmap scriptable object. Check-uncheck the Visual Effect component to refresh.
AND WITH THAT YOU ARE ALL SET.
Since the CSV tracker is attached to the player, it is simple in its job to just track the player's position and write it. The trick is in parsing those CSVs.
For future updates and scalability, we can write positions when certain events happens, like item use, health threshold drops, and so on. This way, in the Path viewing, we can see more information on how the player reacted to the levels.
Together with the path tool and the heatmap tool, level designers will have a better idea of how their levels interact with the player. And since the CSV is just player positions, this tool should work with almost any 3D game you are working on!
Files
Get Point Cloud Heatmap
Point Cloud Heatmap
Unity Tool to track player movement in playtests
Status | In development |
Category | Tool |
Author | Prasin Shrestha |
Leave a comment
Log in with itch.io to leave a comment.