Files / folder structure added

This commit is contained in:
2026-05-30 18:13:54 +12:00
commit f248b6f99f
38 changed files with 1212 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
# Protocol
This folder documents the planned network protocol for Fallout 4 Together.
The first protocol should be simple and focused on player transform sync.
## First Packet Types
- Welcome packet
- Transform packet
- Disconnect packet
## Future Packet Types
- Animation state packet
- Fire weapon packet
- Health packet
- Chat packet
- Cell change packet
## Design Goals
The protocol should be:
- Simple
- Easy to debug
- Versioned
- Safe to extend
- Clear enough to test outside Fallout 4
## Early Testing
The protocol should be testable using fake clients before being connected to Fallout 4.
+43
View File
@@ -0,0 +1,43 @@
# Message Types
This file tracks planned message type names for the Fallout 4 Together protocol.
## Core Messages
```text
welcome
transform
disconnect
ping
pong
```
## Planned Gameplay Messages
```text
animation_state
weapon_fire
weapon_reload
health_update
chat_message
cell_change
actor_spawn
actor_remove
```
## Debug Messages
```text
debug_log
debug_marker
debug_error
```
## Naming Rules
Message types should be:
- Lowercase
- Snake case
- Short but clear
- Stable once used in test builds
+64
View File
@@ -0,0 +1,64 @@
# Packet Types
This document describes planned packet types for the multiplayer prototype.
## Welcome Packet
Sent from server to client after connection.
Fields:
```text
type
playerId
serverTime
```
## Transform Packet
Sent from client to server and broadcast to other clients.
Fields:
```text
type
playerId
cellId
worldspaceId
x
y
z
pitch
yaw
roll
timestamp
```
## Animation State Packet
Planned later.
Fields:
```text
type
playerId
movementState
weaponDrawn
isCrouching
isSprinting
isAiming
isFiring
```
## Disconnect Packet
Sent when a player leaves.
Fields:
```text
type
playerId
reason
```
+51
View File
@@ -0,0 +1,51 @@
# Player Sync
Player synchronization is the first major technical goal for Fallout 4 Together.
## First Goal
The first goal is to represent remote players as placeholder actors in a controlled test cell.
The first version only needs to sync:
- Position
- Rotation
- Cell ID
- Basic connection state
## Not Required at First
The first version does not need:
- Full animation graph sync
- Combat sync
- Inventory sync
- Quest sync
- Dialogue sync
- Accurate physics sync
## Transform Sync
Each client should send its local player transform to the server.
The server should broadcast that transform to other clients.
Remote clients should move placeholder actors based on the received transform.
## Smoothing
Remote players should not snap instantly to every received transform.
Instead, remote actors should interpolate toward the latest received position.
Basic idea:
```text
current actor position + latest network position = smoothed visual position
```
## Same-Cell Restriction
Early prototypes should require all players to remain in the same test cell.
Cell transitions should not be supported until basic player sync is stable.
+42
View File
@@ -0,0 +1,42 @@
# World Sync
World synchronization is a long-term problem and is not part of the first prototype.
Fallout 4 assumes a single player owns the world state. Multiplayer requires deciding which client or server controls each piece of world state.
## World State Examples
World state can include:
- Doors
- Containers
- Pickups
- NPC deaths
- Physics objects
- Quest stages
- Workshop objects
- Terminal states
- Dialogue state
## Early Approach
The first prototype should avoid world sync as much as possible.
Recommended early restrictions:
- Use a custom test cell
- Avoid lootable containers
- Avoid quests
- Avoid doors
- Avoid terminals
- Avoid persistent world changes
## Later Ideas
Possible future approaches:
- Host-controlled world state
- Server-authoritative world state
- Cell-specific state tracking
- Limited interaction whitelist
- Resettable test environments