Do some work on the docs.
This commit is contained in:
23
CLAUDE.md
23
CLAUDE.md
@@ -1,6 +1,13 @@
|
||||
# Integration Project
|
||||
|
||||
Unreal Engine 5.5.4 game project running on Linux (PopOS). This is **Luprex**, a game engine built on top of Unreal that uses Lua as its scripting language. The engine handles multiplayer networking automatically so scripters don't write networking code.
|
||||
This is **Luprex**, a game engine built on top of Unreal that uses Lua as its scripting language.
|
||||
The system consists of two parts:
|
||||
|
||||
1. The Luprex DLL. Stores the state of the world. Handles networking and lua scripting. The networking is automatic, scripters don't write networking code. The luprex DLL is event-driven, deterministic, OS-independent, no I/O. Pure standard-compliant C++. Organized as a library with struct `EngineWrapper` as the top-level API.
|
||||
|
||||
2. The Unreal-based Driver. Its job is to peer into the luprex DLL and render whatever it sees. It is also responsible for sending OS events (like TCP/IP events) into the Luprex DLL. Uses struct EngineWrapper access the Luprex DLL. There's also a command-line driver for the game's server.
|
||||
|
||||
The luprex DLL never calls into the Unreal driver. Output goes through polled buffers. This separation enables deterministic replay for debugging: the driver logs all events, and can replay them to reproduce crashes.
|
||||
|
||||
## Build System
|
||||
|
||||
@@ -8,27 +15,17 @@ Unreal Engine 5.5.4 game project running on Linux (PopOS). This is **Luprex**, a
|
||||
- `build.py all` — full rebuild (engine, game, intellisense, project files)
|
||||
- `build.py c++` — lightweight rebuild (only if you've only edited C++ files in this repo)
|
||||
- Lua and Blueprint edits don't require a rebuild.
|
||||
- Do not edit `Integration.uproject` directly — edit `Integration.uproject.tpl.json` instead, then run `build.py`.
|
||||
- Do not run builds yourself. The IDE builds automatically when the user runs the code.
|
||||
|
||||
## Project Structure
|
||||
## Directory Structure
|
||||
|
||||
- `luprex/` — The Luprex DLL.
|
||||
- `Source/Integration/` — Game module C++ source (Unreal-side driver code)
|
||||
- `Content/` — Unreal assets
|
||||
- `luprex/` — The Luprex DLL (driven portion of the engine)
|
||||
- `Docs/` — Documentation. When trying to understand this system, start with the markdown files in the Docs directory.
|
||||
- `Config/` — Unreal config files
|
||||
- `EnginePatches/` — Custom engine modifications
|
||||
|
||||
## Architecture: Driver / Driven Separation
|
||||
|
||||
The engine is split into two halves:
|
||||
|
||||
- **Driven portion (Luprex DLL)** — All game logic. Deterministic, OS-independent, no I/O. Pure standard-compliant C++. Organized as a library with class `DrivenEngine` as the top-level API.
|
||||
- **Driver (EXE or Unreal integration)** — Handles all I/O (sockets, files). Feeds events into the driven portion via `struct EngineWrapper`, a pure C interface of function pointers. There's a command-line driver and an Unreal driver.
|
||||
|
||||
The driven portion never calls into the driver. Output goes through polled buffers. This separation enables deterministic replay for debugging: the driver logs all events, and can replay them to reproduce crashes.
|
||||
|
||||
## Architecture: World Models and Predictive Reexecution
|
||||
|
||||
There are four types of world models, each a separate `World` instance with its own Lua interpreter:
|
||||
|
||||
Reference in New Issue
Block a user