Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư/cử nhân ngành Kỹ thuật Phần mềm của sinh viên Thái Chí Bảo (MSSV: 19521256) và Trần Anh Khoa (MSSV: 19521700), dưới sự hướng dẫn của ThS. Trần Thị Hồng Yến tại Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM (năm 2023), tập trung vào đề tài "Phát triển game chiến thuật thủ thành online multiplayer" với sản phẩm mang tên The battle Dogs.
Theo phân tích của nhóm tác giả, trong bối cảnh nhu cầu giải trí điện tử ngày càng tăng, thể loại game chiến thuật vẫn duy trì được sức hút đối với cộng đồng người chơi (điển hình qua các trò chơi như Dota, Liên Minh Huyền Thoại, Clash of Clans). Đề tài được lựa chọn dựa trên 5 lý do chính:
- Sự phổ biến của thể loại trò chơi chiến thuật: Sở hữu cộng đồng người chơi lớn, mở ra cơ hội tiếp cận thị trường tiềm năng.
- Tính thách thức và sáng tạo: Đòi hỏi người chơi xây dựng chiến lược và quản lý tài nguyên để phòng thủ thành trì.
- Cơ hội rèn luyện kỹ năng lập trình: Xây dựng trò chơi chiến thuật đòi hỏi giải quyết các bài toán logic phức tạp, đồ họa, tối ưu tài nguyên và trí tuệ nhân tạo.
- Tiềm năng thương mại: Khả năng hoàn thiện sản phẩm để phát hành thương mại trên các nền tảng phân phối số.
- Mức độ thỏa mãn của người chơi: Trải nghiệm chinh phục và mở khóa các màn chơi mới mang lại giá trị giải trí lâu dài.
Nhóm tác giả cũng chỉ ra các vấn đề còn tồn tại trong những nghiên cứu và sản phẩm cùng thể loại:
- Trí tuệ nhân tạo (AI) của đối thủ máy chưa thích nghi tối ưu với các hành vi và chiến thuật biến đổi của người chơi.
- Trải nghiệm gameplay và cơ chế xây dựng/phòng thủ còn thiếu tính đa dạng, làm giảm giá trị chơi lại.
- Tương tác giữa người chơi và giao diện trò chơi cần được tối ưu về tính tự nhiên và độ nhạy phản hồi.
Từ đó, khóa luận xác định 4 nhiệm vụ nghiên cứu tập trung:
- Cải thiện trí tuệ nhân tạo của đối thủ thông qua các thuật toán linh hoạt, thích ứng với hành động của người chơi.
- Xây dựng các yếu tố gameplay và cơ chế phòng thủ đa dạng, cân bằng độ khó.
- Thiết kế giao diện trực quan và nâng cao tính tương tác.
- Nghiên cứu hành vi người chơi để tùy chỉnh trải nghiệm chơi game.
Mục tiêu nghiên cứu (đánh số theo văn bản):
- Tạo ra một trò chơi chiến thuật thủ thành hấp dẫn, thú vị, đáp ứng nhu cầu giải trí.
- Khám phá và áp dụng các kỹ thuật lập trình trò chơi (xử lý đồ họa, trí tuệ nhân tạo, quản lý tài nguyên).
- Đưa ra giải pháp gameplay có độ thử thách cao nhưng đảm bảo tính cân bằng.
- Khai thác tiềm năng thương mại, mở rộng cơ hội phát hành trên các nền tảng phân phối.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình phân tích, thiết kế, triển khai game chiến thuật thủ thành 2D chơi đơn và đối kháng trực tuyến 2 người chơi qua mạng P2P; thuật toán AI điều khiển quân lính bằng máy trạng thái hữu hạn.
- Đối tượng người chơi hướng đến: Game thủ yêu thích thể loại chiến thuật và người chơi muốn rèn luyện tư duy logic.
- Phạm vi nội dung: Thiết kế cơ chế gameplay, quản lý tài nguyên, hệ thống AI, đồ họa 2D tự vẽ và kết nối mạng P2P.
- Phạm vi thời gian thực hiện: Từ ngày 11/09/2023 đến ngày 30/12/2023.
Cơ sở lý thuyết và phương pháp
Khóa luận thuộc loại hình nghiên cứu phát triển phần mềm và kỹ thuật hệ thống trò chơi. Nhóm tác giả đã kết hợp các khung lý thuyết, công nghệ và công cụ sau:
- Game Engine Godot: Công cụ nguồn mở đa nền tảng. Dự án sử dụng ngôn ngữ GDScript làm ngôn ngữ lập trình chính, kết hợp với Godot Shading Language để dựng các hiệu ứng hình ảnh đặc biệt. Khung kiến trúc tận dụng hệ thống Node, Scene, AnimationPlayer và Physics Engine tích hợp.
- Mô hình Máy trạng thái hữu hạn (Finite State Machine - FSM): Khung lý thuyết thiết kế mẫu (design pattern) dùng để xây dựng hành vi AI cho các đơn vị nhân vật, phân tách logic thành các trạng thái biệt lập.
- GodotSteam và Steamworks SDK: Steamworks cung cấp dịch vụ mạng (tra cứu tài khoản, tạo phòng chờ, chat, kết nối P2P/client-server). Module GodotSteam chuyển đổi các giao diện lập trình C++ của Steamworks sang GDScript. Nhóm sử dụng Steam App ID công khai phục vụ kiểm thử game chưa phát hành.
- SilentWolf Backend Services: Hệ thống server đám mây miễn phí cho Godot nhằm quản lý 3 thành phần dữ liệu: bảng xếp hạng trực tuyến (Scores and leaderboards), tài khoản người chơi (Player accounts), và dữ liệu người chơi/trạng thái game (Player data and game state).
- Godot Native Bullets: Plugin C++ mở rộng tối ưu hóa hiệu năng render và xử lý va chạm cho hệ thống đạn số lượng lớn (hàng trăm đến hàng nghìn viên đạn cùng xuất hiện trên màn hình - phong cách danmaku).
- Công cụ thiết kế đồ họa 2D: Blender Grease Pencil (thiết kế đồ họa 2D), TexturePacker (đóng gói sprite thành spritesheet), Clip Studio Paint và Krita (vẽ minh họa nhân vật, bản đồ).
- Nguồn và định dạng dữ liệu: Hệ thống tệp JSON thuần được sử dụng để lưu trữ và nạp dữ liệu cấu hình trận đấu, nhân vật (
character.json), kỹ năng (skill.json) và nội tại (passives.json).
Thiết kế và triển khai
Là một đồ án xây dựng phần mềm trò chơi hoàn chỉnh, khóa luận trình bày chi tiết kiến trúc trận đấu, cấu trúc dữ liệu cấu hình, các công thức toán học và thiết kế chức năng hệ thống.
1. Kiến trúc hệ thống trận đấu (Battle System)
Hệ thống trận đấu offline lấy cảm hứng từ tựa game The Battle Cats nhưng được mở rộng cơ chế. Trận đấu gồm 7 thành phần cấu thành:
- Thành trì: Thành Chó (phe ta) và Thành Mèo (phe địch), mỗi bên có thanh máu riêng; trận đấu kết thúc khi máu một thành về 0.
- Đội hình: Danh sách nhân vật và kỹ năng do người chơi tuyển chọn trước khi vào trận.
- Quân lính: Đơn vị chiến đấu được triệu hồi từ hai phía.
- Kỹ năng: Các chiêu thức hỗ trợ kích hoạt có thời gian hồi chiêu.
- Ví tiền: Tích lũy tiền trong trận theo thời gian để triệu hồi lính; có thể nâng cấp dung lượng và tốc độ tạo tiền.
- Nội tại: Các chỉ số bổ trợ vĩnh viễn cho trận đấu.
- Boss: Đơn vị địch có chỉ số vượt trội, xuất hiện duy nhất một lần khi máu Thành Mèo giảm xuống ngưỡng quy định.
Hệ thống hỗ trợ 2 kiểu chiến trường (battlefield):
basic: Chiến trường mặc định gồm 1 Thành Chó và 1 Thành Mèo.
shrine_maiden: Gồm 1 Thành Chó, 1 Thành Mèo (ngôi đền lơ lửng trên không) và 1 cổng Tori; người chơi bắt buộc phải phá hủy cổng Tori mới có thể tấn công Thành Mèo.
2. Cấu trúc dữ liệu thiết lập trận đấu qua JSON
Dữ liệu màn chơi được định nghĩa thông qua các trường JSON:
| Trường dữ liệu |
Kiểu dữ liệu |
Ý nghĩa |
theme |
String |
Tên chủ đề môi trường (bầu trời, mặt cỏ, thành) |
music / boss_music |
String |
Tệp âm thanh nền trận đấu và khi Boss xuất hiện |
cat_tower_health |
Int |
Lượng máu của Thành Mèo |
reward_bone |
Int |
Lượng Xương thưởng khi chiến thắng |
power_scale |
Float |
Hệ số nhân sức tấn công và máu của toàn bộ kẻ địch |
instant_spawns |
Array[Dictionary] |
Thiết lập kẻ địch xuất hiện ngay trên sân tại tọa độ position |
spawn_patterns |
Array[Dictionary] |
Quy luật triệu hồi lính địch từ thành (gồm id, duration, delay, props) |
bosses |
Array[Dictionary] |
Ngưỡng máu kích hoạt (health_at), tên boss (name), và thuộc tính cộng thêm (buffs/props) |
battlefield |
String |
Kiểu trận đấu (basic hoặc shrine_maiden) |
3. Công thức tính toán chỉ số game
Khóa luận thiết lập các phương trình toán học cụ thể để cân bằng hệ thống:
Hệ thống kỹ năng:
- Mưa cầu lửa & Đường Sấm Chớp: $damage = base_damage + (0.5 \times base_damage \times (level - 1))$ (với $base_damage = 10$).
- Tỉ lệ làm chậm của Đường Sấm Chớp: $slow_scale = base_slow_scale - (level_slow_scale \times (level - 1))$ ($base_slow_scale = 0$, $level_slow_scale = 0$).
- Đẩy lùi của Trống Trận Cẩu Sơn: $kb_scale = base_kb_scale + (level_kb_scale \times (level - 1))$ ($base_kb_scale = 0$, $level_kb_scale = 0$).
- Hồi Máu Thành: $healing_health = base_hh + (2 \times base_hh \times (level - 1))$ (với $base_hh = 250$).
- Tăng Sức Mạnh: $power_up_scale = base_pus + (level_pus \times (level - 1))$ ($base_pus = 1$, $level_pus = 0$).
Hệ thống nội tại:
- Năng suất Lao động: $money_rate = base_money_rate \times (1 + level_money_rate \times level)$ ($base_money_rate = 15$, $level_money_rate = 0$).
- Sức chứa Kho bạc: $wallet_capacity = base_wc \times (1 + level_wc \times level)$ ($base_wc = 100$, $level_wc = 0$).
- Sức chống cự Thành Chó: $max_health = base_mh \times 1.5^{level}$ ($base_mh = 500$).
- Nghiên cứu và phát triển: $reward_bone = battle_rb + (battle_rb \times level_rb \times level)$ ($level_rb = 0$).
- Phù thủy canh thành Gandolfg: Bán kính quét $radius = base_radius + (level_radius \times level)$ ($base_radius = 1500$, $level_radius = 150$). Thời gian hồi đòn: $attack_cooldown = base_ac - level$ ($base_ac = 13$ giây).
Hệ thống vật phẩm tiêu hao (sử dụng 1 lần/trận):
- Bom nguyên tử (kích hoạt): Tiêu diệt toàn bộ đơn vị của cả hai phe Chó và Mèo trên mặt trận.
- Cầu lửa ngẫu nhiên (nội tại): Gây sát thương liên tục trong trận: $damage = base_damage + (0.5 \times base_damage \times (level + 1))$ ($base_damage = 10$).
- Chó Titan (nội tại): Triệu hồi đầu trận, không tấn công, gây 50 sát thương/giây lên toàn bộ phe Mèo; lượng máu: $health = 10000 + 10000 \times level$.
- Ví tiền max (nội tại): Đạt cấp độ ví tối đa ngay khi trận đấu bắt đầu.
4. Thiết kế AI nhân vật bằng Finite State Machine
Nhân vật hoạt động dựa trên FSM gồm 5 trạng thái:
MoveState: Nhân vật di chuyển về phía trước và liên tục kiểm tra mục tiêu trong attack_range. Nếu phát hiện địch: chuyển sang AttackState (nếu hết thời gian hồi chiêu) hoặc IdleState (nếu đang chờ đếm ngược).
AttackState: Kích hoạt hoạt ảnh từ attack_sprite. Khi animation chạm tới khung hình $\ge attack_frame$, kích hoạt logic gây sát thương lên vùng ảnh hưởng, sau đó tự chuyển sang IdleState.
IdleState: Đứng yên. Nếu kẻ địch rời khỏi tầm đánh, quay lại MoveState; nếu mục tiêu vẫn còn và hết hồi chiêu, chuyển sang AttackState.
KnockbackState: Kích hoạt khi bị tấn công và máu tụt xuống dưới ngưỡng "máu vấp ngã". Sau khi hoàn thành hoạt ảnh ngã: chuyển sang MoveState (nếu máu $> 0$) hoặc DieState (nếu máu $\le 0$).
DieState: Thực hiện hoạt ảnh biến mất và xóa node nhân vật khỏi cây scene.
Cơ chế xác định vùng ảnh hưởng đòn đánh:
- Mặc định: Vùng ảnh hưởng là đoạn thẳng nằm ngang dưới mặt đất, tâm điểm dọc trục x được tính bằng công thức: $x = hitbox_facing_side_x + attack_range$. Chiều dài đoạn thẳng do thuộc tính
attack_area_range quyết định (bằng 0 là đơn mục tiêu, lớn hơn 0 là đa mục tiêu).
- Tùy biến (
custom_attack_area): Sử dụng một node Area2D độc lập để gán vùng va chạm đặc thù (áp dụng cho Chó Bắn Tỉa để tạo đường bắn xuyên thấu tầm xa).
Nội dung chính theo từng chương
Chương 1. Giới thiệu đề tài
Chương mở đầu phân tích bối cảnh nghiên cứu về game chiến thuật thủ thành trong và ngoài nước, tập trung vào 3 khía cạnh: phát triển AI cho đối thủ máy, thiết kế gameplay cân bằng tài nguyên, và tối ưu hóa trải nghiệm người dùng thông qua âm thanh và giao diện. Tác giả chỉ ra các khoảng trống công nghệ hiện hữu, xác định 4 vấn đề trọng tâm cần giải quyết, nêu rõ 5 lý do chọn đề tài, 4 mục tiêu cụ thể, đối tượng tiếp cận và kế hoạch thực hiện 7 giai đoạn kéo dài từ tháng 09/2023 đến tháng 12/2023.
Chương 2. Cơ sở lí thuyết
Chương này trình bày toàn bộ nền tảng kỹ thuật và toán học xây dựng hệ thống:
- Phân tích ưu điểm của Godot Engine, ngôn ngữ GDScript và hệ thống shader.
- Ứng dụng các thư viện ngoài: SilentWolf (lưu trữ cloud), Steamworks và GodotSteam (mạng P2P, phòng chờ, chat bằng Steam ID công khai), Godot Native Bullets (xử lý đạn danmaku số lượng lớn).
- Phân định 3 loại tiền tệ trong game: Tiền trong trận (₵), Xương (nâng cấp), và Thức ăn cho chó (mở khóa nhân vật đặc biệt).
- Thiết kế hệ thống trận đấu đơn, các trường cấu hình tệp JSON, cơ chế bản đồ màn chơi, cấu trúc ô nâng cấp và thanh thông tin.
- Hệ thống hóa các phương trình toán học cho 5 kỹ năng, 5 nội tại, 4 vật phẩm.
- Chi tiết hóa kiến trúc FSM 5 trạng thái cho AI và 2 cơ chế tính tầm đánh.
- Phân loại đặc tính nhân vật:
- Phe Chó: Chó cơ bản, Chó Ngậm Kiếm (tốc độ cao, dễ ngã), Chó Bánh Quế (máu cao, đa mục tiêu), Chó Thiên Thần (tầm xa, sát thương lớn), Chó Bắn Tỉa (tầm cực xa bằng Area2D xuyên phá), Chó Bóng Chày (mở khóa khi thua 4 lần ở phần hướng dẫn, tạo chuỗi nổ đẩy lùi), Chó Miko (mở khóa qua màn đặc biệt, bay ném bùa và thả cầu Yin Yang).
- Phe Mèo: Mèo cơ bản, Mèo Chân Dài, Mèo Ramiel (sử dụng 3 sprite sheet:
ramiel_cat.png, attack_effect.png, explosion), Mèo Tiên Hoa Hướng Dương, Mèo biết bay (bắn đạn danmaku, chỉ bị tiêu diệt bởi Gandolfg hoặc Chó Miko).
Chương 3. Phân tích thiết kế hệ thống game
Chương 3 tập trung vào mô hình hóa chức năng và dữ liệu phần mềm:
- Tác nhân (Actor): Xác định danh sách các tác nhân tương tác với hệ thống.
- Hệ thống Use Case: Xây dựng sơ đồ tổng quát và đặc tả chi tiết 31 use case kèm theo 31 sơ đồ hoạt động (Activity Diagram), bao gồm:
- Nhóm quản lý đội hình và điều hướng: Xem/sắp xếp đội hình, kỹ năng, vật phẩm; xem bản đồ, chọn chương, chọn level.
- Nhóm tương tác trận đấu: Triệu hồi lính, kích hoạt vật phẩm, điều khiển lính, kích hoạt kỹ năng, dừng trận đấu, chỉnh sửa âm thanh.
- Nhóm kinh tế và nâng cấp: Xem/mua/nâng cấp nhân vật, kỹ năng, nội tại; xem/mua vật phẩm.
- Nhóm cài đặt và trực tuyến: Cài đặt hệ thống, điều khiển, tạo phòng chờ, tìm phòng, thiết lập trận đấu online, nhắn tin, đấu online, đầu hàng, hướng dẫn.
- Cơ sở dữ liệu: Thiết kế lược đồ dữ liệu lưu trữ cấu trúc tĩnh và động thông qua các tệp JSON và dịch vụ SilentWolf.
Chương 4. Xây dựng game
Chương cuối mô tả kết quả hiện thực hóa phần mềm:
- Đồ họa trò chơi: Quá trình vẽ và xuất hoạt ảnh nhân vật 2D, sprite sheet tấn công, hiệu ứng nổ và hình ảnh các chương trên bản đồ.
- Giao diện người dùng: Mô tả đặc tả 14 màn hình chức năng: Start game, Hướng dẫn, Căn cứ Chó (Dog base), Nâng cấp, Cửa hàng, Bản đồ, Đội hình, Trận đấu, Dừng trận đấu, Sảnh chờ, Phòng chờ, Cài đặt, Điều khiển, Credits.
- Đánh giá tổng kết: Đánh giá các mục tiêu đạt được về mặt trải nghiệm và kỹ thuật; xác định các hạn chế và đề xuất phương hướng phát triển tiếp theo.
Kết quả và đóng góp
1. Kết quả chính
- Xây dựng hoàn chỉnh trò chơi 2D The battle Dogs trên Godot Engine, tích hợp song song hai chế độ: chơi đơn theo màn và chơi nhiều người trực tuyến.
- Hiện thực hóa thành công 31 use case nghiệp vụ và 14 giao diện người dùng hoàn chỉnh.
- Thiết kế hệ sinh thái gameplay phong phú: 3 loại tiền tệ, 5 kỹ năng chủ động, 5 thuộc tính nội tại, 4 vật phẩm tiêu hao, 2 kiểu chiến trường (
basic và shrine_maiden).
- Xây dựng hệ thống nhân vật đa dạng với cơ chế tấn công chuyên biệt (đơn mục tiêu, đa mục tiêu quét ngang, xuyên phá bằng
Area2D, cơ chế đạn danmaku và các đơn vị biết bay).
- Tích hợp thành công bộ công cụ Steamworks thông qua GodotSteam, cho phép 2 người chơi kết nối P2P, tạo phòng chờ và nhắn tin bằng Steam App ID dùng chung cho mục đích thử nghiệm.
2. Đóng góp kỹ thuật của đề tài
- Kế thừa và cải tiến mô hình gameplay: Kế thừa cơ chế cốt lõi của The Battle Cats nhưng giải quyết được hạn chế lớn nhất của dòng game này là thiếu tính năng đối kháng trực tiếp nhiều người chơi (Online Multiplayer).
- Tối ưu hóa hiệu năng render: Ứng dụng thành công plugin C++ Godot Native Bullets để giải quyết bài toán nghẽn tài nguyên khi xử lý mật độ đạn lớn trong game 2D.
- Cấu trúc hóa dữ liệu màn chơi: Module hóa toàn bộ thông số trận đấu, boss, và quy luật triệu hồi (
spawn_patterns) sang định dạng JSON, giúp việc mở rộng nội dung màn chơi không cần can thiệp vào mã nguồn logic.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các nội dung văn bản đề cập:
- Hạn chế:
- Game hiện mới triển khai mạng qua Steam App ID công khai phục vụ kiểm thử, chưa hoàn thiện các thủ tục để phát hành thương mại chính thức trên Steam Store.
- Hành vi của AI đối thủ trong phần chơi đơn chủ yếu dựa trên các quy tắc FSM cố định và kịch bản triệu hồi dựng sẵn trong file JSON (
spawn_patterns), chưa đạt đến mức độ tự học hoặc thích nghi thời gian thực theo đúng các hướng nghiên cứu học máy đã khảo sát ở Chương 1.
- Số lượng màn chơi, kiểu chiến trường và kho nhân vật mới dừng lại ở mức độ hoàn thành đồ án tốt nghiệp, cần bổ sung thêm nội dung để đạt quy mô thương mại.
- Hướng phát triển:
- Hoàn thiện hệ thống và đăng ký tài khoản Steamworks thương mại để phát hành chính thức.
- Tiếp tục nghiên cứu và đưa các thuật toán AI thích nghi, tối ưu hóa khả năng phản ứng của đối thủ máy theo lối chơi của từng người dùng.
- Mở rộng thêm nhiều kiểu chiến trường (
battlefield), gia tăng số lượng nhân vật Mèo và Chó, cân chỉnh lại các hệ số toán học trong công thức nâng cấp.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo thực tế cho:
- Sinh viên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin: Nguồn tham khảo chi tiết về quy trình làm đồ án game 2D từ khâu phân tích use case, thiết kế sơ đồ hoạt động đến triển khai mã nguồn trên Godot Engine.
- Lập trình viên Godot Engine: Phần thiết kế AI bằng FSM (5 trạng thái), kỹ thuật mở rộng vùng va chạm bằng
Area2D (custom_attack_area) và phương pháp tích hợp Godot Native Bullets để xử lý đạn danmaku là những giải pháp kỹ thuật có tính ứng dụng cao.
- Nhà phát triển game nhiều người chơi: Quy trình cấu hình và kết nối mạng P2P thông qua GodotSteam và Steamworks SDK bằng Steam ID kiểm thử là tài liệu hữu ích cho việc xây dựng cơ chế sảnh chờ (lobby) và phòng đấu đối kháng.
Câu hỏi thường gặp
1. Trí tuệ nhân tạo (AI) của nhân vật trong game được thiết kế theo mô hình nào và gồm những trạng thái gì?
AI của nhân vật được xây dựng dựa trên mẫu thiết kế Máy trạng thái hữu hạn (Finite State Machine - FSM), gồm 5 trạng thái: MoveState (di chuyển), AttackState (tấn công), IdleState (đứng yên), KnockbackState (ngã/vấp) và DieState (chết). Nhân vật chỉ ở một trạng thái duy nhất tại một thời điểm và chuyển đổi trạng thái dựa trên các điều kiện kiểm tra tầm đánh, khung hình hoạt ảnh và ngưỡng máu vấp ngã.
2. Trò chơi sử dụng những công nghệ và dịch vụ nào để triển khai tính năng nhiều người chơi và lưu trữ dữ liệu?
Hệ thống sử dụng module GodotSteam để tích hợp bộ công cụ Steamworks SDK, cung cấp các tính năng phòng chờ (lobby), nhắn tin (chat), tra cứu tài khoản và kết nối P2P giữa hai người chơi thông qua Steam App ID công khai. Về lưu trữ đám mây, game sử dụng dịch vụ SilentWolf để quản lý tài khoản người chơi, bảng xếp hạng trực tuyến và đồng bộ trạng thái game.
3. Hệ thống tiền tệ trong game "The battle Dogs" được phân chia như thế nào?
Game có 3 loại tiền tệ:
- Tiền trong trận (₵): Tự sinh theo thời gian hoặc nhận khi tiêu diệt quái, dùng để triệu hồi nhân vật trong trận đấu; không có giá trị bên ngoài trận.
- Xương: Tiền thưởng nhận được sau khi thắng trận, dùng để nâng cấp hoặc mở khóa nhân vật, kỹ năng và thuộc tính nội tại.
- Thức ăn cho chó: Tiền tệ đặc biệt, được sử dụng riêng cho việc mở khóa các lớp nhân vật đặc thù.
4. Chiến trường kiểu shrine_maiden có cơ chế hoạt động khác gì so với chiến trường tiêu chuẩn basic?
Ở kiểu trận đấu basic, bản đồ gồm 1 Thành Chó và 1 Thành Mèo, người chơi chỉ cần phá hủy Thành Mèo là giành chiến thắng. Trong khi đó, ở kiểu shrine_maiden, bản đồ xuất hiện thêm một công trình gọi là cổng Tori và Thành Mèo là một ngôi đền lơ lửng trên không; người chơi bắt buộc phải phá hủy cổng Tori thì mới có thể tác động sát thương lên Thành Mèo.
5. Phương pháp tính toán tầm ảnh hưởng đòn đánh của nhân vật được thực hiện như thế nào?
Game áp dụng 2 phương pháp:
- Phương pháp mặc định: Tầm đánh là một đoạn ngang dưới đất, tâm điểm được tính theo tọa độ $x = hitbox_facing_side_x + attack_range$, độ lớn xác định qua
attack_area_range (giá trị 0 là đơn mục tiêu, lớn hơn 0 là đa mục tiêu).
- Phương pháp tùy biến (
custom_attack_area): Dùng một node Area2D riêng biệt để xác định vùng va chạm hình học theo ý muốn, điển hình là đường bay của viên đạn xuyên phá dành cho Chó Bắn Tỉa.
Kết luận
Khóa luận tốt nghiệp của sinh viên Thái Chí Bảo và Trần Anh Khoa đã phát triển thành công tựa game chiến thuật thủ thành 2D The battle Dogs trên nền tảng Godot Engine, kết hợp mạng đối kháng trực tuyến P2P qua Steamworks. Đề tài thể hiện khối lượng công việc hoàn chỉnh từ phân tích 31 use case, xây dựng 14 giao diện người dùng, lập trình AI nhân vật bằng Finite State Machine đến mô hình hóa dữ liệu linh hoạt qua JSON. Mặc dù cần tối ưu hóa thêm về tính thích nghi thông minh của AI và thủ tục phát hành thương mại, đồ án đã giải quyết tốt các bài toán kỹ thuật đặt ra và cung cấp tài liệu tham khảo chi tiết cho quy trình lập trình game trên engine Godot.