- Converted 13 individual .adoc section files to .md via asciidoctor→docbook5→pandoc(gfm) + post-processing, placed alongside the .adoc sources in Docs/Architecture/ - Rebuilt architecture.md from the individual section .md files - Ran prettier --write on all .md in the repo (23 files changed): normalised table column alignment, trailing whitespace, line breaks - Added .agents/ to .prettierignore (vendored third-party content) - All .md now passes prettier --check
2.3 KiB
2.3 KiB
Architecture Constraints
Technical Constraints
| Constraint | Explanation |
|---|---|
| Engine: Unreal 5.8.4 | Pinned; no bundled Linux clang — uses system clang 23.1.4. Game targets use BuildSettingsVersion.V7. |
| Platform: Linux first | Developed and tested on Bazzite Linux (Fedora 45 base). Windows builds ship but are secondary. |
| GPU: RTX 5070 Ti 16 GB | Dev workstation target. Vulkan RHI; open kernel module driver 615.78.08. |
| No static lighting | r.AllowStaticLighting=False. The demo is a fixed daytime scene lit entirely dynamically to avoid "LIGHTING NEEDS TO BE REBUILT" warnings. |
| Blender→UE via FBX | Flat diffuse colours do not survive FBX→Unreal import. All materials are authored in UE. |
| Terrain collision | UE 5.8 exposes CollisionTraceFlag (not bUseComplexAsSimpleCollision); Python cannot set it. Must use C++ helper UGigLineAssetTools::SetComplexCollisionAsSimple. |
| Coordinate convention | South = +Y, north = −Y (ground truth = street mesh orientation). 1 m in Blender = 100 cm in Unreal. |
Organisational Constraints
| Constraint | Explanation |
|---|---|
Squash-merge to main |
Every PR is squash-merged for a linear history. No direct commits to main except integration merges. |
| Visual review required | Any change affecting appearance must produce screenshots for human approval before being marked done. |
| Asset provenance | Every committed asset must have verified licence and redistribution permission recorded in THIRD_PARTY_NOTICES.md. |
| Reference photography | Local only, gitignored, never committed. Used for façade work under fair-use / internal-development rationale. |
| LFS for binaries | .uasset, .umap, .blend tracked with Git LFS; Binaries/, Intermediate/, Saved/ are gitignored. |
Conventions
| Convention | Explanation |
|---|---|
| Semantic versioning | MAJOR.MINOR.PATCH. 0.x documents breaking changes. 1.0.0 = agreed game scope. |
Task tracking in TODO.md |
Single central task list. - [ ] open, - [-] or - [~] in progress, - [x] done, - [A] active, - [D] deferred. |
| Headless Blender | All Blender work driven by bpy scripts in Tools/, not MCP. Blender skills are method guides only. |
| Named export presets | ue_metric_v1 for static meshes, ue_character_v1 for skeletal. Every exporter calls the metre→centimetre conversion. |