Files
BABA_YAGA/BABA_YAGA_Updater/sections/05_networking.md
2026-06-07 19:41:43 +07:00

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