2.9 KiB
2.9 KiB
Đồng bộ Mạng (Networking)
Sử dụng Photon Fusion (State Sync) với cơ chế Client-Side Prediction để đảm bảo trải nghiệm không độ trễ.
Network Data Flow & Synchronization
sequenceDiagram
autonumber
participant IR as <img src="https://api.iconify.design/lucide/mouse.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Input
participant CP as 🎀 Local Player
participant NT as <img src="https://api.iconify.design/lucide/globe.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Fusion Net
participant S as <img src="https://api.iconify.design/lucide/crown.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Server
participant RP as <img src="https://api.iconify.design/lucide/users.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Proxies
%% --- GIAI ĐOẠN 1 ---
Note over IR, CP: [PHASE 1] Thu thập Input
IR->>CP: OnMove / OnJump / OnSprint
CP->>CP: <img src="https://api.iconify.design/lucide/package.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Pack NetworkInputData
%% --- GIAI ĐOẠN 2 ---
Note over CP: [PHASE 2] Dự đoán (Prediction)
CP->>CP: <img src="https://api.iconify.design/lucide/run.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Run Client-Side Physics
CP->>NT: <img src="https://api.iconify.design/lucide/mail.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Send Input (Tick N)
%% --- GIAI ĐOẠN 3 ---
Note over NT, S: [PHASE 3] Truyền tin mạng
NT->>S: UDP Packet Delivery
Note right of S: SERVER SIMULATION
S->>S: <img src="https://api.iconify.design/lucide/file-text.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Validate & Update State
S-->>NT: <img src="https://api.iconify.design/lucide/megaphone.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> Snapshot (Tick N)
%% --- GIAI ĐOẠN 4 ---
Note over NT, CP: [PHASE 4] Hồi đáp & Đồng bộ
NT-->>CP: State Snapshot
Note over CP: <img src="https://api.iconify.design/lucide/refresh-cw.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> RECONCILIATION
CP->>CP: Fix Position if Error > Threshold
%% --- GIAI ĐOẠN 5 ---
Note over NT, RP: [PHASE 5] Proxy Update
NT-->>RP: State Snapshot
Note over RP: <img src="https://api.iconify.design/lucide/film.svg?color=%23E0E0E0" width="20" height="20" style="vertical-align: middle;"> INTERPOLATION (Lerp)
%% --- GIAI ĐOẠN 6 ---
Note over CP, RP: [PHASE 6] Hiển thị (Render)
CP->>CP: Update Camera Shake/VFX
RP->>RP: Smooth Mesh Movement