Tải bản đầy đủ (.docx) (58 trang)

Spaceship invaders

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 (1.44 MB, 58 trang )

ĐẠ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



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×