Tổng quan nghiên cứu

Thị trường 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 khoảng 174,9 tỷ USD vào năm 2020, trong đó phân khúc game di động dẫn đầu với doanh thu 86,3 tỷ USD. Tại Việt Nam, xu hướng chuyển dịch từ các tựa game giải trí đơn giản sang những dự án 3D chất lượng cao ngày càng rõ nét, đòi hỏi nguồn nhân lực kỹ thuật phải nắm vững quy trình làm chủ công nghệ phát triển trò chơi từ cốt lõi. Thể loại game đối kháng 3D (3D Fighting Game) là một trong những bài toán kỹ thuật phức tạp nhất, đòi hỏi sự kết hợp đồng bộ giữa tính toán vật lý chính xác, máy trạng thái chuyển động mượt mà, trí tuệ nhân tạo linh hoạt và cơ chế đồng bộ mạng thời gian thực.

Nghiên cứu này tập trung vào mục tiêu thiết kế và hiện thực hóa một trò chơi đối kháng 3D hoàn chỉnh trên nền tảng máy tính cá nhân (PC) sử dụng công cụ Unity Engine. Đề tài giải quyết các vấn đề cốt lõi: xây dựng kiến trúc hệ thống module hóa, thiết kế quy trình xử lý mô hình nhân vật 3D từ Blender sang Unity, xây dựng máy trạng thái hữu hạn cho điều khiển nhân vật, tối ưu hóa va chạm đòn đánh, thiết lập cơ chế tìm đường cho bot luyện tập và triển khai phần chơi mạng nhiều người. Nghiên cứu được thực hiện tại Trường Đại học Bách Khoa – ĐHQG TP.HCM trong khoảng thời gian từ tháng 07/2021 đến tháng 09/2022. Kết quả nghiên cứu mang lại ý nghĩa thực tiễn lớn khi cung cấp một khung kiến trúc chuẩn mực (framework), giúp các nhà phát triển độc lập rút ngắn thời gian xây dựng gameplay và giảm thiểu lỗi phát sinh trong quá trình vận hành hệ thống đa người chơi.

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 ba trụ cột lý thuyết chuyên ngành Khoa học Máy tính:

  1. Lý thuyết máy trạng thái hữu hạn (Finite State Machine - FSM): Được ứng dụng để quản lý chu kỳ trạng thái của nhân vật (Idle, Move, Jump, Attack, Guard) và trạng thái ra quyết định của trí tuệ nhân tạo (AI). FSM đảm bảo tính toàn vẹn của logic điều khiển, loại bỏ các xung đột hoạt ảnh và xử lý chuyển đổi trạng thái dựa trên các điều kiện kiểm tra nghiêm ngặt.
  2. Lý thuyết đồ thị và giải thuật tìm đường A* (A-Star Search Algorithm): Sử dụng cấu trúc đồ thị có hướng (Directed Graph) kết hợp hàm đánh giá heuristic để định tuyến đường đi ngắn nhất cho nhân vật máy tính tiếp cận mục tiêu trong không gian 3D.
  3. Lý thuyết cơ học chuyển động và động học mô phỏng: Áp dụng phương trình rơi tự do $h = \frac{1}{2}gt^2$ để tính toán gia tốc trọng trường mô phỏng $g = \frac{2h}{t^2}$ và vận tốc ban đầu $v_0 = \frac{2h}{t}$, mang lại cảm giác chuyển động vật lý chân thực khi nhân vật thực hiện hành động nhảy.

Mô hình nghiên cứu triển khai theo kiến trúc phần mềm hướng thành phần (Component-Based Architecture) của Unity, kết hợp mô hình Client-Server đám mây thông qua thư viện Photon PUN 2. Bốn khái niệm kỹ thuật cốt lõi được chuẩn hóa trong luận văn bao gồm: Mẫu thiết kế gom cụm đối tượng (Object Pooling Pattern), Chuẩn hóa khung xương dạng người (Humanoid Rigging), Kỹ thuật quét tia kiểm tra va chạm (Raycasting), và Quản lý lượng người dùng đồng thời (Concurrent Users - CCU).

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

Nghiên cứu sử dụng phương pháp thực nghiệm phát triển phần mềm kết hợp đo lường định lượng hiệu năng:

  • Nguồn dữ liệu và kiểm thử thực nghiệm: Hệ thống được kiểm thử dựa trên bộ dữ liệu gồm 50 kịch bản tương tác vật lý chiến đấu (va chạm đòn đánh, ngắt chiêu, đỡ đòn) và 30 phiên đấu mạng thời gian thực với các điều kiện kết nối mạng khác nhau.
  • Phương pháp chọn mẫu: Nghiên cứu áp dụng phương pháp chọn mẫu phân tầng có chủ đích (Stratified Purposive Sampling) trên toàn bộ các trạng thái logic của nhân vật nhằm kiểm tra đầy đủ các nhánh rẽ trong máy trạng thái FSM và khả năng xử lý của hệ thống phát hiện va chạm.
  • Lý do lựa chọn phương pháp phân tích: Thể loại game đối kháng đòi hỏi tính chuẩn xác tuyệt đối trên từng khung hình (16,6 mili-giây tại tần số 60 FPS). Do đó, phương pháp đo lường định lượng thông qua kiểm tra tốc độ khung hình, thời gian chiếm dụng bộ nhớ RAM và độ trễ gói tin mạng là cách tiếp cận khoa học duy nhất để thẩm định chất lượng phần mềm.
  • Tiến trình thực hiện: Toàn bộ quá trình nghiên cứu kéo dài 14 tháng (từ tháng 07/2021 đến tháng 09/2022), phân bổ qua 4 giai đoạn: Khảo sát mô hình 3D và dựng hình Blender (3 tháng); Lập trình kiến trúc hệ thống và FSM (4 tháng); Tích hợp Photon PUN 2 và giải thuật A* (4 tháng); Kiểm thử, tối ưu hóa và hoàn thiện tài liệu (3 tháng).

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

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

Quá trình phát triển và kiểm thử thực nghiệm đã đem lại các kết quả nổi bật sau:

  • Kiểm soát tuyệt đối logic chuyển động với FSM: Hệ thống đã hiện thực hóa thành công 100% các trạng thái nhân vật thông qua lớp CharacterState kế thừa từ StateMachineBehaviour. Việc kết hợp kỹ thuật Blend Tree giúp nhân vật chuyển tiếp mượt mà từ đi bộ sang chạy dựa trên vận tốc thực tế mà không xảy ra hiện tượng đứt đoạn hoạt ảnh.
  • Hiện thực hóa cơ chế phân tầng sát thương 2 lớp: Hệ thống chiến đấu chia tách thành 2 chỉ số sinh mệnh gồm Điểm máu (HP) và Điểm khiên (Shield). Khi kích hoạt trạng thái phòng thủ (Guard), 75% sát thương nhận vào được hấp thụ trực tiếp vào thanh Shield và chỉ 25% truyền vào thanh HP. Khi điểm Shield giảm về 0, nhân vật sẽ phải chịu 100% sát thương vào HP, tạo nên chiều sâu chiến thuật cho trò chơi.
  • Tối ưu hóa hiệu năng bộ nhớ bằng Object Pooling: Thông qua ObjectPoolingManager, toàn bộ dữ liệu va chạm AttackInfo và hiệu ứng chiêu thức được tái sử dụng liên tục. Kỹ thuật này giúp giảm khoảng 40% tần suất kích hoạt của trình gom rác (Garbage Collector), duy trì độ ổn định khung hình ở mức 60 FPS trong suốt quá trình giao tranh.
  • Hệ thống AI phản xạ nhanh và chính xác: Sự kết hợp giữa FSM và giải thuật tìm đường A* trên hệ thống các nút NodeGraphManager cho phép bot AI đưa ra quyết định di chuyển và tấn công với thời gian đáp ứng dưới 50 mili-giây, bao quát 100% địa hình sàn đấu.

Thảo luận kết quả

Thành công của việc chuẩn hóa mô hình nhân vật từ Blender bằng định dạng FBX với cấu trúc khung xương Humanoid đã chứng minh tính khả thi của việc tái sử dụng 100% các gói hoạt cảnh từ Unity Asset Store, tiết kiệm đáng kể thời gian phát triển mỹ thuật. Việc tự lập trình công thức gia tốc mô phỏng $g = \frac{2h}{t^2}$ thay vì phụ thuộc hoàn toàn vào hệ thống vật lý mặc định đã giúp nhà phát triển làm chủ độ cao và thời gian rơi của nhân vật, tạo cảm giác điều khiển chuẩn xác như các tựa game đối kháng thương mại kinh điển.

So sánh với các giải pháp trên Godot Engine hoặc Unreal Engine 4, việc lựa chọn Unity Engine kết hợp với giải pháp mạng Photon PUN 2 cho thấy khả năng tiết kiệm khoảng 35% thời gian thiết lập hệ sinh thái phòng chờ (Room, Lobby) và đồng bộ trạng thái nhân vật. Dữ liệu thực nghiệm của hệ thống có thể được biểu diễn trực quan qua biểu đồ đường (Line Chart) thể hiện mối tương quan tuyến tính giữa số lượng người chơi đồng thời (CCU) và độ trễ gói tin (Ping), song song với bảng so sánh mức tiêu hao tài nguyên CPU/RAM khi bật và tắt cơ chế Object Pooling để làm rõ giá trị tối ưu hóa của kiến trúc.

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

Nhằm nâng cấp sản phẩm từ bản thử nghiệm học thuật thành một tựa game thương mại hoàn chỉnh, các giải pháp kỹ thuật cụ thể được đề xuất như sau:

  1. Ứng dụng kỹ thuật dự đoán chuyển động (Client-Side Prediction và Rollback Netcode): Nhóm kỹ thuật mạng cần triển khai thuật toán bù trễ mạng trong vòng 3 tháng tới, nhằm giảm thiểu hiện tượng giật lag hình ảnh khi độ trễ mạng vượt ngưỡng 100 mili-giây, đảm bảo tính công bằng tuyệt đối cho các trận đấu trực tuyến.
  2. Phát triển trí tuệ nhân tạo bằng học tăng cường (Deep Reinforcement Learning): Nhóm phát triển AI cần thay thế dần các trạng thái FSM cứng nhắc bằng mô hình mạng nơ-ron học tăng cường trong lộ trình 6 tháng, đặt mục tiêu nâng tỷ lệ thắng của bot lên mức 50% khi đối đầu với các game thủ có trình độ trung bình khá.
  3. Tích hợp cơ chế chi tiết đa mức độ (LOD - Level of Detail) và nén Texture: Nhóm họa sĩ 3D cần tối ưu hóa lưới đa giác, giảm từ 30% đến 50% số lượng tam giác trên mô hình khi ở khoảng cách xa khung nhìn Camera, hoàn thiện trong thời gian 2 tháng để mở rộng khả năng tương thích trên các thiết bị phần cứng cấu hình thấp.
  4. Xây dựng hệ thống bảo mật máy chủ ủy quyền (Authoritative Server Architecture): Bộ phận an ninh phần mềm cần thiết lập cơ chế kiểm tra tính hợp lệ của đòn đánh và lượng máu trực tiếp trên máy chủ trong vòng 4 tháng, triệt tiêu hoàn toàn khả năng can thiệp gian lận từ bộ nhớ phía Client.

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

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

  • Sinh viên ngành Công nghệ thông tin và Khoa học máy tính: Tài liệu cung cấp góc nhìn toàn diện về quy trình kỹ thuật hoàn chỉnh để phát triển một dự án game 3D, từ thiết kế sơ đồ lớp UML, mô hình hóa toán học chuyển động đến lập trình C# thực tế.
  • Lập trình viên game độc lập (Indie Game Developers): Có thể kế thừa trực tiếp cấu trúc phân tầng quản lý (GameManager, VirtualInputManager, AttackManager) và mẫu thiết kế Object Pooling để áp dụng ngay vào các dự án game hành động cá nhân mà không cần xây dựng lại từ đầu.
  • Kỹ sư phát triển hệ thống mạng thời gian thực: Nắm bắt phương pháp tích hợp thư viện Photon PUN 2, cách thức ghi đè các hàm callback trong MonoBehaviourPunCallbacks để đồng bộ dữ liệu vị trí và trạng thái chiến đấu giữa các người chơi qua Internet.
  • Giảng viên và nhà nghiên cứu học thuật: Sử dụng luận văn như một giáo cụ trực quan sinh động để giảng dạy các học phần về Trí tuệ nhân tạo (giải thuật A*), Kiến trúc phần mềm và Lập trình đồ họa mô phỏng.

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

1. Luận văn sử dụng công cụ nào để thiết kế mô hình 3D và khung xương nhân vật?
Tác giả sử dụng phần mềm nguồn mở Blender để dựng lưới 3D, trải phẳng UV và gắn khung xương chuẩn Humanoid. Khi xuất sang định dạng FBX và nạp vào Unity, mô hình đạt độ tương thích 100% với các gói diễn hoạt mua từ Unity Asset Store.

2. Cơ chế nhảy và trọng lực của nhân vật được tính toán theo nguyên lý nào?
Hệ thống sử dụng công thức động học cổ điển $g = 2h/t^2$ và $v_0 = 2h/t$ để tính toán gia tốc trọng trường và vận tốc nhảy ban đầu dựa trên độ cao tối đa và thời gian đạt đỉnh, kết hợp với lệnh Raycast để kiểm tra tiếp đất chính xác.

3. Tại sao tác giả lại lựa chọn Photon PUN 2 để xây dựng chế độ chơi mạng?
Photon PUN 2 cung cấp hạ tầng máy chủ đám mây ổn định, tích hợp sẵn các thành phần đồng bộ hóa như PhotonView, PhotonTransformView và cơ chế phòng chờ linh hoạt, giúp tiết kiệm khoảng 35% thời gian lập trình mạng so với việc tự dựng máy chủ Socket từ đầu.

4. Kỹ thuật nào đã được áp dụng để hạn chế tình trạng giật khung hình do bộ nhớ?
Tác giả áp dụng mẫu thiết kế Object Pooling thông qua ObjectPoolingManager để tái tạo liên tục các đối tượng dữ liệu tấn công AttackInfo và hiệu ứng hạt, giúp triệt tiêu hiện tượng sụt giảm khung hình đột ngột do tiến trình gom rác Garbage Collection gây ra.

5. Hệ thống trí tuệ nhân tạo (AI) của máy tính hoạt động như thế nào trong chế độ luyện tập?
Bot AI vận hành dựa trên sự phối hợp giữa máy trạng thái FSM để quyết định hành vi tấn công hoặc phòng thủ và giải thuật tìm đường A* trên đồ thị có hướng, đảm bảo thời gian phản xạ dưới 50 mili-giây trong toàn bộ không gian sàn đấu.

Kết luận

  • Luận văn đã thiết kế và hiện thực hóa thành công tựa game đối kháng 3D hoàn chỉnh trên PC bằng Unity Engine, kết hợp mượt mà giữa hoạt ảnh Humanoid và máy trạng thái FSM.
  • Hệ thống chiến đấu 2 lớp chuyên sâu (HP và Shield) cùng quy trình tính toán va chạm theo thời gian thực đạt độ chính xác 100% trong các kịch bản thực nghiệm.
  • Ứng dụng xuất sắc giải thuật tìm đường A* cho AI và tích hợp nền tảng mạng Photon PUN 2 đồng bộ hóa mượt mà cho chế độ chơi nhiều người.
  • Tối ưu hóa hiệu năng hệ thống đạt chuẩn 60 FPS nhờ kiến trúc module hóa và kỹ thuật gom cụm đối tượng Object Pooling.
  • Đóng góp một khung kiến trúc mã nguồn mở chuẩn mực, mở ra lộ trình nâng cấp hệ thống mạng Rollback Netcode và máy học tăng cường trong vòng 6 đến 12 tháng tới.

Các nhà phát triển và sinh viên nghiên cứu có thể ứng dụng ngay bộ khung kiến trúc này để phát triển và mở rộng các dự án game 3D chất lượng cao trong tương lai.