The Prague Ego-Shooter Dataset

The prague Ego-Shooter dataset represents the traces of five players playing the game mode capture and hold on the prague map of Urban Terror. It consists of the trajectories and has been used in research on trajectory classification and indexing. It contains more than 250,000 individual location samples.

Dataset Overview

If you use this dataset, consider citing one of the following two papers introducing the dataset:

Downloads

How it is done

Thanks to the fact that the source code of Urban Terror is available and very well-structured being based on the Quake 3 Engine, it is possible to inject a very small and easy snippet into the network messaging code as below: Basically, a global variable gDumpFile opens a file unless this has been done already and writes to this file the coordinates of the current network package together with a timestamp.

     int theTime = Sys_Milliseconds();
     if (gDumpFile == NULL)
     {
	gDumpFile = fopen("psdump.dat","a");
     }
      if (to != NULL){ // currently every 50 ms.
	
        fprintf(gDumpFile,"%d %d %.2f %.2f %.2f\n",
	 	theTime,
		to->clientNum,
		to->origin[0],to->origin[1],to->origin[2]
		);
      }

This code needs to be injected into the MSG_WriteDeltaPlayerstate method, here is a patch: The Patch

With this in place, you can just compile the server and run it in your favourite game mode and collect traces.

The different players

Here is a small MATLAB excerpt how you can use the datasets written to psdump.dat by the modification to the game engine:

% Scatters each single player.

A=load("prague_50_min.dat");
for player=unique(A(:,2))';
  disp(sprintf("Processing Player %d\n",player));
  p=A(find(A(:,2) == player),:);
  clf;
  scatter(p(:,3),p(:,4));
  print("-dpng",sprintf("prague_50_min_p%02d.png",player));
endfor

resulting in the following images:

Player 1 Player 2 Player 3 Player 4 Player 5

References

  1. Kiermeier, M., & Werner, M. (2017). Similarity Search for Spatial Trajectories Using Online Lower Bounding DTW and Presorting Strategies. In 24th International Symposium on Temporal Representation and Reasoning. [PDF] [Online] [BibTeX]
  2. Werner, M., & Kiermeier, M. (2016). A Low-Dimensional Feature Vector Representation for Alignment-Free Spatial Trajectory Analysis. In Proceedings of the 5th ACM SIGSPATIAL International Workshop on Mobile Geographic Information Systems (MobiGIS’16). [PDF] [BibTeX]