Update ROADMAP.md to check off four installation/test checklist items: Clean install test, Mod Organizer 2 install test, Second-machine install test, and Steam Deck or LAN client test package.
7.9 KiB
Commonwealth Online Roadmap
Current Status: Working Internal Vertical Slice
Commonwealth Online currently supports real Fallout 4 clients connecting through an external relay server, synchronizing player transforms, representing remote players with proxy actors, using the multiplayer browser UI, discovering LAN servers, saving recent servers, and syncing basic world state such as time and weather.
The roadmap now tracks playable vertical slices rather than early technical bootstrap milestones.
Slice 0: Vault 109 Onboarding
Goal
A first-time player joining a Commonwealth Online server is placed into Vault 109, creates their character, sets SPECIAL stats, receives basic server context, and exits into the Commonwealth as a valid multiplayer character.
Player Experience
- Player opens Multiplayer from the main menu.
- Player joins a server.
- If the player has no character/save for that server, a new character is created.
- Player spawns in Vault 109.
- Player customizes appearance.
- Player completes the Vault 109 SPECIAL setup process.
- Player receives basic lore/context for the server.
- Player exits the vault.
- The server/client marks onboarding as complete.
- Future joins spawn the player from their saved multiplayer state instead of restarting Vault 109.
Includes
- Vault 109 interior
- First-join detection
- New multiplayer character creation flow
- Appearance setup
- SPECIAL setup
- Intro quest or onboarding state
- Vault exit sequence
- Save/profile persistence
- “Cannot return after leaving” rule if desired
Internal Milestones
- Create Vault 109 start cell
- Add first-spawn marker
- Route first-time server players to Vault 109
- Open appearance customization
- Build SPECIAL allocation flow
- Save onboarding completion state
- Move player to Commonwealth exit point
- Prevent repeat onboarding for existing server characters
- Test joining same server again
- Test joining a different server for the first time
Done When
A player can join a server with no existing multiplayer save, create a character in Vault 109, assign SPECIAL stats, leave the vault, reconnect later, and continue as the same character.
Slice 1: Same-Cell Multiplayer Foundation
Goal
Two or more players can join the same controlled test cell and see each other moving reliably.
Includes
- Server relay
- Player IDs
- Transform sync
- Remote proxy actors
- Movement smoothing
- Disconnect cleanup
- Fake client testing tools
- Dev server GUI
Internal Milestones
- Plugin connects to server
- Server assigns player IDs
- Transform packets relay between clients
- Remote player state is stored safely
- Proxy actors represent remote players
- Movement smoothing works
- Disconnect removes or holds remote representation correctly
- Fake clients can simulate remote players
- Dev server GUI can start/stop server and manage fake clients
Done When
A two-client test in F4TTestCell01 works repeatedly without manual recovery.
Slice 2: Multiplayer Menu and Join Flow
Goal
Players can access Commonwealth Online from Fallout 4’s main menu using a native-feeling multiplayer browser.
Includes
- Main menu Multiplayer button
- PrismaUI / Ultralight browser
- Direct Connect
- Local servers tab
- LAN discovery
- Recent servers
- Controller navigation
- Mouse/controller cursor handling
- UI scaling for different resolutions
Internal Milestones
- Multiplayer menu opens from main menu
- Direct Connect works
- Local tab scans LAN servers
- Recent servers persist
- Controller can navigate browser
- Mouse/controller mode switching works
- UI scales correctly at 1080p, 1440p, and 4K
Done When
A player can launch Fallout 4, open Multiplayer, find or enter a server, connect, disconnect, and reconnect without console commands.
Slice 3: Player State and Animation MVP
Goal
Remote players feel more like players rather than sliding markers.
Includes
- Movement state sync
- Walk/run/sprint state
- Sneak state
- Jump state
- Weapon drawn state
- Proxy animation or animation-adjacent visual behavior
- Fake-client animation test scripts
Internal Milestones
- Movement state fields are sent
- Fake clients can walk, circle, jump, sneak, teleport, leave cell, and return
- Proxy actors respond to synced movement state
- Animation graph and AI behavior experiments are documented
- Working in-game behavior is confirmed
Done When
A remote player can move around the test cell and visually communicate their main state clearly enough for internal playtesting.
Slice 4: World-State Sync MVP
Goal
Connected players share basic world conditions so the session feels consistent.
Includes
- Host-authoritative world state
- Time sync
- Weather sync
- Host reassignment
- Fake-client world-state visibility
- Protocol documentation
Internal Milestones
- First client becomes world-state host
- Host sends time/weather state
- Server validates host-only world-state packets
- Non-host clients apply world state
- Host disconnect promotes next lowest player ID
- Promoted host seeds state from local synced values
Done When
Three clients can connect, share time/weather, lose the host, promote a new host, and continue without a visible world-state jump.
Slice 5: Internal Playtest Package
Goal
The project can be packaged, deployed, and tested by someone other than the developer.
Includes
- Build scripts
- Deploy scripts
- Proper Fallout 4
Datalayout - ESP staging
- Mesh/material/texture staging
- PrismaUI staging
- Setup documentation
- Troubleshooting documentation
- Known-good test profile
Internal Milestones
- Build output stages to
build/Fallout 4/Data - ESPs are included
- Assets are included
- PrismaUI and Ultralight files are included
- Fallout 4 path resolver works
- Clean install test
- Mod Organizer 2 install test
- Second-machine install test
- Steam Deck or LAN client test package
Done When
A fresh machine can install the package, start the server, join from Fallout 4, and complete the test-cell playtest checklist.
Slice 6: Small Multiplayer Session
Goal
Commonwealth Online supports a small structured session with several players in a controlled area.
Includes
- 2 to 4 real clients
- Stable proxy assignment
- Join/rejoin handling
- Disconnect handling
- LAN and direct connect support
- World-state sync
- Basic session rules
- Debug logging for failures
Internal Milestones
- 2 real clients stable for 15 minutes
- 3 real clients stable for 15 minutes
- 4 real clients stable for 15 minutes
- Host disconnect test
- Client reconnect test
- Cell leave/return test
- Server restart recovery behavior documented
Done When
A small group can complete a repeatable test session without developer intervention.
Slice 7: Gameplay Sync Experiments
Goal
Start testing actual gameplay interactions after the multiplayer foundation is stable.
Candidate Systems
- Basic health sync
- Basic damage events
- Weapon fire events
- Simple interaction events
- Power armor enter/exit
- Settlement placement experiments
- Chat or player identity
- Enemy sync research
Rules
These are not added until the earlier vertical slices are stable. Each gameplay system must be tested as an isolated experiment before becoming part of the main branch.
Later Slices
Wider World Support
- Exterior worldspace testing
- Interior/exterior transitions
- Multiple cells
- Fast travel policy
- Reconnect position handling
Session UX
- Player names
- Server metadata
- Favorites
- Passwords or private sessions
- Server browser polish
- Error messages
Gameplay Layer
- Combat
- Damage
- Inventory policy
- Quest policy
- Settlement sync
- NPC/enemy strategy