* Write the Unreal documentation set: design, steps, ideas, decisions and specs Rewrites the design and engineering docs of the two earlier Unity projects (Adventurer Guild, Project Malleable) for an Unreal Engine 5 prototype that builds and proves three things in order: a movement controller, fighting and crafting. Neither earlier core loop is carried; their ideas are catalogued as features with what each needs. - Docs/Design.md: the human summary (pillars, fixed decisions, glossary) - Docs/Steps.md: a ladder of fifteen proofs, the first six in full - Docs/Ideas.md: salvaged ideas from both projects, none scheduled - Docs/Decisions.md: D-01..D-36, open decisions OD-01..OD-08, deferrals - Docs/Spec/: notation, Architecture, Movement, Interaction, Combat, Crafting, Networking, Telemetry, UI, written as Unreal C++ skeletons - CLAUDE.md and README.md for the repository * Add the stat block: one attribute set on every body, every influence an effect Every body (player, enemy, NPC) carries the same UStatBlockAttributeSet, and every outside influence on it is a gameplay effect: base values, buffs, debuffs, ground surfaces, carried weight, gear, being downed. Counters are tags and attributes on the receiver: immunity blocks by tag, resistance scales by attribute, cleanse removes by tag. Same status from several sources: strongest wins; different statuses multiply. - Docs/Spec/Stats.md: the block, effects and their five sources (abilities, areas, surfaces, items, the world), stacking, counters, readers, tests - Movement: the movement component's tagged speed-multiplier map is removed; speed is tuning times the MoveSpeed attribute; the ground surface trace turns mud into an effect; the gym gets mud and ice patches - Combat: the attribute set moves to Stats; enemies and kits carry FStatBlockDefaults; the funnel reads MagicResist and Immune.Damage tags; taunt and mark are statuses - Interaction: carried weight is GE_Encumbered against CarryCapacity - Crafting: class bonuses are the WorkSpeed and WorkQuality attributes; enchantments may grant a holder effect - Steps: step 5 builds the block with mud, a volume and an immunity - Decisions D-37 and D-38; design summary, CLAUDE.md, indexes, worklog
38 lines
2.0 KiB
Markdown
38 lines
2.0 KiB
Markdown
# Unreal prototype
|
|
|
|
An Unreal Engine 5 project that builds three things in order and proves each one feels right before anything is
|
|
built around it: a movement controller, fighting, and crafting. Server-authoritative from the first line, C++
|
|
first, data-driven, telemetry from step 2, and worked as a ladder of small proofs rather than a roadmap.
|
|
|
|
Nothing is built yet. The repository currently holds the documentation set.
|
|
|
|
## Read
|
|
|
|
- [`Docs/Design.md`](Docs/Design.md): what this is, in about two hundred lines. Start here.
|
|
- [`Docs/Steps.md`](Docs/Steps.md): the order of work and what closes each step.
|
|
- [`Docs/Spec/`](Docs/Spec/README.md): the specifications an implementer builds from.
|
|
- [`Docs/Ideas.md`](Docs/Ideas.md): what was carried over from the two earlier projects and not yet built.
|
|
- [`Docs/Decisions.md`](Docs/Decisions.md): every decision, the open ones, the deferred ones.
|
|
- [`CLAUDE.md`](CLAUDE.md): the instructions an AI agent works from in this repository.
|
|
|
|
## Layout
|
|
|
|
```
|
|
UnrealEnginePrototyping/
|
|
├── CLAUDE.md Instructions for an AI agent: conventions, layout, commands, upkeep.
|
|
├── README.md This file.
|
|
├── Docs/ Design, steps, ideas, decisions, worklog, and Spec/ with one document per system.
|
|
├── <Project>.uproject Created in step 1, at the root, which is what the .gitignore assumes.
|
|
├── Source/ <Project>Core (rules, no actors) and <Project> (gameplay).
|
|
├── Content/ Assets, one folder per feature; Maps/L_Gym; Tests/.
|
|
├── Config/ Engine and game config; Tags/ holds the gameplay tag sources.
|
|
└── Scripts/ Test and build scripts run by hand; Authoring/ for editor Python.
|
|
```
|
|
|
|
## Getting started
|
|
|
|
After step 1: open `<Project>.uproject` with the pinned engine version, run `Scripts/run-tests.sh`, and press Play
|
|
in `L_Gym` with two clients and "Run Dedicated Server" on. Until then there is nothing to run.
|
|
|
|
Binary assets go through Git LFS; run `git lfs install` once per machine.
|