Introduce a localhost-only networking milestone and a tiny Python test server to verify packet flow from the plugin to an external process. Added F4T::Networking API (include and src) which uses non-blocking Winsock to connect to 127.0.0.1:7777, send JSON newline-separated transform packets, and handle reconnect/backoff and disconnects safely. Plugin changes: call ConnectToLocalServer() at load, register DisconnectFromLocalServer on exit, and send transform packets from main.cpp when logging player movement. Build: xmake updated to include new headers and link ws2_32. Server: server/server.py implements a simple multi-client TCP server that prints parsed transform packets; server/README.md and docs/dev-log.md updated to document the test setup and results. All networking failures are non-fatal so the game continues if the server isn't running.
41 lines
952 B
Markdown
41 lines
952 B
Markdown
# Server
|
|
|
|
This folder is for the external multiplayer test server.
|
|
|
|
The current server is a tiny local-only TCP test server. It listens on
|
|
`127.0.0.1:7777`, accepts one or more clients, reads newline-separated JSON
|
|
packets, and prints received player transform packets.
|
|
|
|
## Run
|
|
|
|
```bash
|
|
cd server
|
|
python server.py
|
|
```
|
|
|
|
Then launch Fallout 4 through F4SE and move the player. The plugin should keep
|
|
logging player position changes to `Fallout4Together.log`, and this server
|
|
should print matching `transform` packets.
|
|
|
|
If the server is not running, the plugin should log a warning and Fallout 4
|
|
should continue launching normally.
|
|
|
|
## First Server Goals
|
|
|
|
- Start local server
|
|
- Accept client connections
|
|
- Receive transform packets
|
|
- Handle disconnects
|
|
|
|
## Not Planned Yet
|
|
|
|
- Remote actor spawning
|
|
- Gameplay synchronization
|
|
- Authentication
|
|
- Public matchmaking
|
|
- Anti-cheat
|
|
- Persistence
|
|
- Quest state
|
|
- Settlement state
|
|
- Large-scale world simulation
|