Rename files in Docs, and add new Doc about print statements.

This commit is contained in:
2026-02-09 16:07:15 -05:00
parent db35967fb9
commit bf7cb9d258
21 changed files with 188 additions and 30 deletions

View File

@@ -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