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

Daln báo cáo đề tài game bắn súng 2d godot

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.7 MB, 70 trang )

Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC PHENIKAA
_____________
_________________
__________________ ____________ ____________ ____________ ____________ _______

BÀI TẬP LỚN
HỌC PHẦN: ĐỒ ÁN LIÊN NGÀNH

Đề tài:

Lập Trình Game 2D Bắn Súng Bằng GoDot

Giảng viên hướng dẫn

: PhD. Vũ Đức Minh

Nhóm sinh viên thực hiện

: 02

Họ và Tên

Mã Sinh Viên

1.Nguyễn Hoàng Thạch


20010822

2. Nguyễn Mạnh Thịnh

20010828

3.Nguyễn Văn Thịnh

20010829

4.Hà Huy Hiền

20010895

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

LỜI CẢM ƠN
Đầu tiên, xin được gửi lời cảm ơn chân thành tới các thầy, cô là giảng viên
Khoa Công nghệ Thông tin Trường Đại học Phenikaa – những người đã đồng hành,
hỗ trợ, cung cấp và trang bị cho chúng em những kiến thức chuyên môn cùng với kĩ
năng xử lý cần thiết trong suốt những năm học vừa qua – là nền tảng quan trọng để
hoàn thành đề tài – đặc biệt là bản báo cáo đồ án này.
Chúng em xin được bày tỏ sự cảm ơn sâu sắc tới thầy Vũ Đức Minh – giảng
viên - giám đốc Chương trình Đào tạo Cơng nghệ Thơng tin Trường Đại học
Phenikaa – là người trực tiếp hướng dẫn, hỗ trợ nhóm trong suốt q trình thực hiện

dự án. Sự định hướng, kiến thức, kĩ năng và kinh nghiệm mà thầy đã chia sẻ là nền
tảng cốt lõi cho những gì mà cơng trình nghiên cứu của nhóm đạt được
Trong quá trình thực hiện xây dựng dự án, tất cả các thành viên nhóm đã cố
gắng phối hợp, nỗ lực dưới sự chỉ đạo của trưởng nhóm, tuy nhiên thật khó để tránh
khỏi những sai sót. Vậy nên, nhóm chúng em mong muốn nhận được sự góp ý tận
tình của các thầy, cô giảng viên, và tự hội đồng để đề tài nghiên cứu được hồn thiện
nhất có thể.
Chúng em xin chân thành cảm ơn!
Hà Nội, tháng 11 năm 2023

1

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

LỜI CAM ĐOAN
Nhóm xin cam đoan rằng mọi thơng tin và nội dung trong báo cáo này đều
được trình bày một cách chân thực và trung thực nhất. Tất cả các nguồn thơng tin
từ bên ngồi, cũng như các cơng trình nghiên cứu, ý kiến, và cơng nghệ sử dụng,
đều được trích dẫn đúng cách theo quy tắc và tiêu chuẩn của ngành nghề. Chúng
em cam kết tôn trọng quyền sở hữu trí tuệ và cơng lao của những người đóng góp
vào lĩnh vực này.
Hà Nội, tháng 11 năm 2023
Ký tên

2


Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

BẢNG PHÂN CHIA CÔNG VIỆC TỪNG THÀNH VIÊN

Họ tên

Mã số sinh viên

Nguyễn Hoàng Thạch 20010822
Nguyễn Văn Thịnh

20010829
20010828

Nguyễn Mạnh Thịnh
Hà Huy Hiền

20010895

Vai trị

Cơng việc
Code game
Trưởng nhóm mechanic: các

enemy, người
chơi, map
Thành viên
Thiết kế và
code UI/UX
Thành viên
Kiểm thử, lập
kế hoạch, báo
cáo
Thành viên
Thiết kế màn
chơi, đồ họa
các nhân vật

3

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

MỤC LỤC
DANH MỤC HÌNH ẢNH........................................................................................................................ 7
LỜI MỞ ĐẦU ......................................................................................................................................... 9
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI ....................................................................................................... 12
I.1. Lý do chọn đề tài...................................................................................................................... 12
I.2. Mục tiêu đề tài ......................................................................................................................... 13
I.3. Giới hạn và phạm vi đề tài........................................................................................................ 13

I.4. Kết quả dự kiến đạt được.......................................................................................................... 13
I.5. Phương pháp tiếp cận ............................................................................................................... 14
CHƯƠNG II: PHÂN TÍCH YÊU CẦU .................................................................................................. 15
II.1. Yêu cầu về kiến thức ............................................................................................................... 15
II.1.1. Quy trình xây dựng Game ............................................................................................ 15
II.1.2. Kiến thức về Godot ...................................................................................................... 16
II.1.2.1 Đối tượng tham gia hệ thống ............................................................................... 16
II.1.2.2 Vì sao là Godot ? ................................................................................................ 17
II.1.2.3 Tổng quan về các thành phần trong Godot .......................................................... 22
II.2. Yêu cầu về kĩ thuật ................................................................................................................. 34
II.3. Yêu cầu về tài nguyên ............................................................................................................. 34
II.4. Yêu cầu về nhân sự ................................................................................................................. 35
II.5. Yêu cầu về đồ họa, âm thanh ................................................................................................... 36
II.6. Yêu cầu về hiệu suất ............................................................................................................... 36
II.6.1 Các nguyên tắc thiết kế game nhằm đảm bảo hiệu suất .................................................. 36
CHƯƠNG III: THỰC HIỆN THIẾT KẾ ................................................................................................ 37
III.1. Phân tích đề tài ...................................................................................................................... 37
III.1.1 Khái niệm game Side Scroller ...................................................................................... 37
III.1.2 Cách chơi ..................................................................................................................... 38
4

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

III.2. Xác định yêu cầu trò chơi ...................................................................................................... 39
III.2.1 Giao tiếp hệ thống ........................................................................................................ 39

III.2.2 Giao tiếp về điều khiển................................................................................................. 39
III.2.3 Giao tiếp về giao diện .................................................................................................. 39
III.3. Kịch bản trò chơi (cốt truyện) ................................................................................................ 40
III.4. Sơ đồ quan hệ giữa các lớp .................................................................................................... 41
III.5. Thiết kế đặc tả chức năng ...................................................................................................... 42
III.5.1. Biểu đồ Use-case......................................................................................................... 42
III.5.1.1 Biểu đồ Use-case tổng quát ................................................................................ 42
III.5.1.2 Đặc tả Use-case ................................................................................................. 42
III.5.1.2.a Đặc tả Use-case “Play Game”.................................................................. 42
III.5.1.2.b Đặc tả Use-case “Help” ........................................................................... 43
III.5.1.2.c Đặc tả Use-case “Exit” ........................................................................... 44
III.6. Xây dựng Game..................................................................................................................... 44
III.6.1. Thiết kế đồ họa ........................................................................................................... 44
III.6.2. Thiết kế nhân vật, quái ........................................................................................................ 45
III.6.3. Thiết kế gameplay mechanic ....................................................................................... 46
III.6.4. Thiết kế cấu trúc dữ liệu .............................................................................................. 49
III.6.5. Thiết kế mơ hình design pattern cho code flow ............................................................ 50
III.6.5.1. Mơ hình ECS .................................................................................................... 50
III.6.6. Thiết kế Procedural Dungeon Generator ...................................................................... 51
III.6.6.1 Ý tưởng ............................................................................................................. 51
III.6.6.2. Các bước tạo Dungeon...................................................................................... 51
III.6.7. Thiết kế UI/UX ........................................................................................................... 52
CHƯƠNG IV: PHÁT TRIỂN................................................................................................................. 56
IV.1. Xác Định Cơng Nghệ và Ngơn Ngữ Lập Trình ...................................................................... 56
IV.2. Xây Dựng Cơ Sở Hạ Tầng của Game .................................................................................... 56
IV.3. Phát Triển Gameplay và Tính Năng Tương Tác ..................................................................... 56
IV.4. Tạo Đồ Họa và Âm Thanh ..................................................................................................... 57
IV.5. Kiểm Thử và Tối Ưu Hóa ...................................................................................................... 57
5


Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

CHƯƠNG V: KIỂM THỬ VÀ SỬA CHỮA .......................................................................................... 57
V.1. Xác định các chức năng cần kiểm thử bao gồm:....................................................................... 57
V.1.1.Yêu cầu chức năng: ....................................................................................................... 57
V.1.1.a Đối với người chơi .............................................................................................. 57
V.1.1.b.Đối với quái: ....................................................................................................... 60
V.1.1.c.Đối với UI: .......................................................................................................... 61
V.1.1.d.Kiểm thử đối với thuật toán ................................................................................. 63
V.1.1.e.Kiểm thử đối với hiệu năng ................................................................................. 63
CHƯƠNG VI: QUẢN LÝ DỰ ÁN ........................................................................................................ 65
VI.1. Đưa ra lịch trình và quản lý tiến độ: ....................................................................................... 65
VI.2. Quản lý nguồn lực: ................................................................................................................ 65
VI.3. Quản lý nhân lực: .................................................................................................................. 66
VI.4. Quản lý rủi ro: ....................................................................................................................... 66
VI.5. Quản lý tài nguyên tài chính: ................................................................................................. 67
CHƯƠNG VII: KẾT LUẬN .................................................................................................................. 68
TÀI LIỆU THAM KHẢO ...................................................................................................................... 69

6

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2


Giảng viên: Vũ Đức Minh

DANH MỤC HÌNH ẢNH
Hình 10. Godot Engine .......................................................................................................................... 17
Hình 1. Godot ........................................................................................................................................ 17
Hình 2.a. Thành phần Scenes ................................................................................................................. 22
Hình 2.b. Thành phần Scenes ................................................................................................................. 23
Hình 3.a. Thành phần Nodes .................................................................................................................. 23
Hình 3.b. Thành phần Nodes .................................................................................................................. 24
Hình 4. Thành phần The scene tree......................................................................................................... 25
Hình 5. Thành phần Signals ................................................................................................................... 25
Hình 6.a. Thành phần The Project Manager ............................................................................................ 26
Hình 6.b. Thành phần The Project Manager ........................................................................................... 26
Hình 6.c. Thành phần The Project Manager ............................................................................................ 26
Hình 7.a. Trình Soạn Thảo Của GoDot ................................................................................................... 27
Hình 7.b. Trình Soạn Thảo Của GoDot ................................................................................................... 27
Hình 7.c. Trình Soạn Thảo Của GoDot ................................................................................................... 28
Hình 7.d. Thanh cơng cụ Trình Soạn Thảo Của GoDot ........................................................................... 28
Hình 7.e. Thanh cơng cụ Trình Soạn Thảo Của GoDot ........................................................................... 28
Hình 7.g. File System............................................................................................................................. 29
Hình 7.h. Tab Scene ............................................................................................................................... 29
Hình 7.i. Tab Inspector ........................................................................................................................... 30
Hình 7.k. Tab Control ............................................................................................................................ 30
Hình 7.l. Tab Control ............................................................................................................................. 31
Hình 8.a. Màn hình chính ....................................................................................................................... 31
Hình 8.b. Màn hình thiết kế.................................................................................................................... 32
Hình 8.c. Thanh cơng cụ phối cảnh ........................................................................................................ 32
Hình 8.d. Script Screen .......................................................................................................................... 33
Hình 8.e. AssetLib ................................................................................................................................. 33

7

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

Hình 9. Hệ thống phân cấp tệp ............................................................................................................... 34
Hình 11.a. Game Mario ......................................................................................................................... 38
Hình 11.b. Game Contra ........................................................................................................................ 38
Hình 11.c. Game SWAT Tank .................................................................................................................. 38
Hình 12. Sơ đồ quan hệ giữa các lớp...................................................................................................... 41
Hình 13. Biểu đồ Use-case tổng quát ..................................................................................................... 42
Hình 14: Animation player ..................................................................................................................... 46
Hình 15. Vũ Khí .................................................................................................................................... 46
Hình 16. HP ........................................................................................................................................... 47
Hình 17. Quái vật Giun .......................................................................................................................... 47
Hình 18. Quái vật Ruồi .......................................................................................................................... 47
Hình 19. Quái vật Gấu ........................................................................................................................... 48
Hình 20. Boss ........................................................................................................................................ 49
Hình 21. Map......................................................................................................................................... 49
Hình 22. Sơ đồ cơ sở dữ liệu quan hệ ..................................................................................................... 50
Hình 23. Trang chủ game ....................................................................................................................... 52
Hình 24. Nhà của nhân vật chính ........................................................................................................... 53
Hình 25. Các chỉ số máu, mana, phịng thủ của nhân vật chính .............................................................. 53
Hình 26. Menu cài đặt – âm thanh ......................................................................................................... 54
Hình 27. Menu tùy chọn ......................................................................................................................... 54
Hình 28. Về trang chủ ............................................................................................................................ 55

Hình 29. Tiếp tục chơi ............................................................................................................................ 55
Hình 30. Mở cài đặt ............................................................................................................................... 56

8

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

LỜI MỞ ĐẦU
Bỏ lại phía sau tất cả hình ảnh của màu lịch sử, của cuộc sống khó khăn nơi
hang cùng, hốc cụt; loài người chúng ta đã phát triển vượt qua cả thời gian để tự
xây dựng cuộc sống chất lượng cao cho riêng mình. Cùng với những bước tiến vượt
bậc của khoa học, kĩ thuật và công nghệ, người ta đã đi từ nhu cầu ăn no, mặc đủ;
vươn lên thành ăn ngon, mặc đẹp và hiện tại là vượt ra cả những nhu cầu thỏa mãn
về thể chất, tinh thần của mỗi cá nhân. Trong đó, nhu cầu giải trí ln là yếu tố đi
đầu.

Từ việc giải trí chỉ nhằm để thư giãn, đến giải trí nhắm vào chất lượng và biến
cả thời gian giải trí trở thành thời gian để tạo ra nguồn thu nhập cho mỗi cá nhân,
Game đang làm quá xuất sắc những yêu cầu đó – nó là top những mảng giải trí nhận
được sự quan tâm lớn nhất với giá trị lợi nhuận cao nhất. Chỉ tính riêng ở Việt Nam
năm 2021, giá trị mang lại từ Game được ước tính khoảng 136.000.000 USD –
tương đương 3,1 nghìn tỷ đồng và những con số này chưa bao giờ cho thấy dấu
hiệu chững lại sự tăng trưởng.

Game gần như miễn nhiễm ảnh hưởng bởi những yếu tố tác động từ thế giới

và môi trường bên ngồi. Bởi lẽ đơn cử như tình hình đại dịch Covid 19 hoành hành
khắp thế giới thời gian vừa qua; số lượng người chơi game, đầu tư vào game, thậm
chí “ăn ngủ cùng game” đã đẩy mức doanh thu ngành Game liên tục phá vỡ những
kỉ lục do chính nó tạo ra về lợi nhuận. Tất cả những điều đó cho thấy sức mạnh ảnh
hưởng và khả năng phát triển không giới hạn của Game là lớn đến như thế nào.

Một số lớp tư tưởng cho rằng: “việc chơi game có hại đối với bản thân con
người” với rất nhiều lí do khác nhau. Điều đó khơng hồn toàn là sai. Việc chơi game
chỉ sai khi người chơi game mang tư tưởng và mục đích sai, dẫn đến hành động sai,
để lại hậu quả không tốt đẹp mà thôi. Theo những nghiên cứu khoa học đã được xác
thực, chơi game thực sự mang lại những lợi ích bất ngờ.

9

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

+ Rèn luyện khả năng quan sát tốt và phản xạ nhạy bén: các nhà khoa
học đã làm một phép thử với những người bình thường và người chơi game
lâu năm, đặc biệt là những thể loại game hành động. Kết quả chỉ ra người
chơi game lâu năm dễ dàng hơn trong việc tránh né và phản xạ lại các chướng
ngại vật bất ngờ, cần hành động nhanh, dứt khoát và chính xác. Họ dường
như đã luyện được cho bản thân kĩ năng sử dụng linh hoạt tay, chân và mắt,
sóng não bộ của họ cũng đưa ra phân tích và xử lý nhanh nhạy hơn những
người bình thường.


+ Rèn luyện tính kiên trì và tăng khả năng làm việc nhóm: Việc thự hiện
những thử thách khó trong game sẽ tạo cho bạn tính kiên trì, óc tư duy để giải
quyết những rào cản từ thế giới ảo đến thế giới thực. Đồng thời những game
chiến thuật đồng đội giúp bạn tăng khả năng làm việc nhóm, suy nghĩ tạo ra
lối chơi hay, phối hợp ăn ý với đồng đội, xử lý tốt hơn nếu xảy ra những tình
huống mâu thuẫn.

+ Tăng cường thị lực, cải thiện tầm nhìn và sự tập trung: Điều này sẽ
khơng hề vơ lí nếu bạn khơng ngồi lì hàng giờ đồng hồ nhìn chằm chằm vào
màn hình liên tục. Một số thể loại game buộc bạn duy trì sự tập trung, mở
rộng cảm giác không gian và thị lực bao quát; luyện cho não bộ của bạn cách
tích hợp ngay từ những chi tiết nhỏ...

Đó chỉ là một số ít trong rất nhiều lợi ích của Game – miễn là bạn khai thác
đúng cách và đúng mục đích mà thơi.
Nhận thức được những giá trị to lớn ấy, nhóm chúng em đã chọn đề tài “Xây
dựng game bắn súng 2D”. Bản báo cáo này là tồn bộ nội dung, q trình và những
vấn đề liên quan để xây dựng sản phẩm. Tất cả được bao gồm trong 8 chương:
Chương I: Giới thiệu đề tài
Giới thiệu chung về đề tài: xác định mục tiêu và phạm vi dự án, đưa ra lý do
lựa chọn đề tài, kết quả dự kiến đạt được của đề tài.
Chương II: Phân tích yêu cầu
Xác định rõ những yêu cầu dự án: yêu cầu về kiến thức, yêu cầu kĩ thuật, yêu
cầu nhân sự, yêu cầu tài nguyên, yêu cầu về đồ họa, âm thanh, yêu cầu về hiệu suất.
10

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2


Giảng viên: Vũ Đức Minh

Chương III: Thực hiện thiết kế
Hệ thống các phần thiết kế chính của sản phẩm: thiết kế giao diện, thiết kế
nhân vật, thiết kế vũ khí, thiết kế kẻ địch, thiết kế map, thiết kế dữ liệu...
Chương IV: Phát triển
Xác định: lựa chọn cơng nghệ, ngơn ngữ lập trình, xây dựng cơ sở hạ tầng của
game, phát triển gameplay và các tính năng tương tác, tạo đồ họa, âm thanh cho
game...
Chương V: Kiểm thử và sửa chữa
Xác định, phân loại và chọn lọc quy trình kiểm thử: kiểm thử đơn vị, kiểm thử
tích hợp, kiểm thử chất lượng, các bản ghi chú và báo cáo lỗi
Chương VI: Quản lý dự án
Đưa ra lịch trình và quản lý tiến độ: quản lý nguồn lực quản lý nhân lực, quản
lý rủi ro, quản lý tài nguyên tài chính.
Chương VII: Kết luận và báo cáo
Tóm tắt dự án, kết quả đã đạt được thực tế, các phần đóng góp, sáng tạo của từng
thành viên, đóng góp kinh nghiệm, sự học hỏi trong quá trình xây dựng dự án.
Chương VIII: Tài liệu tham khảo
Danh sách tài liệu, các nguồn tham khảo
- Phụ lục (Phần kèm theo, khơng được tính vào số lượng chương nội dung)

11

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2


Giảng viên: Vũ Đức Minh

CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI
I.1. Lý do chọn đề tài
Lý do khách quan:
Như những gì đã tìm hiểu và nghiên cứu thông tin cơ bản về Game trong “Lời
Mở Đầu”, nhóm chúng tơi nhận thức rõ tầm quan trọng và tiềm lực phát triển vô hạn
của Game trong cuộc sống và trong tương lai.
Lý do chủ quan:
Đối với nhóm những sinh viên thuộc ngành Công nghệ Thông tin, dù đã được
học nhiều môn học chuyên ngành, cũng đã tham gia thực hiện một số sản phẩm công
nghệ, tuy nhiên hầu hết đều là các app hoặc trang web mà chưa có bất kì một sản
phẩm nào về Game.
Người làm IT cũng phải giống như công nghệ, phải bắt kịp được sự tăng
trưởng của nó, phải thích nghi nhanh nhạy với sự biến thiên của nó, phải tiếp xúc
với nhiều mảng của ngành IT nhất có thể để “tiến hóa” và ln ln làm chủ được
những gì bản thân muốn làm.
Bên cạnh đó, chúng tơi cũng tìm hiểu và nhìn nhận một sự thật rằng, có thể
trong tương lai, phần xây dựng Web hay App rất có thể sẽ bị thoái trào nhưng sức
mạnh phát triển và tốc độ chuyển mình của Game như đã phân tích là vơ hạn. Việc
chọn xây dựng game có thể chính là cách để tự tạo cho bản thân những sinh viên
như chúng tôi một cơ hội bắt đầu đặt những viên gạch nền móng đầu tiên, tạo ra sự
thích nghi tốt hơn, tiếp xúc sâu rộng hơn và rèn luyện tư duy logic hơn để bắt kịp
xu hướng của thời đại, chuẩn bị tốt hơn cho những thay đổi trong tương lai. Chúng
tôi sẽ có được một “mơi trường ngành” thêm hồn thiện và tồn diện hơn.
Một lí do nữa dẫn chúng tơi đến ý tưởng xây dựng Game cho học phần này
chính bởi đặc điểm của việc xây dựng game mà quá trình xây dựng Web hay App
khơng có được. Khơng phải là cấu trúc cứng nhắc: header – body – footer như khi
xây dựng trang web; cũng chẳng phải những danh mục, cơng cụ, và tính năng
chun sâu được u cầu như khi xây dựng các app; đối với việc xây dựng Game,

chúng tôi được tự do và thỏa sức suy nghĩ, sáng tạo, vận dụng tư duy logic của bản
thân mình để xây dựng những gì mình muốn. Bên cạnh đó, giao diện phần nhìn của
game có sự tập trung mạnh mẽ vào thiết kế đồ họa và giao diện người dùng để tạo
ra những trải nghiệm thú vị và hấp dẫn cho người chơi, khác biệt hoàn toàn với sự
12

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

tập trung vào tính năng, trải nghiệm và buộc tương tác với những khối dữ liệu cứng
nhắc. Dẫu biết game thường đòi hỏi nhiều thời gian và nguồn lực đầu tư hơn do yêu
cầu cao về đồ họa và chi tiết từng tính năng phức tạp nhưng giống như mục đích
ban đầu, đó thực sự sẽ là một trải nghiệm bắt đầu khơng thể bỏ lỡ.

Người ta thường nói game chỉ nhằm mục đích giải trí dành cho người chơi,
nhưng đối với những người thiết kế và xây dựng nên nó, game cịn là một phương
tiện để thể hiện và truyền đạt những ý tưởng, tư tưởng, quan điểm với thế giới ảo
của riêng mình, điều khiển các yếu tố tương tác và kể câu chuyện. Nó nâng cao khả
năng tiếp cận các đối tượng mục tiêu cụ thể hoặc bao quát mà bạn muốn hướng đến.
Việc giải quyết các thách thức cơng việc trong q trình xây dựng game sẽ chứa
nhiều thú vị và đầy thử thách bởi lẽ game đa phần là được xây dựng từ cơng thức
tốn học và vật lý. Đây là một trong những cách tốt nhất để chúng tơi áp dụng tồn
bộ kiến thức vào thực hành, tự rèn luyện sự kiên nhẫn, thúc đẩy não bộ linh hoạt và
nhanh nhạy trong tư duy và giải quyết vấn đề.

I.2. Mục tiêu đề tài

Bản báo cáo này trình bày lại tồn bộ nội dung, q trình cũng như các vấn
đề liên quan trong việc thực hiện dự án “Xây dựng game bắn súng 2D”. Nhóm chúng
em sẽ đi sâu vào các khía cạnh thiết kế, kiến thức, kĩ thuật, quá trình phối kết hợp
để cung cấp cho người đọc một cái nhìn từ tổng quan đến chi tiết về công việc xây
dựng và phát triển, vận hành một Game.

I.3. Giới hạn và phạm vi đề tài
Sản phẩm của đề tài “Xây dựng game bắn súng 2D” sử dụng công cụ Godot
để thiết kế và Công cụ lập trình Visual Studio Code để thực hiện lập trình tính năng.
Các tài liệu liên quan sử dụng các phần mềm thuộc Microsoft Office để tạo
lập: báo cáo, sơ đồ usecase,...
Cơ sở dữ liệu sử dụng nền tảng PhpAdmin để tạo lập, thiết kế sơ đồ Database
Relationship.

I.4. Kết quả dự kiến đạt được
Tìm hiểu chi tiết quy trình xây dưunjg và phát triển một Game.
13

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

Tìm hiểu chi tiết về cơng cụ Godot.
Xây dựng và phát triển “game bắn súng 2D” đáp ứng các yêu cầu cơ bản

I.5. Phương pháp tiếp cận
Cách tiếp cận: trực tiếp tham gia sử dụng các ứng dụng game tương tự đã được

xây dựng trước đó nhằm trải nghiệm và rút ra kinh nghiệm, từ đó vạch ra định hướng
chi tiết để xây dựng game của nhóm tốt hơn, chế độ phục vụ ổn định hơn.
Sử dụng các phương pháp nghiên cứu: tìm hiểu, nghiên cứu tài liệu về quy
trình thiết kế game, kiến thức về Godot, tài liệu thiết kế đồ họa trên Internet và sách.

14

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

CHƯƠNG II: PHÂN TÍCH YÊU CẦU
II.1. Yêu cầu về kiến thức
II.1.1. Quy trình xây dựng Game
Đề tài dự án “Xây dựng game bắn súng 2D” là dự án thiết kế game đầu tiên
mà nhóm chúng em tự thực hiện. Vậy nên, việc tìm hiểu, nghiên cứu chi tiết về quy
trình để xây dựng và phát triển một game là vô cùng quan trọng. Đó là khung kiến
thức nền tảng giúp nhóm vạch rõ kế hoạch, thời gian, cơng đoạn và các phần cần
thực hiện để tạo nên một sản phẩm hồn chỉnh theo mong muốn; đảm bảo mọi cơng
việc và vấn đề có liên quan logic, khơng bị thiếu sót hay bị dư thừa.

Vậy, về cơ bản, quy trình sản xuất game có thể được gói trong 3 giai đoạn
chính như sau:

>> Pre-Production (Tiền kỳ):
Tiền kỳ là giai đoạn cực kỳ quan trọng, làm tiền đề cho cả quá trình,
tiền để cho sự phát triển ý tưởng của Game. Các cơng việc trong giai đoạn này

có thể bao gồm:
+ Bàn luận và thống nhất cốt truyện hoàn chỉnh.
+ Xây dựng tuyến nhân vật phù hợp với cốt truyện.
+ Tạo storyboard.
+ Thiết kế thử thách, vạch ra cách hoạt động của game.
+ Dự báo tài nguyên.
+ Dự báo rủi ro
+ ......
Ở giai đoạn tiền kỳ này, game designer là những người thực hiện và
chịu trách nhiệm chính. Sau khi các cơng đoạn trên được hình thành và phát
triển, game designer sẽ phải tổng hợp thành một tài liệu chi tiết, đầy đủ ý
tưởng và cách thức thực hiện để các thành viên tham gia vào các công việc ở
15

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

giai đoạn sau có thể hiện thực hóa ý tưởng, bám sát yêu cầu ban đầu, tránh
xảy ra chệch hướng, giảm thiếu tối đa việc sửa chữa không cần thiết.

>> Production (Sản xuất):
Đây là giai đoạn chiếm nhiều thời gian và tài nguyên nhất trong quá
trình tạo ra một game. Mọi cơng đoạn đều phải đảm bảo tính tối ưu hóa và
hạn chế sai sót nhiều nhất có thể. Các nhiệm vụ ở mảng Art (thiết kế đồ họa)
cần thực hiện trong khâu sản xuất bao gồm: Modeling, Animation, Texturing,
Lighting, FX,… và mảng Development (Lập trình) sẽ bắt đầu thực hiện song

song.
Ở giai đoạn này, vị trí “xương sườn” của tồn bộ game là những người
lập trình game, hỗ trợ kỹ thuật (Tech Artist). Họ sẽ đi xuyên suốt quy trình
làm game để đảm bảo được sự liên kết và xử lý những lỗi có thể xảy ra trong
q trình làm game.
Vào cuối giai đoạn sản xuất, bộ phận Test game sẽ liên tục kiểm tra và
phản hồi những vấn đề cần khắc phục. Một sản phẩm hoàn thiện là sản phẩm
ổn định, đầy đủ các tính năng được yêu cầu và khơng có lỗi.

>> Post-Production (Hậu kỳ):
Thơng thường giai đoạn hậu kỳ thuộc về bộ phận Marketing của nhà
phát hành game. Từ giai đoạn sản xuất đã có thể dần hé lộ những chi tiết trong
game với khán giả công chúng, nhưng hậu kỳ mới là lúc đội ngũ Truyền thông
hoạt động mạnh mẽ nhất. Thời điểm này, các tựa game sẽ xuất hiện trên nhiều
đầu báo, tạp chí, blog hay review của các youtuber, streamer,…
Đây cũng là giai đoạn mà nhà phát triển game (Game Developer) sẽ
tiếp tục cải thiện trị chơi trong những trường hợp có lỗi mới. Thông thường,
nhà phát hành sẽ ra mắt trước các bản dùng thử để khán giả trải nghiệm và
phản hồi những lỗi phát sinh. Sau đó các nhà lập trình game sẽ sửa chữa đồng
thời ra mắt thêm các tính năng mới để giữ chân và thu hút thêm người chơi.

II.1.2. Kiến thức về Godot
II.1.2.1 Đối tượng tham gia hệ thống
16

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2


Giảng viên: Vũ Đức Minh

Godot Engine là một nền tảng phát triển game mã nguồn mở được tạo ra để
đáp ứng nhu cầu của các nhà phát triển game đa nền tảng. Với thiết kế dễ sử dụng
và cung cấp nhiều tính năng hấp dẫn, Godot Engine đã thu hút sự quan tâm của đơng
đảo lập trình viên.

Hình 10. Godot Engine

II.1.2.2 Vì sao là Godot ?

Hình 1. Godot
Hiện tại, có khá nhiều Engine đã tạo được danh tiếng của mình trong việc hỗ
trợ thiết kế và xây dựng game. Nó rút ngắn q trình, tiết kiệm thời gian và công sức
cho người sản xuất. Hãy cùng điểm qua một số engine nổi tiếng mà nhóm chúng tơi
tìm hiểu được.
a. Unity Engine
17

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

Unity Engine là một mơi trường phát triển trị chơi cực kì mạnh mẽ và đa dụng
đã được sử dụng rộng rãi trong cả ngành công nghiệp thiết kế game, thậm chí cịn
được mang vào giảng dạy lập trình. Unity có những điểm cộng to lớn làm nên sức
hút mạnh mẽ của nó:

+ Đa nền tảng: Unity cho phép người sản xuất phát triển trị chơi của
mình trên nhiều nền tảng khác nhau như PC, smartphone, tablet, các
thiết bị kĩ thuật số thực tế ảo (VR) và nhiều hệ thống máy móc dành
riêng cho việc chơi game khác nữa. Điều này giải quyết xuất sắc vấn
đề xung đột hay không tương thích giữa game với thiết bị của người
dùng. Khi game có chất lượng, ưu điểm này của Unity sẽ giúp nó được
phủ sóng nhanh chóng và mạnh mẽ, tổng hợp được số lượng người chơi
khủng.

+ Cộng đồng lớn: Nó như thể là một điều tất yếu! Sự nổi tiếng và tính
năng hỗ trợ của Unity giúp nó xây dựng một cộng đồng lập trình viên,
nhà thiết kế và game thủ rất lớn, ưu điểm này giúp những người mới
tiếp cận dễ dàng tìm kiếm sự hỗ trợ, tài liệu và giải đáp những câu hỏi,
thắc mắc trong quá trình sử dụng và vận hành

+ Asset Store: Asset Store của Unity cung cấp cho người xây dựng
game một thư viện lớn các tài nguyên, script và plug-in giúp họ tăng
tốc quá trình thiết kế và phát triển.

+ Dễ học: theo như đánh giá từ các lập trình viên, Unity có giao diện
dễ sử dụng và hỗ trợ nhiều ngôn ngữ lập trình như C# và JavaScript,
điều này hỗ trợ cho những người mới bắt đầu có thể nắm bắt nhanh
chóng.

+ Render chất lượng cao: một game chất lượng phải thu hút game thủ
ngay từ phần nhìn. Unity cung cấp hệ thống render mạnh mẽ giúp người
thiết kế game dễ dàng hơn trong việc tạo ra hình ảnh chất lượng cao,
cho dù họ đang xây dựng trò chơi 2D hay 3D.

18


Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

b. Unreal Engine
Bên cạnh danh tiếng của Unity, Unreal Engine cũng là một trong những engine
phát triển trò chơi và ứng dụng 3D thuộc top đầu trên thị trường. Không kém cạnh
Unity, Unreal cũng có những ưu điểm lớn của nó.

+ Đồ họa và hiệu ứng chất lượng cao: một trong những điểm cộng đầu
tiên tạo nên danh tiếng của Unreal Engine là khả năng tạo ra đồ họa và
hiệu ứng 3D chất lượng cao, nổi tiếng là trong trò chơi AAA. Hệ thống
render của Unreal cho phép người thiết kế tạo ra hình ảnh đẹp mặt với
hiệu ứng ánh sáng sắc nét và đổ bóng phức tạp.

+ Cộng đồng lớn và tài liệu phong phú: cũng giống như Unnity, Unreal
Engine xây dựng được một cộng đồng lập trình viên rất lớn, thư viện
hướng dẫn với rất nhiều tài liệu và khóa học, nhóm hỗ trợ được xây
dựng giúp những người mới sử dụng có thể dễ dàng tiếp cận để học và
giải quyết vấn đề

+ Đa nền tảng: Unreal hỗ trợ xây dựng game tương thích với nhiều nền
tảng bao gồm PC, console, điện thoại di động, VR và rất nhiều hệ thống
khác.

+ Blueprint Visual Scripting: tính năng nổi bật này là một công cụ được

Unreal cung cấp cho phép người xây dựng lập trình mà khơng cần phải
viết mã, nó thích hợp cho người mới bắt đầu hoặc các nghệ sĩ đồ họa
dễ dàng tạo nên kết quả tốt hơn và nhanh hơn mà không cần can thiệp
quá nhiều.
Có thể nói, những Engine được nêu ở trên hiện đang rất thịnh hành và
được ưa chuộng sử dụng nhiều, hỗ trợ đắc lực trong việc thiết kế và xây
dựng một trò chơi điện tử.
Nhưng đối với đề tài này, chúng tôi quyết định xây dựng “game bắn
súng 2D” với sự hỗ trợ của Godot! Bởi lẽ:

19

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

+ Miễn phí và mã nguồn mở: Godot Engine là một dự án mã nguồn mở
hồn tồn miễn phí, giúp tiết kiệm chi phí phát triển và phù hợp cho cả
những dự án cá nhân lẫn doanh nghiệp. Với một nhóm các cá nhân là
sinh viên Cơng nghệ Thơng tin – đặc điểm phù hợp này là điểm cộng
đầu tiên.

+ Dễ học và dễ sử dụng: Theo những đánh giá từ các lập trình viên,
giao diện của Godot Engine được thiết kế trực quan, ngơn ngữ lập trình
GDScript tương tự như Python, dễ học và dễ sử dụng, nó rất phù hợp
với những người mới bắt đầu làm quen với việc thiết kế và xây dựng
game.


+ Hỗ trợ nhiều nền tảng: Gdot hỗ trợ nhiều nền tnagr như Windows,
macOS, Linux, Android, iOS, HTML5 và khá nhiều nền tảng khác,
giúp người sử dụng phát triển trị chơi dễ dàng mà khơng quá lo ngại
vấn đề xung đột.

+ Kích thước nhẹ và hiệu năng tốt: Godot có kích thước nhẹ, phù hợp
cho q trình sử dụng, nó làm việc tốt trên nhiều loại máy tính và thiết
bị di dộng. Đồng thời nó có khả năng tối ưu hóa hiệu suất để đảm bảo
cho người chơi game một trải nghiệm mượt mà.

+ Cộng đồng tài liệu phong phú: dù chưa thể nói là có khơng giạn lớn
bằng cộng đồng Unreal hay Unity, nhưng Godot cũng đã kịp tạo cho
mình một cộng đồng sáng tạo và nhiệt tình, cùng với tài liệu ví dụ trực
quan hỗ trợ tốt nhất cho người phát triển.
So sánh với các Engine khác:
Mặc dù là các bậc đàn anh trong số những engine hiện hành được ưu
tiên nhất, nhưng để so sánh về độ phù hợp dành cho cá nhân – cụ thể là
nhóm sinh viên chúng tơi, Godot lại là engine tạo được bước đà tốt nhất.
+ Kích thước ứng dụng: Unity – những ứng dụng hay game được phát
triển từ engine này có kích thước lớn hơn so với với engine khác, đặc
biệt là khi bạn sử dụng nhiều tài nguyên và plug-in từ Asset Store.
Unreal cũng đòi hỏi ở người phát triển một hệ thống máy tính đủ mạnh
20

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2


Giảng viên: Vũ Đức Minh

và hao tốn tài nguyên hệ thống cao để phát triển và chạy các trò chơi
cũng như ứng dụng 3D. Trong khi đó, Godot lại giải quyết khá ổn vấn
đề này. Với kích thước nhẹ, dung lượng thấp, phù hợp để làm việc tốt
trên nhiều loại máy tính cũng như thiết bị di động mà chúng tơi có thể
đầu tư được.

+ Hiệu năng: Hiện tại, mặc dù Unity có khả năng tối ưu hóa hiệu năng,
tuy nhiên, việc thiết kế và phát triển trò chơi từ engine này đòi hỏi người
phát triển có kiến thức và một trình độ tốt về tối ưu hóa để giảm thiểu
tối đa hiện tượng giật lag cũng như tính tốn để tối thiểu mức tiêu tốn
tài nguyên. Unreal Engine cũng không khác biệt hơn Unity về vấn đề
này. Trong khi đó, Godot lại có thể đảm bảo trải nghiệm tốt và mượt
mà hơn.

+ Cấu trúc dự án: đối với những người mới bắt đầu, cấu trúc dự án của
Unity hay Unreal thực sự là một vấn đề khó khăn bởi nó khơng rõ ràng,
đặc biệt là trong các dự án lớn, gây trở ngại trong việc quản lý mã
nguồn.

Ngược lại, Godot với một giao diện trực quan và dễ sử dụng, dễ quản
lý, sẽ là điểm cộng phù hợp để lựa chọn.

+ Giấp phép và kinh phí: Unity và Unreal đều là các engine có thể cung
cấp phiên bản miễn phí, tuy nhiên, muốn khai thác tốt mọi chức năng
để tạo ra một sản phẩm hồn chỉnh là có giới hạn. Để loại bỏ những hạn
chế và sử dụng các tính năng mạnh mẽ hơn, người phát triển game cần
phải trả chi phí cho các điều khoản này. Nhưng Godot lại là một engine
miễn phí hồn tồn.


+ Hạn chế kiểm sốt và giới hạn nền tảng: Trong một số trường hợp,
Unity có thể sẽ hạn chế sự kiểm soát của bạn trong việc xử lý nhiều
khía cạnh của trị chơi, đặc biệt là trong việc xử lý sâu các đối tượng và
sự tương tác phức tạp. Trong khi đó, Unreal lại giới hạn khi phát triển
trò chơi cho một số thiết bị di dộng có cấu hình thấp. Với tình hình sử
21

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

dụng thiết bị di dộng cực kỳ nhiều như hiện nay, giới hạn này là một
bất lợi. Godot sẽ xử lý ổn thỏa vấn đề này mà khơng có sự hạn chế kiểm
soát hay giới hạn nền tảng.

II.1.2.3 Tổng quan về các thành phần trong Godot

Scenes
Trong Godot, bạn chia nhỏ trị chơi của mình thành các Scenes có thể sử dụng lại.
Cảnh có thể là một nhân vật, vũ khí, menu trong giao diện người dùng, một ngơi
nhà, tồn bộ cấp độ hoặc bất cứ thứ gì bạn có thể nghĩ ra. Các cảnh của Godot rất
linh hoạt; chúng đảm nhận vai trò của cả tiền chế và cảnh trong một số cơng cụ trị
chơi khác.

Hình 2.a. Thành phần Scenes
Bạn cũng có thể lồng các Scenes. Ví dụ: bạn có thể đặt nhân vật của mình vào một

cấp độ và kéo và thả một Scenes như một phần tử con của Scenes đó.

22

Đề tài: Xây dựng game bắn súng 2D


Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

Hình 2.b. Thành phần Scenes
Nodes
Một scene bao gồm một hoặc nhiều nodes. Nodes là các khối xây dựng nhỏ nhất của
trò chơi mà bạn sắp xếp thành cây. Đây là một ví dụ về các nodes của một nhân vật.

Hình 3.a. Thành phần Nodes

Lưu ý cách các nodes và scene trơng giống nhau trong trình chỉnh sửa. Khi bạn lưu
một cây nodes làm scene, nó sẽ hiển thị dưới dạng một nodes duy nhất, với cấu trúc
bên trong của nó được ẩn trong trình chỉnh sửa. Godot cung cấp một thư viện phong
phú về các loại nodes cơ sở mà bạn có thể kết hợp và mở rộng để xây dựng những
loại nodes mạnh hơn. Giao diện 2D, 3D hoặc người dùng, bạn sẽ thực hiện hầu hết
mọi việc với các nút này.

23

Đề tài: Xây dựng game bắn súng 2D



Đồ Án Liên Ngành – Group 2

Giảng viên: Vũ Đức Minh

Hình 3.b. Thành phần Nodes

The scene tree

Tất cả các scenes trong trò chơi của bạn đều tập hợp lại trong scene tree, nghĩa đen
là một scene tree . Và vì scene là cây của nút, nên cây scene cũng là cây của nút.
Nhưng sẽ dễ dàng hơn khi nghĩ về trị chơi của bạn dưới dạng các cảnh vì chúng có
thể đại diện cho các nhân vật, vũ khí, cánh cửa hoặc giao diện người dùng của bạn.

24

Đề tài: Xây dựng game bắn súng 2D


×