Implemented the real server
This commit is contained in:
1 parent
931236bec0
commit
075750442f
22 files changed
+1130
-44
No files matched your search
+16
-7
@@ -1,8 +1,8 @@
|
||||
# Headless GameServer
|
||||
|
||||
This target runs the authoritative `InternalGameServer` without SDL, OpenGL,
|
||||
audio, Lua, or rendering dependencies. It can prepare campaign/location data
|
||||
headlessly; networking is not implemented yet.
|
||||
audio, Lua, or rendering dependencies. On Windows it exposes the state through
|
||||
a Boost.Beast WebSocket listener.
|
||||
|
||||
## Build
|
||||
|
||||
@@ -39,12 +39,18 @@ For a multi-configuration Windows build, the executable is normally
|
||||
For smoke tests, `--ticks N` limits execution and `--no-sleep` skips the
|
||||
real-time delay.
|
||||
|
||||
Load a location with no players:
|
||||
Start the first multiplayer transport iteration:
|
||||
|
||||
```bash
|
||||
./server/build/GameServer --campaign battle_zone --location uni_exterior
|
||||
```powershell
|
||||
.\server\build\Release\GameServer.exe --campaign battle_zone --location uni_exterior
|
||||
```
|
||||
|
||||
The listener defaults to `ws://0.0.0.0:8080`. Launch the Windows graphical game
|
||||
afterward and select `battle_zone`; that campaign connects to
|
||||
`ws://127.0.0.1:8080`. Other campaigns continue to use the in-process server.
|
||||
The server broadcasts an initial full state and then one every five seconds.
|
||||
Client commands are intentionally discarded in this iteration.
|
||||
|
||||
If `--location` is omitted, the campaign's configured start location is used.
|
||||
`--campaigns PATH` selects a different campaign registry. Content paths are
|
||||
resolved from the process working directory, so run from the repository root
|
||||
@@ -56,6 +62,8 @@ Available startup options:
|
||||
--campaign ID
|
||||
--location ID
|
||||
--campaigns PATH
|
||||
--address IP
|
||||
--port N
|
||||
--tick-ms N
|
||||
--ticks N
|
||||
--no-sleep
|
||||
@@ -64,8 +72,9 @@ Available startup options:
|
||||
The graphical client executes Lua/dialogue behavior after building its runtime
|
||||
`Location`; the headless content pass loads authoritative navigation, NPC,
|
||||
interactive-object, trigger, teleport, taxi, and animation metadata only.
|
||||
The standalone lifecycle intentionally creates neither the local `"player"` nor
|
||||
the battle-zone test bot. Those are opt-ins used by the graphical host.
|
||||
The standalone WebSocket lifecycle creates the existing shared `"player"` so
|
||||
the graphical client can render its local character. It does not create the
|
||||
battle-zone test bot.
|
||||
|
||||
## Tests
|
||||
|
||||
|
||||
Reference in new issue
Block a user