Files
BABA_YAGA/BABA_YAGA_Updater/sections/05_networking.md
2026-06-07 21:17:51 +07:00

4.8 KiB

Kiến trúc Netcode (Deterministic Networking)

Tựa game với nhịp độ sinh tồn căng thẳng không có chỗ cho sự sai lệch (Desync). BABA_YAGA vận hành trên kiến trúc State Sync (Đồng bộ Trạng thái) kết hợp quy trình Dự đoán phía Client (Client-Side Prediction)Bù trừ Độ trễ (Lag Compensation), mang lại cảm giác phản hồi tức thì "Zero-Latency" ngay cả ở mức Ping 100ms+.


Client-Side Prediction (Dự đoán cục bộ)

Người chơi nội bộ (Local Player) thực thi các lệnh di chuyển, lướt, rọi đèn pin ngay lập tức mà không cần đợi Server cho phép. Tạo cảm giác điều khiển mượt mà như game Offline.

Server Reconciliation (Thuật toán Đối chiếu)

Máy chủ vẫn nắm quyền tối thượng (Authority). Nếu Client dự đoán sai (do va chạm với bẫy hoặc bị kẹt), Server sẽ ép Client "Rollback" về trạng thái chuẩn trong tích tắc (Snap Correction).


Network Data Flow (Luồng Đồng bộ Hóa)

Sơ đồ biểu diễn vòng đời của một Network Tick từ khi người chơi nhấn phím đến khi hình ảnh được kết xuất (Render) trên màn hình của những người chơi khác.

sequenceDiagram
    autonumber

    box rgba(51, 204, 255, 0.05) "⚡ LOCAL ENVIRONMENT (Client Auth)"
        participant IR as "🖱️ Input"
        participant CP as "💻 Local Player"
    end

    box rgba(255, 51, 51, 0.05) "👑 SERVER ENVIRONMENT (State Auth)"
        participant NT as "📡 Network Layer"
        participant S as "🖥️ Server Tick"
    end

    box rgba(255, 215, 0, 0.05) "👁️ REMOTE OBSERVERS"
        participant RP as "👥 Proxies"
    end

    Note over IR,CP: [PHASE 1] DATA ACQUISITION
    IR->>CP: OnMove / OnAbility (Raw Input)
    CP->>CP: 📦 Pack NetworkInputStruct

    Note over CP: [PHASE 2] FORWARD PREDICTION
    CP->>CP: ⚡ Run Local Kinematics (Tick N)
    CP->>NT: 📤 Transmit Input Payload

    rect rgba(255, 51, 51, 0.1)
        Note over NT,S: [PHASE 3] SERVER VALIDATION (Simulation)
        NT->>S: Deliver UDP Packet
        S->>S: 🛡️ Validate Rules & Apply Physics
        S-->>NT: 📢 Broadcast State Snapshot (Tick N)
    end

    Note over NT,CP: [PHASE 4] RECONCILIATION PROTOCOL
    NT-->>CP: State Snapshot (Global Truth)
    CP->>CP: ⚖️ Check Desync (Threshold)
    CP->>CP: 🔄 Snap Pos & Resimulate if Error

    Note over NT,RP: [PHASE 5] PROXY INTERPOLATION
    NT-->>RP: State Snapshot
    RP->>RP: 〰️ Lerp Position / Rotation Smoothly

    Note over CP,RP: [PHASE 6] VISUAL RENDERING
    CP->>CP: 🎥 Update Local VFX / Camera Shake
    RP->>RP: 👻 Update Animator & Mesh Transforms

Tất cả Logic Va chạm (Collision) và Phát hiện Âm thanh (Noise Detection) được phân tách hoàn toàn khỏi luồng Render đồ họa, ngăn chặn hiện tượng rách hình ảnh (Tearing) do lag mạng.
```