Marv từ ZeroSpace đã giải thích vấn đề nhứt nhối nhất trong quá trình phát triển dòng game chiến thuật thời gian thực là RTS Pathfinding.
Tư liệu rất hữu ích cho những ai đang phát triển game, nhắm đến các lời giản về path finding, crowd simulation và tối ưu cho crowd simulation.
Marv (dev Zeropace) giải thích crowd simulation (mô phỏng đám đông) là “linh hồn” của RTS games, quyết định 70-80% “feel” thỏa mãn (xây base, swarm quân, nghiền kẻ thù) hoặc frustration (units kẹt cứng). Phân biệt rõ: Pathfinding chỉ tránh static obstacles (navmesh + A*, cost thấp cho buildings/terrain), còn crowd sim xử lý dynamic avoidance giữa units với local view hạn chế (~3 feet/1m) để tránh exponential CPU cost.Core Features & Edge Cases (Core: 40% Transcript):
- RVO Avoidance: Dự đoán va chạm velocity (reciprocal: units “nhường” lẫn nhau), mượt với nhóm nhỏ (e.g., SC2 marauders tránh nhau) nhưng sụp đổ ở mass clash (zerglings bỏ cuộc, 1/3 marines fail choke points).
- Obstacle Avoidance Tổng: Flocking/flow fields cho “dòng chảy”, collision tiers (big units bất động với small), nhưng gây second-guessing (tự nghi ngờ đường) hoặc push quá gần (AoE4 archers vào catapults/melee).
- Ví Dụ Kinh Điển: Stacraft 2 tốt ở vòng quanh tanks nhưng lag 1.000 units (23 tick/giây, drop 30 FPS); AoE4 dùng formation pre-sort (knights front) + push forward để hack, nhưng jerky (xoay 0.5s/tick).
Performance Tradeoffs
Exponential cost (n units × k neighbors/frame) buộc local view, giới hạn swarm size.
Tick rate cao (80/giây Zeropace) mượt nhưng tốn CPU; single-core accessible (tránh multi-thread boost drop).
AoE4 low tick giữ performance nhưng không smooth.
Zeropace Giải Quyết
Hỗ trợ 1.500+ units mượt 80 tick single-core (3x SC2): Line drag/magic box cho formation nhanh/pixel-precise; hybrid RVO + flow fields xử lý choke/walls (ít give up); collision tiers tránh push ultralisk.
Unlock cho các trận chiến người chơi đối kháng với nhau tạo nên một khung cảnh huy hoàng chiến đấu, khủng PvE (survival co-op swarm nghìn units/night, như They Are Billions).
Crowd sim mà phát triển tốt sẽ mở khóa chơi game vui hơn, “fun stuff” (body blocking Warcraft 3-style, hover tanks accel gameplay).
1. Pathfinding vs Crowd Simulation
- Định nghĩa và Phân biệt (0:36 – 1:53):
- Pathfinding: Tập trung vào việc tìm đường từ A đến B, tránh chướng ngại vật tĩnh (static obstacles) như địa hình, tòa nhà, hoặc vật cản cố định. Sử dụng navmesh (lưới điều hướng) để xây dựng bản đồ đi lại, kết hợp thuật toán A (A-star)* hoặc biến thể. Trong RTS, pathfinding không xử lý đơn vị động (units di chuyển) vì navmesh quá tốn kém để cập nhật real-time (mỗi frame hoặc tick).
Ví dụ: Siege tanks trong SC2 ảnh hưởng navmesh vì chúng “tĩnh” khi siege up, nhưng marines thì không. - Crowd Simulation (Crowd Sim): Xử lý tránh va chạm động giữa các đơn vị với nhau (dynamic obstacles), dựa trên thông tin cục bộ hạn chế (local view, chỉ ~3 feet/1m phía trước). Đây là lý do gây “frustration” lớn nhất trong RTS – đơn vị không “thấy” toàn bộ đám đông, dẫn đến tắc nghẽn.
Video nhấn mạnh: Pathfinding chỉ ~20-30% trải nghiệm, crowd sim chiếm 70-80% “feel” game (thỏa mãn hoặc bực bội).
- Pathfinding: Tập trung vào việc tìm đường từ A đến B, tránh chướng ngại vật tĩnh (static obstacles) như địa hình, tòa nhà, hoặc vật cản cố định. Sử dụng navmesh (lưới điều hướng) để xây dựng bản đồ đi lại, kết hợp thuật toán A (A-star)* hoặc biến thể. Trong RTS, pathfinding không xử lý đơn vị động (units di chuyển) vì navmesh quá tốn kém để cập nhật real-time (mỗi frame hoặc tick).
- Ví dụ từ Video (3:10 – 4:17): Trong SC2, marines (tầm ngắn) tự động vòng quanh siege tanks (tầm xa) để tránh đẩy chúng – đây là crowd sim tốt. Ngược lại, AoE4 dùng “đẩy nhẹ phía trước” (pushing forward) để archers vào tầm, nhưng gây vấn đề (archers bị đẩy vào catapults hoặc melee infantry).
- Liên hệ tới game Zeropace: Zeropace tách rõ: Pathfinding cho static (như pylons choke points), crowd sim cho dynamic (line drag để formation mượt, tránh “bỏ cuộc” như 1/3 marines SC2 ở choke point).
2. RVO & Obstacle Avoidance
- Định nghĩa (1:53 – 2:00 & 7:24 – 8:07):
- RVO (Reciprocal Velocity Obstacle Avoidance): Một thuật toán crowd sim phổ biến, nơi đơn vị dự đoán va chạm trước và điều chỉnh vận tốc (velocity) lẫn nhau để tránh (reciprocal: cả hai bên cùng “nhường”). Hiệu quả với nhóm nhỏ (2-5 đơn vị), nhưng thất bại với đám đông lớn vì tính toán hàm mũ (exponential cost) – dẫn đến “tắc nghẽn” hoặc đơn vị “bỏ cuộc” (give up path).
- Obstacle Avoidance Tổng Quát: Bao gồm flocking (hành vi đàn), flow fields (dòng chảy hướng), và collision tiers (cấp độ va chạm: đơn vị lớn không bị đẩy bởi nhỏ). Tầm nhìn cục bộ giúp giảm CPU, nhưng gây edge cases như “tự nghi ngờ” (second-guessing) hoặc kẹt ở tường (wall forming).
- Ví dụ từ Video (5:06 – 7:24):
- SC2: Marines kẹt ở tường thẳng (straight wall) hoặc concave, không tìm đường ra dù chỉ cách 1 pixel. Trong choke points (pylons chặn), marines chỉ dùng đường giữa, dẫn đến 1/3 bỏ cuộc.
- RVO cụ thể: Hai marauders đi ngược chiều điều chỉnh velocity mượt, nhưng với mass zerglings, chúng bị bỏ lại (left behind) khi hai quân đội va chạm.
- Vấn đề lớn: Đơn vị tĩnh như ultralisk bị đẩy bởi marines di chuyển, không quay về vị trí (không có collision tiers).
- Liên hệ Zeropace: Sử dụng RVO nâng cao + collision tiers để đơn vị lớn (như ultralisk) “bất động” với nhỏ. Trong line drag, đơn vị “second-guess” nhưng vẫn tìm đường mượt (không bỏ cuộc như SC2). Xử lý tốt mass movement qua choke points bằng phân bổ đường (5 routes), tránh tắc nghẽn.
3. Performance Tradeoffs (Tick Rate, Threading)
- Định nghĩa và Tradeoffs (8:07 – 9:42):
- Tick Rate: Tần suất cập nhật game state (frames/giây cho simulation). Cao (80 tick/giây) cho mượt mà, nhưng tốn CPU; thấp (23 tick/giây ở SC2) giảm lag nhưng giật lag (jerky movement). Tradeoff: Cao hơn = spectacle lớn (swarm nghìn đơn vị), nhưng drop FPS với mass units.
- Threading (Multi-Core Usage): Sử dụng nhiều CPU cores tăng scale, nhưng giảm turbo boost (tốc độ clock) trên hầu hết máy (thường chỉ 4 cores mạnh). Tradeoff: Single-core (1 thread) giữ accessible (chạy mượt trên laptop), nhưng giới hạn ~1.500 units; multi-core (8 cores) cho 3.000+ units nhưng yêu cầu hardware cao.
- Tổng: Crowd sim là “exponential problem” – mass units × local calc = CPU spike. Giải pháp: Local view (3 feet) giảm cost, nhưng hy sinh “global intelligence”.
- Ví dụ từ Video:
- SC2: Drop dưới 30 FPS với 1.000 marines trên 2.4GHz CPU (tick 23/giây).
- AoE4: Tick thấp + xoay chậm (mỗi 0.5 giây) để giữ performant, nhưng không mượt (knights rotate jerky).
- Tradeoff rõ: Mass attack gây traffic jam nếu không tối ưu.
- Liên hệ Zeropace: Chạy 80 tick/giây trên single-core 2.4GHz cho 1.500 units (mượt 3x SC2), dự kiến giảm xuống 40-60 để scale 2.000+ mà không drop FPS. Chỉ dùng 1 core để “hardware requirements lower” (accessible cho player casual), tránh multi-threading làm boost giảm. Kết quả: Body blocking mượt như Warcraft 3, mà không lag.
4. How ZeroSpace Handles 1,500+ Units Smoothly
- Cách Xử Lý Tổng Thể (5:30 – 6:57 & 8:42 – 10:14): Zeropace tối ưu crowd sim để scale lớn mà giữ “feel tốt” (satisfying swarm/crushing enemies), tập trung PvE/co-op như survival mode (hàng nghìn units/night waves, giống They Are Billions nhưng co-op).
- Các Kỹ Thuật Chính:
- Local Avoidance + Collision Tiers: Đơn vị chỉ calc 3 feet, nhưng tiers ngăn đẩy lớn/nhỏ (ultralisk không bị marines đẩy). Kết hợp RVO cho va chạm hai chiều, flow fields cho choke points (phân bổ 5 routes, tránh 1/3 bỏ cuộc như SC2).
- Formation Tools: Line drag (click-drag tạo tuyến tính nhanh), magic box (giữ clump nhỏ trong hộp), pixel-precise movement (di chuyển đúng 1 pixel theo chuột) – giảm frustration ở wall/concave.
- Tick & Hardware Opt: 80 tick single-core cho 1.500 units (80 FPS mượt); gia tốc xe (hover tanks) thêm gameplay mà không tăng cost.
- Edge Case Fixes: Xử lý “give up” bằng second-guessing (đơn vị thử lại đường thay vì bỏ); network prediction/rollback cho multiplayer (sắp update).
- Ví Dụ Demo: Trong Zeropace, marines qua choke points phân bổ đều (không tắc giữa như SC2); line formation mượt ngay lập tức; swarm 1.500 units không lag, mở khóa spectacle (tons of units swarming in PvE).
Video từ Youtube dùng các phần này để showcase Zeropace “solve all edge cases” mà SC2/AoE4 chưa hoàn hảo, nhờ hardware 2025 và thuật toán tinh chỉnh

