Tải bản đầy đủ (.pdf) (89 trang)

Đồ án xây dựng game chiến thuật thủ thành

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.05 MB, 89 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 2
XÂY DỰNG GAME CHIẾN THUẬT THỦ THÀNH

GV HƯỚNG DẪN: TRẦN THỊ HỒNG YẾN
SV THỰC HIỆN:
19521700 – TRẦN ANH KHOA
19521256 – THÁI CHÍ BẢO

TP. HỒ CHÍ MINH, 2013


LỜI CẢM ƠN
Để hồn thành dự án cho mơn Đồ án 2 này, chúng em xin gửi lời cảm ơn chân thành
đến ThS. Trần Thị Hồng Yến đã tận tình giúp đỡ, định hướng cách tư duy và cách
làm việc khoa học. Đó là những góp ý hết sức quý báu khơng chỉ trong q trình thực
hiện đồ án mơn học này mà còn là hành trang tiếp bước cho chúng em trong q trình
học tập và thực hiện khóa luận tốt nghiệp sau này.
Trong quá trình làm đồ án này chúng em khơng tránh khỏi được những sai sót, chúng
em kính mong nhận được sự chỉ dẫn và góp ý của cơ để đồ án được hồn thiện hơn.
Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ luôn đồng
hành cùng cô.

TP.HCM, 6 tháng 7 năm 2023
Nhóm sinh viên thực hiện
TRẦN ANH KHOA – THÁI CHÍ BẢO



MỤC LỤC
TÓM TẮT ĐỒ ÁN......................................................................................................1
Chương 1. GIỚI THIỆU ĐỀ TÀI ...............................................................................3
Tổng quan: ........................................................................................................3
1.1.1. Phân tích đánh giá các hướng nghiên cứu đã có của các tác giả trong và
ngồi nước: ...........................................................................................................3
1.1.2. Vấn đề còn tồn tại:......................................................................................3
1.1.3. Vấn đề cần tập trung, nghiên cứu giải quyết : ............................................4
Lý do chọn đề tài: .............................................................................................4
Mục đích: ..........................................................................................................5
Đối Tượng:........................................................................................................6
Phạm vi nghiên cứu: .........................................................................................6
Chương 2. CƠ SỞ LÍ THUYẾT: ................................................................................8
Cơng nghệ Godot: .............................................................................................8
2.1.1. Godot là gì? ................................................................................................8
2.1.2. Tại sao nên sử dụng Godot: ........................................................................8
2.1.3. Nghiên cứu và áp dụng Godot trong đồ án: ...............................................9
Tiền tệ: ..............................................................................................................9
Hệ thống Trận đấu (Battle System): .................................................................9
Thiết lập trận đấu: ...........................................................................................10
2.4.1. Power scale (power_scale): ......................................................................11
2.4.2. Spawn patterns (spawn_patterns): ............................................................11
2.4.3. Boss (bosses): ...........................................................................................11
2.4.4. Phương pháp truy cập dữ liệu trận đấu: ...................................................12


Bản đồ (Map): .................................................................................................13
2.5.1. Các node màn chơi: ..................................................................................13
2.5.2. Dãy các bảng tên: .....................................................................................13
2.5.3. Các nút định hướng: .................................................................................13

2.5.4. Phương pháp liên kết dữ liệu giữa các thành phần: .................................13
Nâng cấp: ........................................................................................................14
2.6.1. Ơ nâng cấp: ...............................................................................................14
2.6.2. Thanh thơng tin: .......................................................................................14
2.6.3. Nút Mở khóa/Nâng cấp: ...........................................................................14
2.6.4. Phương pháp truy cập dữ liệu sản phẩm: .................................................14
Kỹ năng: ..........................................................................................................15
2.7.1. Mưa cầu lửa: .............................................................................................15
2.7.2. Đường Sấm Chớp: ....................................................................................15
2.7.3. Trống Trận Cẩu Sơn: ................................................................................16
2.7.4. Hồi Máu Thành: .......................................................................................16
2.7.5. Tăng Sức Mạnh: .......................................................................................16
Nội tại: ............................................................................................................17
2.8.1. Năng suất Lao động:.................................................................................17
2.8.2. Sức chứa Kho bạc:....................................................................................17
2.8.3. Sức chống cự Thành Chó: ........................................................................17
2.8.4. Nghiên cứu và phát triển: .........................................................................18
Nhân vật: .........................................................................................................18
2.9.1. Xây dựng AI cho nhân vật sử dụng Finite State Machine: ......................19
2.9.2. Phương pháp xác định tầm ảnh hưởng đòn đánh: ....................................20


2.9.3. Xác định tầm ảnh hưởng đòn đánh bằng custom_attack_area: ................21
2.9.4. Nhân vật – Chó: ........................................................................................22
2.9.5. Nhân vật – Mèo: .......................................................................................22
Chương 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG GAME ......................................24
Sơ đồ Use case ................................................................................................24
Danh sách Actor .............................................................................................24
Danh sách Use case ........................................................................................25
Danh sách đặc tả Use case ..............................................................................26

Phân tích và thiết kế cơ sở dữ liệu ..................................................................54
Mô tả dữ liệu ...................................................................................................55
Chi tiết dữ liệu ................................................................................................56
Chương 4. XÂY DỰNG GAME...............................................................................62
Xây dựng đồ họa game: ..................................................................................62
4.1.1. Đồ họa nhân vật trong game: ...................................................................62
4.1.2. Đồ họa hình ảnh game: .............................................................................64
Xây dựng giao diện game: ..............................................................................65
4.2.1. Giao diện start game .................................................................................65
4.2.2. Giao diện hướng dẫn ................................................................................67
4.2.3. Giao diện Dog base ..................................................................................68
4.2.4. Giao diện nâng cấp ...................................................................................69
4.2.5. Giao diện cửa hàng ...................................................................................71
4.2.6. Giao diện bản đồ.......................................................................................72
4.2.7. Giao diện đội hình ....................................................................................73
4.2.8. Giao diện trận đấu ....................................................................................74


4.2.9. Giao diện dừng trận đấu ...........................................................................76
KẾT LUẬN ...............................................................................................................77
1. Kết quả đạt được: ...............................................................................................77
1.1. Lý thuyết ......................................................................................................77
1.2. Công nghệ ....................................................................................................77
1.3. Ứng dụng .....................................................................................................77
2. Hạn chế: .............................................................................................................77
3. Hướng phát triển: ...............................................................................................77
TÀI LIỆU THAM KHẢO .........................................................................................79


DANH MỤC HÌNH

Hình 2.1: Godot ...........................................................................................................8
Hình 2.2: Mẫu file json thiết lập trận đấu .................................................................12
Hình 2.3: Tầm đánh và tầm ảnh hưởng địn đánh của Chó Thiên Thần ...................21
Hình 2.4: Tầm ảnh hưởng địn đánh của Chó Bắn Tỉa. ............................................22
Hình 3.1: Sơ đồ Use case tổng quát ..........................................................................24
Hình 3.2: Sơ đồ hoạt động xem đội hình/ kỹ năng ...................................................26
Hình 3.3: Sơ đồ hoạt động sắp xếp đội hình/ kỹ năng ..............................................28
Hình 3.4: Sơ đồ hoạt động xem bản đồ .....................................................................30
Hình 3.5: Sơ đồ hoạt động chọn level .......................................................................31
Hình 3.6: Sơ đồ hoạt động triệu hồi lính ...................................................................33
Hình 3.7: Sơ đồ hoạt động kích hoạt kỹ năng ...........................................................34
Hình 3.8: Sơ đồ hoạt động dừng trận đấu .................................................................35
Hình 3.9: Sơ đồ hoạt động chỉnh sửa âm thanh ........................................................36
Hình 3.10: Sơ đồ hoạt động xem hướng dẫn ............................................................37
Hình 3.11: Sơ đồ hoạt động xem nhân vật/ kỹ năng/ nội tại .....................................38
Hình 3.12: Sơ đồ hoạt động nâng cấp nhân vật ........................................................39
Hình 3.13: Sơ đồ hoạt động mua nhân vật ................................................................41
Hình 3.14: Sơ đồ hoạt động nâng cấp kỹ năng .........................................................43
Hình 3.15: Sơ đồ hoạt động mua kỹ năng .................................................................45
Hình 3.16: Sơ đồ hoạt động nâng cấp nội tại ............................................................47
Hình 3.17: Sơ đồ hoạt động mua nội tại ...................................................................49
Hình 3.18: Sơ đồ hoạt động nâng cấp vật phẩm .......................................................51
Hình 3.19: Sơ đồ hoạt động mua vật phẩm ...............................................................52
Hình 3.20: ERD .........................................................................................................54
Hình 4.1: Xây dựng hoạt ảnh tấn cơng cho Chó .......................................................63
Hình 4.2: Sprite sheet cho nhân vật Chó ...................................................................63
Hình 4.3: Hoạt ảnh cho Mèo Ramiel sử dụng 3 sprite sheet khác nhau là
ramiel_cat.png, attack_effect.png và explosion.png .................................................64



Hình 4.4: Xây dựng đồ họa cho bản đồ của game ....................................................65
Hình 4.5: Giới thiệu game .........................................................................................66
Hình 4.6: Start game .................................................................................................66
Hình 4.7: Hướng dẫn .................................................................................................67
Hình 4.8: Dog base ....................................................................................................68
Hình 4.9: Nâng cấp nhân vật .....................................................................................70
Hình 4.10: Nâng cấp kỹ năng ....................................................................................70
Hình 4.11: Nâng cấp nội tại ......................................................................................70
Hình 4.12: Cửa hàng .................................................................................................71
Hình 4.13: Bản đồ .....................................................................................................72
Hình 4.14: Đội hình...................................................................................................73
Hình 4.15: Trận đấu ..................................................................................................75
Hình 4.16: Dừng trận đấu..........................................................................................76


DANH MỤC BẢNG
Bảng 3.1: Danh sách Actor .......................................................................................24
Bảng 3.2: Danh sách Use case ..................................................................................25
Bảng 3.3: Use case xem đội hình/ kỹ năng ...............................................................27
Bảng 3.4: Use case sắp xếp đội hình/ kỹ năng ..........................................................29
Bảng 3.5: Use case xem bản đồ ................................................................................30
Bảng 3.6: Use case chọn level...................................................................................32
Bảng 3.7: Use case triệu hồi lính ..............................................................................33
Bảng 3.8: Use case kích hoạt kỹ năng ......................................................................34
Bảng 3.9: Use case dừng trận đấu .............................................................................35
Bảng 3.10: Use case chỉnh sửa âm thanh ..................................................................36
Bảng 3.11: Use case xem hướng dẫn ........................................................................37
Bảng 3.12: Use case xem nhân vật / kỹ năng/ nội tại ...............................................38
Bảng 3.13: Use case nâng cấp nhân vật ....................................................................40
Bảng 3.14: Use case mua nhân vật............................................................................42

Bảng 3.15: Use case nâng cấp kỹ năng .....................................................................44
Bảng 3.16: Use case mua kỹ năng ............................................................................46
Bảng 3.17: Use case nâng cấp nội tại........................................................................48
Bảng 3.18: Use case mua nội tại ...............................................................................50
Bảng 3.19: Use case nâng cấp vật phẩm ...................................................................51
Bảng 3.20: Use case mua vật phẩm ..........................................................................52
Bảng 3.21: Bảng GameSave .....................................................................................56
Bảng 3.22: Bảng upgradedata ...................................................................................56
Bảng 3.23: Bảng upgradeitemdata ............................................................................57
Bảng 3.24: Bảng settings...........................................................................................57
Bảng 3.25: Bảng teams .............................................................................................57
Bảng 3.26: Bảng Dog ................................................................................................58
Bảng 3.27: Bảng Dogs ..............................................................................................58
Bảng 3.28: Bảng Skill ...............................................................................................58


Bảng 3.29: Bảng Skills ..............................................................................................59
Bảng 3.30: Bảng Passive ...........................................................................................59
Bảng 3.31: Bảng Passives .........................................................................................59
Bảng 3.32: Bảng Item ...............................................................................................59
Bảng 3.33: Bảng Items ..............................................................................................60
Bảng 3.34: Bảng SpeakerDogDialogue ....................................................................60
Bảng 3.35: Bảng BattlefieldData ..............................................................................60
Bảng 3.36: Bảng spawnpattern .................................................................................61
Bảng 3.37: Bảng bossspawn .....................................................................................61
Bảng 3.38: Bảng buff ................................................................................................61
Bảng 4.1: Bảng mô tả giao diện start game ..............................................................65
Bảng 4.2: Bảng mô tả giao diện hướng dẫn ..............................................................67
Bảng 4.3: Bảng mô tả giao diện Dog base ................................................................68
Bảng 4.4: Bảng mô tả giao diện nâng cấp .................................................................69

Bảng 4.5: Bảng mô tả giao diện cửa hàng ................................................................71
Bảng 4.6: Bảng mô tả giao diện bản đồ ....................................................................72
Bảng 4.7: Bảng mô tả giao diện đội hình ..................................................................73
Bảng 4.8: Bảng mơ tả giao diện trận đấu ..................................................................74
Bảng 4.9: Bảng mô tả giao diện dừng trận đấu .........................................................76


TÓM TẮT ĐỒ ÁN
TÊN ĐỀ TÀI: Xây dựng game chiến thuật thủ thành
Cán bộ hướng dẫn: Th.S Trần Thị Hồng Yến
Thời gian thực hiện: Từ ngày 27/02/2023 đến ngày 10/06/2023
Sinh viên thực hiện:
Thái Chí Bảo– 19521256
Trần Anh Khoa – 19521700
Tóm tắt đề tài:
1/ Giới thiệu đề tài:
-

Lập trình và thiết kế trò chơi chiến thuật mang phong cách trò chơi thủ thành với
tên gọi: The battle Dogs.

2/ Tìm hiểu cơ sở lý thuyết:
-

Vấn đề nghiên cứu trong đồ án là xây dựng một trò chơi chiến thuật thủ thành hấp
dẫn và thú vị cho người chơi. Trò chơi này yêu cầu người chơi phải xây dựng đội
hình, nâng cấp các nhân vật và kỹ năng hợp lý cùng với khả năng điều binh khiển
tướng để có thể đối phó với các đợt tướng của kẻ địch.

3/ Phân tích thiết kế hệ thống:

-

Sử dụng ngơn ngữ lập trình thuần Godot với hệ cơ sở dữ liệu JSON.

4/ Xây dựng game:
-

Xây dựng thành cơng một trị chơi chiến thuật thủ thành có giao diện đẹp mắt và
trải nghiệm chơi game phong phú. Người chơi có thể thỏa sức sáng tạo và phát triển
chiến lược của mình trong việc xây dựng và phịng thủ thành trì, đồng thời đối mặt
với những thách thức là những trận đấu khó nhằn.

5/ Kết luận:
-

Nêu kết quả đạt được, hạn chế và hướng phát triển của game trong tương lai.

1


Kế hoạch thực hiện:
Thời gian
27/02/2023 – 06/03/2023

Nội dung
Tìm hiểu đề tài, đánh giá thị trường, xác định các chức năng
của hệ thống.

07/03/2023 – 27/03/2023


Tìm hiểu, nghiên cứu cơng nghệ.

28/03/2023 – 17/04/2023

Phân tích và thiết kế hệ thống.

18/04/2023 – 01/05/2023

Thiết kế UI, xây dựng giao diện

02/05/2023 – 29/05/2023

Thiết kế database, xử lý hệ thống

30/05/2023 – 10/06/2023

Kiểm thử hệ thống, sửa đổi và viết báo cáo.

11/06/2023 – 30/06/2023

Kiểm thử hệ thống và hoàn thiện báo cáo

Xác nhận của CBHD

TP. HCM, ngày….tháng …..năm…..

(Ký tên và ghi rõ họ tên)

Sinh viên
(Ký tên và ghi rõ họ tên)


Nguyễn Văn

Thái Chí Bảo

2

Trần Anh Khoa


Chương 1. GIỚI THIỆU ĐỀ TÀI
Tổng quan:
1.1.1. Phân tích đánh giá các hướng nghiên cứu đã có của các tác giả trong
và ngồi nước:
-

Trong nghiên cứu về trị chơi chiến thuật thủ thành, nhiều tác giả đã tập trung
vào việc phát triển hệ thống trí tuệ nhân tạo cho đối thủ, nhằm tạo ra hành vi
thông minh và thách thức. Các phương pháp như các thuật tốn tìm kiếm thơng
minh, học máy và học sâu đã được áp dụng để cải thiện khả năng quyết định
và tương tác của đối thủ.

-

Các nghiên cứu cũng đã chú trọng vào thiết kế yếu tố gameplay và hệ thống
quản lý tài nguyên trong trò chơi. Các phương pháp như việc tạo ra cơ chế xây
dựng/phịng thủ đa dạng, cân bằng khó khăn và thúc đẩy sự sáng tạo của người
chơi đã được khám phá để cung cấp trải nghiệm tốt hơn.

-


Một số nghiên cứu đã nghiên cứu về trải nghiệm người chơi, bao gồm thiết kế
giao diện người chơi hấp dẫn, cung cấp phản hồi tương tác và tạo ra môi trường
sống động. Các phương pháp như thiết kế âm thanh, đồ họa, hiệu ứng hình ảnh
và giao diện người dùng đáp ứng đã được sử dụng để tăng cường trải nghiệm
người chơi.
1.1.2. Vấn đề cịn tồn tại:

-

Mặc dù đã có nhiều nghiên cứu về trò chơi chiến thuật thủ thành, tuy nhiên,
vẫn còn một số vấn đề chưa được giải quyết đầy đủ. Ví dụ, khả năng thích
nghi của đối thủ với hành động của người chơi có thể chưa được đảm bảo một
cách tối ưu. Cần có sự nghiên cứu để tạo ra hệ thống trí tuệ nhân tạo thơng
minh và linh hoạt, có khả năng thích nghi với chiến thuật và tương tác của
người chơi.

-

Một vấn đề khác là việc tạo ra trải nghiệm người chơi sâu sắc và đa dạng. Cần
nghiên cứu và phát triển các phương pháp để tạo ra yếu tố gameplay và cơ chế

3


xây dựng/phòng thủ đa dạng, cung cấp sự sáng tạo và lựa chọn cho người chơi,
từ đó tăng cường sự hấp dẫn và tái chơi của trị chơi.
-

Một khía cạnh khác cần được nghiên cứu là tương tác giữa người chơi và trò

chơi. Cần xem xét các phương pháp để tạo ra giao diện người chơi thân thiện,
tương tác tự nhiên và phản hồi đáp ứng, để tăng cường sự tham gia và hứng
thú của người chơi.
1.1.3. Vấn đề cần tập trung, nghiên cứu giải quyết :

-

Cải thiện trí tuệ nhân tạo của đối thủ, bằng cách phát triển các thuật tốn thơng
minh và linh hoạt, có khả năng thích nghi với hành động của người chơi.

-

Xây dựng yếu tố gameplay và cơ chế xây dựng/phòng thủ đa dạng và sáng tạo,
đồng thời đảm bảo sự cân bằng và khó khăn thích hợp.

-

Tạo ra trải nghiệm người chơi sâu sắc và đa dạng, thông qua thiết kế giao diện
người chơi hấp dẫn và cung cấp phản hồi tương tác.

-

Nghiên cứu và phân tích hành vi người chơi và tương tác, để hiểu rõ hơn về
mong đợi, sở thích và phản hồi của người chơi, từ đó tạo ra trải nghiệm tốt hơn
và tùy chỉnh trò chơi cho từng người chơi.
Lý do chọn đề tài:

-

Trong thời đại hiện nay, những trò chơi mới xuất hiện mỗi ngày nhằm đáp ứng

được các nhu cầu giải trí của con người, đặc biệt là đối với giới trẻ. Trong đó,
những trị chơi mang tính chiến thuật dù không mới, nhưng cũng không dễ
dàng bị phai mờ trong lịng các game thủ, điển hình như Dota, Liên minh
huyền thoại, Clash of Clans,….

-

Nhận thấy tiềm năng đó, nhóm em đã lựa chọn đề tài : “Xây dựng game chiến
thuật thủ thành” làm đề tài cho Đồ án 2, với những lý do chính sau:
+ Sự phổ biến của thể loại trò chơi chiến thuật: Trò chơi chiến thuật đã
thu hút một lượng lớn người chơi và có một cộng đồng game thủ đam mê.
Đề tài này cho phép chúng em tham gia vào một lĩnh vực đang phát triển
và có tiềm năng kinh doanh trong tương lai.

4


+ Thách thức và sáng tạo: Trò chơi chiến thuật thủ thành yêu cầu người
chơi phải xây dựng chiến lược và quản lý tài nguyên để bảo vệ thành trì.
Điều này tạo ra một thách thức đối với người chơi và địi hỏi sự sáng tạo
trong việc tìm kiếm giải pháp tốt nhất.
+ Khả năng phát triển kỹ năng lập trình: Xây dựng một trị chơi chiến
thuật thủ thành u cầu các kỹ năng lập trình và xử lý logic phức tạp. Đề
tài này sẽ giúp chúng em rèn kỹ năng lập trình của mình và khám phá các
khía cạnh kỹ thuật khác nhau trong phát triển trò chơi.
+ Tiềm năng thương mại: Trị chơi chiến thuật thủ thành có tiềm năng
thương mại lớn. Nếu phát triển thành công một trò chơi hấp dẫn và chất
lượng, chúng em khả năng sẽ phát hành nó trên các nền tảng khác nhau và
thu hút một lượng người chơi đáng kể, từ đó tạo ra thu nhập riêng.
+ Sự hài lòng của người chơi: Trò chơi chiến thuật thủ thành thường mang

lại sự hài lòng và thỏa mãn cho người chơi nhờ việc chinh phục và mở
khóa những màn chơi mới, từ đó tạo ra một trải nghiệm chơi game độc đáo
và thú vị, và đó là một điểm mạnh trong việc thu hút và giữ chân người
chơi.
Mục đích:
-

Mục đích của đề tài trị chơi chiến thuật thủ thành có thể bao gồm những điểm
sau:
+ Tạo ra một trò chơi hấp dẫn và thú vị: Mục đích chính là phát triển một trị
chơi chiến thuật thủ thành có giao diện hấp dẫn, cung cấp trải nghiệm chơi
game thú vị và đáp ứng nhu cầu giải trí của người chơi.
+ Khám phá và áp dụng các kỹ thuật lập trình: Mục đích là rèn kỹ năng lập
trình và khám phá các kỹ thuật phát triển trị chơi như xử lý đồ họa, trí tuệ
nhân tạo, quản lý tài nguyên.
+ Đưa ra một giải pháp thách thức và cân bằng: Mục đích là tạo ra một hệ
thống trị chơi có trí độ khó cao, đồng thời đảm bảo sự cân bằng và thách

5


thức cho người chơi. Điều này tạo ra một trải nghiệm chơi game thú vị và
độc đáo.
+ Khai thác tiềm năng thương mại: Mục đích là phát triển một trị chơi có
tiềm năng thương mại và khả năng thu hút người chơi. Điều này có thể tạo
ra cơ hội kinh doanh và trở thành một nguồn thu nhập từ việc phát hành và
bán trò chơi trên các nền tảng khác nhau.
Đối Tượng:
-


Đối tượng nhắm đến của trò chơi chiến thuật thủ thành có thể là:
+ Game thủ u thích thể loại chiến thuật: Trò chơi này hướng đến những
người chơi có niềm đam mê với trị chơi chiến thuật, u thích việc xây
dựng đội hình và quản lý các chiến lược trong môi trường thủ thành.
+ Người chơi muốn thử thách trí tuệ và tư duy chiến thuật: Trị chơi chiến
thuật thủ thành thường đòi hỏi người chơi phải suy nghĩ logic, đưa ra quyết
định chiến lược và xử lý tình huống khó khăn. Những người chơi muốn
thử thách trí tuệ và tư duy chiến thuật sẽ là đối tượng hướng đến.
Phạm vi nghiên cứu:

-

Phạm vi nghiên cứu của đồ án trị chơi chiến thuật thủ thành có thể bao gồm
những khía cạnh sau:

-

Thiết kế và phát triển trị chơi: Nghiên cứu có thể tập trung vào q trình thiết
kế và phát triển trò chơi, bao gồm việc xác định các yếu tố gameplay, hệ thống
quản lý tài nguyên, cơ chế xây dựng và phòng thủ, giao diện người chơi, hệ
thống trí tuệ nhân tạo cho đối thủ, và các yếu tố khác liên quan đến trò chơi.

-

Đồ họa: Trò chơi sử dụng đồ họa dễ nhìn, do nhóm tự vẽ và phát triển.

-

Trí tuệ nhân tạo và hành vi đối thủ: Nghiên cứu có thể tập trung vào phát triển
hệ thống trí tuệ nhân tạo cho kẻ thù trong từng màn chơi. Điều này bao gồm

việc nghiên cứu và áp dụng các thuật toán và kỹ thuật để tạo ra hành vi thông
minh và thách thức của đối thủ, như chiến thuật tấn công, quyết định xây dựng
và tấn công, và khả năng phát triển theo thời gian và trận đấu.

-

Công nghệ sử dụng:
6


-

Godot: phát triển game.

-

Json: lưu trữ dữ liệu.

-

Blender Grease Pencil: Thiết kế đồ họa.

7


Chương 2. CƠ SỞ LÍ THUYẾT:
Cơng nghệ Godot:
2.1.1. Godot là gì?

Hình 2.1: Godot


-

Godot là một cơng cụ phát triển trị chơi miễn phí và mã nguồn mở được phát
triển bởi một cộng đồng lập trình viên tồn cầu. Nó cung cấp một mơi trường
phát triển tích hợp (IDE) và một cơng cụ chơi trị chơi mạnh mẽ cho việc tạo
ra các trò chơi đa nền tảng.
2.1.2. Tại sao nên sử dụng Godot:

-

Godot có nhiều điểm mạnh. Đầu tiên, nó hỗ trợ phát triển trị chơi đa nền tảng.
Bạn có thể phát triển trò chơi cho nhiều hệ điều hành và nền tảng như
Windows, macOS, Linux, iOS, Android và cả các nền tảng web thông qua
HTML5.

-

Thứ hai, Godot cung cấp một ngơn ngữ lập trình chủ đạo là GDScript, một
ngơn ngữ tương tự Python, dễ học và dễ sử dụng. Ngoài ra, Godot cũng hỗ trợ

8


các ngôn ngữ khác như C#, C++ và VisualScript. Điều này cho phép bạn lựa
chọn ngôn ngữ phù hợp với kỹ năng và sở thích của mình.
-

Thứ ba, Godot có một bộ công cụ mạnh mẽ cho việc phát triển trị chơi. Nó
bao gồm một trình chỉnh sửa hình ảnh và âm thanh tích hợp, cùng với các trình

chỉnh sửa văn bản và trình tạo animation. Nó cũng có một bộ khung đồ họa
2D và 3D mạnh mẽ, với khả năng xử lý vật lý, xử lý hình ảnh và âm thanh.

-

Cuối cùng, Godot được cộng đồng hỗ trợ rất nhiệt tình. Có rất nhiều tài liệu,
ví dụ, mã nguồn mở và các nguồn tài nguyên khác có sẵn để bạn tham khảo
và sử dụng. Ngoài ra, cộng đồng Godot rất năng động và thân thiện, với diễn
đàn và nhóm trò chuyện trực tuyến để trao đổi ý tưởng, giải đáp câu hỏi và
chia sẻ kinh nghiệm.
2.1.3. Nghiên cứu và áp dụng Godot trong đồ án:

-

Hầu hết code được viết trong đồ án này sử dụng GDScript và một ít sử dụng
Godot's shading language cho một số hiệu ứng đặc biệt trong game. Code này
được dùng chung với các loại node với những tính năng riêng biệt trong Godot.

-

Đồ án tận dụng các thành phần quan trọng trong godot như scene, node, script
và các tính năng nâng cao hơn như physics engine, animation player, shaders.
Tiền tệ:

-

Game có ba loại tiền tệ chính:

-


Tiền trong trận (₵): Tiền dùng trong trận đấu để triệu hồi nhân vật. Tiền này
khơng có tác dụng bên ngoài trận đấu.

-

Xương: Phần thưởng sau khi thắng trận, có thể dùng để nâng cấp hoặc mở
khóa nhân vật, kỹ năng hay nội tại.

-

Thức ăn cho chó: tiền tệ đặc biệt. Được dùng để mở khóa các loại nhân vật
đặc biệt.
Hệ thống Trận đấu (Battle System):

-

Một trận đấu gồm có 7 yếu tố:

9


-

Thành trì (Dog Tower, Cat Tower): Mỗi thành trì đều có một cột máu (với
số lượng máu nhất định). Nhiệm vụ của người chơi là giảm cột máu của phe
địch (Cat Tower) và bảo vệ thành của mình (Dog Tower). Trận đấu kết thúc
khi cột máu của một trong hai thành trì giảm về 0.

-


Đội hình: Trước khi trận đấu bắt đầu, người chơi chọn một đội hình gồm các
nhân vật và kỹ năng phù hợp cho từng trận chiến. Trong trận đấu, người chơi
có thể triệu hồi nhân vật và kích hoạt kỹ năng để tấn cơng kẻ địch.

-

Qn lính (quân lính phe ta và phe địch): Người chơi triệu hồi nhân vật đã
có trong đội hình để tấn cơng các qn lính được triệu hồi bởi kẻ thù.

-

Kỹ năng: Mỗi kỹ năng có một khả năng riêng biệt. Người chơi có thể sử dụng
kỹ năng để tạo lợi thế trong trận đấu.

-

Ví tiền: Để triệu hồi quân lính, người chơi cần sử dụng tiền, tiền sẽ tăng theo
thời gian trong trận đấu, sẽ có một lượng tiền tối đa mà Ví tiền có thể giữ,
người chơi có thể tăng lượng tiền tối đa bằng cách nâng cấp Ví tiền.

-

Nội tại: Nội tại là các thuộc tính liên quan đến trận đấu như số lượng tiền tối
đa có thể giữ, năng suất tạo tiền, máu của Dog Tower, phần thưởng sau trận
đấu, ... Nâng cấp nội tại sẽ tăng độ hiệu quả của các thuộc tính này.

-

Boss: Boss là qn lính của kẻ địch nhưng có sức mạnh cao hơn rất nhiều so
với các qn lính bình thường. Ở một số màn đấu, khi máu của Cat Tower

giảm đến một mức nhất định, Boss phe địch sẽ được triệu hồi. Boss sẽ xuất
hiện duy nhất một lần trong suốt trận đấu.
Thiết lập trận đấu:

-

The Battle Dogs sử dụng các yếu tố như sau để thiết lập trận đấu (các kiểu dữ
liệu được trình bày dưới đây là các kiểu dữ liệu có trong Godot):

-

theme (String): Tên theme trận đấu (dùng để xác định hình ảnh của trận đấu
như màu trời, cỏ, thành).

-

music (String): Tên bài nhạc chơi trong trận đấu.

-

boss_music (String): Tên bài nhạc chơi khi boss xuất hiện.

-

stage_width (int): Chiều dài trận đấu (khoảng cách giữa 2 thành trì).

10


-


cat_tower_health (int): Máu của thành trì kẻ địch (Cat Tower).

-

reward_bone (int): Tiền thưởng của trận đấu sau khi hạ thành kẻ địch.

-

power_scale (float): Tỷ lệ sức mạnh của kẻ địch.

-

spawn_patterns (Array[Dictionary]): Mơ hình triệu hồi qn lính kẻ địch.

-

bosses (Array[Dictionary]): Thơng tin của các boss có trong trận đấu.
2.4.1. Power scale (power_scale):

Power scale là một con số dùng để tăng hoặc giảm sức mạnh kẻ địch, con số này sẽ
được dùng để nhân cho sức tấn công và máu cơ bản của kẻ địch, với công thức:
Sức mạnh x power_scale.
2.4.2. Spawn patterns (spawn_patterns):
Spawn patterns gồm thông tin về những kẻ địch sẽ được triệu hồi trong trận đấu, mỗi
kẻ địch đều sẽ có một dạng thơng tin riêng, gồm những yếu tố sau:
-

name (String): Tên của nhân vật kẻ địch (được sử dụng làm id để nhận biết
các nhân vật).


-

duration (float): Thời gian chờ trước mỗi lần triệu hồi.

-

delay (float): Thời gian chờ trước khi bắt đầu thực hiện việc triệu hồi đầu tiên.
+ health_at (int): Lượng máu mà Cat Tower cần ở Khi máu của Cat Tower

giảm tới mức độ cho phép, trùm cuối sẽ được triệu hồi.
+ name (string): Tên của trùm cuối.
+ buffs (string): Những sức mạnh mà trùm cuối sẽ được nâng cấp (tùy vào
mức độ trận đấu mà có thể nâng cấp nhiều loại sức mạnh), như máu, tốc độ đánh, sát
thương,…
Để áp dụng các yếu tố này vào game, một file json được tạo đại diện cho một
màn đấu trong game, file json này sẽ chứa các thông tin trên.
2.4.3. Boss (bosses):
-

Bosses là một mảng chứa các thông tin về các boss trong trận đấu, mỗi phần
tử trong mảng có chứa những thơng tin như sau:

11


-

health_at (int): Khi máu của Cat Tower giảm tới mức độ cho phép, trùm cuối
sẽ được triệu hồi.


-

name (String): Tên của nhân vật kẻ địch được sử dụng làm boss.

-

buffs (Array[Dictionary]): Những thuộc tính mà boss sẽ được tăng sức mạnh
như máu, tốc độ đánh, sát thương, … Mỗi phần tử gồm:

-

name (String): Tên thuộc tính muốn tăng sức mạnh.

-

scale (float): Tỉ lệ sức mạnh (tương tự như power_scale).

-

value (float): Giá trị thay thế, giá trị này sẽ thay thế giá trị có sẵn.
2.4.4. Phương pháp truy cập dữ liệu trận đấu:

-

Để áp dụng các yếu tố này vào game, khi tạo một màn chơi mới, một file json
sẽ được tạo đại diện cho trận đấu của màn chơi đó trong game, file json này sẽ
chứa các thơng tin nói trên.

Hình 2.2: Mẫu file json thiết lập trận đấu


12


Bản đồ (Map):
-

Bản đồ là thành phần quan trọng trong game, đây là nơi mà người chơi có thể
chọn màn chơi mà họ muốn để chơi và thiết lập đội hình.
2.5.1. Các node màn chơi:

-

Bản đồ sẽ chứa các node mà người chơi có thể bấm vào, mỗi node tượng
trương cho một màn chơi và sẽ chứa tên của màn chơi đó cùng với tên file json
trận đấu.

-

Mỗi node có thể liên kết với một node khác là màn chơi trước và cũng có thể
liên một node khác nữa là màn chơi tiếp theo. Sự liên kết này sẽ được hiển thị
bằng một được gạch nét đứt giữa hai node.
2.5.2. Dãy các bảng tên:

-

Bản đồ ngồi ra cịn chứa một loạt các bảng tên nằm ở góc trên của màn hình,
các bảng tên này chứa tên của các màn chơi. Khi người chơi chọn một màn
chơi nào thì bảng tên cho màn chơi đó sẽ được di chuyển ra giữa màn hình
nhằm cho người chơi biết tên màn chơi mà họ đã chọn.

2.5.3. Các nút định hướng:

-

Bản đồ chứa một số nút dẫn đến các màn hình khác trong game:

-

Nút tấn công: Nút này sẽ dẫn người chơi đến màn hình trận dấu đã chọn.

-

Nút đội hình: Nút này sẽ dẫn người chơi đến màn hình thiết lập trận đấu.

-

Nút quay lại: Nút này sẽ dẫn người chơi đến màn hình căn cứ chó.
2.5.4. Phương pháp liên kết dữ liệu giữa các thành phần:

-

Để có thể liên kết trận đấu với các node màn chơi, mỗi node màn chơi sẽ có
chứa tên file json trận đấu. Hệ thống sẽ dùng tên file json này để truy cập dữ
liệu trận đấu khi bắt đầu vào trận.

-

Để có thể liên kết giữa các bảng tên và các node màn chơi, mỗi node màn chơi
sẽ chứa tên trận đấu. Hệ thống sẽ sử dụng các tên có trong các node để tạo các
bảng tên tương ứng.


13


Nâng cấp:
-

Nâng cấp là một trong những tính năng thiết yếu của game, nó giúp tăng tính
tương tác cho người chơi và cho người chơi lựa chọn, tùy chỉnh những yếu tố
trong game sao cho phù hợp với lối chơi của họ.

-

Có 3 loại sản phẩm có thể nâng cấp: nhân vật, kỹ năng và nội tại.
2.6.1. Ô nâng cấp:

-

Ô nâng cấp chứa thông tin của sản phẩm như tên sản phẩm, mơ tả, giá tiền.
Cùng với đó là các giao diện hiển thị ảnh của sản phẩm cũng như giá tiền cần
để nâng cấp sản phẩm, cấp (level) hiện tại của sản phẩm.
2.6.2. Thanh thông tin:

-

Đây là nơi hiển thị cho người dùng biết tên sản phẩm và mô tả sản phẩm đã
chọn. Tùy vào ô nâng cấp mà người dùng chọn mà thanh thông tin sẽ hiện
thông tin tương ứng.
2.6.3. Nút Mở khóa/Nâng cấp:


-

Nút này có tính năng mở khóa sản phẩm nếu đây là lần đầu người dùng bỏ tiền
(xương) vào vật phẩm này hoặc nâng cấp cho các sản phẩm đã mở khóa.

-

Nếu số lượng xương khơng đủ để mở khóa/nâng cấp, nút này sẽ khơng có hiệu
lực.
2.6.4. Phương pháp truy cập dữ liệu sản phẩm:

-

Đối với từng loại sản phẩm sẽ có các file json tương ứng chứa dữ liệu cho các
sản phẩm đó.

-

Thơng tin sản phẩm thuộc loại nhân vật nằm trong file character.json

-

Thông tin sản phẩm thuộc loại kỹ năng nằm trong file skill.json

-

Thông tin sản phẩm thuộc loại nội tại nằm trong file passives.json

-


Hệ thống sẽ lấy các dữ liệu này và tạo các ô nâng cấp tương ứng cho từng sản
phẩm.

14


Kỹ năng:
-

Kỹ năng là một tính năng đặc biệt có thể được dùng trong trận đấu, gồm các
yếu tố sau:

-

Hành động: khi gọi kỹ năng, kỹ năng sẽ thực hiện một hành động nào đó lên
trận đấu (đẩy lùi kẻ địch, tăng sức mạnh cho quân lính, …).

-

Thời gian hồi: thời gian hồi chiêu của kỹ năng.
2.7.1. Mưa cầu lửa:

-

Kỹ năng này tạo ngẫu nhiên các quả cầu lửa bay xuống và gây xác thương cho
kẻ địch. Mỗi quả cầu lửa sẽ gây sát thương cho mục tiêu đầu tiên mà nó chạm
phải và sau đó tự động biến mất.

-


Sát thương gây ra của mỗi quả cầu lửa được tính theo công thức sau:
𝑑𝑎𝑚𝑎𝑔𝑒 = 𝑏𝑎𝑠𝑒_𝑑𝑎𝑚𝑎𝑔𝑒 + (0.5 ∗ 𝑏𝑎𝑠𝑒_𝑑𝑎𝑚𝑎𝑔𝑒 ∗ (𝑙𝑒𝑣𝑒𝑙 − 1))

-

Trong đó:

-

damage: sát thương gây ra bởi cầu lửa.

-

base_damage: sát thương cơ bản của cầu lửa, có giá trị là 10.

-

level: cấp hiện tại của kỹ năng.
2.7.2. Đường Sấm Chớp:

-

Kỹ năng này tạo một đường sấm chớp gây sát thương và làm chậm kẻ địch.
Mỗi sấm chớp có thể tác động lên đa mục tiêu.

-

Sát thương gây ra của sấm chớp được tính theo cơng thức sau:
𝑑𝑎𝑚𝑎𝑔𝑒 = 𝑏𝑎𝑠𝑒_𝑑𝑎𝑚𝑎𝑔𝑒 + (0.5 ∗ 𝑏𝑎𝑠𝑒_𝑑𝑎𝑚𝑎𝑔𝑒 ∗ (𝑙𝑒𝑣𝑒𝑙 − 1))


-

Trong đó:

-

damage: sát thương gây ra bởi cầu lửa.

-

base_damage: sát thương cơ bản của cầu lửa, có giá trị là 10.

-

level: cấp hiện tại của kỹ năng.

-

Tỉ lệ làm chậm kẻ địch được tính theo cơng thức sau:
𝑠𝑙𝑜𝑤_𝑠𝑐𝑎𝑙𝑒 = 𝑏𝑎𝑠𝑒_𝑠𝑙𝑜𝑤_𝑠𝑐𝑎𝑙𝑒 − (𝑙𝑒𝑣𝑒𝑙_𝑠𝑙𝑜𝑤_𝑠𝑐𝑎𝑙𝑒 ∗ (𝑙𝑒𝑣𝑒𝑙 − 1))

-

Trong đó:

-

slow_scale: tỉ lệ làm chậm, số càng nhỏ thì hiệu quả làm chậm càng lớn.
15



×