2026-06-07 20:24:36 +07:00
2026-06-07 19:41:43 +07:00
2026-06-07 20:24:36 +07:00
2026-06-07 17:38:45 +07:00
2026-06-07 20:24:36 +07:00
2026-05-29 22:43:15 +07:00
2026-06-06 09:19:46 +07:00
2026-06-05 22:38:32 +07:00
2026-04-28 22:35:03 +07:00
2026-04-30 00:55:16 +07:00
2026-06-07 20:24:36 +07:00

Animated Header

THE ASYMMETRIC PSYCHOLOGICAL SURVIVAL ENGINE

"Thị giác là một lời nói dối. Bóng tối là sự thật duy nhất."



Cognitive War
Tâm lý chiến

Spatial Audio
Âm thanh 3D

Procedural Maze
Mê cung vô tận

Tầm nhìn Dự án (Project Vision)

BABA_YAGA không chỉ là một trò chơi; nó là một thí nghiệm về sự cô lập. Dự án được xây dựng trên triết lý "High-Stakes Hide & Seek", nơi mỗi giây im lặng đều mang trọng lượng ngàn cân.

💠 Các Trụ Cột Cốt Lõi (Core Pillars)

  • 🎛️ Minimalist UI (The "Invisible" HUD): Chúng tôi loại bỏ mọi rào cản giữa người chơi và môi trường. Không thanh máu, không bản đồ con. Mọi thông tin đều được phản hồi qua nhịp tim, nhịp thở và độ mờ của tầm nhìn.
  • 🔊 Spatial Audio Positioning: Âm thanh là vũ khí. Seeker phải học cách "nhìn bằng tai", trong khi Trapper có thể sử dụng tiếng động giả để điều hướng con mồi vào bẫy.
  • 💡 Dynamic Lighting & Shadow Manipulation: Ánh sáng trong BABA_YAGA là một tài nguyên hữu hạn. Việc bật đèn pin có thể giúp bạn thấy đường, nhưng đồng thời biến bạn thành một ngọn hải đăng cho kẻ đi săn.


Tầm nhìn Dự án (Project Vision)


BABA_YAGA được định nghĩa là một trải nghiệm "Psychological Asymmetric Survival". Chúng tôi không xây dựng một trò chơi hành động nhanh, mà xây dựng một môi trường nơi sự kiên nhẫn là vũ khí và tư duy logic là chìa khóa để sống sót. Trọng tâm của dự án xoay quanh việc thao túng nhận thức của người chơi thông qua ba trụ cột kỹ thuật:




The "Zero-UI" Philosophy

Triệt tiêu hoàn toàn các yếu tố HUD truyền thống. Người chơi phải quan sát nhịp thở, vết máu và môi trường để tự đánh giá trạng thái nhân vật.



Acoustic Navigation

Hệ thống Spatial Audio biến âm thanh thành "bản đồ thị giác thứ hai". Tận dụng HRTF để định vị chính xác đối phương qua các tiếng động siêu nhỏ.



Tactical Photometry

Ánh sáng là tài nguyên chiến thuật. Việc quản lý photon (đèn pin, nến, lửa) quyết định ranh giới giữa kẻ đi săn và con mồi.


Dự án đang trong giai đoạn Technical Alpha, tập trung tối ưu hóa hệ thống Perception.

Cơ chế Cốt lõi (Core Mechanics)

Kiến trúc gameplay của BABA_YAGA được xây dựng dựa trên nguyên lý "Thông tin Bất xứng" (Information Asymmetry). Hai phe tham gia không chỉ khác biệt về công cụ, mà còn trải nghiệm trò chơi ở hai chiều không gian và logic hoàn toàn trái ngược nhau.


Hệ sinh thái Bất đối xứng (The Asymmetric Paradigm)

THE SEEKER

Thực thể Động (Kinetic Survivor)

THE TRAPPER

Kiến trúc sư Bóng tối (Environment Architect)
Vai trò (Role)
Chủ động điều hướng (Navigation), quản lý tài nguyên sinh tồn và tìm điểm Extraction Point. Phải di chuyển liên tục để tránh bị cô lập.
Vai trò (Role)
Thiết lập hệ thống phòng ngự tĩnh, chặn luồng di chuyển (Choke points) và dồn ép tâm lý con mồi vào bẫy tử thần.
Tầm nhìn (Perception)
Góc nhìn thứ nhất (Immersive FPS). Bị giới hạn hoàn toàn bởi bóng tối, chỉ thấy được những gì chùm sáng đèn pin quét qua.
Tầm nhìn (Perception)
Góc nhìn Thượng đế (Top-down / Surveillance Cams). Quản lý bản đồ qua hệ thống Heatmap và Camera an ninh đa điểm.
Cơ động (Mobility)
Tốc độ bứt tốc cao (Sprinting: 9.0m/s). Khả năng tương tác vật lý trực tiếp với môi trường (Vaulting, Sliding).
Cơ động (Mobility)
Tốc độ vật lý thấp, nhưng bù đắp bằng khả năng Dịch chuyển Tức thời (Teleportation) qua các node mạng lưới bóng tối.
Khí tài (Arsenal)
Khí tài (Arsenal)

Vòng lặp Gameplay & Đồng bộ Hóa (Deterministic Game Loop)

Toàn bộ logic bên dưới được xử lý trong FixedUpdateNetwork() của Photon Fusion. Chúng tôi sử dụng kiến trúc Server Reconciliation kết hợp Client Prediction để đảm bảo Seeker di chuyển mượt mà (không delay), trong khi Trapper vẫn có quyền kiểm soát toàn vẹn trạng thái bản đồ (Server Authority).

(Lưu ý kỹ thuật: Sơ đồ dưới đây đã được cấu trúc lại thuộc tính HTML bên trong để đảm bảo khả năng render không bị lỗi trên các bộ phân tích Markdown của GitHub/Gitea)

graph TD
    %% Định nghĩa Style cho các nhóm (Dark Theme Optimized)
    classDef initStyle fill:#1a2b3c,stroke:#33CCFF,stroke-width:2px,color:#E0E0E0;
    classDef seekerStyle fill:#332200,stroke:#FFD700,stroke-width:2px,color:#FFD700;
    classDef trapperStyle fill:#2b0000,stroke:#FF3333,stroke-width:2px,color:#FF3333;
    classDef netStyle fill:#111111,stroke:#888888,stroke-dasharray: 5 5,color:#E0E0E0;
    classDef winStyle fill:#003311,stroke:#00FF55,stroke-width:3px,color:#00FF55;
    classDef criticalStyle fill:#4d0000,stroke:#FF0000,stroke-width:2px,color:#FF0000;

    %% Phase 1: Initialization
    subgraph Initialization ["<b>1. KHỞI TẠO HỆ THỐNG (NET-SYNC)</b>"]
        A["<img src='https://api.iconify.design/lucide/rocket.svg?color=%2333CCFF' width='20' height='20' style='vertical-align: middle;'> Bắt đầu Trận đấu"] --> B{"<img src='https://api.iconify.design/lucide/handshake.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Matchmaking<br/>(Photon Fusion)"}
        B --> C["<img src='https://api.iconify.design/lucide/masks-theater.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Phân vai: Seeker vs Trapper"]
        C --> D["<img src='https://api.iconify.design/lucide/puzzle.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Maze Generator<br/>(Prims/Wilsons)"]
        D --> E["<img src='https://api.iconify.design/lucide/building-2.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Baking NavMesh & Colliders"]
        E --> F["<img src='https://api.iconify.design/lucide/user.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Character Auto-Setup"]
        F --> G["<img src='https://api.iconify.design/lucide/map-pin.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Spawn Players"]
    end
    class Initialization,A,B,C,D,E,F,G initStyle;

    %% Phase 2: Core Loop
    subgraph Active_Round ["<b>2. VÒNG LẶP CHIẾN ĐẤU (CORE LOOP)</b>"]
        G --> Loop((TICK: FixedUpdateNetwork))
        
        %% Seeker Branch
        subgraph Seeker_Logic ["<b><img src='https://api.iconify.design/lucide/run.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> SEEKER (POV 1st)</b>"]
            S1["<img src='https://api.iconify.design/lucide/keyboard.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> Input: WASD/Space"] --> S2["<img src='https://api.iconify.design/lucide/run.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> State: Move/Dash"]
            S2 --> S3{"<img src='https://api.iconify.design/lucide/zap.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> Hành động?"}
            S3 -- "Sprinting" --> S4["<img src='https://api.iconify.design/lucide/volume-2.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> Noise Up"]
            S3 -- "Sneaking" --> S5["<img src='https://api.iconify.design/lucide/volume-x.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> Noise Down"]
            S3 -- "Flashlight" --> S6["<img src='https://api.iconify.design/lucide/flashlight.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> Lộ vị trí"]
            
            S4 & S5 & S6 --> S_Check{"<img src='https://api.iconify.design/lucide/search.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> Check Env"}
            S_Check -- "Dẫm bẫy" --> S_Trap["<img src='https://api.iconify.design/lucide/alert-triangle.svg?color=%23FF0000' width='20' height='20' style='vertical-align: middle;'> Bị khống chế"]
        end

        %% Trapper Branch
        subgraph Trapper_Logic ["<b><img src='https://api.iconify.design/lucide/settings.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> TRAPPER (STRATEGY)</b>"]
            T1["<img src='https://api.iconify.design/lucide/mouse.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> Mouse Input"] --> T2["<img src='https://api.iconify.design/lucide/map.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> View: Heatmap/Cams"]
            T2 --> T3{"<img src='https://api.iconify.design/lucide/wrench.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> Kỹ năng?"}
            T3 -- "Đặt bẫy" --> T4["<img src='https://api.iconify.design/lucide/binary.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> Sync Trap"]
            T3 -- "Scan" --> T5["<img src='https://api.iconify.design/lucide/rss.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> Ping Seeker"]
            T3 -- "Lock" --> T6["<img src='https://api.iconify.design/lucide/door-closed.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> Khóa cửa"]
            
            T4 & T5 & T6 --> T_Check{"<img src='https://api.iconify.design/lucide/eye.svg?color=%23FF3333' width='20' height='20' style='vertical-align: middle;'> Theo dõi"}
        end

        %% Networking Layer
        subgraph Network_Sync ["<b><img src='https://api.iconify.design/lucide/globe.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> NETWORK SYNC LAYER</b>"]
            Loop --> NS1["⏩ Client Prediction"]
            NS1 --> NS2["<img src='https://api.iconify.design/lucide/refresh-cw.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Server Reconciliation"]
            NS2 --> NS3["<img src='https://api.iconify.design/lucide/package.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> State Sync"]
        end
    end
    class Seeker_Logic,S1,S2,S3,S4,S5,S6,S_Check seekerStyle;
    class Trapper_Logic,T1,T2,T3,T4,T5,T6,T_Check trapperStyle;
    class Network_Sync,NS1,NS2,NS3,Loop netStyle;
    class S_Trap criticalStyle;

    %% Phase 3: Results
    subgraph Result_Logic ["<b>3. KẾT THÚC & THƯỞNG</b>"]
        S_Check -- "Chạm Exit" --> Win_S["<img src='https://api.iconify.design/lucide/trophy.svg?color=%2300FF55' width='20' height='20' style='vertical-align: middle;'> SEEKER THẮNG"]
        T_Check -- "Bắt được Seeker" --> Win_T["<img src='https://api.iconify.design/lucide/trophy.svg?color=%2300FF55' width='20' height='20' style='vertical-align: middle;'> TRAPPER THẮNG"]
        Loop -- "Timer = 0" --> Win_T
        
        Win_S & Win_T --> Post_Match["<img src='https://api.iconify.design/lucide/bar-chart-3.svg?color=%2333CCFF' width='20' height='20' style='vertical-align: middle;'> Thống kê Match"]
        Post_Match --> Buff{"<img src='https://api.iconify.design/lucide/scale.svg?color=%23E0E0E0' width='20' height='20' style='vertical-align: middle;'> Hệ thống Adaptive"}
        Buff -- "Thua liên tiếp" --> Buff_Apply["<img src='https://api.iconify.design/lucide/gem.svg?color=%23FFD700' width='20' height='20' style='vertical-align: middle;'> Kích hoạt Comeback Buff"]
        Buff_Apply --> A
    end
    class Win_S,Win_T winStyle;
    class Result_Logic,Post_Match,Buff,Buff_Apply initStyle;

    %% Interactions (Dashed Lines)
    S_Trap -.->|Cảnh báo State| T_Check
    S4 -.->|Phát xạ Sóng âm| T2
    T4 -.->|Collision Vô hình| S_Check
    NS3 --> Loop

---

## <img src="https://api.iconify.design/lucide/cpu.svg?color=%2333CCFF" width="28" height="28" style="vertical-align: middle;"> Kiến trúc Kỹ thuật (Technical Architecture)

> Hệ thống của **BABA_YAGA** được thiết kế theo chuẩn **Modular Architecture** (Kiến trúc Module), tách biệt hoàn toàn giữa logic xử lý vật lý (Kinematics), trạng thái mạng (Net-State) và phản hồi thị giác (Visual Feedbacks). Điều này đảm bảo hiệu năng cao (High Tickrate) ngay cả trong các môi trường mê cung phức tạp.

<br>

### <img src="https://api.iconify.design/lucide/git-merge.svg?color=%23E0E0E0" width="22" height="22" style="vertical-align: middle;"> 1. Advanced Kinematic FSM & Camera Dynamics

Hệ thống điều khiển nhân vật cốt lõi được xây dựng trên mô hình **Finite State Machine (FSM)** phân cấp. Không chỉ xử lý nội suy vật lý mượt mà, hệ thống còn tích hợp trực tiếp với **Procedural Camera Dynamics** (Head-bob, Dynamic FOV, Tilt) để tạo ra sự cộng hưởng về cảm giác nhập vai, đồng thời duy trì tính đồng bộ tuyệt đối qua lớp mạng (Networking Layer).

*(Lưu ý: Sơ đồ trạng thái dưới đây đã được tối ưu hóa cho thuật toán dự đoán phía Client)*

```mermaid
stateDiagram-v2
    direction TB

    state "<img src='https://api.iconify.design/lucide/footprints.svg?color=%23FFD700' width='16' style='vertical-align: middle;'> KINEMATIC GROUND" as Ground {
        [*] --> Idle
        
        state Idle {
            I_P: <img src='https://api.iconify.design/lucide/anchor.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> Vel < 0.1m/s
            I_C: <img src='https://api.iconify.design/lucide/activity.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> Breathing Cam (0.5Hz)
        }

        Idle --> Moving : Input.mag > 0.1
        state Moving {
            M_P: <img src='https://api.iconify.design/lucide/move.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> Speed 2-4m/s
            M_C: <img src='https://api.iconify.design/lucide/video.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> Head Bob (1.2Hz)
        }

        Moving --> Sneaking : Hold [Sneak]
        state Sneaking {
            Sn_P: <img src='https://api.iconify.design/lucide/volume-x.svg?color=%2300FF55' width='16' style='vertical-align: middle;'> Acoustic Profile -50%
            Sn_C: <img src='https://api.iconify.design/lucide/arrow-down-to-line.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> Collider Height ↓
        }

        Moving --> Sprinting : Hold [Sprint]
        Sneaking --> Moving : Release [Sneak]
        
        state Sprinting {
            Sp_P: <img src='https://api.iconify.design/lucide/zap.svg?color=%23FFD700' width='16' style='vertical-align: middle;'> Speed > 6.5m/s
            Sp_C: <img src='https://api.iconify.design/lucide/aperture.svg?color=%2333CCFF' width='16' style='vertical-align: middle;'> Dynamic FOV Warp
        }

        Sprinting --> Moving : Stamina Depleted
    }

    state "<img src='https://api.iconify.design/lucide/feather.svg?color=%2333CCFF' width='16' style='vertical-align: middle;'> AIRBORNE DYNAMICS" as Air {
        state Jump {
            J_P: <img src='https://api.iconify.design/lucide/arrow-up-circle.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> AddForce Up
        }
        state Falling {
            F_P: <img src='https://api.iconify.design/lucide/trending-down.svg?color=%23FF3333' width='16' style='vertical-align: middle;'> Gravity x1.5
        }
        state Landing {
            L_P: <img src='https://api.iconify.design/lucide/ruler.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> Impact Raycast
        }

        Jump --> Falling : Vel.y < 0
        Falling --> Landing : KCC.IsGrounded == true
    }

    state "<img src='https://api.iconify.design/lucide/crosshair.svg?color=%23FF3333' width='16' style='vertical-align: middle;'> UTILITY / ACTION" as Utility {
        state Dashing {
            D_P: <img src='https://api.iconify.design/lucide/wind.svg?color=%23FFD700' width='16' style='vertical-align: middle;'> Vector Burst (15m/s)
        }
        state Interacting {
            Int_P: <img src='https://api.iconify.design/lucide/lock.svg?color=%23FF3333' width='16' style='vertical-align: middle;'> Root Motion Lock
        }
    }

    state "<img src='https://api.iconify.design/lucide/globe.svg?color=%2333CCFF' width='16' style='vertical-align: middle;'> NET-SYNC LAYER" as Net {
        state "Input Authority (Client)" as IA
        state "State Authority (Server)" as SA
        IA --> SA : Send Input Tick
        SA --> IA : Force Reconcile
    }

    %% Main Transitions
    Ground --> Air : KCC.IsGrounded == false
    Air --> Ground : OnLandEvent.Fire()
    Ground --> Utility : InvokeAbility()
    Utility --> Ground : Action Complete

    %% Sticky Notes for Technical Context
    note left of Ground
        <img src='https://api.iconify.design/lucide/database.svg?color=%23FFD700' width='14' style='vertical-align: middle;'> Sync: KCC Velocity
        <img src='https://api.iconify.design/lucide/layers.svg?color=%23E0E0E0' width='14' style='vertical-align: middle;'> State: Networked Enum
    end note

    note right of Net
        <img src='https://api.iconify.design/lucide/server-cog.svg?color=%2333CCFF' width='14' style='vertical-align: middle;'> Photon Fusion
        <img src='https://api.iconify.design/lucide/shield-check.svg?color=%2300FF55' width='14' style='vertical-align: middle;'> Anti-Cheat Validated
    end note

2. Tactical Environment Scanner & Interaction

Việc tương tác trong một môi trường bị giới hạn hoàn toàn về tầm nhìn đòi hỏi một hệ thống truy vấn không gian (Spatial Querying) cực kỳ chính xác. Chúng tôi từ chối sử dụng cơ chế Raycast điểm đơn thông thường.

Hệ thống lõi: EnvironmentScanner.cs

Sử dụng kết hợp Physics.OverlapSphereNonAlloc để tối ưu hóa bộ nhớ (Zero Garbage Collection) và SphereCast để tính toán đường đạn thể tích. Hệ thống tự động phân tích và trích xuất các đối tượng thỏa mãn đa hình Interface IInteractable, đảm bảo người chơi có thể kích hoạt các thiết bị (Cửa, Máy phát điện, Bẫy) một cách mượt mà ngay cả khi chúng hoàn toàn chìm trong bóng tối.

```

Kiến trúc Mạng (Advanced Netcode Architecture)

Để đảm bảo tính công bằng trong một tựa game mang nặng yếu tố hành động lén lút và phản xạ ngàn cân treo sợi tóc, BABA_YAGA sử dụng Photon Fusion (State Sync) làm lõi đồng bộ. Hệ thống được tinh chỉnh để mô phỏng cảm giác "Độ trễ bằng 0" (Zero-Latency Feel) thông qua kiến trúc mạng tất định (Deterministic Network).




Client-Side Prediction

Mô phỏng trước các chuyển động của người chơi trên Local Client, loại bỏ hoàn toàn độ trễ Input Delay khi di chuyển hoặc lướt.



Server Authority

Máy chủ nắm quyền quyết định cuối cùng. Ngăn chặn triệt để các hành vi gian lận như Speedhack, Teleport hay thao túng Hitbox.



Lag Compensation

Rewind trạng thái Hitbox trên Server về đúng thời điểm Client thực hiện thao tác (Ping), đảm bảo tính chính xác cho các cú vồ/bẫy.


Vòng xoay Dữ liệu Mạng (Network Data Flow Pipeline)

Biểu đồ dưới đây mô tả luồng xử lý thông tin tại mỗi Tick (Khung hình mạng). Việc phân tách rõ ràng giữa Logical State (trạng thái mạng) và Visual Presentation (hiển thị hình ảnh) giúp khung hình của game (FPS) không bị khóa vào Tickrate của Server.

(Lưu ý: Các trích xuất HTML trong sơ đồ đã được chuẩn hóa để tương thích hoàn toàn với bộ phân tích Markdown)

sequenceDiagram
    autonumber
    
    %% Khai báo các thực thể
    participant IR as <img src='https://api.iconify.design/lucide/mouse-pointer-2.svg?color=%23FFD700' width='20' style='vertical-align: middle;'> Input
    participant CP as <img src='https://api.iconify.design/lucide/monitor.svg?color=%2333CCFF' width='20' style='vertical-align: middle;'> Local Client
    participant NT as <img src='https://api.iconify.design/lucide/router.svg?color=%23E0E0E0' width='20' style='vertical-align: middle;'> Fusion Net
    participant S as <img src='https://api.iconify.design/lucide/server.svg?color=%23FF3333' width='20' style='vertical-align: middle;'> Server Auth
    participant RP as <img src='https://api.iconify.design/lucide/ghost.svg?color=%23888888' width='20' style='vertical-align: middle;'> Proxies

    %% --- GIAI ĐOẠN 1 ---
    Note over IR, CP: [PHASE 1] Data Sampling (Thu thập)
    IR->>CP: Hành động (Move / Ability / Interact)
    CP->>CP: Đóng gói NetworkInputStruct

    %% --- GIAI ĐOẠN 2 ---
    Note over CP: [PHASE 2] Client Prediction (Dự đoán)
    CP->>CP: Thực thi Physics & Kinematics tức thì (Tick N)
    CP->>NT: Transmit Input Payload (Gửi lên mạng)

    %% --- GIAI ĐOẠN 3 ---
    Note over NT, S: [PHASE 3] Server Validation (Xác thực)
    NT->>S: UDP Reliable Packet Delivery
    Note right of S: SERVER TICK SIMULATION
    S->>S: Validate Ruleset & Apply Physics State
    S-->>NT: Broadcast Global State Snapshot (Tick N)

    %% --- GIAI ĐOẠN 4 ---
    Note over NT, CP: [PHASE 4] Reconciliation (Điều chỉnh bù trừ)
    NT-->>CP: Nhận State Snapshot Feed
    Note over CP: ERROR CORRECTION PROTOCOL
    CP->>CP: Detect Desync -> Snap Transform -> Resimulate Ticks

    %% --- GIAI ĐOẠN 5 ---
    Note over NT, RP: [PHASE 5] Proxy Update (Cập nhật thực thể bên thứ 3)
    NT-->>RP: Nhận State Snapshot Feed
    Note over RP: NETWORK INTERPOLATION
    RP->>RP: Lerp Position/Rotation (Bù nội suy mượt mà)

    %% --- GIAI ĐOẠN 6 ---
    Note over CP, RP: [PHASE 6] Visual Render (Hiển thị)
    CP->>CP: Trigger Camera Shake / Local VFX
    RP->>RP: Cập nhật Animation Parameters & Mesh

<div align="right">
<img src="https://api.iconify.design/lucide/activity-square.svg?color=%23555555" width="14" style="vertical-align: middle;">
<small><i>Hệ thống được thiết lập chạy ở <b>60 Ticks/Second</b>, băng thông ước tính <b><10kb/s</b> mỗi Client.</i></small>
</div>

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
    
    %% Phân vùng không gian hệ thống (Sử dụng Box Grouping)
    box rgba(51, 204, 255, 0.05) "⚡ LOCAL ENVIRONMENT (Client Auth)"
        participant IR as <img src='https://api.iconify.design/lucide/mouse-pointer-click.svg?color=%2333CCFF' width='20' style='vertical-align: middle;'> Input
        participant CP as <img src='https://api.iconify.design/lucide/cpu.svg?color=%2333CCFF' width='20' style='vertical-align: middle;'> Local Player
    end
    
    box rgba(255, 51, 51, 0.05) "👑 SERVER ENVIRONMENT (State Auth)"
        participant NT as <img src='https://api.iconify.design/lucide/router.svg?color=%23FF3333' width='20' style='vertical-align: middle;'> Network Layer
        participant S as <img src='https://api.iconify.design/lucide/server.svg?color=%23FF3333' width='20' style='vertical-align: middle;'> Server Tick
    end
    
    box rgba(255, 215, 0, 0.05) "👁️ REMOTE OBSERVERS"
        participant RP as <img src='https://api.iconify.design/lucide/users.svg?color=%23FFD700' width='20' style='vertical-align: middle;'> Proxies
    end

    %% --- GIAI ĐOẠN 1 ---
    Note over IR, CP: [PHASE 1] DATA ACQUISITION
    IR->>CP: OnMove / OnAbility (Raw Input)
    CP->>CP: <img src='https://api.iconify.design/lucide/package-plus.svg?color=%2333CCFF' width='16' style='vertical-align: middle;'> Pack NetworkInputStruct

    %% --- GIAI ĐOẠN 2 ---
    Note over CP: [PHASE 2] FORWARD PREDICTION
    CP->>CP: <img src='https://api.iconify.design/lucide/zap.svg?color=%2333CCFF' width='16' style='vertical-align: middle;'> Run Local Kinematics (Tick N)
    CP->>NT: <img src='https://api.iconify.design/lucide/send.svg?color=%2333CCFF' width='16' style='vertical-align: middle;'> Transmit Input Payload
    
    %% --- GIAI ĐOẠN 3 ---
    rect rgba(255, 51, 51, 0.1)
        Note over NT, S: [PHASE 3] SERVER VALIDATION (Simulation)
        NT->>S: Deliver UDP Packet
        S->>S: <img src='https://api.iconify.design/lucide/shield-alert.svg?color=%23FF3333' width='16' style='vertical-align: middle;'> Validate Rules & Apply Physics
        S-->>NT: <img src='https://api.iconify.design/lucide/broadcast.svg?color=%23FF3333' width='16' style='vertical-align: middle;'> Broadcast State Snapshot (Tick N)
    end

    %% --- GIAI ĐOẠN 4 ---
    Note over NT, CP: [PHASE 4] RECONCILIATION PROTOCOL
    NT-->>CP: State Snapshot (Global Truth)
    CP->>CP: <img src='https://api.iconify.design/lucide/scale.svg?color=%23E0E0E0' width='16' style='vertical-align: middle;'> Check Desync (Threshold)
    CP->>CP: <img src='https://api.iconify.design/lucide/rotate-ccw.svg?color=%23FF3333' width='16' style='vertical-align: middle;'> Snap Pos & Resimulate if Error

    %% --- GIAI ĐOẠN 5 ---
    Note over NT, RP: [PHASE 5] PROXY INTERPOLATION
    NT-->>RP: State Snapshot
    RP->>RP: <img src='https://api.iconify.design/lucide/spline.svg?color=%23FFD700' width='16' style='vertical-align: middle;'> Lerp Position / Rotation Smoothly

    %% --- GIAI ĐOẠN 6 ---
    Note over CP, RP: [PHASE 6] VISUAL RENDERING
    CP->>CP: <img src='https://api.iconify.design/lucide/video.svg?color=%2333CCFF' width='16' style='vertical-align: middle;'> Update Local VFX / Camera Shake
    RP->>RP: <img src='https://api.iconify.design/lucide/ghost.svg?color=%23FFD700' width='16' style='vertical-align: middle;'> Update Animator & Mesh Transforms

<br>
<div align="center">
<img src="https://api.iconify.design/lucide/shield-alert.svg?color=%23555555" width="16" style="vertical-align: middle;">
<small style="color: #888;"><i>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.</i></small>
</div>

Hệ thống Cân bằng Thích ứng (Tiered "Despair" Mechanics)

Để duy trì trạng thái "Căng thẳng tột độ" (High-Stakes) đến những giây phút cuối cùng, kiến trúc của BABA_YAGA tích hợp một động cơ cân bằng ngầm mang tên "Despair Mechanics". Khi một thực thể bị đẩy vào chuỗi thất bại liên tiếp, Mê cung sẽ bẻ cong các quy tắc vật lý và logic thông thường để ban cho họ những đặc quyền sinh tồn phi mã, tạo ra những khoảnh khắc lật kèo (Comeback) chấn động mạng lưới.


Phân tầng Bù trừ theo Chuỗi Thua (Progression Hierarchy)




TIER 1: Awakening

Khởi động giao thức sinh tồn cơ bản. Lựa chọn 1 Buff thụ động (Nâng cấp chỉ số Base Stats như Tốc độ / Tầm nhìn).




TIER 2: Evolution

Tiến hóa cơ sở hạ tầng. Nhận đồng thời 1 Kỹ năng Chủ động (Active Skill) và 1 Đặc quyền Thụ động (Passive Perk).




TIER 3: Manifestation

Ghi đè hệ thống (Override Ruleset). Kích hoạt Ultimate Skill thay đổi hoàn toàn cục diện trận đấu trong thời gian ngắn.



THE SEEKER: Thức Tỉnh Bản Năng (Survival Evolution)

Khi Seeker liên tục bị bóng tối nuốt chửng, hệ thần kinh của họ sẽ bị ép buộc tiến hóa vượt giới hạn để chống lại môi trường khắc nghiệt:

Acoustic Resonance (Cộng hưởng Hạ âm)
Kích hoạt khả năng cảm nhận tần số thấp. Seeker có thể nghe thấy nhịp tim đập dồn dập của chính mình khi Trapper tiến vào bán kính 15m, đóng vai trò như một radar sinh học mà không cần sử dụng thị giác.
Kinematic Void (Bước chân Hư vô)
Triệt tiêu hoàn toàn ma sát vật lý. Seeker không phát ra bất kỳ sóng âm nào (Noise Meter = 0) khi di chuyển trong 20 giây đầu tiên, cho phép thiết lập điểm mù chiến thuật (Blindspot) từ sớm.
Neural Overdrive (Phản xạ Tột độ)
Có 50% cơ hội ghi đè (Bypass) cơ chế kích hoạt của bẫy cơ học đầu tiên vô tình chạm phải. Nếu bypass thành công, hệ thống bơm Adrenaline sẽ kích hoạt, cộng dồn 50% vận tốc bứt tốc trong 3 giây.
Temporal Displacement (Phá vỡ Thời Không)
Trong 15 giây, thể lực (Stamina) bị khóa ở mức vô hạn. Seeker có thể Dash liên tục (Zero Cooldown) và đạt trạng thái I-Frame (Miễn nhiễm khống chế). Lúc này, luật chơi đảo chiều: Seeker là kẻ săn lùng lối thoát.


THE TRAPPER: Hiến Tế Không Gian (Dark Rituals)

Khi Trapper để mất quyền kiểm soát, Mê cung sẽ tự động phân rã sự ổn định của nó, cấp cho Trapper quyền truy cập vào các giao thức thao túng môi trường cực hạn:

Aural Hallucination (Nhiễu loạn Nhận thức)
Phát xạ 3 luồng tín hiệu âm thanh ảo đa hướng xung quanh Seeker. Các tín hiệu này can thiệp trực tiếp vào hệ thống Spatial Audio, tạo ảo giác về tiếng bước chân dồn dập nhằm đánh sập khả năng định vị của con mồi.
Photon Suppression (Triệt tiêu Quang năng)
Hấp thụ toàn bộ ánh sáng trong khu vực. Đèn pin của Seeker sẽ bị ép vào trạng thái nhiễu loạn (Flicker) hoặc sập nguồn hoàn toàn trong 8 giây. Đây là khung cửa tử thần (Kill-window) hoàn hảo để thu hẹp khoảng cách.
Quantum Phase (Phi vật chất hóa)
Tạm thời vô hiệu hóa Layer Collision của Trapper. Cấp khả năng đi xuyên qua các cánh cửa đã bị khóa mã hoặc các cấu trúc tường mỏng (Destructible Walls) trong 15 giây, bỏ qua mọi rào cản vật lý.
Abyssal Omniscience (Nhãn quan Lưỡi Hái)
Đồng bộ hóa trực tiếp với mạng lưới lõi của mê cung. Render vị trí thời gian thực của Seeker xuyên qua mọi vật cản (Absolute Wallhack) dưới dạng bóng tối (Silhouette) trong 20 giây. Không có góc khuất, không có lối thoát.

Lộ trình Triển khai (Development Roadmap)

Tiến trình xây dựng kiến trúc BABA_YAGA. Dự án được phát triển theo mô hình Agile, ưu tiên hoàn thiện độ ổn định của lõi Netcode (Networking) trước khi mở rộng các module Meta-game và Visuals.


Phase ID Task Assignee Timeline Progress Status
Phase 1: Game Concept & Design 1.1 Finalize Game Concept & Gameplay Direction TEAM 15/05/2026 - 18/05/2026 ██████████ 100% Completed
1.3 Design UI Style, Horror Theme & Moodboard Phương 18/05/2026 - 23/05/2026 ██████████ 100% Completed
1.4 Prototype Maze Layout & Environment Concept Phương 20/05/2026 - 26/05/2026 ██████████ 100% Completed
1.5 Plan Multiplayer Structure & Networking Logic Duy,Phương 24/05/2026 - 01/06/2026 ██████████ 100% Completed
Phase 2: Core Multiplayer & Player Systems 2.1 Setup Unity Project & Fusion Multiplayer Phương 01/06/2026 - 06/06/2026 ██████████ 100% Completed
2.2 Develop Lobby System & Room Management Phương 04/06/2026 - 11/06/2026 ██████████ 100% Completed
2.3 Develop Online Connection & Matchmaking Phương 08/06/2026 - 15/06/2026 ██████████ 100% Completed
2.4 Develop Player Spawn & Synchronization Duy,Phương 10/06/2026 - 16/06/2026 █████░░░░░ 50% In Progress
2.5 Develop Random Role Assignment (Seeker / Runner) Duy 14/06/2026 - 18/06/2026 ░░░░░░░░░░ 5% In Progress
2.6 Develop Character Movement System Tuấn 15/06/2026 - 21/06/2026 ░░░░░░░░░░ 0% Not Started
2.7 Develop Camera & Flashlight System Tuấn 18/06/2026 - 25/06/2026 ░░░░░░░░░░ 0% Not Started
2.8 Develop Environment Interaction System Tuấn 22/06/2026 - 01/07/2026 ░░░░░░░░░░ 0% Not Started
Phase 3: Gameplay Features & Environment 3.1 Develop Trap System Duy 01/07/2026 - 09/07/2026 ░░░░░░░░░░ 0% Not Started
3.2 Develop Item System (Battery, Mini Map, Buffs) Duy 05/07/2026 - 13/07/2026 ░░░░░░░░░░ 0% Not Started
3.3 Develop Gameplay Mechanics & Match Flow Duy, Tuấn 10/07/2026 - 19/07/2026 ░░░░░░░░░░ 0% Not Started
3.4 Develop Maze Generation System Duy 01/07/2026 - 13/07/2026 ░░░░░░░░░░ 0% Not Started
3.5 Design Environment Assets & Maze Details Tuấn 10/07/2026 - 21/07/2026 ░░░░░░░░░░ 0% Not Started
3.6 Implement Horror Lighting & Fog Effects Phương 18/07/2026 - 26/07/2026 ░░░░░░░░░░ 0% Not Started
3.7 Develop UI HUD & Ingame Interface Phương 15/07/2026 - 25/07/2026 ░░░░░░░░░░ 0% Not Started
3.8 Develop Win/Lose Screen & Match Result UI Phương 24/07/2026 - 01/08/2026 ░░░░░░░░░░ 0% Not Started
Phase 4: Polish, Testing & Finalization 4.1 Integrate Sound Effects & Background Music Tuấn 01/08/2026 - 06/08/2026 ░░░░░░░░░░ 0% In Progress
4.2 Multiplayer Testing & Synchronization Check Tuấn 04/08/2026 - 09/08/2026 ░░░░░░░░░░ 0% Not Started
4.3 Gameplay Balancing & Bug Fixing Duy,Phương 07/08/2026 - 12/08/2026 ░░░░░░░░░░ 0% Not Started
4.4 UI Polish & Optimization Phương 09/08/2026 - 13/08/2026 ░░░░░░░░░░ 0% Not Started
4.5 Create Game Design Document (GDD) Duy,Phương 09/08/2026 - 14/08/2026 ░░░░░░░░░░ 0% Not Started
4.6 Final Build, Demo & Presentation Preparation TEAM 12/08/2026 - 16/08/2026 ░░░░░░░░░░ 0% Not Started

Phase 1: Architecture Foundation

Kinematic State Machine: Xử lý mượt mà chuỗi trạng thái nội suy (Idle, Move, Sprint, Airborne).
Procedural Generation Engine: Tích hợp thành công lõi sinh mê cung đa thuật toán (Multi-Algorithm).
Netcode Synchronization: Khởi tạo thành công mạng lưới Photon Fusion State Sync.

Phase 2: Asymmetric Core Loop

Net-Role Arbitration: Hệ thống phân quyền và lựa chọn vai trò mạng (Seeker vs Trapper).
Spatial Trap Placement: Xây dựng logic kích hoạt và đặt bẫy dựa trên tọa độ không gian (Grid/Free-form).
Acoustic & Visual Matrix: Thuật toán phát hiện âm thanh (Noise Meter) và triệt tiêu tầm nhìn (Line-of-Sight Culling).

Phase 3: Meta-Game & Polish

Tiered Adaptive System (Hệ thống Comeback).
Advanced Audio HRTF Integration.

Bộ máy Kỹ thuật (Core Engineering Team & WBS)

Dự án được phát triển và vận hành bởi một Micro-Studio 3 thành viên. Để đạt được chất lượng tiệm cận AAA-Indie trong một thời gian giới hạn, chúng tôi áp dụng mô hình chuyên môn hóa sâu (Deep Specialization) theo từng phân hệ kỹ thuật lõi.

SYSTEM READINESS
29.0%
7
DONE
3
ACTIVE
16
BACKLOG
Phase Breakdown
Phase 1: Game Concept & Design100% (4/4)
Phase 2: Core Multiplayer & Player Systems44% (3/8)
Phase 3: Gameplay Features & Environment0% (0/8)
Phase 4: Polish, Testing & Finalization0% (0/6)



SCOVE

Phân rã Công việc (Work Breakdown Structure)

  • Triển khai kiến trúc thuật toán Maze lõi (Prims, Wilsons, Crawler).
  • Xây dựng bộ máy Mesh Generation kiến tạo môi trường 3D tự động.
  • Giám sát tính Solvability (Đảm bảo Mê cung luôn có đường thoát khả thi).
  • Thiết kế toán học cho hệ thống Comeback Đa tầng (Despair Mechanics).
  • Code Review toàn cục & Quản lý vòng đời State Machine tổng.


DUY

Phân rã Công việc (Work Breakdown Structure)

  • Xây dựng & Quản lý hạ tầng Photon Fusion (Matchmaking, Session Relay).
  • Cấu trúc hóa [Networked Properties] cho thực thể động (Bẫy, Cửa, Trạng thái đèn).
  • Thiết lập logic phân vai mạng (Role Assignment) và Server Game State.
  • Tối ưu hóa băng thông & Viết thuật toán bù trừ nội suy (Reconciliation/Lerp).


TUẤN

Phân rã Công việc (Work Breakdown Structure)

  • Lập trình hệ thống Noise Meter & Quản lý quang năng (Flashlight/Battery).
  • Xây dựng Logic bẫy Trapper: Snare (Khống chế), Alarm (Báo động), Decoy (Giả thanh).
  • Phát triển Camera Dynamics (FOV Kick, Screen Shake, Tilt, Motion Blur).
  • Tích hợp 3D Spatial Audio & Hiệu ứng thị giác (VFX) tương tác môi trường.
  • Thiết kế trải nghiệm HUD & Luồng UI/UX (Menu, State transitions).


Giao thức Chất lượng (Strict Engineering Protocols)

Bộ tiêu chuẩn NFR (Non-functional Requirements) bắt buộc. Mọi dòng code được Commit (Merge Request) đều phải vượt qua bài kiểm tra chéo dựa trên 4 trụ cột kỹ thuật dưới đây.


<!-- CỘT 2: WORLD GEN -->
<td width="50%" style="padding: 15px; background: rgba(176,38,255,0.02); border-bottom: 2px solid #222;">
  <h3 style="margin: 0 0 10px 0; color: #B026FF;">
    <img src="https://api.iconify.design/lucide/layers.svg?color=%23B026FF" width="20" style="vertical-align: middle;"> World & Perf <i>(Assigned to: Scove)</i>
  </h3>
  <div style="font-size: 13px; color: #AAA; line-height: 1.6;">
    <strong style="color: #E0E0E0;">» Algorithmic Constraints:</strong> Thuật toán tạo hình mê cung phải bị giới hạn ở độ phức tạp <code>O(N)</code> hoặc <code>O(N log N)</code> tránh chặn luồng Main Thread.<br>
    <strong style="color: #E0E0E0;">» Draw Call Budget:</strong> Mesh mê cung sau khi sinh ra phải gộp (Static Batching / GPU Instancing) để giữ số lượng Draw Calls ở mức vi mô.<br>
    <strong style="color: #E0E0E0;">» Dynamic NavMesh:</strong> Bake tự động NavMesh <i>tại Runtime</i> sau khi chốt Seed mê cung, phục vụ AI Trapper hoặc kỹ năng đặc biệt.
  </div>
</td>
<!-- CỘT 4: VISUALS -->
<td width="50%" style="padding: 15px; background: rgba(255,215,0,0.02);">
  <h3 style="margin: 0 0 10px 0; color: #FFD700;">
    <img src="https://api.iconify.design/lucide/palette.svg?color=%23FFD700" width="20" style="vertical-align: middle;"> Render & UX <i>(Assigned to: Tuấn)</i>
  </h3>
  <div style="font-size: 13px; color: #AAA; line-height: 1.6;">
    <strong style="color: #E0E0E0;">» URP 6.0 Pipeline:</strong> Khai thác tối đa Render Graph của Unity 6 để tạo ra Light-baking & Shadow-mapping chân thực cao với chi phí thấp.<br>
    <strong style="color: #E0E0E0;">» Asset Compression:</strong> Chuẩn hóa mọi Texture về định dạng ASTC/DXT5. Polycount phải được kiểm duyệt khắt khe cho PC tầm trung.<br>
    <strong style="color: #E0E0E0;">» UX Consistency:</strong> Các phản hồi thị giác/thính giác (Máu me, Cảnh báo bẫy, Tiếng tim đập) phải đồng nhất về cường độ, tạo phản xạ có điều kiện cho User.
  </div>
</td>

Net-Sync (Assigned to: Duy)

» RTT Optimization: Duy trì Round Trip Time < 150ms. Tối ưu kích thước Payload mạng qua [Networked]Reliable RPCs.
» Absolute Server Auth: Mọi logic Thắng/Thua, Gây sát thương, Kích hoạt bẫy bắt buộc phải được xác thực trên Server để chống Hack/Desync.
» Proxy Smoothing: Nội suy (Interpolate) chuyển động của Remote Players để bù đắp hiện tượng Jitter do Packet Loss.

Mechanics (Assigned to: Tuấn)

» Deterministic Input: Polling Input phải được dời vào hàm FixedUpdateNetwork để đồng bộ hoàn hảo với Tickrate của Server.
» Physics Matrix: Quy hoạch chặt chẽ Layer Collision Matrix. Khuyến khích dùng Box/Capsule Colliders cho môi trường lắt léo để giảm tải CPU.
» FSM Integrity: Mỗi State trong Kinematic FSM là một Sandbox độc lập, nghiêm cấm tiêm/thay đổi biến (Mutate) chéo giữa các trạng thái.

Cấu trúc Thư mục (Workspace Architecture)

Cấu trúc không gian làm việc của BABA_YAGA tuân thủ nghiêm ngặt mô hình Quy chuẩn Công nghiệp (Standard Industry Practices). Sự phân tách rạch ròi giữa Dữ liệu tĩnh (Assets), Lõi Logic (Core Scripts) và Cấu hình hệ thống (Configs) đảm bảo khả năng mở rộng (Scalability) và triệt tiêu Conflict khi làm việc nhóm.


BABA_YAGA_PROJECT/

     Assets/ — Trái tim của trò chơi

         Scripts/ — Phép thuật điều khiển logic

             Attributes/ (Tùy biến Inspector)

             Camera Controller/

             Debug/

             Fusion/

                 BasicSpawner.cs

             GameSetup/

                 Maze/ (Thuật toán Mê cung)

                     Maze.cs

                     Crawler.cs

                     Prims.cs

                     Wilsons.cs

                 CharacterAutoSetup.cs

             Interactables/

                 BaseInteractable.cs

                 DoorInteractable.cs

                 LampInteractable.cs

             Interface/

             Optimization/

             Player Controller/

                 PlayerStateMachine.cs

                 InputReader.cs

                 States/

             UI/

             VFX/

         Prefabs/

         document/

         Scenes/

         Materials/

         Models/

         Animation/

         Photon/

         TextMesh Pro/

         Settings/

     ProjectSettings/

         TagManager.asset

         DynamicsManager.asset

         MultiplayerManager.asset

     Packages/

     README.md — Creator (。•̀ᴗ-)✧


Giao thức Triển khai (Deployment Protocol)

Hướng dẫn thiết lập môi trường phát triển và kết nối mạng lưới cho BABA_YAGA. Khuyến nghị sử dụng công cụ ParrelSync để tối ưu hóa quy trình kiểm thử Multiplayer (Mô phỏng Host/Client) ngay trên một Editor duy nhất.




Engine Core
Unity 6000.3.10f1+


Architecture
Win 10/11 | macOS (M/Intel)


Storage Budget
~5.0 GB (Repo + Library)

1. Khởi tạo Không gian mạng (Repository Clone)

# Clone mã nguồn dự án từ kho lưu trữ chính thức
git clone https://github.com/OnlyScove/BABA_YAGA.git

    Mở Unity Hub ➝ Chọn Add ➝ Add project from disk.

    Trỏ đường dẫn đến thư mục BABA_YAGA vừa clone. Lần chạy đầu tiên (Import Asset Pipeline & Library) có thể mất từ 3 - 5 phút.

2. Khớp mã Máy chủ Photon (Fusion AppID Config)

Trò chơi yêu cầu kết nối đến cụm máy chủ Relay của Photon để xử lý State Sync. Bạn bắt buộc phải cung cấp một AppID hợp lệ:

  1. Truy cập và đăng nhập vào Photon Engine Dashboard.
  2. Khởi tạo một Application mới (Loại App: Fusion) và sao chép mã App ID.
  3. Trong Unity Editor, điều hướng tới: Tools ➝ Photon ➝ Fusion ➝ Network Project Settings.
  4. Dán App ID vào trường App Id Fusion (Áp dụng cho cả Realtime & Fusion).
  5. Đảm bảo Network Mode được thiết lập là Client/Server để bật tính năng State Authority.

3. Khởi chạy Trình mô phỏng (Launch Simulation)
Mở Scene trung tâm tại: Assets/Scenes/Main Scene.unity.

Nhấp vào Smart Bootstrapper (Nằm trên thanh Menu Top-bar của Unity) để tự động hóa quy trình tiêm (Inject) cấu hình Network Runner.

Nhấn nút Play <img src="https://api.iconify.design/lucide/play.svg?color=%2300FF55" width="14" style="vertical-align: middle;"> trong Editor.

Để test thực tế: Khuyến nghị Build ra file .exe độc lập, hoặc sử dụng hệ thống ParrelSync Clone Editor để chạy 2 Instances song song.
Trung tâm Tín hiệu (Community & Support)

Stars Forks Follow

Discord Ko-fi Buy Me A Coffee


Network Visitors




© 2026 SCOVANIA STUDIOS
"Baba_Yaga is more than a game, it's a social experiment."



X/Twitter

```
Description
An asymmetric PvP mind-game built with Unity & Photon Fusion. One Seeker, one Trapper, and a procedurally generated dark maze. A high-stakes battle of intuition, stealth, and psychological warfare.
https://scove-vault.duckdns.org/
Readme 1.6 GiB
Languages
C# 89.2%
GLSL 7.5%
ShaderLab 2.5%
HLSL 0.4%
Python 0.3%