Rename files in Docs, and add new Doc about print statements.
This commit is contained in:
32
CLAUDE.md
32
CLAUDE.md
@@ -44,7 +44,7 @@ Two update channels flow into the synchronous models:
|
||||
1. **Command acknowledgements** — for the client's own actions, keeping the two synchronous models in lockstep.
|
||||
2. **Difference transmission** — for everything else (other players' actions, server-side events, tangibles entering/leaving visibility).
|
||||
|
||||
See `Docs/Predictive Reexecution.md` for the full explanation.
|
||||
See `Docs/Predictive-Reexecution.md` for the full explanation.
|
||||
|
||||
## Architecture: Lua / Unreal Separation
|
||||
|
||||
@@ -69,14 +69,14 @@ On the Unreal side, **Tangible Actor blueprints** (TangibleStaticMesh, TangibleS
|
||||
|
||||
## Architecture: Lua Environment
|
||||
|
||||
- **Patched Lua runtime** — deterministic table iteration, deterministic table length, flag bits on tables, generalized less-than, C++ exceptions instead of longjmp, and more. See `Docs/A Summary of our Lua Patches.md`.
|
||||
- **LuaStack API** — custom C++ API replacing the standard Lua C API. Uses `LuaDefStack`/`LuaExtStack` with `LuaArg`/`LuaVar`/`LuaRet` slots mapped to stack positions. See `Docs/Our In-House Lua API.md`.
|
||||
- **Patched Lua runtime** — deterministic table iteration, deterministic table length, flag bits on tables, generalized less-than, C++ exceptions instead of longjmp, and more. See `Docs/A-Summary-of-our-Lua-Patches.md`.
|
||||
- **LuaStack API** — custom C++ API replacing the standard Lua C API. Uses `LuaDefStack`/`LuaExtStack` with `LuaArg`/`LuaVar`/`LuaRet` slots mapped to stack positions. See `Docs/Our-In-House-Lua-API.md`.
|
||||
- **LuaDefine macro** — declares Lua-callable C++ functions and auto-registers them in a global registry for automatic insertion into the Lua environment.
|
||||
- **eng::malloc heap** — custom deterministic memory allocator for the driven portion, ensuring reproducible addresses during replay.
|
||||
|
||||
## Architecture: Determinism
|
||||
|
||||
The driven portion must be fully deterministic so that synchronous models stay in lockstep and event replay works. Rules: no true random numbers, no iterating unordered maps, no real-time clocks, no threads (with carefully sandboxed exceptions). See `Docs/The Event-Driven Structure of the Engine.md`.
|
||||
The driven portion must be fully deterministic so that synchronous models stay in lockstep and event replay works. Rules: no true random numbers, no iterating unordered maps, no real-time clocks, no threads (with carefully sandboxed exceptions). See `Docs/The-Event-Driven-Structure-of-the-Engine.md`.
|
||||
|
||||
## Architecture: GUI System
|
||||
|
||||
@@ -84,21 +84,21 @@ Blueprints call into Lua via two mechanisms:
|
||||
- **Invokes** — change world state, forwarded to server, executed in order per predictive reexecution rules.
|
||||
- **Probes** — read-only, return data to blueprints, run locally on client.
|
||||
|
||||
Look-at widgets, hotkeys, and menus are built on top of this. The menu system is implemented entirely in "user space" Lua and blueprint code. See `Docs/Displaying Widget Blueprints.md`.
|
||||
Look-at widgets, hotkeys, and menus are built on top of this. The menu system is implemented entirely in "user space" Lua and blueprint code. See `Docs/Displaying-Widget-Blueprints.md`.
|
||||
|
||||
## Key Documentation
|
||||
|
||||
- `Docs/Predictive Reexecution.md` — how the four world models stay in sync
|
||||
- `Docs/The Event-Driven Structure of the Engine.md` — driver/driven separation, determinism, replay
|
||||
- `Docs/Multipass Difference Transmission.md` — the algorithm for syncing Lua table graphs
|
||||
- `Docs/Animation Queues and Tangible Actors.md` — how blueprints interpret animation queues
|
||||
- `Docs/Our In-House Lua API.md` — the LuaStack API (LuaDefStack, LuaExtStack)
|
||||
- `Docs/A Summary of our Lua Patches.md` — all modifications to the Lua runtime
|
||||
- `Docs/Major Data Structures.md` — World, tangibles, threads, classes, source database
|
||||
- `Docs/Displaying Widget Blueprints.md` — GUI system (invokes, probes, look-at widgets, menus)
|
||||
- `Docs/Global Variables.md` — different types of global data and their transmission rules
|
||||
- `Docs/Correct Implementation of Blocking Operations and NoPredict.md` — how to handle blocking ops
|
||||
- `Docs/Difference Transmission with Threads.md` — why concurrent diff transmission is hard
|
||||
- `Docs/Predictive-Reexecution.md` — how the four world models stay in sync
|
||||
- `Docs/The-Event-Driven-Structure-of-the-Engine.md` — driver/driven separation, determinism, replay
|
||||
- `Docs/Multipass-Difference-Transmission.md` — the algorithm for syncing Lua table graphs
|
||||
- `Docs/Animation-Queues-and-Tangible-Actors.md` — how blueprints interpret animation queues
|
||||
- `Docs/Our-In-House-Lua-API.md` — the LuaStack API (LuaDefStack, LuaExtStack)
|
||||
- `Docs/A-Summary-of-our-Lua-Patches.md` — all modifications to the Lua runtime
|
||||
- `Docs/Major-Data-Structures.md` — World, tangibles, threads, classes, source database
|
||||
- `Docs/Displaying-Widget-Blueprints.md` — GUI system (invokes, probes, look-at widgets, menus)
|
||||
- `Docs/Global-Variables.md` — different types of global data and their transmission rules
|
||||
- `Docs/Correct-Implementation-of-Blocking-Operations-and-NoPredict.md` — how to handle blocking ops
|
||||
- `Docs/Difference-Transmission-with-Threads.md` — why concurrent diff transmission is hard
|
||||
|
||||
## Session Startup
|
||||
|
||||
|
||||
Reference in New Issue
Block a user