docs: arc42 architecture documentation for Gig Line

Populated from the arc42-template (EN/adoc) with project-specific content
across all 12 sections:

1.  Introduction and Goals — requirements overview, quality goals, stakeholders
2.  Architecture Constraints — technical (engine, collision, coordinates),
    organisational (squash-merge, visual review, provenance), conventions
3.  Context and Scope — business and technical context tables
4.  Solution Strategy — technology decisions, top-level decomposition,
    quality achievement approach
5.  Building Block View — Gameplay (6 C++ classes), Site (7 meshes + 7
    materials), Facades (9 buildings), Art Pipeline, QA & Review; Level 2
    white boxes for input flow and collision model
6.  Runtime View — walk, screenshot capture, QA self-test, build/import
    pipeline scenarios
7.  Deployment View — dev workstation and packaged build infrastructure
8.  Cross-cutting Concepts — coordinate system, collision model, lighting,
    materials, data provenance, QA harness
9.  Architecture Decisions — 7 ADRs (dynamic lighting, UE materials,
    C++ collision helper, grounded reset, core ticker, Y convention,
    headless Blender)
10. Quality Requirements — overview table + 7 measurable scenarios
11. Risks and Technical Debts — 5 risks, 2 debts with mitigations
12. Glossary — 16 domain-specific terms

Master document: Docs/Architecture/architecture.adoc
Config: Docs/Architecture/config.adoc
This commit is contained in:
zwitschi committed 2026-11-08 13:08:35 +01:00
1 parent b577afa730
commit 72705268b5
15 files changed
+610

No files matched your search

+58
View File
@@ -0,0 +1,58 @@
ifndef::imagesdir[:imagesdir: ./images]
[[section-glossary]]
== Glossary
[cols="e,2e" options="header"]
|===
| Term | Definition
| Blosm
| Blender add-on (2.7.28) that imports OSM data as 3D building and street blockouts. Used for layout only — not authoritative for façade or height.
| Complex-as-simple collision
| `CTF_UseComplexAsSimple`: Unreal collision mode where the render mesh triangles are used as the collision surface, instead of a simplified proxy. Required for terrain so the player walks on the actual ground shape.
| DEM
| Digital Elevation Model. 3DEP 1 m resolution GeoTIFF covering the demo bounds. Source of terrain heightfield.
| El Capitan
| El Capitan Entertainment Centre, 6838 Hollywood Blvd. The hero building of the demo.
| Enhanced Input
| Unreal's modern input system (UE 5+). Uses Input Actions (`IA_*`) and Input Mapping Contexts (`IMC_*`) instead of legacy axis/action bindings.
| EPSG:26911
| UTM zone 11N, the projected CRS used for the demo area. Local origin recorded in `Geo/`.
| Hero façade
| The detailed, reference-calibrated model of the El Capitan building frontage.
| MPFB
| MakeHuman Plugin for Blender (2.0.18). Generates parametric human base meshes with rigs and baked materials.
| ODbL
| Open Database Licence 1.0. The licence covering OSM-derived data. Requires attribution and may impose share-alike on derivative databases.
| PlayerStart
| Unreal actor that defines where the player pawn spawns. Positioned above grade so the capsule does not embed in the floor on spawn.
| QA self-test
| The `-qaselftest` command-line switch that runs an automated behaviour check (walk, reset, pause, ground transect) via a core ticker.
| Site
| The terrain, road, sidewalks, kerbs, and crossing markings — the ground-level infrastructure of the demo area.
| Squash merge
| Git merge strategy that compresses all branch commits into one commit on `main`, keeping a linear history.
| Swept transect
| A QA technique that raycasts vertically at regular intervals along a path (e.g. every 200 cm along both sidewalks and the carriageway) and counts holes (misses). Zero holes = the block is fully walkable.
| World Partition
| Unreal's world composition system for large open-world levels. Not yet used in `0.1.0` but planned for `0.3.0+` driving routes.
| Y convention
| In Unreal, south = +Y, north = −Y (confirmed from street mesh orientation). In Blender, north = +Y; the `ue_metric_v1` export preset flips Y.
|===