52 lines
1.1 KiB
Markdown
52 lines
1.1 KiB
Markdown
# 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.
|