Giới thiệu dự án

Thị trường trò chơi điện tử toàn cầu đang chứng kiến sự tăng trưởng vượt bậc với quy mô vượt 187 tỷ USD, trong đó phân khúc trò chơi hợp tác trực tuyến (Co-op Multiplayer Games) chiếm tỷ trọng đáng kể nhờ khả năng kết nối xã hội mạnh mẽ. Tại Việt Nam, với hơn 50 triệu người chơi game (chiếm hơn 50% dân số), nhu cầu tiếp cận các sản phẩm game trực tuyến chất lượng cao, vận hành mượt mà trên nền tảng PC ngày càng trở nên cấp thiết. Tuy nhiên, việc phát triển các dòng game phối hợp trực tuyến thời gian thực đặt ra nhiều thách thức phức tạp về mặt kỹ thuật phần mềm: độ trễ truyền dữ liệu mạng (network latency), đồng bộ hóa trạng thái vật lý giữa các máy khách, tối ưu hóa thuật toán tìm đường cho số lượng lớn thực thể (AI pathfinding) và chi phí vận hành máy chủ chuyên dụng.

Đề tài "Phát triển Game phối hợp trực tuyến" (Developing a Co-op Game) được thực hiện bởi sinh viên Nguyễn Hữu Việt (MSSV: 20522152), dưới sự hướng dẫn của ThS. Nguyễn Thị Thanh Trúc tại Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM (2024). Đề tài tập trung giải quyết bài toán xây dựng một hệ thống game 3D góc nhìn từ trên xuống (Top-down Isometric View) hỗ trợ từ 1 đến 4 người chơi cùng lúc với kiến trúc máy chủ ủy quyền (Authoritative Server Architecture) và tối ưu hóa hiệu năng thuật toán tìm đường trên đồ họa Low-poly.

Mục tiêu của dự án

  1. Xây dựng game hoàn chỉnh: Thiết kế và phát triển gameplay hành động bắn súng phối hợp 3D góc nhìn từ trên xuống hỗ trợ 1-4 người chơi trên nền tảng Microsoft Windows 10.
  2. Thiết kế kiến trúc mạng Client-Server ủy quyền: Triển khai thư viện cấp cao Netcode for GameObjects (NGO) kết hợp máy chủ Dedicated Game Server để đồng bộ hóa trạng thái trò chơi thời gian thực với độ trễ thấp và ngăn chặn triệt để gian lận phía máy khách.
  3. Tích hợp hệ sinh thái đám mây Unity Cloud: Tận dụng Unity Gaming Services (UGS) bao gồm Game Server Hosting (Multiplay), Unity Player Authentication và Unity Lobby để quản lý phiên bản, phòng chờ và định tuyến người chơi.
  4. Nghiên cứu và tối ưu thuật toán AI: Triển khai thuật toán Vector Field Pathfinding (Flow Field) dựa trên Wavefront Heatmap nhằm tối ưu hóa chi phí tính toán đường đi cho hàng trăm quái vật (zombies/boss) đồng thời.
  5. Hoàn thiện chu trình phát triển phần mềm chuẩn mực: Ứng dụng quy trình phân tích ca sử dụng (Use Case), mô hình hướng đối tượng (OOP), tài liệu thiết kế trò chơi (Game Design Document - GDD) và hệ thống kiểm thử chất lượng nghiêm ngặt.

Phạm vi và giới hạn hệ thống

  • Phạm vi môi trường: Vận hành tối ưu trên hệ điều hành Microsoft Windows 10/11 (64-bit), kiến trúc x86_64.
  • Phạm vi chức năng: Quản lý tài khoản và định danh; tùy biến nhân vật và trang bị vũ khí; tạo và tìm kiếm sảnh chờ (Lobby System); gameplay chiến đấu, di chuyển, thu thập tài nguyên, tương tác NPC, hoàn thành nhiệm vụ theo màn chơi tuyến tính với đường cong hứng thú (Interest Curve); hệ thống tính điểm và tổng kết trận đấu.
  • Giới hạn kỹ thuật: Không hỗ trợ kết nối mạng ngang hàng phân tán (P2P Mesh) nhằm đảm bảo tính toàn vẹn trạng thái thông qua máy chủ trung tâm; chưa triển khai cơ chế bù trừ trễ nâng cao (Client-side Prediction & Lag Compensation) cho các kết nối có ping vượt quá 250ms.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Các giải pháp game co-op trên thị trường hiện nay có sự phân hóa rõ rệt giữa các dự án thương mại kinh phí lớn (AAA) và các game di động nhẹ.

Tiêu chí The Ascent (Neon Giant) Zombie Blast Crew (Vivid Games) Đồ án Co-op Game (UIT)
Mô hình kiến trúc Peer-to-Peer / Dedicated Server kết hợp Client-Hosted Listen Server / Offline Dedicated Game Server + Unity Cloud
Góc nhìn / Đồ họa 3D Cyberpunk Isometric AAA, nặng phần cứng 3D Cartoon Mobile Low-poly 3D Top-down Low-poly tối ưu hóa phần cứng
Cơ chế AI Pathfinding NavMesh / A* Pathfinding phức hợp NavMesh Agent chuẩn của Unity Vector Field Pathfinding (Wavefront-based)
Quy mô phòng chơi 1 - 4 người chơi 1 người chơi (kèm bot hỗ trợ) 1 - 4 người chơi trực tuyến
Chi phí hạ tầng Rất cao, đòi hỏi máy chủ cấu hình mạnh Thấp do xử lý chủ yếu offline/P2P Cân bằng tối ưu nhờ dịch vụ Cloud tự động co giãn

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc có): Đồng bộ hóa di chuyển và hành động bắn/kỹ năng của 1-4 người chơi qua NGO; hệ thống tạo/tham gia phòng chờ (Unity Lobby); thuật toán tìm đường Vector Field cho quái vật; luồng chơi hoàn chỉnh (Menu -> Lobby -> Gameplay -> End Game).
  • Should have (Nên có): Tùy chỉnh skin nhân vật và lựa chọn vũ khí trước khi vào trận; hệ thống nhiệm vụ phụ tương tác với NPC; hiệu ứng âm thanh và thanh hiển thị máu/đạn đồng bộ qua NetworkVariable.
  • Could have (Có thể có): Cơ chế bỏ phiếu đuổi người chơi khỏi phòng (Kick Player); bảng xếp hạng điểm số trực tuyến (Leaderboard).
  • Won't have (Chưa phát triển): Hệ thống mua bán vật phẩm bằng tiền thật (IAP); chế độ thi đấu đối kháng nhiều đội (PvP).

Thiết kế hệ thống

Kiến trúc tổng thể của hệ thống được xây dựng theo mô hình phân lớp kết hợp kiến trúc dịch vụ đám mây:

+-----------------------------------------------------------------------+
|                             CLIENT TIER                               |
|   +-------------------+  +--------------------+  +----------------+   |
|   | UI / Customizer   |  | Gameplay Controller|  | Audio / Render |   |
|   +---------+---------+  +---------+----------+  +--------+-------+   |
|             |                      |                      |           |
|             +----------------------+----------------------+           |
|                                    |                                  |
|                                    v                                  |
|                      Unity Netcode (NGO Client)                       |
+--------------------+--------------------------------+-----------------+
                     | REST API (HTTPS)               | UDP Packets
                     v                                v (UTP Protocol)
+--------------------+--------------+   +-------------+-----------------+
|          UNITY CLOUD TIER         |   |      SERVER TIER (DEDICATED)  |
|  +-----------------------------+  |   |  +-------------------------+  |
|  | Unity Authentication        |  |   |  | NetworkManager Server   |  |
|  +-----------------------------+  |   |  +-------------------------+  |
|  | Unity Lobby Service         |  |   |  | Server-Authoritative    |  |
|  +-----------------------------+  |   |  | Game State & Collision  |  |
|  | Game Server Hosting (Multi) |  |   |  +-------------------------+  |
|  +-----------------------------+  |   |  | Vector Field AI Engine  |  |
+-----------------------------------+   |  +-------------------------+  |
                                        +-------------------------------+

Technology Stack & Chi tiết phiên bản

  • Game Engine: Unity Engine 2022.3.x LTS (Long Term Support), hỗ trợ pipeline C# .NET.
  • Networking Framework: Netcode for GameObjects (NGO) v1.5.2+, chạy trên giao thức truyền tải Unity Transport Protocol (UTP) sử dụng UDP Sockets.
  • Cloud Backend: Unity Gaming Services (UGS) – Unity Player Authentication API, Unity Lobby REST API, Multiplay Game Server Hosting.
  • 3D Modeling & Animation: Blender 3.6 LTS, Mixamo Animation Rigging.
  • Version Control: Git, GitHub repository kết hợp Git LFS cho binary assets.

Cơ chế bảo mật và tối ưu hóa hiệu năng mạng

Hệ thống tuân thủ nghiêm ngặt nguyên lý Server-Authoritative:

  1. Chống gian lận (Anti-Cheat): Phía client chỉ gửi dữ liệu đầu vào (Input Vectors, Trigger Actions) lên máy chủ thông qua ServerRpc. Máy chủ thực hiện tính toán vật lý, kiểm tra va chạm, xác thực lượng đạn, thời gian hồi chiêu và trừ máu quái vật, sau đó đồng bộ kết quả ngược lại cho tất cả client qua NetworkVariable hoặc ClientRpc.
  2. Giảm thiểu băng thông: Trạng thái thuộc tính ít thay đổi (ví dụ: máu tối đa, tên nhân vật) sử dụng NetworkVariable với cờ NetworkVariableWritePermission.Server. Tần số gửi gói tin đồng bộ vị trí (Tick Rate) được cấu hình cố định ở mức 30 Hz - 60 Hz.

Methodology

Dự án áp dụng mô hình phát triển phần mềm Agile/Scrum rút gọn với 4 giai đoạn chính kéo dài trong 16 tuần:

[Tuần 1 - 4: Khảo sát & GDD] ---> [Tuần 5 - 8: R&D Kiến trúc NGO & AI] 
                                            |
[Tuần 13 - 16: Test, Optimize & Báo cáo] <--+ [Tuần 9 - 12: Gameplay & Cloud Integration]
  • Quản trị rủi ro:
    • Rủi ro bất đồng bộ trạng thái mạng: Giảm thiểu bằng cách kiểm thử liên tục trong môi trường giả lập độ trễ mạng (Network Simulation tool với cấu hình Packet Loss 2%, Ping 100ms).
    • Rủi ro sụt giảm FPS do AI: Áp dụng cấu trúc dữ liệu mảng phẳng (Flattened 2D Array) cho grid bản đồ để tối ưu bộ nhớ đệm CPU cache.
  • Đảm bảo chất lượng (QA): Kiểm thử hộp đen cho từng use case; kiểm thử tải máy chủ đồng thời nhiều kết nối; nghiệm thu dựa trên tiêu chuẩn tỷ lệ khung hình không giảm dưới 60 FPS trên cấu hình máy chuẩn.

Implementation và kết quả

Development process

Quá trình lập trình tập trung vào hai hạt nhân kỹ thuật chính: Thuật toán tìm đường đa tác tử Vector Field Pathfinding và Cơ chế truyền thông mạng qua Netcode for GameObjects.

1. Thuật toán Vector Field Pathfinding (Flow Field)

Thay vì chạy thuật toán $A^*$ riêng lẻ cho từng quái vật với độ phức tạp $O(M \cdot (V \log V + E))$ gây nghẽn CPU khi số lượng quái vật $M > 100$, hệ thống triển khai Vector Field theo 3 bước:

  • Bước 1: Heatmap Generation (Thuật toán Wavefront/Loang sóng): Khởi tạo ma trận lưới kích thước $M \times N$. Gán ô chứa mục tiêu (người chơi) giá trị 0. Sử dụng hàng đợi BFS (Breadth-First Search) để lan truyền chi phí đến các ô lân cận chưa đi qua với chi phí tăng dần thêm 1 đơn vị. Các ô vật cản được đánh dấu là không thể đi qua (Cost = $\infty$).
  • Bước 2: Vector Field Generation: Duyệt qua từng ô trong ma trận, tính toán độ dốc (gradient) bằng cách so sánh giá trị Heatmap của 8 ô lân cận. Vector hướng tại ô $(x, y)$ sẽ trỏ về ô lân cận có chi phí thấp nhất.
  • Bước 3: Pathfinder Movement: Mọi quái vật tại vị trí thực tế $(worldX, worldZ)$ chỉ cần chuyển đổi sang tọa độ lưới $(gridX, gridY)$ với độ phức tạp $O(1)$, lấy vector vận tốc định sẵn và di chuyển mà không cần tính toán lại toàn bộ đồ thị.
// Thuật toán khởi tạo Heatmap bằng Wavefront BFS
public void GenerateWavefrontHeatmap(Vector2Int targetGridPos)
{
    Queue<Vector2Int> openList = new Queue<Vector2Int>();
    ResetGridCosts(); // Gán toàn bộ ô = int.MaxValue

    grid[targetGridPos.x, targetGridPos.y].cost = 0;
    openList.Enqueue(targetGridPos);

    Vector2Int[] neighbors = {
        new Vector2Int(0, 1), new Vector2Int(1, 0),
        new Vector2Int(0, -1), new Vector2Int(-1, 0)
    };

    while (openList.Count > 0)
    {
        Vector2Int current = openList.Dequeue();
        int currentCost = grid[current.x, current.y].cost;

        foreach (Vector2Int dir in neighbors)
        {
            Vector2Int next = current + dir;
            if (IsValidGridPos(next) && !grid[next.x, next.y].isObstacle)
            {
                if (grid[next.x, next.y].cost > currentCost + 1)
                {
                    grid[next.x, next.y].cost = currentCost + 1;
                    openList.Enqueue(next);
                }
            }
        }
    }
}
  • Độ phức tạp thuật toán:
    • Độ phức tạp không gian (Space Complexity): $O(N)$ với $N$ là tổng số ô trên bản đồ.
    • Độ phức tạp thời gian (Time Complexity): $O(N \cdot K)$ với $K$ là số ô lân cận ($K = 4$ hoặc $8$), hoàn toàn độc lập với số lượng quái vật $M$.

2. Lập trình đồng bộ mạng với Netcode for GameObjects

using Unity.Netcode;
using UnityEngine;

public class PlayerCombatNetwork : NetworkBehaviour
{
    // Đồng bộ thuộc tính máu từ Server về tất cả Client
    public NetworkVariable<int> NetworkHealth = new NetworkVariable<int>(
        100, 
        NetworkVariableReadPermission.Everyone, 
        NetworkVariableWritePermission.Server
    );

    [SerializeField] private GameObject bulletPrefab;
    [SerializeField] private Transform firePoint;

    void Update()
    {
        if (!IsOwner) return; // Chỉ nhận input từ người chơi sở hữu đối tượng này

        if (Input.GetButtonDown("Fire1"))
        {
            // Gửi yêu cầu bắn từ Client lên Server
            FireWeaponServerRpc(firePoint.position, firePoint.forward);
        }
    }

    [ServerRpc]
    private void FireWeaponServerRpc(Vector3 origin, Vector3 direction)
    {
        // Máy chủ toàn quyền xác thực và khởi tạo viên đạn
        GameObject bullet = Instantiate(bulletPrefab, origin, Quaternion.LookRotation(direction));
        NetworkObject netObj = bullet.GetComponent<NetworkObject>();
        netObj.Spawn(); // Đồng bộ GameObject trên tất cả các Client
    }
}

Testing và validation

Quá trình kiểm thử được tiến hành qua nhiều kịch bản thực tế trên hệ thống mạng cục bộ (LAN) và Internet thông qua Unity Relay & Dedicated Server Hosting.

Benchmark hiệu năng thuật toán tìm đường

Thử nghiệm so sánh hiệu năng trên bản đồ kích thước $100 \times 100$ ô (10.000 nodes) với số lượng quái vật di chuyển đồng thời tăng dần:

Số lượng Agent (Quái vật) Thời gian xử lý $A^*$ cổ điển (ms/frame) Thời gian xử lý Vector Field (ms/frame) Mức cải thiện hiệu năng (%)
50 Agents 4.8 ms 1.1 ms Giảm 77.08%
100 Agents 12.4 ms 1.2 ms Giảm 90.32%
250 Agents 35.6 ms (Gây drop FPS < 30) 1.3 ms (Duy trì 60 FPS) Giảm 96.34%
500 Agents 88.2 ms (Treo luồng chính) 1.5 ms Giảm 98.29%

Thông số kiểm thử vận hành mạng (Network Metrics)

  • Độ trễ trung bình (Round-Trip Time - RTT): 28ms trong mạng nội bộ, 45ms qua máy chủ Dedicated Hosting khu vực Đông Nam Á.
  • Băng thông tiêu thụ trung bình trên mỗi Client: Đạt 18 - 24 KB/s trong pha giao tranh cao điểm (4 người chơi, 150 quái vật).
  • Tỷ lệ mất gói tin (Packet Loss Toleration): Hệ thống duy trì ổn định không lệch trạng thái với tỷ lệ packet loss giả lập lên tới 3.5%.

Kết quả đạt được

Dự án đã hoàn thành 100% các mục tiêu cốt lõi đề ra trong đề cương khóa luận:

  • Hoàn thiện 18 ca sử dụng chi tiết (Đặc tả use case từ Điều chỉnh nhân vật, Quản lý Lobby, Chiến đấu, Tương tác NPC, Thu thập tài nguyên đến Kết thúc màn chơi).
  • Xây dựng 6 màn hình giao diện người dùng (UI Flow): Main Menu, Custom Character, Create Lobby, Join Lobby, Lobby Room, Gameplay HUD.
  • Triển khai thành công mô hình phòng chơi Co-op 4 người mượt mà, hỗ trợ cơ chế chiến đấu theo màn, chia sẻ tài nguyên và đánh giá kết quả trận đấu dựa trên thang điểm tích lũy.

Đổi mới và đóng góp

  1. Ứng dụng thành công Vector Field Pathfinding vào game Co-op nhiều người: Đột phá lớn nhất của đồ án là loại bỏ sự phụ thuộc vào NavMesh mặc định của Unity (vốn tốn tài nguyên khi bake động hoặc tính toán nhiều agent). Thuật toán Flow Field giúp máy chủ Dedicated Server xử lý hàng trăm quái vật đồng thời mà mức chiếm dụng CPU chỉ dao động dưới 5%.
  2. Chuẩn hóa quy trình tích hợp Unity Cloud & NGO: Cung cấp tài liệu tham khảo hoàn chỉnh về cách kết nối các thành phần rời rạc trong hệ sinh thái Unity Gaming Services mới nhất (Authentication, Lobby, UTP, Netcode for GameObjects), giúp các nhà phát triển game độc lập (Indie developers) có thể tiếp cận kiến trúc Dedicated Server mà không cần xây dựng hệ thống backend từ đầu.
  3. Mô hình kiến trúc phân lớp sạch (Clean Architecture trong Game): Tách bạch hoàn toàn logic điều khiển máy khách (Client Controller), logic ủy quyền máy chủ (Server Authority) và tầng dịch vụ API đám mây (Cloud Gateway), giúp mã nguồn dễ dàng mở rộng và bảo trì.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Phát hành game thương mại trên Steam/Epic Games: Sản phẩm có thể đóng gói thành bản build chính thức trên các nền tảng phân phối game PC phổ biến với chi phí vận hành máy chủ tối ưu theo số lượng người dùng thực tế.
  • Mô hình đào tạo và nghiên cứu học thuật: Sử dụng làm dự án mẫu (Starter Kit/Framework mẫu) tại các trường đại học chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm cho các môn học Lập trình Game, Lập trình Mạng và Kiến trúc Phần mềm.

Yêu cầu cấu hình triển khai hệ thống

Phía máy khách (Client Requirements)

  • Hệ điều hành: Windows 10/11 64-bit.
  • Bộ vi xử lý (CPU): Intel Core i3-6100 / AMD Ryzen 3 1200 trở lên.
  • Bộ nhớ trong (RAM): Tối thiểu 4 GB (Khuyến nghị 8 GB).
  • Card đồ họa (GPU): Intel HD Graphics 530 hoặc card rời NVIDIA GTX 750 Ti trở lên.
  • Kết nối mạng: Đường truyền Internet băng thông tối thiểu 5 Mbps.

Phía máy chủ (Dedicated Server Hosting Requirements)

  • Hệ điều hành: Linux Ubuntu Server 20.04 LTS / Windows Server 2022.
  • Tài nguyên phần cứng: 1 vCPU, 2 GB RAM đủ để phục vụ đồng thời 4-6 phòng chơi (mỗi phòng 4 người).

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Cơ chế nội suy và dự đoán (Client-side Prediction): Hiện tại hệ thống sử dụng cơ chế Server-Authoritative thuần túy; khi gặp độ trễ mạng cao (>150ms), người chơi có thể cảm nhận hiện tượng giật nhẹ (rubber-banding) khi đổi hướng đột ngột.
  • Độ phức tạp môi trường: Bản đồ được thiết kế theo lưới 2D phẳng (Grid-based 2D Array); chưa hỗ trợ địa hình 3D đa tầng (Verticality / Bridges).

Hướng phát triển trong tương lai

  1. Tích hợp Lag Compensation & State Rewind: Triển khai thuật toán lưu trữ lịch sử vị trí trên máy chủ để hồi quy trạng thái khi xác thực các phát bắn từ client có độ trễ cao.
  2. Mở rộng đa nền tảng (Cross-Platform): Chuyển đổi và tối ưu hóa hệ thống điều khiển để phát hành trên Android, iOS và Nintendo Switch.
  3. Mở rộng Vector Field 3D: Nâng cấp thuật toán Flow Field từ ma trận 2 chiều sang lưới không gian 3 chiều (3D Voxel Grid) để quái vật có thể leo trèo hoặc bay lượn trên địa hình phức tạp.

Đối tượng hưởng lợi

  • Sinh viên & Người học CNTT: Tiếp cận tài liệu chi tiết từ thiết kế sơ đồ Use Case, kiến trúc mạng Client-Server đến giải thuật tìm đường nâng cao kèm mã nguồn C# chuẩn mực.
  • Lập trình viên Game (Game Developers): Sở hữu giải pháp thực tế để xử lý bài toán hiệu năng AI đám đông (Crowd AI) và mô hình tích hợp Unity Cloud Services.
  • Doanh nghiệp & Indie Studios: Tiết kiệm từ 35 - 50% thời gian nghiên cứu và chi phí R&D khi xây dựng hạ tầng mạng cho các dự án game nhiều người chơi thể loại Co-op / Battle Royale quy mô nhỏ.
  • Nhà nghiên cứu học thuật: Cung cấp số liệu thực nghiệm (benchmarks) đáng tin cậy về việc ứng dụng Flow Field Pathfinding thay thế cho giải thuật $A^*$ trong môi trường mạng thời gian thực.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật cốt lõi để triển khai và chạy bản dựng máy chủ là gì?

Để triển khai máy chủ chuyên dụng, cần xuất bản (Build) dự án Unity ở chế độ Dedicated Server (không chứa đồ họa và âm thanh). Máy chủ có thể chạy trên Linux hoặc Windows Server, mở cổng UDP cấu hình trong Unity Transport (mặc định là cổng 7777), và kết nối tới bảng điều khiển Unity Gaming Services để tự động quản lý vòng đời tiến trình thông qua dịch vụ Game Server Hosting.

2. Giới hạn mở rộng (Scalability) của hệ thống là bao nhiêu và giải pháp mở rộng quy mô như thế nào?

Mỗi phiên bản máy chủ đơn luồng hiện tại hỗ trợ tối đa 1 phòng chơi gồm 4 người và xử lý mượt mà 300 quái vật cùng lúc. Để mở rộng quy mô phục vụ hàng nghìn người chơi đồng thời, hệ thống sử dụng cơ chế Auto-Scaling Orchestration của Unity Multiplay: tự động khởi tạo thêm các container máy chủ mới khi số lượng yêu cầu tạo phòng từ Unity Lobby tăng cao và tự động thu hồi khi trận đấu kết thúc.

3. Hệ thống có thể tích hợp với các nền tảng đăng nhập và dữ liệu bên ngoài không?

Hoàn toàn có thể. Tầng dịch vụ Unity Authentication trong đồ án được thiết kế theo chuẩn RESTful API, cho phép tích hợp mở rộng với các nhà cung cấp định danh bên thứ ba như Steamworks API, Google Sign-In, Apple ID hoặc cơ sở dữ liệu xác thực người dùng riêng (Custom Backend Database qua JSON Web Token - JWT).

4. Chi phí bảo trì và vận hành hệ thống ước tính như thế nào?

Do áp dụng phong cách đồ họa Low-poly gọn nhẹ kết hợp thuật toán Vector Field tối ưu CPU, máy chủ tiêu tốn rất ít tài nguyên tính toán. Khi vận hành trên nền tảng đám mây trả phí theo dung lượng sử dụng (Pay-as-you-go), chi phí máy chủ cho một phòng chơi 4 người trong 1 giờ chỉ dao động khoảng 0.005 - 0.01 USD, giúp giảm thiểu tối đa rủi ro tài chính cho nhà phát hành.

5. Tại sao đồ án chọn Netcode for GameObjects thay vì Photon PUN 2 hay Mirror?

Netcode for GameObjects là giải pháp mạng chính thức của chính Unity Technologies, được tối ưu sâu cho kiến trúc Unity Engine hiện đại, tích hợp tự nhiên với Unity Gaming Services (UGS) và hỗ trợ mạnh mẽ mô hình Dedicated Server ủy quyền. So với Photon PUN (chủ yếu tối ưu cho P2P và tính phí theo số lượng CCU khá đắt đỏ), NGO kết hợp UGS mang lại quyền kiểm soát toàn diện mã nguồn máy chủ với chi phí vận hành linh hoạt hơn nhiều.


Kết luận

Khóa luận tốt nghiệp "Phát triển Game phối hợp trực tuyến" của tác giả Nguyễn Hữu Việt đã chứng minh tính khả thi, độ tin cậy và giá trị thực tiễn cao trong việc ứng dụng các công nghệ tiên tiến vào phát triển phần mềm giải trí. Bằng việc kết hợp hài hòa giữa công cụ phát triển Unity Engine, thư viện mạng cấp cao Netcode for GameObjects, hạ tầng đám mây Unity Cloud Services và thuật toán đột phá Vector Field Pathfinding, đề tài đã giải quyết triệt để các thách thức về đồng bộ mạng thời gian thực và tối ưu hóa tài nguyên phần cứng.

Dự án không chỉ là minh chứng xuất sắc cho khối lượng kiến thức chuyên môn vững chắc của sinh viên ngành Kỹ thuật Phần mềm tại UIT, mà còn đóng vai trò như một bộ khung kiến trúc chuẩn mực (Architectural Framework) cho cộng đồng phát triển game Việt Nam trên con đường kiến tạo các sản phẩm game trực tuyến chất lượng cao vươn tầm quốc tế.