five

Toward a Formal Theory of Space in First-Person Shooter Games: A Container Graph and Navigation Zone Framework — Data and Code

收藏
Zenodo2026-03-31 更新2026-05-26 收录
下载链接:
https://zenodo.org/doi/10.5281/zenodo.19351094
下载链接
链接失效反馈
官方服务:
资源简介:
# Toward a Formal Theory of Space in First-Person Shooter Games## A Container Graph and Navigation Zone Framework — Data and Code This deposit contains the data, code, and figures accompanying the paper: > *"Toward a Formal Theory of Space in First-Person Shooter Games:> A Container Graph and Navigation Zone Framework"* Applied to all 36 maps of Ultimate DOOM (id Software, 1995). --- ## Contents ```├── README.md                        — this file├── code/│   ├── pipeline.py                  — core extraction pipeline (no dependencies)│   ├── figures.py                   — figure generation (requires matplotlib)│   ├── analysis_notebook.ipynb     — Jupyter notebook: full analysis walkthrough│   └── requirements.txt            — Python dependencies├── data/│   ├── corpus_metrics.json         — full dataset (JSON, all 36 maps)│   ├── corpus_metrics_flat.csv     — flat CSV version for easy import│   └── README_data.md              — data dictionary and field definitions└── figures/    ├── fig1_pipeline.png           — extraction pipeline diagram    ├── fig2_E1M1_container_graph.png    ├── fig3_E1M2_container_graph.png    ├── fig4_E1M8_container_graph.png    ├── fig5_E2M7_trigger_overlay.png    ├── fig6_depth_snd_scatter.png    ├── fig7a_E1M2_zone_map.png    ├── fig7b_E3M4_zone_map.png    └── fig7c_E2M7_zone_map.png``` --- ## Quick Start ### Reproduce the dataset ```bashpip install -r code/requirements.txtpython code/pipeline.py --wad DOOM.WAD --output my_corpus.json``` ### Reproduce a single map ```bashpython code/pipeline.py --wad DOOM.WAD --map E2M7``` ### Run the full analysis notebook ```bashpip install jupyterjupyter notebook code/analysis_notebook.ipynb``` Update the `WAD_PATH` variable in the first code cell to point to your DOOM.WAD. ### Regenerate figures ```bashpython code/figures.py --wad DOOM.WAD --corpus data/corpus_metrics.json --outdir my_figures/``` --- ## Key Metrics | Metric | Definition ||--------|-----------|| **C** | Number of containers (maximal regions bounded by keycard doors) || **Z** | Number of navigation zones (bounded by keycard + remote trigger doors) || **κ** | Predicate complexity = \|portals\| / \|containers\| || **depth** | Critical path depth: mandatory keycard gates to reach exit || **SND** | Spatial Navigation Demand = NT × nav || **NT** | Fraction of world-flag triggers that are remote (d ≥ 2) || **nav** | Mean sector-graph distance of remote triggers | --- ## Corpus Summary (36 maps, Ultimate DOOM) | Metric | Mean | SD | Range ||--------|------|----|-------|| κ | 0.49 | 0.32 | [0.00, 0.86] || depth | 0.45 | — | [0, 2] || SND | 1.99 | 1.91 | [0.00, 8.57] || Z (zones) | 8.8 | — | [1, 30] | - Solvable in G₀: 29/36 (E1M8, E2M8, E3M8 unsolvable — boss levels)- Maps with Z > C: 28/36 --- ## Important Notes ### WAD file not included `DOOM.WAD` cannot be redistributed as part of this deposit for copyrightreasons. A legal copy is required to run the pipeline. Ultimate DOOM isavailable via Steam and GOG. ### Zone boundary detection (corrected) Zone boundaries use **sector-based closed-door detection**, not linedef tags.A linedef is a zone boundary iff it borders a sector where `floor == ceil`(physically closed) AND whose sector tag matches a remote trigger. This is critical: DOOM door linedefs carry `tag=0`; it is the door *sector*that carries the activation tag. An earlier linedef-tag approach producedno zone boundaries for E1M2 and other maps. ### Geometry-encoded gates E2M7 is reported as `crit_depth=0` because the exit linedef is in the origincontainer. In practice, the exit is behind a bridge raised only by twospecific switches — a geometry-encoded gate invisible to the predicatepipeline. This is documented as a known limitation in the paper (§4). --- ## Formal Framework Summary **Container** (Definition 7): maximal spatial region reachable bynull-predicate traversal. Bounded only by possession predicates (keycarddoors, φ_I) and boss-death predicates (φ_Γ). **Navigation Zone** (Definition 9): maximal spatial region reachable byφ_∅, φ_I, and φ_Ω^local traversal (d ≤ 1). Bounded by possession predicatesAND physically closed doors controlled by remote triggers (d ≥ 2). Every zone is a subset of a container. Z ≥ C always.When Z = C, navigational phasing aligns with logical gating.When Z ≫ C, logical regions contain multiple navigational phases. --- ## License Code: MIT License  Data: CC BY 4.0  Figures: CC BY 4.0   DOOM.WAD is © id Software and is not included.
提供机构:
Zenodo
创建时间:
2026-03-31
二维码
社区交流群
二维码
科研交流群
商业服务