Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp "Phát triển game 3D top-down RPG" (Developing 3D top-down RPG game) do sinh viên Trần Trung Thành thực hiện 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 – Đại học Quốc gia TP. Hồ Chí Minh (năm 2024).
Đề tài được xây dựng dựa trên bối cảnh ngành công nghiệp trò chơi điện tử đang tăng trưởng mạnh mẽ, với tổng giá trị thị trường ước tính đạt khoảng 136 triệu USD (tương đương 3,1 nghìn tỷ đồng). Thể loại game nhập vai (RPG - Role-Playing Game) kết hợp góc nhìn từ trên xuống (top-down) sở hữu tiềm năng tiếp cận lớn nhờ khả năng tương tác cao, cơ chế phát triển nhân vật phong phú và chiều sâu trong lối chơi. Tác giả trình bày 4 lý do chính để lựa chọn đề tài:
- Tính ứng dụng cao: Đề tài cho phép vận dụng kiến thức lập trình, thiết kế đồ họa 3D và xây dựng kịch bản vào một sản phẩm thực tế có khả năng tiếp cận người dùng.
- Khả năng phát triển kỹ năng chuyên môn: Đòi hỏi sự kết hợp đồng bộ giữa lập trình hệ thống, thiết kế đồ họa, âm thanh và quản lý dự án game.
- Xu hướng thị trường: Nắm bắt nhu cầu ngày càng cao của người chơi đối với các tựa game 3D hành động góc nhìn top-down.
- Khả năng sáng tạo: Cung cấp không gian để tự thiết kế thế giới ảo, cơ chế nhân vật và xây dựng hệ thống quy tắc trò chơi.
Mục tiêu nghiên cứu và nhiệm vụ của đề tài được xác định cụ thể:
- Xây dựng một trò chơi nhập vai 3D góc nhìn từ trên xuống hoàn chỉnh, đảm bảo tính thẩm mỹ và thế giới game sống động.
- Thiết kế và phát triển hệ thống chiến đấu (combat) tốc độ cao, nhịp độ liên tục, tích hợp cơ chế buff và debuff phong phú nhằm tạo các tình huống chiến thuật đa dạng.
- Nghiên cứu, áp dụng các mẫu thiết kế phần mềm (design pattern), kỹ năng lập trình hệ thống, thiết kế chuyển động (animation) và hiệu ứng hình ảnh (VFX).
- Xây dựng trí tuệ nhân tạo (AI) cho quái vật (enemies) và trùm cuối (boss) thông qua các công cụ điều khiển hành vi, tạo độ thử thách cho người chơi.
Về đối tượng sử dụng và phạm vi nghiên cứu:
- Đối tượng sử dụng: Game thủ yêu thích thể loại nhập vai hành động (ARPG) và khám phá hầm ngục (dungeon crawler), tập trung vào phản xạ, kỹ năng cá nhân và tính toán chiến thuật.
- Phạm vi môi trường: Hệ điều hành Windows 10 trở lên.
- Phạm vi tính năng: Trò chơi đơn (offline), đồ họa 3D với góc nhìn top-down; gameplay tuyến tính vượt ải theo màn chơi (stage), điều kiện hoàn thành màn là tiêu diệt Boss; độ khó tăng dần; bao gồm hệ thống nhân vật (Player, NPC, Enemies), hệ thống va chạm và tính toán sát thương, hệ thống tương tác môi trường, hệ thống buff/debuff, hệ thống hòm đồ (inventory/backpack), trang bị và nâng cấp.
Cơ sở lý thuyết và phương pháp
Khóa luận áp dụng phương pháp nghiên cứu kỹ thuật phần mềm, tập trung vào mô hình hóa hướng đối tượng, thiết kế kiến trúc hệ thống game và triển khai thuật toán:
- Game Engine: Unreal Engine được chọn làm nền tảng phát triển chính nhờ khả năng xử lý đồ họa chất lượng cao, hệ thống ánh sáng, vật lý, chuyển động mượt mà và hỗ trợ hệ sinh thái Blueprints trực quan kết hợp mã nguồn C++.
- Mô hình Trí tuệ nhân tạo (AI Controller & Behavior Tree): Unreal AIController được sử dụng để điều phối hành vi của thực thể phi người chơi. Behavior Tree được triển khai theo cấu trúc phân cấp, phối hợp cùng Blackboard để lưu trữ và truy xuất trạng thái dữ liệu (mục tiêu, cự ly, trạng thái chiến đấu). Các loại node được áp dụng gồm:
- Composite Nodes: Sequence Node (chạy tuần tự đến khi gặp node thất bại) và Selector Node (chạy tuần tự đến khi gặp node thành công).
- Decorator Node: Thiết lập điều kiện rẽ nhánh hành vi.
- Action Node & Service Node: Thực thi hành động cụ thể và cập nhật trạng thái định kỳ.
- Parallel Node: Xử lý đa luồng hành động đồng thời.
- Thuật toán tìm đường A* (A-Star): Kết hợp thuật toán Dijkstra và Greedy Best-First Search để xác định quỹ đạo di chuyển ngắn nhất cho quái vật. Hàm đánh giá chi phí được áp dụng:
$$f(n) = g(n) + h(n)$$
Trong đó $g(n)$ là chi phí thực tế từ điểm khởi đầu đến điểm $n$, và $h(n)$ là hàm heuristic ước lượng khoảng cách tới đích (sử dụng các hàm khoảng cách Euclidean, Manhattan hoặc Chebyshev tùy cấu trúc địa hình).
- Mẫu thiết kế Singleton (Creational Pattern): Sử dụng để quản lý các lớp quản trị trạng thái toàn cục trong game, đảm bảo mỗi hệ thống chức năng chỉ khởi tạo duy nhất một thể hiện (instance) trong suốt vòng đời ứng dụng.
- Quản lý dữ liệu: Hệ thống bảng dữ liệu (DataTable) của Unreal Engine được sử dụng làm kho lưu trữ dữ liệu tĩnh và thông số vận hành (chỉ số nhân vật, cấu hình trang bị, vật phẩm, kinh nghiệm cấp độ, cấu hình màn chơi).
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình hướng đối tượng với sự tích hợp chặt chẽ giữa logic điều khiển, cơ chế tính toán sát thương và cấu trúc dữ liệu DataTable.
Kiến trúc mẫu thiết kế Singleton
Tác giả thiết lập lớp RPGGameInstance (kế thừa từ engine game instance) làm điểm quản trị trung tâm, nắm giữ một danh sách bảng ánh xạ map_mgr_ trỏ tới các lớp quản lý kế thừa từ USingleton.
| Lớp quản lý (Manager Class) |
Chức năng trong hệ thống |
RPGGameInstance |
Khởi tạo (Init), giải phóng (Shutdown), cung cấp thể hiện toàn cục (Instance) |
HeroMgr |
Quản lý vòng đời, trạng thái, cấp độ và hành vi của nhân vật người chơi |
HeroBuffMgr |
Xử lý việc gán, duy trì thời gian và xóa bỏ các hiệu ứng buff/debuff |
ItemMgr |
Quản lý kho đồ, trang bị, vật phẩm tiêu hao và tài nguyên nâng cấp |
StageMgr |
Điều phối chuyển màn chơi, khởi tạo môi trường và thiết lập quái vật |
TableMgr |
Tải và truy xuất dữ liệu từ các tệp DataTable |
UIBaseMgr |
Quản lý hiển thị các lớp giao diện người dùng (giao diện chiến đấu, kho đồ, rèn) |
AssetMgr |
Quản lý tải và phân bổ các tài nguyên đồ họa, chuyển động và hiệu ứng |
Cơ chế tính toán sát thương và va chạm
Va chạm gây sát thương được kích hoạt chính xác thông qua hệ thống Animation Notify (Notify DamageBox và Notify DamageSphere). Mỗi notify mang các tham số cấu hình: phạm vi quét va chạm (DamageRadius/BoxExtend), cự ly giật lùi (KnockbackDistance), thời gian khựng hình (HitfreezeDuration), đường dẫn hiệu ứng (Effect path), vị trí gắn hiệu ứng (Attach bone name) và cấu trúc BuffInfo.
Công thức tính toán sát thương thực tế được tác giả xây dựng như sau:
$$\text{Sát thương nhận vào} = \text{Tổng ATK} \times \left(\frac{600}{600 + \text{Defense} - \text{PierceDefense}}\right) \times \text{MagnificationRatio}$$
Trong đó:
- $\text{Tổng ATK} = \text{PhysicAtk} + \text{PlusPhysicAtk}$ (đối với đòn vật lý) hoặc $\text{MagicAtk} + \text{PlusAtk}$ (đối với đòn phép thuật).
- $\text{Defense} = \text{Def}$ hoặc $\text{MagicDef}$.
- $\text{PierceDefense} = \text{PierceDef}$ hoặc $\text{PierceMagicDef}$.
- $\text{MagnificationRatio}$ nhận giá trị 2 (nếu kích hoạt đòn chí mạng dựa trên
Critical ratio) hoặc 1 (đòn đánh thông thường).
Cấu trúc cơ sở dữ liệu DataTable
Hệ thống sử dụng các DataTable chuyên biệt để thiết lập thông số trò chơi:
HeroTable, HeroParamLevelTable, HeroLevTable: Lưu trữ chỉ số cơ bản, mức tăng trưởng chỉ số theo cấp và mốc cấp độ.
ItemEquipmentInfoTable, ItemBuffInfo, UpgradeLevelOfMaterialTable: Lưu trữ thông số trang bị, hiệu ứng đính kèm và tỷ lệ nguyên liệu nâng cấp.
ExpForGradeTable: Bảng phân bổ điểm kinh nghiệm cần thiết để lên cấp.
StageInfoTable, ChapterTable: Cấu hình danh sách màn chơi, thông số quái vật và định danh chương.
Nội dung chính theo từng chương
Chương 1. Giới thiệu đề tài
Chương mở đầu tổng hợp bối cảnh phát triển của thị trường game và vai trò của các game engine (Unity, Unreal Engine, Godot, Game Maker). Tác giả trình bày lịch sử dòng game nhập vai từ thập niên 1970 (với các hệ thống máy tính sơ khai như PDP-10, PLATO, Unix và trò chơi tiên phong Dungeon năm 1975) qua giai đoạn hoàng kim thập niên 1980 (Ultima III Exodus, Dragon Quest, Excalibur, Diablo). Chương này phân tích 8 yếu tố cốt lõi định hình thể loại RPG: Cốt truyện/bối cảnh, Hệ thống nhiệm vụ, Sự khám phá, Sự lựa chọn, Vật phẩm/trang bị, Kinh nghiệm/cấp độ, Hệ thống chiến đấu và Hệ thống nhân vật/NPC. Đồng thời, tác giả khảo sát ưu - nhược điểm của hai tựa game tham chiếu điển hình trên thị trường là Diablo (tiêu biểu cho Action RPG) và The Witcher 3: Wild Hunt (tiêu biểu cho Open World RPG).
Chương 2. Cơ sở lý thuyết và công nghệ sử dụng
Nội dung chương tập trung giải thích các nền tảng kỹ thuật được tích hợp vào sản phẩm:
- Unreal Engine: Phân tích ưu thế về năng lực dựng hình đồ họa, kiến trúc lập trình trực quan Blueprints, hệ thống vật lý và mô phỏng hạt Niagara.
- AI Controller: Trình bày chi tiết cách thức AI Controller kết nối Behavior Tree với Blackboard nhằm quản lý chuỗi hành vi của kẻ địch thông qua các nút Sequence, Selector, Task và Service.
- Thuật toán A*: Phân tích chi tiết nguyên lý tìm đường tối ưu, cách hoạt động của hàm đánh giá chi phí $f(n) = g(n) + h(n)$ và các dạng hàm Heuristic ứng dụng trong không gian lưới 2D/3D.
- Mẫu thiết kế Singleton: Làm rõ lý thuyết của nhóm Creational Pattern và mô hình hóa cách áp dụng lớp
RPGGameInstance để quản trị tập trung 7 lớp chức năng (HeroMgr, HeroBuffMgr, ItemMgr, StageMgr, TableMgr, UIBaseMgr, AssetMgr).
Chương 3. Phân tích thiết kế hệ thống
Chương 3 là phần trọng tâm của khóa luận, mô tả toàn diện kịch bản, luật chơi, hệ thống chức năng và mô hình phần mềm:
- Kịch bản & Luật chơi: Người chơi nhập vai hiệp sĩ trẻ bảo vệ ngôi làng, tìm kiếm sức mạnh của vị thần Bảo hộ bị ác quỷ cổ xưa đánh cắp. Trò chơi thiết kế khu vực an toàn (
start zone) để trang bị, nâng cấp, sau đó tiến vào hầm ngục không có chỉ dẫn bản đồ, tiêu diệt quái vật và Boss để qua màn.
- Phân loại lớp nhân vật người chơi (5 class):
- Knight: Chuyên cận chiến, phòng thủ cao; sử dụng kiếm, khiên, rìu, búa; kỹ năng hồi máu, tạo khiên chắn và miễn nhiễm debuff.
- Archer: Tấn công tầm xa, tốc độ cao; sử dụng cung; kỹ năng bắn mũi tên lửa khổng lồ gây sát thương diện rộng và thiêu đốt.
- Single Sword Warrior: Cận chiến, phòng thủ trung bình, sát thương đơn mục tiêu cực cao; sử dụng đơn kiếm; kỹ năng tạo 3 luồng kiếm khí và tăng sức tấn công trong 5 giây.
- Double Sword Warrior: Cận chiến linh hoạt, tốc độ đánh nhanh; sử dụng song kiếm; kỹ năng xoay kiếm khí liên hoàn và gia tăng tốc độ tấn công.
- Mage: Tầm xa, sát thương ma thuật diện rộng; sử dụng gậy phép; kỹ năng triệu hồi cầu lửa từ trên trời gây thiêu đốt và làm chậm.
- Hệ thống kẻ địch, cạm bẫy và vật thể:
- Quái vật: Bat (cận chiến, tấn công bầy đàn), Golem (máu dày, đấm gây choáng), Orc (tốc độ cao, xoay vũ khí gây chảy máu), Worm (phóng cầu nguyên tố gây thiêu đốt, đóng băng).
- Boss Bat: Trùm cuối hầm ngục với 3 kỹ năng chiến đấu: thổi 3 quả cầu băng, húc đầu gây choáng và triệu hồi 3 quái dơi phụ trong 5 giây.
- Gimmick (cạm bẫy): Bomb (đặt ẩn, nổ gây choáng), Fire arrow (bắn tên lửa liên tục theo công tắc), Meteorite (thiên thạch rơi gây thiêu đốt).
- Obstacle & Projectile: Chum vỡ (
Jar) chứa vật phẩm; bom năng lượng (Energy bomb) và đạn rơi diện rộng (Catapult projectile).
- Hệ thống 12 chỉ số nhân vật: Physic Damage, Magic Damage, HP, Def, Magic Def, Attack speed rate, Movement speed rate, Critical ratio, HealHP, Pierce Def, Pierce Magic Def, Debuff resistance ratio.
- Hệ thống Buff và Debuff: 6 loại debuff (thiêu đốt, đóng băng, choáng, làm chậm, chảy máu, làm mù) và 7 loại buff (hồi máu tức thì, hồi máu theo thời gian, bất tử, tăng tốc độ đánh, miễn nhiễm debuff, tạo khiên, tăng tốc độ di chuyển). Kích hoạt thông qua kỹ năng, vật phẩm hoặc bùa chọn sau khi hạ gục quái đặc biệt (
Trigger Buff Receive).
- Phân tích Use Case: Xây dựng sơ đồ Use Case cho 4 tác nhân (Player, Enemies, Boss, Hệ thống quản lý game) với tổng cộng 25 ca sử dụng chi tiết (từ di chuyển, combo, skill, dùng potion đến chế tạo, nâng cấp, chuyển đồ giữa Backpack và Inventory).
Chương 4. Xây dựng game
Trình bày kết quả hiện thực hóa các thành phần trực quan và giao diện người dùng:
- Xây dựng mô hình 3D, hệ thống khung xương và hoạt cảnh (Animation) cho nhân vật Hero.
- Thiết kế hệ thống hiệu ứng hình ảnh (Particle System) cho đòn đánh, kỹ năng và môi trường.
- Thiết kế và lập trình 8 giao diện tương tác: Giao diện khởi động (Start Game), Giao diện chiến đấu HUD (hiển thị máu, kỹ năng, phím tắt), Giao diện trang bị, Giao diện kho đồ (Inventory chia tách cho Normal Item và Equipment Item), Giao diện nâng cấp và rèn vũ khí, Giao diện luyện chế thuốc (Potion) và nguyên liệu, Giao diện chọn màn chơi (Stage), Giao diện tương tác kiến trúc (Building).
Chương 5. Kết quả đạt được và Hướng phát triển
Tổng kết mức độ hoàn thành của sản phẩm thực nghiệm, đối chiếu với mục tiêu ban đầu và chỉ ra các phương hướng mở rộng hệ thống trong tương lai.
Kết quả và đóng góp
Khóa luận đã hoàn thành một sản phẩm trò chơi điện tử thể loại 3D Top-Down RPG hoàn chỉnh về mặt cơ chế vận hành, đáp ứng các tiêu chuẩn kỹ thuật đề ra:
- Hiện thực hóa đầy đủ 5 lớp nhân vật với hoạt ảnh, cơ chế vũ khí và kỹ năng đặc thù; xây dựng hệ thống kẻ địch đa dạng gồm 4 loại quái thường, 1 trùm cuối (Boss Bat) và 3 loại cạm bẫy môi trường.
- Vận hành chính xác hệ thống tính toán sát thương kết hợp 12 chỉ số thuộc tính, cơ chế xuyên giáp, đòn chí mạng và sự tương tác phức tạp của 13 trạng thái buff/debuff.
- Ứng dụng thành công mẫu thiết kế Singleton thông qua
RPGGameInstance để quản trị 7 phân hệ nghiệp vụ, tạo kiến trúc mã nguồn rõ ràng, dễ bảo trì.
- Tích hợp trí tuệ nhân tạo điều khiển quái vật và Boss bằng Behavior Tree và Blackboard, ứng dụng thuật toán A* để tìm đường chính xác trong môi trường hầm ngục.
- Triển khai toàn bộ quy trình quản lý trang bị, nâng cấp vật phẩm, luyện chế độc dược thông qua hệ thống bảng dữ liệu DataTable.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên công bố của tác giả trong văn bản, dự án còn một số điểm hạn chế kỹ thuật:
- Trò chơi hiện chỉ hỗ trợ chế độ chơi đơn ngoại tuyến (offline), chưa có tính năng kết nối mạng nhiều người chơi (multiplayer).
- Một số hệ thống chức năng phụ trợ chưa đạt mức độ hoàn thiện cao, bao gồm: hệ thống âm thanh, sự phong phú của danh mục item, số lượng kỹ năng nhân vật, số lượng màn chơi còn giới hạn, chưa tích hợp hệ thống nhiệm vụ và bảng thành tựu (achievement).
Các hướng phát triển tiếp theo được tác giả xác định:
- Nâng cấp kiến trúc mạng để phát triển tính năng chơi nhiều người (multiplayer).
- Bổ sung và đa dạng hóa chủng loại quái vật (monsters) và các loại trùm mới (bosses).
- Mở rộng thêm nhiều màn chơi, thiết kế hầm ngục có độ phân nhánh cao hơn.
- Tiến hành tối ưu hóa hiệu suất xử lý đồ họa và tính toán của trò chơi.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo kỹ thuật phù hợp cho sinh viên chuyên ngành Công nghệ phần mềm, Kỹ thuật phần mềm và Lập trình trò chơi điện tử. Đề tài cung cấp tài liệu chi tiết về:
- Quy trình triển khai kiến trúc mẫu thiết kế (Singleton pattern) trong Unreal Engine để quản trị logic hệ thống phức tạp mà không làm phân mảnh dữ liệu.
- Kỹ thuật xây dựng hệ thống chiến đấu ARPG, từ việc bắt va chạm thời gian thực bằng Animation Notify (
DamageBox, DamageSphere) đến công thức quy đổi sát thương - giáp - xuyên giáp.
- Phương pháp thiết lập cây hành vi (Behavior Tree) kết hợp bảng dữ liệu trạng thái (Blackboard) cho AI kẻ thù trong game hành động.
- Cấu trúc đặc tả Use Case (25 ca sử dụng) và mô hình tổ chức dữ liệu thông qua hệ thống DataTable của Unreal Engine.
Câu hỏi thường gặp
1. Công thức tính sát thương thực tế trong game được thiết lập như thế nào?
Sát thương được tính theo công thức:
$$\text{Sát thương} = \text{Tổng ATK} \times \left(\frac{600}{600 + \text{Defense} - \text{PierceDefense}}\right) \times \text{MagnificationRatio}$$
Trong đó, Tổng ATK và Defense được lấy theo loại sát thương vật lý hoặc phép thuật; PierceDefense là chỉ số xuyên phòng thủ tương ứng; MagnificationRatio bằng 2 nếu kích hoạt tỷ lệ chí mạng và bằng 1 nếu là đòn đánh thường.
2. Hệ thống nhân vật người chơi gồm những lớp (class) nào và cơ chế vũ khí ra sao?
Game có 5 lớp nhân vật dựa trên vũ khí trang bị: Knight (khiên, kiếm, rìu, búa; thiên về phòng thủ, hồi phục, tạo khiên), Archer (cung tên; tấn công tầm xa, gây thiêu đốt), Single Sword Warrior (đơn kiếm; sát thương đơn lẻ cao nhất, tăng công), Double Sword Warrior (song kiếm; tốc độ đánh nhanh, xoay kiếm khí) và Mage (gậy ma pháp; sát thương phép diện rộng, gây làm chậm và thiêu đốt).
3. Cơ chế tìm đường và trí tuệ nhân tạo (AI) của kẻ thù trong game được xây dựng bằng công nghệ gì?
Hệ thống AI được xây dựng bằng AIController trong Unreal Engine, sử dụng Behavior Tree (gồm các node Sequence, Selector, Action, Service, Parallel) kết hợp Blackboard để lưu trữ dữ liệu mục tiêu. Thuật toán tìm đường được sử dụng là A* (A-Star) kết hợp hàm đánh giá chi phí $f(n) = g(n) + h(n)$ cùng các hàm heuristic khoảng cách Euclidean, Manhattan hoặc Chebyshev.
4. Kẻ địch Boss Bat sở hữu những kỹ năng chiến đấu cụ thể nào?
Boss Bat có 3 kỹ năng chiến đấu chính: Quả cầu băng giá (thổi ra 3 quả cầu băng gây sát thương và hiệu ứng đóng băng), Húc đầu (lao mạnh về phía trước gây sát thương lớn và làm choáng) và Triệu hồi (triệu hồi 3 quái Bat monster tồn tại hỗ trợ chiến đấu trong vòng 5 giây).
5. Danh mục các hiệu ứng bùa lợi (Buff) và bùa hại (Debuff) trong game gồm những loại nào?
Game thiết kế 6 loại debuff: Thiêu đốt, Đóng băng, Choáng (Stun), Làm chậm (Slow), Chảy máu (Bleeding), Làm mù (Blindness); và 7 loại buff: Hồi máu ngay lập tức (HP recovery), Hồi máu theo thời gian (HP recovery loop), Bất tử (Invincible), Tăng tốc độ đánh (Increase attack speed), Miễn nhiễm debuff (CCImune), Tạo khiên (Shield) và Tăng tốc độ chạy (Increase move speed).
Kết luận
Khóa luận tốt nghiệp "Phát triển game 3D top-down RPG" của tác giả Trần Trung Thành đã hoàn thành việc xây dựng một sản phẩm trò chơi nhập vai hành động 3D hoàn chỉnh trên nền tảng Unreal Engine. Công trình thể hiện năng lực thiết kế phần mềm bài bản qua việc áp dụng mẫu thiết kế Singleton, xây dựng hệ thống cây hành vi Behavior Tree cho AI và thiết lập công thức tính toán chỉ số chiến đấu chi tiết. Mặc dù vẫn còn giới hạn ở chế độ chơi offline và một số tính năng phụ trợ chưa hoàn thiện, đồ án đã giải quyết tốt bài toán cốt lõi về cơ chế gameplay, tạo nền tảng vững chắc cho các nghiên cứu phát triển game nhiều người chơi tiếp theo.