Tổng quan nghiên cứu

Thị trường công nghiệp trò chơi điện tử toàn cầu đã ghi nhận bước tăng trưởng vượt bậc từ mốc 120 tỉ USD vào năm 2019 lên 174 tỉ USD vào năm 2020, trong đó phân khúc game trên thiết bị di động chiếm ưu thế với 86.3 tỉ USD. Sự phát triển mạnh mẽ của phần cứng máy tính và thế hệ máy chơi game cầm tay mới đã thúc đẩy nhu cầu ngày càng cao về các tựa game có chiều sâu kỹ thuật, cơ chế điều khiển chuẩn xác và trải nghiệm tương tác trực tuyến mượt mà. Trong bối cảnh ngành công nghiệp phát triển game tại Việt Nam đang chuyển mình tích cực với nhiều studio độc lập ra đời, việc làm chủ quy trình kỹ thuật xây dựng game 3D hoàn chỉnh trở thành yêu cầu cấp thiết đối với nguồn nhân lực công nghệ thông tin.

Vấn đề cốt lõi của nghiên cứu là giải quyết sự phức tạp trong việc xây dựng một trò chơi đối kháng 3D (3D Platformer Fighting Game) hoàn chỉnh trên nền tảng PC. Thể loại này đòi hỏi sự phối hợp đồng bộ giữa mô hình nhân vật 3D, hệ thống phát hiện va chạm vật lý thời gian thực, máy trạng thái điều khiển hành vi nhân vật, thuật toán trí tuệ nhân tạo (AI) tự động tìm đường và giao thức mạng đồng bộ nhiều người chơi.

Mục tiêu cụ thể của luận văn bao gồm:

  1. Xây dựng hoàn chỉnh kiến trúc game đối kháng 3D trên Unity Engine với hệ thống nhân vật có khung xương chuẩn Humanoid và hoạt ảnh chiến đấu đa dạng.
  2. Thiết kế cơ chế điều khiển nhân vật theo máy trạng thái hữu hạn (Finite State Machine), kết hợp mô phỏng trọng lực chuẩn xác theo vận tốc cực đại ($v_0 = 2h/t$) và cơ chế phòng thủ giảm trừ 75% sát thương vào khiên (Shield) cùng 25% vào điểm máu (HP).
  3. Triển khai AI luyện tập sử dụng thuật toán tìm đường A* trên đồ thị có hướng và tích hợp chế độ chơi mạng thông qua giải pháp Photon PUN 2 với các tính năng tạo phòng, ghép phòng tự động và đồng bộ trạng thái chiến đấu theo thời gian thực.

Phạm vi nghiên cứu tập trung vào môi trường máy tính cá nhân (PC), vận hành trên hệ điều hành Windows với chu kỳ phát triển và thử nghiệm kéo dài từ tháng 7 năm 2021 đến tháng 9 năm 2022. Ý nghĩa thực tiễn của công trình thể hiện qua việc tạo ra một khung kiến trúc phần mềm chuẩn mực cho các studio game vừa và nhỏ, giúp tối ưu hóa 80% thời gian thiết lập hạ tầng điều khiển và mạng ban đầu cho các dự án game đối kháng tương tự.


Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng dựa trên sự kết hợp chặt chẽ giữa các nền tảng lý thuyết khoa học máy tính và kỹ thuật đồ họa không gian ba chiều:

  1. Lý thuyết máy trạng thái hữu hạn (Finite State Machine - FSM): Đây là mô hình toán học biểu diễn các trạng thái rời rạc có giới hạn và các điều kiện chuyển đổi giữa chúng. Trong hệ thống điều khiển nhân vật, FSM phân chia rõ ràng các trạng thái độc lập như Nghỉ (Idle), Di chuyển (Move), Nhảy (Jump), Đỡ đòn (Guard), Tấn công (Attack) và Bị thương (Hit). FSM giúp triệt tiêu hoàn toàn xung đột lệnh đầu vào và đảm bảo hoạt ảnh nhân vật luôn chuyển đổi mượt mà thông qua kỹ thuật cây pha trộn (Blend Tree).

  2. Lý thuyết động học chất điểm và chuyển động ném parabol: Hệ thống nhảy và rơi tự do của nhân vật được xây dựng dựa trên phương trình chuyển động học cổ điển: $$h = \frac{1}{2}gt^2 \implies g = \frac{2h}{t^2}$$ Trong đó, độ cao cực đại ($h$) và thời gian đạt đỉnh ($t$) được chuẩn hóa trước để tính toán gia tốc trọng trường mô phỏng ($g$) và vận tốc nhảy ban đầu ($v_0 = \frac{2h}{t}$), mang lại cảm giác điều khiển chân thực và chuẩn xác theo từng khung hình.

  3. Lý thuyết đồ thị và giải thuật tìm đường A (A-Star):* AI Bot trong chế độ luyện tập sử dụng đồ thị có hướng bao gồm tập hợp các điểm nút (Node) và quản lý bởi GraphManager. Giải thuật A* kết hợp hàm chi phí thực tế $g(n)$ và hàm ước lượng khoảng cách $h(n)$ theo khoảng cách Euclid để tìm ra lộ trình ngắn nhất tiếp cận người chơi trên bản đồ đa tầng.

  4. Mô hình kiến trúc phần mềm Object Pooling Pattern: Nhằm tối ưu hóa bộ nhớ RAM và giảm tải cho bộ gom rác (Garbage Collector), các đối tượng thường xuyên tạo mới và hủy bỏ như hiệu ứng kỹ năng và gói thông tin tấn công (AttackInfo) được tái sử dụng tuần hoàn trong một bể chứa đối tượng (Object Pool).

Phương pháp nghiên cứu

  • Nguồn dữ liệu và môi trường thử nghiệm: Đề tài tiến hành thu thập và xử lý tập dữ liệu hoạt ảnh 3D chuẩn Humanoid từ Unity Asset Store, kết hợp mô hình 3D nguyên bản được thiết kế từ Blender với cấu trúc lưới đa giác tối ưu và trải phẳng bản đồ UV. Môi trường kiểm thử được thiết lập trên hệ thống máy tính PC chạy hệ điều hành Windows với card đồ họa rời.
  • Cỡ mẫu và phương pháp chọn mẫu kiểm thử: Nghiên cứu thực hiện 50 phiên thử nghiệm đối kháng độc lập, bao gồm 25 phiên đấu với AI Bot ở các địa hình phức tạp và 25 phiên đấu mạng đa người chơi qua mạng Internet nội hạt và diện rộng. Phương pháp chọn mẫu tập trung vào việc mô phỏng các chuỗi hành động ngẫu nhiên với tần suất cao (combo skill liên tục từ phím Z, X, C và thao tác đỡ bằng Ctrl) nhằm kiểm tra tính ổn định của hệ thống.
  • Lý do lựa chọn công nghệ: Unity Engine được chọn làm nền tảng phát triển chính sau khi so sánh định lượng với Godot Engine và Unreal Engine 4. Unity sở hữu hệ sinh thái C# mạnh mẽ, thư viện Asset Store phong phú, chính sách miễn phí bản quyền cho doanh thu dưới 100.000 USD (so với mức thu 5% doanh thu trên 1 triệu USD của Unreal), đồng thời có độ phủ tuyển dụng và cộng đồng phát triển áp đảo tại thị trường Việt Nam. Đối với mảng mạng, Photon PUN 2 được lựa chọn nhờ khả năng cung cấp máy chủ đám mây sẵn có, hỗ trợ đồng bộ hóa Transform và RPC hiệu năng cao, vượt trội hơn các giải pháp tự dựng socket trong giai đoạn tạo mẫu nhanh.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

  1. Triệt tiêu xung đột trạng thái điều khiển đạt hiệu suất 100%: Việc triển khai kiến trúc FSM kết hợp kế thừa StateMachineBehaviour của Unity giúp quản lý toàn diện các trạng thái phụ (SubState) của đòn đánh bao gồm: giai đoạn khởi đầu (Startup), giai đoạn tác động (Active) và giai đoạn hồi chiêu (Recovery). Kết quả kiểm thử cho thấy không xảy ra hiện tượng chồng lấn hoạt ảnh hoặc nhận diện sai đòn đánh khi người chơi bấm tổ hợp phím với tần số trên 10 thao tác mỗi giây.
  2. Cơ chế cân bằng sát thương và giảm tải tài nguyên: Hệ thống tính toán điểm khiên (Shield) và điểm máu (HP) hoạt động chính xác với tỷ lệ hấp thụ 75% qua khiên và 25% vào máu. Khi điểm khiên giảm về 0, toàn bộ 100% sát thương được chuyển hướng trực tiếp vào HP. Việc áp dụng mô hình Object Pooling cho các gói AttackInfo giúp giảm thiểu hơn 80% tần suất cấp phát bộ nhớ động trên RAM trong các pha giao tranh liên tục.
  3. Độ trễ đồng bộ mạng duy trì ở mức lý tưởng: Trong môi trường thử nghiệm mạng nội bộ và đường truyền băng thông rộng thông thường, Photon PUN 2 thực hiện đồng bộ vị trí thông qua PhotonTransformView và PhotonView với độ trễ ghi nhận dưới 50ms, đảm bảo hai nhân vật chiến đấu mượt mà ở tốc độ khung hình ổn định 60 khung hình/giây (FPS).
  4. Hiệu năng tìm đường của AI đạt độ chính xác cao: Thuật toán A* trên đồ thị nút tĩnh (Static Nodes) giúp AI tính toán đường đi tiếp cận mục tiêu trong thời gian dưới 5ms cho mỗi chu kỳ định tuyến, hạn chế tối đa hiện tượng kẹt địa hình khi người chơi thực hiện động tác nhảy đa tầng.

Thảo luận kết quả

Cơ chế điều khiển và xử lý va chạm thành công nhờ sự phân tách rành mạch giữa lớp quản lý dữ liệu (CharacterStats), lớp nhận diện tương tác vật lý (DamageDetector) và lớp xử lý nhập liệu trung gian (VirtualInputManager). Cách tiếp cận này vượt trội hơn so với các phương pháp lập trình nguyên khối truyền thống vốn dễ gây nghẽn luồng xử lý và khó bảo trì.

Dữ liệu cấu trúc hệ thống của trò chơi có thể được hệ thống hóa rõ nét thông qua biểu đồ phân lớp kiến trúc gồm 2 khối chủ đạo: Khối Quản trị hệ thống (GameAssets, AudioManager, NetworkManager, GraphicsManager) và Khối Quản trị màn chơi (GameManager, VirtualInputManager, ObjectPoolingManager, AttackManager, GameplayUIManager). Bên cạnh đó, bảng ma trận chuyển đổi trạng thái FSM thể hiện rõ ràng các điều kiện logic giữa vận tốc di chuyển, cờ kiểm tra tiếp đất (IsGrounded bằng Raycast) và chỉ số đếm thời gian hồi chiêu.

So với các nghiên cứu phát triển game đối kháng trên nền tảng 2D trước đây, việc xử lý trên không gian 3D làm phát sinh bài toán góc quay camera. Nghiên cứu đã giải quyết triệt để vấn đề này bằng việc xây dựng thuật toán Camera Controller tự động: sử dụng hàm mở rộng hộp bao (Bounding Box Encapsulate) để bao quát cả 2 nhân vật, kết hợp hàm SmoothDamp để điều chỉnh khoảng cách trục Z mượt mà, loại bỏ hoàn toàn hiện tượng rung giật khung hình khi hai người chơi di chuyển ra xa nhau.


Đề xuất và khuyến nghị

Dựa trên kết quả thực nghiệm của luận văn, 4 giải pháp nâng cấp toàn diện được đề xuất nhằm hoàn thiện sản phẩm theo tiêu chuẩn thương mại:

  1. Tích hợp giải pháp mạng Rollback Netcode (Dự đoán phía máy trạm): Đội ngũ kỹ sư mạng cần nâng cấp kiến trúc mạng từ mô hình Relay đồng bộ trạng thái đơn thuần của PUN 2 sang kỹ thuật Rollback Netcode trong vòng 6 tháng tới. Mục tiêu là triệt tiêu hoàn toàn cảm giác trễ đòn đánh (input lag) đối với các trận đấu trực tuyến có độ trễ vật lý cao (ping từ 80ms đến 120ms), giữ mức sai lệch khung hình dưới 2 khung hình.
  2. Triển khai kỹ thuật tối ưu hóa mô hình đa mức chi tiết (LOD): Nhóm kỹ thuật đồ họa cần xây dựng hệ thống LOD gồm 3 cấp độ chi tiết cho toàn bộ mô hình nhân vật và đấu trường trong thời gian 3 tháng. Mục tiêu cụ thể là cắt giảm 50% số lượng đa giác ở khoảng cách trung bình và 75% đa giác ở khoảng cách xa, giúp trò chơi duy trì mức ổn định trên 60 FPS ngay cả trên các dòng máy tính cấu hình văn phòng không có card đồ họa rời.
  3. Nâng cấp trí tuệ nhân tạo bằng Cây hành vi (Behavior Tree) và Học tăng cường (Reinforcement Learning): Nhóm lập trình AI cần chuyển đổi máy trạng thái FSM hiện tại sang mô hình Cây hành vi kết hợp thuật toán học tăng cường trong lộ trình 8 tháng. Target metric đặt ra là nâng tỷ lệ chiến thắng của máy lên mức 45% đến 50% khi đối đầu với các game thủ có kinh nghiệm, tạo ra các phản xạ né chiêu và combo đòn đánh biến hóa.
  4. Xây dựng hệ thống bảo mật và chống gian lận (Anti-cheat) tập trung: Đội ngũ phát triển backend cần thiết lập cơ chế xác thực logic (Server-authoritative validation) cho các thuộc tính nhạy cảm như điểm HP, Shield và thời gian hồi chiêu trong vòng 4 tháng, ngăn chặn 100% các hành vi can thiệp chỉnh sửa bộ nhớ cục bộ từ phía người chơi gian lận.

Đối tượng nên tham khảo luận văn

Nội dung và mã nguồn kiến trúc của luận văn mang lại giá trị thực tiễn cao cho 4 nhóm đối tượng chính:

  1. Sinh viên và học viên cao học ngành Khoa học máy tính, Kỹ thuật phần mềm: Đóng vai trò là tài liệu tham khảo thực chiến về quy trình áp dụng các mẫu thiết kế hướng đối tượng (Manager, Object Pool, Singleton) và cấu trúc dữ liệu đồ thị vào một dự án phần mềm tương tác thời gian thực quy mô lớn.
  2. Lập trình viên phát triển game độc lập (Indie Game Developers): Cung cấp bộ khung mã nguồn hoàn chỉnh về việc tích hợp Blender với Unity, cấu hình khung xương Humanoid, xây dựng hệ thống FSM điều khiển nhân vật và thiết lập mạng nhiều người chơi mà không tốn chi phí bản quyền ban đầu.
  3. Kỹ sư mạng trò chơi điện tử (Game Network Engineers): Cung cấp ca nghiên cứu thực tế về cách thiết lập phòng chờ (Lobby), danh sách phòng (Room List), cơ chế sẵn sàng (Ready) và giải pháp đồng bộ dữ liệu vị trí thông qua giao thức Photon PUN 2.
  4. Giảng viên và nhà nghiên cứu tại các cơ sở đào tạo công nghệ: Sử dụng làm tài liệu giảng dạy trực quan cho các học phần Nhập môn phát triển game, Lập trình đồ họa 3D, Trí tuệ nhân tạo ứng dụng và Hệ thống phân tán.

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

Tại sao Unity Engine lại được ưu tiên lựa chọn thay vì Unreal Engine 4 hay Godot?
Unity Engine được lựa chọn nhờ sự cân bằng hoàn hảo giữa hiệu năng xử lý đồ họa 3D và tính dễ tiếp cận. Unity sử dụng ngôn ngữ C# trong sáng, sở hữu kho tài nguyên Asset Store phong phú và miễn phí 100% bản quyền cho các studio có doanh thu dưới 100.000 USD/năm, phù hợp tuyệt đối với năng lực tài chính và định hướng của các nhà phát triển game độc lập tại Việt Nam.

Cơ chế chia sẻ sát thương giữa Khiên (Shield) và Máu (HP) hoạt động như thế nào?
Khi nhân vật kích hoạt trạng thái phòng thủ (phím Ctrl), hệ thống DamageDetector sẽ tự động phân tách sát thương nhận vào theo tỷ lệ: 75% trừ vào điểm Shield và 25% trừ vào điểm HP. Nếu thanh Shield cạn kiệt về mức 0, cơ chế bảo vệ bị vô hiệu hóa hoàn toàn và 100% sát thương kế tiếp sẽ tác động thẳng vào thanh máu HP cho đến khi nhân vật bị hạ gục.

Thuật toán A giải quyết bài toán di chuyển của AI Bot trong không gian chiến đấu ra sao?*
Thuật toán A* duyệt qua đồ thị các nút tĩnh được định vị sẵn trên sàn đấu, tính toán hàm chi phí $f(n) = g(n) + h(n)$ để xác định lộ trình tiếp cận người chơi ngắn nhất. Nhờ đó, AI Bot có thể tự động né tránh chướng ngại vật, vượt qua các tầng địa hình phức tạp và ra quyết định tấn công với độ trễ xử lý dưới 5ms.

Mô hình Object Pooling mang lại lợi ích kỹ thuật vượt trội gì cho game?
Thay vì liên tục gọi hàm Instantiate và Destroy làm phân mảnh bộ nhớ RAM và gây giật khung hình do bộ gom rác kích hoạt, Object Pooling khởi tạo sẵn một lượng đối tượng AttackInfo và hiệu ứng kỹ năng. Khi sử dụng xong, đối tượng được đưa về trạng thái ẩn và tái kích hoạt trong các đòn đánh tiếp theo, giúp giảm hơn 80% tải cấp phát bộ nhớ.

Photon PUN 2 thực hiện đồng bộ những dữ liệu cụ thể nào qua mạng Internet?
Hệ thống mạng đồng bộ hóa 3 nhóm dữ liệu then chốt: thông tin trạng thái phòng và danh sách người chơi qua MonoBehaviourPunCallbacks; dữ liệu chuyển động tọa độ thực tế thông qua component PhotonTransformView; và các sự kiện chiến đấu tức thời (kích hoạt chiêu thức, trừ máu, hiệu ứng trúng đòn) thông qua các lệnh gọi hàm từ xa RPC (Remote Procedure Calls).


Kết luận

  1. Nghiên cứu đã hiện thực hóa thành công một trò chơi đối kháng 3D hoàn chỉnh trên PC, tích hợp trọn vẹn từ khâu thiết kế mô hình 3D trên Blender đến lập trình logic chuyên sâu trên Unity Engine.
  2. Thiết kế hoàn chỉnh hệ thống điều khiển nhân vật chuẩn xác bằng máy trạng thái hữu hạn FSM, mô phỏng trọng lực rơi tự do theo giải thuật động học và cơ chế chống đỡ hấp thụ 75% sát thương.
  3. Ứng dụng thành công giải thuật tìm đường A* trên đồ thị có hướng cho AI Bot, đảm bảo phản xạ chiến đấu mượt mà với thời gian tính toán lộ trình cực thấp dưới 5ms.
  4. Triển khai hoàn chỉnh hệ thống mạng trực tuyến thời gian thực với Photon PUN 2, cung cấp đầy đủ chức năng quản lý phòng chơi và đồng bộ hóa chiến đấu với độ trễ dưới 50ms.
  5. Tối ưu hóa kiến trúc phần mềm với mô hình Object Pooling, cắt giảm 80% áp lực cấp phát bộ nhớ động và duy trì hiệu năng ổn định 60 FPS trong suốt quá trình giao tranh.

Trong giai đoạn 6 đến 12 tháng tới, dự án sẽ tiếp tục được nâng cấp với công nghệ Rollback Netcode và thuật toán học tăng cường cho AI. Quý bạn đọc, lập trình viên và nhà nghiên cứu quan tâm có thể trực tiếp tham khảo tài liệu chi tiết của luận văn để áp dụng ngay các giải pháp kiến trúc này vào các dự án phát triển game thực tế.