Files
gig-line/AGENTS.md
T
zwitschi 01939de9a0 docs: add the memory convention and seed MEMORY.md
AGENTS.md now states that planned work is checkbox items in ROADMAP.md marked
open, in progress, or done, and that discoveries, gotchas, notes, and bugs go to
MEMORY.md for coordination between collaborators. MEMORY.md is seeded with what
this build-up actually cost: the Unreal read-only-home crash, Blender/Blosm
headless workarounds and the spherical projection, the tiled-TIFF DEM trap, the
reference licensing and throttling rules, and the LFS silent-blob trap.

Also stages the concurrently created Unreal project files, and stops per-project
Build/ output (FileOpenOrder logs) from entering the repository.
2026-11-07 09:08:58 +01:00

6.7 KiB

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 reference photography for manual façade work, ignore licensing for internal development use and do not commit reference images to the repository.
  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.

  • Planned work is listed as checkbox items in ROADMAP.md, each marked open (- [ ]), in progress (- [-]), or done (- [x]). Update the marks as work changes state; a checkbox that no longer matches reality is worse than none.

  • 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.

Memory

MEMORY.md is the shared working memory between sessions and collaborators. Write to it whenever you:

  • discover a fact about the environment, a tool, or a data source that cost time to establish;
  • hit a gotcha, trap, or surprising failure mode, and what actually caused it;
  • find or fix a bug, and how it was found so it can be found again;
  • make a decision that does not fit a ROADMAP.md checkbox, such as a workaround, an assumption, or a rejected approach and why.

Keep entries short and dated, with the evidence: the command, the log line, or the file path. Anything that belongs in a formal document (setup steps, tool versions, licensing) goes in Docs/ as well — memory is for coordination, not a replacement for the record. Do not let MEMORY.md become a second roadmap: planned work stays in ROADMAP.md.