ĐẠ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
03/06/202
3
Phiên bản
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, hoà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.................................................................12
3. Các yêu cầu về phi chức năng..........................................................12
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)....................................................13
3. Kẻ địch thông thường 2(Enemy2)....................................................14
4. Kẻ địch thông thường 3(Enemy3)....................................................15
5. Kẻ địch thông thường 4 (Enemy4)...................................................16
6. Kẻ địch thông thường 5 (Enemy5_Missle Variant)........................17
7. Quái vật(Boss).................................................................................... 18
8. Boss Xúc Tu (Tentacle Boss)............................................................19
9. Quái vật 2 (Boss2)..............................................................................19
10. Thiên thạch cỡ lớn(Big Asteroid)...................................................20
11. Thiên thạch cỡ vừa(Medium Asteroid).........................................21
12. Thiên thạch cỡ nhỏ(Small Asteroid).............................................21
II. Danh Sách Actor................................................................................... 22
III. Danh Sách Usecase............................................................................. 24
IV. Đặc Tả Usecase.................................................................................... 26
1. Mở màn hình chính(Main Menu)......................................................26
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)..........................................................................28
6. Thoát game........................................................................................ 28
7. Tiếp tục chơi...................................................................................... 29
8. Nâng cấp vũ khí................................................................................. 29
9. Hồi phục năng lượng........................................................................30
10. Điều khiển máy bay........................................................................31
11. Thu thập vật phẩm.........................................................................31
12. Tấn công người chơi.......................................................................32
13. Di chuyển......................................................................................... 32
14. Nhận sát thương............................................................................. 33
15. Bị tiêu diệt....................................................................................... 33
16. Phân chia.......................................................................................... 34
CHƯƠNG 3: THIẾT KẾ DỮ LIỆU.....................................................................35
CHƯƠNG 4: THIẾT KẾ CẤU TRÚC.................................................................37
I. Vịng Lặp Game...................................................................................... 37
II. Tiến Trình Game.................................................................................... 37
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN................................................................38
I. Danh Sách Giao Diện............................................................................. 38
II. Chi Tiết Giao Diện................................................................................. 38
1. Màn hình chính(Main Menu).............................................................38
2. Màn hình tạm dừng(Pause Menu)...................................................39
3. Giao diện cửa hàng(Shop)................................................................40
4. Thanh trạng thái vũ khí(Weapon State Bar).................................41
5. Thanh trạng thái nhiên liệu(Fuel State Bar).................................41
6. Thanh hiển thị điểm, tiền và mạng(HUD)......................................41
7. Màn hình tùy chọn(Option)...............................................................41
8. Màn hình chíến thắng(Winning Scene)..........................................42
9. Màn hình thua cuộc(Game Over Scene).........................................43
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ả
1
đạ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.
CHƯƠNG 1: GIỚI THIỆU
I. Thơng Tin Chung
1. Thơng tin nhóm
MSSV
2052195
2
2052084
Họ tên
Nguyễn Văn Thiên
Số điện
thoại
0326 933
046
Nguyễn Duy Minh
5
Email
du.vn
Tuấn
Bảng 1.1: Thông tin nhóm
du.vn
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
2
Hình 1.1: Unity
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
3
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 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, …).
4
….
3.3 Github
Hình 1.3: Github
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.
5
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, người chơi có thể
Player
điều khiển nó theo những
Hình 1.4: Player
luật trong trị chơi.
Là một kẻ địch trong
game người chơi phải đối
Enemy1
đầu, nó có khả năng bắn
Hình 1.5: Enemy1
ra 1 tia đạn màu xanh lá
chết chóc.
Là một kẻ địch trong
game người chơi phải đối
đầu, nó có khả năng bắn
Enemy2
ra 2 tia đạn màu xanh
Hình 1.6: Enemy2
dương, có sức cơng phá
lớn hơn Enemy1.
Là một kẻ địch trong
game người chơi phải đối
đầu, nó có khả năng bắn
Enemy3
ra 3 tia đạn màu đỏ, có
Hình 1.7: Enemy3
6
sức cơng phá lớn hơn so
với Enemy2.
Là một kẻ địch trong
game người chơi phải đối
đầu, nó có khả năng bắn
Enemy4
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ó khả năng bắn
Enemy5
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 người chơi
Boss1
dính địn bị dính hiệu ứng
(bị tê liệt, bị di chuyển
Hình 1.10: Boss1
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
Boss2
game người chơi phải đối
đầu, nó có khả năng cast
skill làm cho người chơi
dính địn bị dính hiệu ứng
Hình 1.11: Boss2
(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
7
Boss1.
Là một quái vật trong
game người chơi phải đối
Tentacle Boss
(không có hình)
đầu, bao 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
Coin
để nâng cấp vũ khí, hồi
Hình 1.9: Coin
phục năng 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
Fuel
lượng cho phi thuyền. Có
Hình 1.10: Fuel
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ũ
Star
Hình 1.11: Star
khí. Có tỉ lệ rớt khi người
chơi tiêu diệt kẻ địch,
thiên thạch.
Là một thực thể trơi nổi
BigAsteroid
ngồi khơng gian bao la,
người chơi phải né tránh
nếu khơng muốn phi
Hình 1.12: Big
Asteroid
8
thuyền bị tan tành. Khi
bắn 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
MediumAstero
nếu khơng muốn phi
id
Hình 1.13: Medium
Asteroid
thuyền bị tan tành. Khi
bắn 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,
SmallAsteroid
Hình 1.14: Small
người chơi phải né tránh
nếu khơng muốn phi
Asteroid
thuyền bị tan tành.
Là một loại phóng xạ
Bullet1
được bắn ra bởi Enemy1.
Hình 1.15: Bullet1
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 bởi Enemy2.
Bullet2
Hình 1.16: Bullet2
Người chơi phải 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
Bullet3
Enemy3. Người chơi phải
Hình 1.17: Bullet3
né tránh nếu muốn tồn
tại.
Là một loại tia đạn được
BulletDefault
bắn ra bởi player. Người
Hình 1.18: Bullet
9
chơi phải cố gắng dùng
Default
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 cố gắng dùng
Laser
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
Missle
Hình 1.19: Missle
phải cố gắng dùng 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
CircleShootin
g
Hình 1.20:
CircleShooting
bởi người 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.
Là một kỹ năng được
DivineDepartu
re
cast bởi người chơi hoặc
Hình 1.21:
DivineDeparture
boss, nó gây sát thương
cực lớn.
ElectricitySho
Là một kỹ năng được
oting
cast bởi người chơi hoặc
Hình 1.22:
10
boss, nó gây sát thương
ElectricityShooting
và làm cho kẻ dính bị tê
liệt trong giây lát.
Là một kỹ năng được
EnergyWave
cast bởi người chơi hoặc
Hình 1.23:
EnergyWave
boss, nó gây sát thương
lên kẻ dính.
Là một kỹ năng giúp
Invincible
SectorShootin
g
Hình 1.24:
người chơi miễn nhiệm
Invincible
hiệu ứng và sát thương.
Là một phiên bản nâng
Hình 1.25:
SectorShooting
cấp của
ElectricityShooting.
Là một thanh hiển thị
FuelStateBar
Hình 1.26:
FuelStateBar
HP Bar
Hình 1.27: HP Bar
tráng thái năng lượng
của người chơi.
Là một thanh hiển thị HP
của Boss.
Là một thanh hiển thị
HUD
Hình 1.28: HUD
điểm, mạng, và coin của
người chơi.
WeaponState
Bar
Hình 1.29:
WeaponStateBar
11
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.
u cầu về tính tương thích: có thể chơi ổn định trên Windows
10.
CHƯƠNG 2: USE CASE
I. Biểu Đồ
1. Người chơi(Player)
12
Hình 2.1: Player Usecase Diagram
2. Kẻ địch thơng thường 1(Enemy1)
13