ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
⬧⬧⬧
BÁO CÁO MÔN HỌC
ĐỒ ÁN 1
ĐỀ TÀI
SPACESHIP INVADERS
Lớp: SE121.N21.PMCL
Giảng viên hướng dẫn: Đinh Nguyễn Anh Dũng
Nhóm sinh viên thực hiện:
Nguyễn Văn Thiên
20521952
Nguyễn Duy Minh Tuấn
20520845
Hồ Chí Minh, tháng 6 năm 2023
Biên bản thay đổi tài liệu
Thời gian
Phiên bản
03/06/2023
1.0
Mô tả
Tác giả
Nguyễn Văn Thiên
LỜI CẢM ƠN
Nhóm em đã và đang học tập và rèn luyện tại Trường Đại học Công Nghệ Thông Tin,
chuyên ngành Software Engineering 3 năm nay.
Nhóm em xin cám ơn trường đã tạo điều kiện cho chúng em có thể giao lưu học tập
và rèn luyện cùng nhau.
Và nhóm em xin cám ơn thầy Đinh Nguyễn Anh Dũng đã góp ý chân thành và hướng
dẫn chúng em hoàn thành đồ án mơn học này.
Trong q trình làm Đồ Án 1 nhóm em đã có một số sai sót mong thầy giảng viên
hướng dẫn bỏ qua. Nhờ đó giúp chúng em khơng ngừng nỗ lực phát triển, hồn thiện
bản thân để chuẩn bị cho Đồ Án 2 và những môn học sau.
Một lần nữa, nhóm em xin chân thành cám ơn thầy Đinh Nguyễn Anh Dũng.
Thành phố Hồ Chí Minh ngày 03/06/2023
Thiên
Nguyễn Văn Thiên
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU ............................................................................................................. 2
I. Thông Tin Chung ...................................................................................................................... 2
1. Thơng tin nhóm .................................................................................................................... 2
2. Thơng tin sơ lược về đồ án .................................................................................................. 2
3. Sơ lược về những công nghệ sử dụng. ................................................................................ 2
II. Thông Tin Sơ Lược Về Game.................................................................................................. 5
1. Sơ lược về các thực thể và đối tượng trong game.............................................................. 5
2. Các yêu cầu về chức năng .................................................................................................. 11
3. Các yêu cầu về phi chức năng. .......................................................................................... 11
CHƯƠNG 2: USE CASE ............................................................................................................... 12
I. Biểu Đồ .................................................................................................................................... 12
1. Người chơi(Player) ............................................................................................................. 12
2. Kẻ địch thông thường 1(Enemy1) ..................................................................................... 12
3. Kẻ địch thông thường 2(Enemy2) ..................................................................................... 13
4. Kẻ địch thông thường 3(Enemy3) ..................................................................................... 14
5. Kẻ địch thông thường 4 (Enemy4) .................................................................................... 15
6. Kẻ địch thông thường 5 (Enemy5_Missle Variant) ......................................................... 16
7. Quái vật(Boss) .................................................................................................................... 17
8. Boss Xúc Tu (Tentacle Boss) ............................................................................................. 18
9. Quái vật 2 (Boss2)............................................................................................................... 18
10. Thiên thạch cỡ lớn(Big Asteroid).................................................................................... 19
11. Thiên thạch cỡ vừa(Medium Asteroid) .......................................................................... 20
12. Thiên thạch cỡ nhỏ(Small Asteroid) ............................................................................... 20
II. Danh Sách Actor .................................................................................................................... 21
III. Danh Sách Usecase .............................................................................................................. 23
IV. Đặc Tả Usecase ..................................................................................................................... 25
1. Mở màn hình chính(Main Menu) ..................................................................................... 25
2. Cài đặt ................................................................................................................................. 26
3. Mở màn hình tạm dừng(Pause Menu) ............................................................................. 26
4. Bắt đầu game ..................................................................................................................... 27
5. Mở cửa hàng (Shop) .......................................................................................................... 27
6. Thoát game ........................................................................................................................ 27
7. Tiếp tục chơi ...................................................................................................................... 28
8. Nâng cấp vũ khí ................................................................................................................. 28
9. Hồi phục năng lượng ......................................................................................................... 29
10. Điều khiển máy bay......................................................................................................... 30
11. Thu thập vật phẩm .......................................................................................................... 30
12. Tấn công người chơi........................................................................................................ 31
13. Di chuyển ......................................................................................................................... 31
14. Nhận sát thương .............................................................................................................. 32
15. Bị tiêu diệt ........................................................................................................................ 32
16. Phân chia .......................................................................................................................... 33
CHƯƠNG 3: THIẾT KẾ DỮ LIỆU ............................................................................................. 34
CHƯƠNG 4: THIẾT KẾ CẤU TRÚC ......................................................................................... 35
I. Vòng Lặp Game ....................................................................................................................... 35
II. Tiến Trình Game .................................................................................................................... 35
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN ........................................................................................ 36
I. Danh Sách Giao Diện.............................................................................................................. 36
II. Chi Tiết Giao Diện ................................................................................................................. 36
1. Màn hình chính(Main Menu) ............................................................................................ 36
2. Màn hình tạm dừng(Pause Menu) .................................................................................... 37
3. Giao diện cửa hàng(Shop) ................................................................................................. 38
4. Thanh trạng thái vũ khí(Weapon State Bar) ................................................................... 39
5. Thanh trạng thái nhiên liệu(Fuel State Bar) ................................................................... 39
6. Thanh hiển thị điểm, tiền và mạng(HUD)........................................................................ 40
7. Màn hình tùy chọn(Option)............................................................................................... 40
8. Màn hình chíến thắng(Winning Scene) ............................................................................ 41
9. Màn hình thua cuộc(Game Over Scene) .......................................................................... 42
CHƯƠNG 6: CÀI ĐẶT ................................................................................................................. 44
CHƯƠNG 7: KẾT LUẬN ............................................................................................................. 45
I. Kết Quả .................................................................................................................................... 45
II. Một Số Hạn Chế..................................................................................................................... 45
TÀI LIỆU THAM KHẢO ............................................................................................................. 46
Tài liệu tiếng Anh: ...................................................................................................................... 46
Asset:............................................................................................................................................ 46
TÓM TẮT ĐỒ ÁN
Đồ án này tập trung vào việc phát triển một trò chơi bắn máy bay bằng Unity và
trình bày một số kết quả đạt được trong quá trình thực hiện dự án.
Vấn đề nghiên cứu của đồ án là tạo ra một trò chơi bắn máy bay hấp dẫn và thú vị,
sử dụng công nghệ Unity để xây dựng nền tảng và tích hợp các yếu tố trò chơi như
chuyển động, đồ họa và âm thanh.
Để giải quyết vấn đề, chúng tôi đã tiến hành một số hướng tiếp cận như sau:
− Thiết kế các kỹ năng điều khiển cho người chơi để tạo ra trải nghiệm chơi
game đa dạng và thú vị.
− Thiết kế kẻ địch, quái vật làm cho người chơi có hứng thú khi đối đầu.
− Tạo ra hệ thống ghi điểm và thăng cấp để khích lệ người chơi tiếp tục chơi
và cải thiện kỹ năng của mình.
− Tối ưu hóa trị chơi để đảm bảo trải nghiệm mượt mà.
− Thiết kế hệ thống kỹ năng với những hiệu ứng như: làm tê liệt, làm mất
phương hướng, làm cho người chơi tăng tính tò mò.
Kết quả đạt được sau khi thực hiện dự án là một trò chơi bắn máy bay hấp dẫn và
thú vị, với đồ họa dễ nhìn, hiệu ứng âm thanh sống động và cơ chế chơi game mượt
mà.
Tóm lại, đồ án đã thành công trong việc phát triển một trò chơi bắn máy bay sử
dụng Unity, với các yếu tố trò chơi hấp dẫn và kết quả đạt được đã chứng minh khả
năng của công nghệ Unity trong việc xây dựng trò chơi trực quan và tương tác.
1
CHƯƠNG 1: GIỚI THIỆU
I. Thơng Tin Chung
1. Thơng tin nhóm
MSSV
Họ tên
Số điện thoại
Email
20521952
Nguyễn Văn Thiên
0326 933 046
20520845
Nguyễn Duy Minh
Tuấn
Bảng 1.1: Thơng tin nhóm
2. Thơng tin sơ lược về đồ án
− Tên đồ án: Tìm hiểu cơng nghệ Unity và làm một sản phẩm dựa trên cơng
nghệ này.
− Tên trị chơi: Spaceship Invaders.
− Công nghệ sử dụng: Unity Engine.
− Môi trường phát triển: Visual Studio / Visual Studio Code.
3. Sơ lược về những cơng nghệ sử dụng.
3.1 Unity Engine
Hình 1.1: Unity
2
Unity Engine là một cross-platform game engine được phát triển bởi cơng ty Unity
Technology, nó được sử dụng nhằm mục đích phát triển video game 2D, 3D trên
máy tính, điện thoại, console và các nền tảng thực tế ảo. Được công bố và phát hành
lần đầu tiên vào tháng 6 năm 2005 chạy trên hệ điều hành MacOS. Nó sử dụng
ngơn ngữ C# làm script. Nó cịn có thể sử dụng để làm phim, và sử dụng trong
ngành sản xuất ô tô.
Trong 2D games, Unity cho phép nhập sprites và một renderer thế giới 2D tiên tiến.
Đối với 3D games, Unity cho phép thiết lập các đập điểm kỹ thuật của các kết cấu
và độ phân giải mà công cụ trò chơi hỗ trợ, cung cấp các hỗ trợ cho bump mapping,
reflection mapping, parallax mapping, cảnh không gian ambient occlusion (SSAO),
hiệu ứng bóng đổ bằng cách sử dụng shadow maps, render thiết lập toàn cảnh đến
hiệu ứng. Unity cũng cung cấp các dịch vụ cho nhà phát triển, bao gồm: Unity Ads,
Unity Analytics, Unity Cloud Build, Unity Everyplay, Unity API, Unity
Multiplayer, …
3.2 C Sharp
Hình 1.2: C Sharp
C#(C Sharp) là một ngơn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được
phát triển bởi Microsoft. Nó được Microsoft phát triển dựa trên C++ và Java. C#
được thiết kế chủ yếu bởi Anders Hejlsberg, kiến trúc sư phần mềm nổi tiếng với
3
các sản phẩm như Turbo Pascal, Delphi, J++, WFC. Phiên bản mới nhất của C# là
C# 10, được hỗ trợ trên .Net 6.
Ứng dụng của C#:
− Phát triển web backend (ASP.NET MVC, ASP.NET Core, WebAPI, …).
− Phát triển web frontend (Blazor WebAssembly, Uno Platform).
− Phát triển desktop app (Winform, WPF, UWP, …).
− Phát triển mobile app, IOS native, Android native (Xamarin, MAUI, …).
− Phát triển game 2D, 3D đa nền tảng (Game engine: Unity, Monogame, …).
− Phát triển thực tế ảo (VR), thực tế tăng cường (AR) và thực tế hỗn hợp (MR)
(HoloLens, Unity, …).
− Phát triển ứng dụng đồ họa 2D, 3D đa nền tảng (2D: SkiaSharp,
ImageSharp,… ; 3D: OpenTK, SharpDX, …).
− ….
3.3 Github
Hình 1.3: Github
4
Github là một Version Control System sử dụng Git. Các dự án mã nguồn mở sẽ
được cung cấp kho lưu trữ miễn phí. Tính đến ngày 25/01/2023, Github có hơn 100
triệu người sử dụng và hơn 200 triệu kho lưu trữ mã nguồn làm cho Github trở
thành máy chủ chứa mã nguồn nhiều nhất trên thế giới.
Nó đã trở thành một yếu tố có sức ảnh hưởng trong cộng đồng phát triển mã nguồn
mở. Thậm chí nhiều cơng ty đã yêu cầu các developer phải biết sử dụng nó. Vào
ngày 04/06/2018, Microsoft đã thông báo đạt được thỏa thuận mua lại Github.
II. Thông Tin Sơ Lược Về Game
1. Sơ lược về các thực thể và đối tượng trong game.
Tên thực thể/ đối
tượng
Hình ảnh
Mơ tả
Là một đối tượng trong game,
Player
người chơi có thể điều khiển nó
Hình 1.4: Player
theo những luật trong trò chơi.
Là một kẻ địch trong game
Enemy1
người chơi phải đối đầu, nó có
Hình 1.5: Enemy1
khả năng bắn ra 1 tia đạn màu
xanh lá chết chóc.
5
Là một kẻ địch trong game
người chơi phải đối đầu, nó có
Enemy2
khả năng bắn ra 2 tia đạn màu
xanh dương, có sức cơng phá
Hình 1.6: Enemy2
lớn hơn Enemy1.
Là một kẻ địch trong game
người chơi phải đối đầu, nó có
Enemy3
khả năng bắn ra 3 tia đạn màu
đỏ, có sức cơng phá lớn hơn so
Hình 1.7: Enemy3
với Enemy2.
Là một kẻ địch trong game
người chơi phải đối đầu, nó có
Enemy4
khả năng bắn ra 2 tia đạn màu
xanh, có sức cơng phá lớn hơn
Hình 1.8: Enemy4
so với Enemy3.
Là một kẻ địch trong game
người chơi phải đối đầu, nó có
Enemy5
khả năng bắn ra tên lửa đuổi
theo người chơi, có sức cơng
Hình 1.9: Enemy5
phá lớn hơn so với Enemy4.
Là một quái vật trong game
người chơi phải đối đầu, nó có
khả năng cast skill làm cho
Boss1
người chơi dính địn bị dính
Hình 1.10: Boss1
6
hiệu ứng (bị tê liệt, bị di chuyển
ngược), có sức cơng phá lớn
hơn rất nhiều so với kẻ địch
thông thường.
Là một quái vật trong game
người chơi phải đối đầu, nó có
khả năng cast skill làm cho
Boss2
người chơi dính địn bị dính
hiệu ứng (bị tê liệt, bị di chuyển
Hình 1.11: Boss2
ngược), có sức công phá lớn
hơn rất nhiều so với Boss1.
Là một quái vật trong game
người chơi phải đối đầu, bao
Tentacle Boss
(khơng có hình)
gồm nhiều xúc tu có thể bắn tia
laser,nhưng khơng thể di
chuyển.
Là đồ vật người chơi có thể
nhặt được và sử dụng để nâng
Coin
cấp vũ khí, hồi phục năng
Hình 1.9: Coin
lượng. Có tỉ lệ rớt khi người
chơi tiêu diệt kẻ địch, thiên
thạch.
Là thực thể người chơi có thể
lấy để hồi phục năng lượng cho
Fuel
Hình 1.10: Fuel
phi thuyền. Có tỉ lệ rớt khi
người chơi tiêu diệt kẻ địch,
thiên thạch.
Là thực thể người chơi có thể
lấy để nâng cấp vũ khí. Có tỉ lệ
Star
Hình 1.11: Star
rớt khi người chơi tiêu diệt kẻ
địch, thiên thạch.
7
Là một thực thể trơi nổi ngồi
khơng gian bao la, người chơi
phải né tránh nếu không muốn
BigAsteroid
phi thuyền bị tan tành. Khi bắn
Hình 1.12: Big Asteroid
nó, nó có thể tách ra nhiều
mảnh nhỏ hơn.
Là một thực thể trơi nổi ngồi
khơng gian bao la, người chơi
phải né tránh nếu không muốn
MediumAsteroid
phi thuyền bị tan tành. Khi bắn
Hình 1.13: Medium
Asteroid
nó, nó có thể tách ra nhiều
mảnh nhỏ hơn.
Là một thực thể trôi nổi ngồi
SmallAsteroid
Hình 1.14: Small
Asteroid
khơng gian bao la, người chơi
phải né tránh nếu không muốn
phi thuyền bị tan tành.
Là một loại phóng xạ được bắn
Bullet1
Hình 1.15: Bullet1
ra bởi Enemy1. Người chơi
phải né tránh nếu muốn tồn tại.
Là một loại tia lửa được bắn ra
Bullet2
bởi Enemy2. Người chơi phải
Hình 1.16: Bullet2
8
né tránh nếu muốn tồn tại.
Là một loại tia điện plasma
được bắn ra bởi Enemy3.
Bullet3
Hình 1.17: Bullet3
Người chơi phải né tránh nếu
muốn tồn tại.
Là một loại tia đạn được bắn ra
BulletDefault
Hình 1.18: Bullet
Default
bởi player. Người chơi phải cố
gắng dùng nó để bắn trúng kẻ
địch.
Là một loại tia laser được bắn
ra bởi player. Người chơi phải
Laser
cố gắng dùng nó để bắn trúng
kẻ địch. Vũ khí này có khả
năng thiêu đốt kẻ địch.
Là một loại tên lửa tìm địch
được bắn ra bởi người chơi.
Người chơi phải cố gắng dùng
Missle
Hình 1.19: Missle
nó để bắn trúng kẻ địch. Tên
lửa này có thể xác định vị kẻ
địch trí trong bán kính của nó
để tìm diệt.
Là một kỹ năng bắn ra xung
quanh, được cast bởi người
CircleShooting
Hình 1.20:
CircleShooting
chơi hoặc boss, nó gây sát
thương và làm cho kẻ dính bị
mất phương hướng tạm thời.
9
Là một kỹ năng được cast bởi
DivineDeparture
Hình 1.21:
DivineDeparture
người chơi hoặc boss, nó gây
sát thương cực lớn.
Là một kỹ năng được cast bởi
ElectricityShooting
Hình 1.22:
người chơi hoặc boss, nó gây
ElectricityShooting
sát thương và làm cho kẻ dính
bị tê liệt trong giây lát.
Là một kỹ năng được cast bởi
EnergyWave
người chơi hoặc boss, nó gây
Hình 1.23: EnergyWave
sát thương lên kẻ dính.
Là một kỹ năng giúp người
Invincible
SectorShooting
Hình 1.24: Invincible
Hình 1.25:
SectorShooting
FuelStateBar
Hình 1.26: FuelStateBar
10
chơi miễn nhiệm hiệu ứng và
sát thương.
Là một phiên bản nâng cấp của
ElectricityShooting.
Là một thanh hiển thị tráng thái
năng lượng của người chơi.
Hình 1.27: HP Bar
HP Bar
Là một thanh hiển thị HP của
Boss.
Hình 1.28: HUD
HUD
Là một thanh hiển thị điểm,
mạng, và coin của người chơi.
WeaponStateBar
Hình 1.29:
WeaponStateBar
Là một thanh hiển thị vũ khí và
cấp độ của vũ khí của người
chơi.
Bảng 1.2: Các thực thể và đối tượng
2. Các yêu cầu về chức năng
− Người chơi có thể tạm dừng khi đang chơi.
− Người chơi sẽ rơi vào trạng thái không thể cản phá sau khi hồi sinh hoặc
dùng kỹ năng Invincible.
− Người chơi có thể sử dụng tối đa 4 kỹ năng.
− Game có nhạc nền giúp người chơi thư giãn.
− Khi người chơi chết sẽ bị trừ 1 mạng.
− Người chơi có thể điều chỉnh tốc độ chuột.
3. Các yêu cầu về phi chức năng.
− Cân bằng game:
+ Vì người chơi sử dụng chuột nên sẽ có năng lượng, khi hết năng
lượng, người chơi sẽ bị giảm tốc độ di chuyển.
+ Người chơi có thể thu thập coin để nâng cấp vũ khí, hồi phục năng
lượng.
− Yêu cầu về chất lượng: FPS ổn định, gameplay thu hút người chơi.
− Yêu cầu về tính tương thích: có thể chơi ổn định trên Windows 10.
11
CHƯƠNG 2: USE CASE
I. Biểu Đồ
1. Người chơi(Player)
Hình 2.1: Player Usecase Diagram
2. Kẻ địch thông thường 1(Enemy1)
12
Hình 2.2: Enemy1 Usecase Diagram
3. Kẻ địch thơng thường 2(Enemy2)
13
Hình 2.3: Enemy2 Usecase Diagram
4. Kẻ địch thơng thường 3(Enemy3)
14
Hình 2.4: Enemy3 Usecase Diagram
5. Kẻ địch thơng thường 4 (Enemy4)
15
Hình 2.5: Enemy3 Usecase Diagram
6. Kẻ địch thơng thường 5 (Enemy5_Missle Variant)
16
Hình 2.6: Enemy3 Usecase Diagram
7. Quái vật(Boss)
17
Hình 2.7: Boss Usecase Diagram
8. Boss Xúc Tu (Tentacle Boss)
Hình 2.8: Tentacle Boss Usecase Diagram
9. Quái vật 2 (Boss2)
18