diff --git a/README.md b/README.md index cee386b6..863ac445 100644 --- a/README.md +++ b/README.md @@ -304,42 +304,45 @@ Sử dụng **Photon Fusion (State Sync)** với cơ chế Client-Side Predictio sequenceDiagram autonumber + %% Định nghĩa các bên tham gia (Rút gọn để tránh lỗi render) participant IR as 🖱️ Input - box #E3F2FD "🌸 CLIENT" - participant CP as 🎀 Player - end - box #FFF3E0 "🌐 NET" - participant NT as ✨ Fusion - end - box #E8F5E9 "🖥️ SERVER" - participant S as 👑 Authority - end + participant CP as 🎀 Local Player + participant NT as 🌐 Fusion Net + participant S as 👑 Server + participant RP as 👥 Proxies - Note over IR, CP: [TICK N] Thu thập Input ✨ - IR->>CP: OnMove / OnJump - CP->>CP: 📦 Pack Data + %% --- GIAI ĐOẠN 1 --- + Note over IR, CP: [PHASE 1] Thu thập Input + IR->>CP: OnMove / OnJump / OnSprint + CP->>CP: 📦 Pack NetworkInputData - rect rgb(255, 250, 240) - Note over CP, NT: Prediction Mode 🚀 - CP->>CP: 🏃 Local Prediction - CP->>NT: ✉️ Send Packet - end + %% --- GIAI ĐOẠN 2 --- + Note over CP: [PHASE 2] Dự đoán (Prediction) + CP->>CP: 🏃 Run Client-Side Physics + CP->>NT: ✉️ Send Input (Tick N) - rect rgb(240, 255, 240) - Note right of S: SERVER VALIDATION ⚖️ - S->>S: 📝 Check Physics - S->>S: 💾 Update State - end + %% --- 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: 📝 Validate & Update State + S-->>NT: 📣 Snapshot (Tick N) - S-->>NT: 📣 Broadcast Snapshot - - NT-->>CP: Snapshot - Note over CP: 🔄 RECONCILE (Fix Lag) + %% --- GIAI ĐOẠN 4 --- + Note over NT, CP: [PHASE 4] Hồi đáp & Đồng bộ + NT-->>CP: State Snapshot + Note over CP: 🔄 RECONCILIATION + CP->>CP: Fix Position if Error > Threshold - rect rgb(250, 245, 255) - Note over CP: [LateUpdate] Rendering 🎨 - CP->>CP: Shake & VFX - end + %% --- GIAI ĐOẠN 5 --- + Note over NT, RP: [PHASE 5] Proxy Update + NT-->>RP: State Snapshot + Note over RP: 🎞️ 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 ``` --- @@ -401,45 +404,45 @@ Dự án được tổ chức theo tiêu chuẩn công nghiệp (Standard Indust 📦 HALLUCINATE ├── 🌸 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 xinh xắn -│ │ ├── 🎥 Camera Controller/ # Ánh nhìn của nhân vật -│ │ ├── 🛠️ Debug/ # Đội cứu hộ lỗi (Fix-it!) -│ │ ├── 🌐 Fusion/ # Sợi dây kết nối mọi người (Networking) +│ │ ├── 🏷️ Attributes/ # Tùy biến Inspector +│ │ ├── 🎥 Camera Controller/ +│ │ ├── 🛠️ Debug/ +│ │ ├── 🌐 Fusion/ │ │ │ └── 🚀 BasicSpawner.cs -│ │ ├── 🏗️ GameSetup/ # Kiến tạo thế giới ảo -│ │ │ ├── 🌀 Maze/ # Mê cung huyền bí -│ │ │ │ ├── 🐾 Crawler.cs # Những bước chân ngẫu nhiên -│ │ │ │ ├── 🌳 Prims.cs # Cây khung tối tiểu -│ │ │ │ ├── 🧵 Wilsons.cs # Bước đi không vòng lặp -│ │ │ │ └── 🗺️ Maze.cs # Nhạc trưởng mê cung +│ │ ├── 🏗️ GameSetup/ +│ │ │ ├── 🌀 Maze/ # Mê cung +│ │ │ │ ├── 🐾 Crawler.cs +│ │ │ │ ├── 🌳 Prims.cs +│ │ │ │ ├── 🧵 Wilsons.cs +│ │ │ │ └── 🗺️ Maze.cs │ │ │ └── 🧍 CharacterAutoSetup.cs -│ │ ├── 🖱️ Interactables/ # Những vật thể biết nói +│ │ ├── 🖱️ Interactables/ │ │ │ ├── 🚪 DoorInteractable.cs │ │ │ ├── 💡 LampInteractable.cs │ │ │ └── 💎 BaseInteractable.cs -│ │ ├── 📐 Interface/ # Bản thiết kế chung (IInteractable) -│ │ ├── 🏃‍♀️ Player Controller/ # Linh hồn của Gameplay +│ │ ├── 📐 Interface/ +│ │ ├── 🏃‍♀️ Player Controller/ │ │ │ ├── 🧠 PlayerStateMachine.cs │ │ │ ├── ⌨️ InputReader.cs -│ │ │ └── 🎭 States/ # Cảm xúc hành động (Idle, Run, Jump...) -│ │ ├── ⚡ Optimization/ # Phép màu mượt mà (60 FPS!) -│ │ ├── 🖥️ UI/ # Giao diện dễ thương -│ │ └── 🎆 VFX/ # Bụi tiên và ánh sáng -│ ├── 🧸 Prefabs/ # Những món đồ chơi dựng sẵn -│ ├── 📖 document/ # Sách bí kíp (Design & Diagrams) -│ ├── 🎬 Scenes/ # Những sân khấu kịch -│ ├── 🎨 Materials/ # Lớp áo lấp lánh (Cell-Shading) -│ ├── 👸 Models/ # Những cư dân Anime 3D -│ ├── 💃 Animation/ # Điệu nhảy của nhân vật -│ ├── 🔌 Photon/ # Cổng dịch chuyển không gian (SDK) -│ ├── 🅰️ TextMesh Pro/ # Những dòng chữ nghệ thuật -│ └── ⚙️ Settings/ # Cấu hình thế giới (URP & Physics) -├── 🛠️ ProjectSettings/ # Quy tắc của vũ trụ Unity -│ ├── 🏷️ TagManager.asset # Phân loại tầng mây -│ ├── 🌍 DynamicsManager.asset # Trọng lực & Va chạm -│ └── 📡 MultiplayerManager.asset # Quy tắc chơi chung -├── 📦 Packages/ # Những chiếc túi thần kỳ -└── 📝 README.md # Lời chào từ Creator (。•̀ᴗ-)✧ +│ │ │ └── 🎭 States/ +│ │ ├── ⚡ Optimization/ +│ │ ├── 🖥️ UI/ +│ │ └── 🎆 VFX/ +│ ├── 🧸 Prefabs/ +│ ├── 📖 document/ +│ ├── 🎬 Scenes/ +│ ├── 🎨 Materials/ +│ ├── 👸 Models/ +│ ├── 💃 Animation/ +│ ├── 🔌 Photon/ +│ ├── 🅰️ TextMesh Pro/ +│ └── ⚙️ Settings/ +├── 🛠️ ProjectSettings/ +│ ├── 🏷️ TagManager.asset +│ ├── 🌍 DynamicsManager.asset +│ └── 📡 MultiplayerManager.asset +├── 📦 Packages/ +└── 📝 README.md # Creator (。•̀ᴗ-)✧ ``` ---