Contributing¶
git clone https://github.com/TTomilin/COMRAD.git && cd COMRAD
uv sync
uv run pre-commit install
uv run pytest comrad/tests sample_factory/tests
Repository layout¶
| Path | Contents |
|---|---|
comrad/ |
The comrad-bench package: public API (api.py), environments, scenario wrappers, models, training entry points |
comrad/scenarios/ |
Shipped .cfg/.wad files and batch_* map pools |
sample_factory/ |
Modified Sample Factory with the MARL algorithms (shipped in the package) |
examples/ |
Runnable quickstart scripts used in the docs |
scripts/ |
Figure, table and analysis scripts |
results/ |
Committed figures, tables and result summaries |
docs/, mkdocs.yml |
This website |
DoomGen/, DoomGen2/ |
Separate map-generation tools. They are not part of the COMRAD package and have their own environment and tests. |
Adding a scenario¶
- Put the
.cfgand.wadfiles incomrad/scenarios/. - Add a
DoomSpectoDOOM_ENVSand a one-line entry toSCENARIO_METADATAincomrad/utils/doom_utils.py. - Put reward shaping in a wrapper under
comrad/wrappers/scenario_wrappers/, and setinfo["true_objective"]at episode end. - Add a page under
docs/scenarios/and link it inmkdocs.yml.
Documentation¶
uv run --group docs mkdocs serve # live preview
uv run --group docs mkdocs build --strict # what CI runs
./scripts/build_docs_assets.sh # regenerate thumbnails, figures and the GIF
Pushing changes under docs/, mkdocs.yml or README.md to main redeploys the site.