feat: expand progression and multiplayer systems
Add named save slots, progression import/export, and a unified play flow. Add live friend requests, presence, invitations, and relationship controls without durable discovery-server social storage. Advance the network protocol with isolated channels, movement reconciliation, late-join recovery, fishing replication, and animation synchronization. Preserve per-species catch totals, refine generated-world startup and water recovery, and complete the related input and interface improvements.
This commit is contained in:
parent
1db1a5b754
commit
3b84bfe3a0
97 changed files with 7869 additions and 982 deletions
|
|
@ -46,6 +46,16 @@ traffic or become a gameplay authority. Its base URL comes from
|
|||
`network/discovery/base_url`, with `NETFISHING_DISCOVERY_URL` available as a
|
||||
development/deployment override.
|
||||
|
||||
Friendships are local identity relationships shared across save slots. A live,
|
||||
authenticated gameplay session is required to exchange the directional
|
||||
capabilities that establish a friendship. Blocking an identity removes that
|
||||
friendship; unblocking does not recreate it. Discovery may publish opt-in,
|
||||
short-lived friend presence and deliver invitations only while both games are
|
||||
online. It stores hashed capability identifiers rather than identity
|
||||
fingerprints or a complete friend graph, keeps no durable social records, and
|
||||
provides no offline delivery. Direct joins still use the existing verified
|
||||
public-room and ENet connection path.
|
||||
|
||||
The host is authoritative. Clients submit requests or evidence; the host
|
||||
derives trusted context from registered peers, authoritative regions, and
|
||||
server-owned state before mutating inventory, wallet, progression, or shared
|
||||
|
|
@ -68,8 +78,12 @@ release version is not a reason to change the protocol number.
|
|||
|
||||
`PlayerDataRoot` selects and validates a portable data root. Stores receive
|
||||
paths from that owner rather than inventing unrelated locations. Progression is
|
||||
written by `PlayerSaveManager`; device settings and social/identity stores have
|
||||
separate formats and lifecycles.
|
||||
written by `PlayerSaveManager` and indexed as named slots by
|
||||
`PlayerSaveSlotCatalog`. Existing single-save installations are adopted as the
|
||||
first slot in place. Device settings, appearance, and social/identity stores
|
||||
remain shared across slots and have separate formats and lifecycles.
|
||||
Progression archive import and export belong to the title-screen Play page:
|
||||
imports create a new slot, while exports copy only the selected progression.
|
||||
|
||||
Save migrations are sequential and explicit. Existing catches and ownership
|
||||
are keyed by stable IDs so authored metadata can evolve without rewriting
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ Rotate camera Hold right mouse, or use right stick
|
|||
Cycle active hotbar slot Mouse wheel or D-pad left/right
|
||||
Select hotbar slot 1 through 9
|
||||
Zoom camera Shift + mouse wheel
|
||||
(swap wheel controls in Settings > Controls)
|
||||
Primary tool / fishing Left mouse or right trigger
|
||||
Inventory and player pages Tab
|
||||
Game Menu / back Escape
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue