Files
UnrealPrototyping/Docs/README.md
T
Moto 0e61a77346 Add comprehensive design and specification documentation (#1)
* 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
2026-09-15 17:54:00 +03:00

45 lines
3.1 KiB
Markdown

# Documentation
Two layers, kept apart on purpose.
**For people.** Short, and meant to be read end to end.
| Doc | Covers |
| --- | --- |
| [Design.md](Design.md) | What this is, the three things it proves, the fixed decisions, what it is not yet, the glossary. Start here. |
| [Steps.md](Steps.md) | The ladder of work: fifteen rungs, each closed by a proof. The next few in full, the rest sketched. |
| [Ideas.md](Ideas.md) | The ideas carried over from the two earlier projects as features a world could hold, with what each needs. None scheduled. |
| [Decisions.md](Decisions.md) | One line per decision with a pointer, the open decisions that block steps, and what is deliberately deferred. |
| [Worklog.md](Worklog.md) | One terse line per step closed or wall hit. The memory. |
**For an implementer that lifts code**, which today means Claude. Long, C++-shaped, and meant to be built from.
| Doc | Covers |
| --- | --- |
| [Spec/README.md](Spec/README.md) | Notation, status markers, the twelve cross-cutting rules every spec obeys. Read before any spec. |
| [Spec/Architecture.md](Spec/Architecture.md) | Modules, lifetimes, authority, content, tags, the C++/Blueprint line, testing, conventions, gotchas. |
| [Spec/Stats.md](Spec/Stats.md) | The one stat block every body carries, effects and where they come from, stacking, counters. |
| [Spec/Movement.md](Spec/Movement.md) | The character, the movement component, input, the look model, camera modes, the gym, the feel checklist. |
| [Spec/Interaction.md](Spec/Interaction.md) | The one interaction system, carrying, throwing, highlighting. |
| [Spec/Combat.md](Spec/Combat.md) | Attributes, the damage funnel, the swing, enemies, downed and revive, abilities and kits, projectiles. |
| [Spec/Crafting.md](Spec/Crafting.md) | Families, parts, pieces, traits, substances, the pure rules, stations, activities, enchanting, the weapon seam. |
| [Spec/Networking.md](Spec/Networking.md) | The authority table, the responsiveness tiers, the posture, sessions, identity, persistence. |
| [Spec/Telemetry.md](Spec/Telemetry.md) | The sink, the envelope, the catalogue. |
| [Spec/UI.md](Spec/UI.md) | The HUD, the prompt, the theme, world-space text, localisation, the menu. |
## Reading order
New here: `Design.md`, then `Steps.md`, then `Spec/README.md` and `Spec/Architecture.md`. About to build a step:
the step's entry in `Steps.md`, then the spec sections it links. About to decide something: `Decisions.md` first,
to see whether it was already decided or deliberately deferred.
## Conventions
- Version and status live in a document's header where it has one, never in its filename.
- Links are relative so the folder survives being moved.
- A spec that turns out wrong in the building is corrected in the same change as the code, under a **What was
built, and where it differs** heading at its end.
- A decision goes in `Decisions.md` the moment it is made. Newest first; never delete, supersede.
- The two earlier projects are referred to by name (Adventurer Guild, Project Malleable) when an idea's origin
matters, and not otherwise. Their docs are not copied here; they are in their own repositories.