Create Game/, Art/, Geo/, Tools/, Docs/ with LFS and ignore rules, record the workstation audit, toolchain pins, setup checklist, release checks, and licensing policy. ROADMAP 0.1.0 environment tasks marked to match verified state.
88 lines
5.5 KiB
Markdown
88 lines
5.5 KiB
Markdown
# AGENTS.md
|
|
|
|
Instructions and living roadmap for autonomous agents, AI coding assistants, and contributors working on this repository.
|
|
|
|
## Project Goal
|
|
|
|
Develop and test on Linux; ship Windows and Linux builds, with Linux as the primary development and CI platform. The game supports walking and driving through a real city.
|
|
The initial release is **`0.1.0`**: a walkable exterior demo around **6840 Hollywood Blvd / El Capitan Entertainment Centre**, including buildings on the south side of Hollywood Blvd between Highland Avenue and Orange Drive, plus buildings whose footprint lies within 50 m of the north-side frontage.
|
|
|
|
- Verify the address, building footprints, and demo boundaries **before** modeling.
|
|
- If the address, footprint, or boundary cannot be verified from permitted sources, do not model that structure. Record the unresolved item in `Geo/` with the sources checked and continue with verified structures only.
|
|
- Treat similarly named venues as **distinct structures** where source data indicates; do not merge footprints by assumption.
|
|
- use available research and reference data in local project `/run/media/system/DATA/Documents/06-games/security-game/`.
|
|
|
|
## Toolchain
|
|
|
|
| Tool | Role |
|
|
| --- | --- |
|
|
| Unreal Engine | Rendering, gameplay, World Partition, Chaos Vehicles |
|
|
| Blender | Modeling, UVs, baking, collision meshes, character prep |
|
|
| MPFB | Human base meshes; baked materials, deform skeletons |
|
|
| QGIS | Geographic cleanup, coordinate conversion, elevation prep |
|
|
| Blosm | OSM building/street blockouts in Blender |
|
|
| Git + Git LFS | Source control, large assets, tagged releases |
|
|
|
|
- Pin compatible versions in `Docs/toolchain.md`.
|
|
- Validate Blender→Unreal mesh, skeleton, material, and scale transfers **before** producing assets.
|
|
|
|
## Repository Layout
|
|
|
|
- `Game/` — Unreal project, configuration, source, game-ready content.
|
|
- `Art/` — editable Blender files and original textures.
|
|
- `Geo/` — source manifests, permitted geographic data, processing scripts.
|
|
- `Tools/` — repeatable import/export helpers.
|
|
- `Docs/` — setup, licenses, architecture, release checks.
|
|
|
|
**Git/LFS rules:**
|
|
|
|
- Track `.uasset`, `.umap`, `.blend`, and large source binaries with LFS.
|
|
- Ignore `Binaries/`, `Intermediate/`, `Saved/`, and Derived Data Cache.
|
|
- Never commit Unreal Engine source, credentials, or non-redistributable assets.
|
|
|
|
## Release Policy
|
|
|
|
Semantic Versioning: `MAJOR.MINOR.PATCH`.
|
|
|
|
- Each major milestone → **minor** release (e.g. `0.2.0`, possibly as `0.2.0-alpha.1` first).
|
|
- Each release containing only bug fixes, performance changes, documentation, or tuning of existing features → **patch** release (e.g. `0.2.1`). Any new feature, map area, or asset category → **minor** release.
|
|
- Patches contain fixes, optimization, docs, or refinements **only** — never new scope.
|
|
- Tag as `vX.Y.Z`; maintain `CHANGELOG.md`.
|
|
- During `0.x`, document breaking changes and asset migrations.
|
|
- `1.0.0` marks the stable, agreed game scope — not completion of a whole city.
|
|
|
|
## Geographic & Art Pipeline
|
|
|
|
1. Save a versioned OSM extract; document date, bounds, and source.
|
|
2. Acquire separately licensed elevation data for the demo bounds unless the source DEM shows less than 1 m height variation across the demo area; record the decision in `Geo/` metadata.
|
|
3. In QGIS, use a suitable local projected CRS (e.g. EPSG:26911) and record a local origin.
|
|
4. Import OSM blockouts through Blosm; clean and detail them in Blender.
|
|
5. Preserve geographic coordinates in metadata; convert to local Unreal coordinates with explicit meter→centimeter conversion.
|
|
6. Export modular buildings, sidewalks, roads, collision, and materials.
|
|
7. Use licensed reference photography for manual façade work.
|
|
8. Treat OSM as **layout data only** — not authoritative façade, height, or pavement detail.
|
|
|
|
Always use a consistent scale test, named export presets, and repeatable import settings.
|
|
|
|
## Licensing & Distribution
|
|
|
|
- Publish project-owned code under a chosen open-source license.
|
|
- Unreal remains proprietary/source-available; this is **not** a fully open-source stack.
|
|
- Keep code, art, engine, and geographic-data licensing **separate**.
|
|
- Record asset provenance and redistribution permissions in `THIRD_PARTY_NOTICES.md`.
|
|
- Verify licenses for every MPFB asset, texture, animation, vehicle, and audio file.
|
|
- An asset whose license cannot be verified must not be committed. Record it as unresolved in `THIRD_PARTY_NOTICES.md` and replace it with a redistributable asset before the release.
|
|
- Include "© OpenStreetMap contributors" and the appropriate license link; review ODbL obligations for distributed derived databases.
|
|
- Do **not** use extracted Google imagery or geometry without explicit applicable rights.
|
|
- Keep restricted assets out of the public repository; prefer redistributable replacements.
|
|
- Review Epic distribution requirements before publishing builds.
|
|
|
|
## Roadmap
|
|
|
|
The living roadmap with per-version task checklists is in **[ROADMAP.md](ROADMAP.md)**.
|
|
|
|
- Each version is a `##` heading; task groups are `###` headings with `- [ ]` steps (`[-]` in progress, `[x]` done).
|
|
- When **all** steps in a version section are done: write a short descriptive entry to `CHANGELOG.md`, then remove the version section from `ROADMAP.md` to keep it concise.
|
|
- Finish each milestone's release checks **before** expanding scope. Cut map size and simulation complexity before compromising the core walking/driving experience.
|
|
- Define the release checks in `Docs/release-checks.md`. If a check fails, do not tag the release; open a patch task in `ROADMAP.md` and report the failing check in `CHANGELOG.md`.
|