Skip to content

Latest commit

Β 

History

History
87 lines (69 loc) Β· 3.01 KB

File metadata and controls

87 lines (69 loc) Β· 3.01 KB

X-Ego: Cross-Egocentric Multi-Agent Video Understanding in Counter-Strike 2

Paper Dataset

X-Ego-CS is a large-scale multi-agent gameplay dataset for cross-egocentric video understanding in Counter-Strike 2.
It provides synchronized first-person (egocentric) video streams from 10 players (5v5) across 45 professional-level matches, enabling research on tactical reasoning, situational awareness, and multi-agent coordination.

multi-ego-sync-demo-pistol.mp4

x-ego


Quick Start

We use uv for package management.

After installing uv, run

uv sync

to set up venv and install required dependencies

πŸš€ Training

# Train enemy location nowcast task
python main.py --mode train --task enemy_location_nowcast

# Train teammate location forecast task
python main.py --mode train --task teammate_location_forecast

All configuration files are located in the configs/ directory:

  • configs/global.yaml β€” global default configuration
  • configs/train/<task>.yaml β€” task-specific training configuration
  • configs/dev/<task>.yaml β€” lightweight debug configuration

Configuration priority (higher overrides lower):

Command line > dev  >  train  >  global

All configs in .yaml files can be overwritten in the command line, for example

python main.py --mode train --task enemy_location_nowcast training.max_epochs=20 data.batch_size=8 meta.seed=123

Data File Structure

data/
β”œβ”€β”€ demos/                       # Raw .dem files (by match)
β”‚   └── <match_id>.dem
β”œβ”€β”€ labels/                      # Global label datasets
β”‚   β”œβ”€β”€ enemy_location_nowcast_s1s_l5s.csv
β”‚   └── teammate_location_nowcast_s1s_l5s.csv
β”œβ”€β”€ metadata/                    # Match / round metadata
β”‚   β”œβ”€β”€ matches/
β”‚   β”‚   └── <match_id>.json
β”‚   └── rounds/
β”‚       └── <match_id>/
β”‚           └── round_<nn>.json
β”œβ”€β”€ trajectories/                # Player movement trajectories
β”‚   └── <match_id>/
β”‚       └── <player_id>/
β”‚           β”œβ”€β”€ round_<nn>.csv
β”‚           └── ...
└── videos/                      # Player POV recordings
    └── <match_id>/
        └── <player_id>/
            β”œβ”€β”€ round_<nn>.mp4
            └── ...

🧩 Citation

If you use this repo, please cite our paper:

@article{wang2025x,
  title={X-Ego: Acquiring Team-Level Tactical Situational Awareness via Cross-Egocentric Contrastive Video Representation Learning},
  author={Wang, Yunzhe and Hans, Soham and Ustun, Volkan},
  journal={arXiv preprint arXiv:2510.19150},
  year={2025}
}