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

Đồ án xây dựng game 2d top down bằng unity

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

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1

Đề tài: XÂY DỰNG GAME 2D TOP-DOWN BẰNG
UNITY
Giảng viên hướng dẫn:
Trần Anh Dũng
Sinh viên thực hiện:
Đặng Đình Dũng

Thành phố Hồ Chí Minh
ngày 1 tháng 7 năm 2023

20520456


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................


...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
......................., ngày ............. tháng ………. năm 2023
Người nhận xét


LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn đến tập thể quý thầy cô của Trường
Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí
Minh và q thầy cơ của Khoa Cơng nghệ Phần mềm đã giúp chúng em
có những kiến thức nền tảng để thực hiện đề tài này.

Em xin gửi lời cảm ơn tới thầy Trần Anh Dũng, là người đã trực tiếp
hướng dẫn nhóm thực hiện đồ án, hướng dẫn tận tình và đóng góp nhiều ý
kiến q báu giúp chúng em hồn thành tốt báo cáo của mình.

Trong thời gian thực hiện đề tài, em đã vận dụng những kiến thức
nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và tiếp thu những
kiến thức mới. Em đã cố gắng vận dụng những gì đã thu thập được để
hồn thành đồ án tốt nhất có thể. Tuy nhiên, trong q trình thực hiện, vẫn
khơng tránh khỏi những thiếu sót, chúng em mong nhận được sự thơng
cảm và góp ý chân thành từ các thầy cơ.

Em xin trân trọng cảm ơn ạ.


Mục lục

ĐỀ CƯƠNG CHI TIẾT .................................................................................... 1
NỘI DUNG ĐỒ ÁN ........................................................................................... 6
CHƯƠNG 1: GIỚI THIỆU CHUNG .............................................................. 6
1.1.

Tổng quan đề tài ................................................................................ 6

1.2.

Lý do chọn đề tài ................................................................................ 6

1.3.

Mục tiêu của đề tài ............................................................................. 7

1.4.

Đối tượng nghiên cứu ........................................................................ 7

1.5.

Phạm vi nghiên cứu ........................................................................... 7

1.6. Mã nguồn: ........................................................................................... 8
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG ........................................................ 8
2.1.

Unity và Unity2D URP ...................................................................... 8

2.1.1.


Về Unity ........................................................................................ 8

2.1.2.

Về Unity2D URP ........................................................................ 13

2.2.

C# ....................................................................................................... 15

2.3.

Inky.................................................................................................... 16

2.3.1.

Inky – the editor......................................................................... 16

2.3.2.

ink – the language ...................................................................... 17

2.4.

Microsoft Visual Studio ................................................................... 18

2.5.

Github ............................................................................................... 19


CHƯƠNG 3: XÂY DỰNG GAME 2D TOPDOWN .................................... 20
3.1.

Tổng quan ......................................................................................... 20

3.1.1.

Tên game .................................................................................... 20

3.1.2.

Thể loại ....................................................................................... 20

3.2.

Lối chơi (Gameplay) ........................................................................ 21

CHƯƠNG 4: ĐẶC TẢ USE-CASE................................................................ 21


4.1.

Sơ đồ Use-Case ................................................................................. 21

4.2.
4.3.

Danh sách tác nhân .......................................................................... 22
Danh sách Use case .......................................................................... 23


4.4.

Mô tả chi tiết Use case ..................................................................... 25

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG .............................. 36
5.1.

Danh sách màn hình ........................................................................ 36

5.2.

Mơ tả chi tiết từng màn hình .......................................................... 37

5.2.1.

Menu Scene ................................................................................ 37

5.2.2.

Game Scene ................................................................................ 38

5.2.3.

Dungeon Scene ........................................................................... 45

5.2.4.

Shop Scene .................................................................................. 46


5.2.5.

Potion Shop Scene...................................................................... 49

5.2.6.

Guild Scene................................................................................. 50

5.2.7.

Black Smith Scene ..................................................................... 53

CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ ...................................................... 55
6.1.

Môi trường cài đặt và kiểm thử ...................................................... 55

6.2. Kết quả kiểm thử ............................................................................. 56
CHƯƠNG 7: TỔNG KẾT .............................................................................. 57
7.1.

Kết quả đạt được.............................................................................. 57

7.1.1.

Thành quả .................................................................................. 57

7.1.2.

Hạn chế ....................................................................................... 57


7.2.

Hướng phát triển.............................................................................. 57

TÀI LIỆU THAM KHẢO ............................................................................... 59


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Xây dựng game 2D Top Down với Unity
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện : Từ ngày 27/2/ 2023 đến ngày kết thúc Đồ Án 1
Sinh viên thực hiện:
Đặng Đình Dũng – 20520456
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện, kết
quả mong đợi của đề tài)
4.4.1 Lý do chọn đề tài
Ngày nay, ngành công nghiệp game đang ngày càng phát triển và chiếm một phần
lớn trong nền kinh tế của thế giới. Với sự phát triển của các nền tảng công nghệ và

nhu cầu giải trí ngày càng tăng cao của con người, game được tìm đến như cơng cụ
dùng để giải trí sau những ngày làm việc căng thẳng, cũng như rèn luyện tính kiên
trì và khả năng quan sát tính tốn nhanh nhạy. Tuy hiện nay việc phát hành và phổ
biến game ở Việt Nam đang trở nên dễ dàng và dễ tiếp cận đối với người dùng
nhưng hầu hết đều là game của nước ngồi, khơng thực sự có nhiều game được
phát triển bởi người Việt. Do đó, em quyết định chọn đề tài này để thử sức mình
trong việc phát triển một game 2D top down nhỏ.
4.4.2 Mục tiêu

1


-

Hiểu rõ và phát triển được một game với phần mềm Unity

-

Tạo ra một sản phẩm game đáp ứng được nhu cầu của nhiều người chơi.

-

Thể loại game : Indie, Top Down, hành động, mô phỏng, nhập vai

4.4.3 Phạm vi
Phạm vi mơi trường: máy tính
Phạm vi chức năng :
-

Người chơi sở hữu các kỹ năng đặc biệt


-

Người chơi có 5 chỉ số: máu, tấn cơng, phịng thủ, nhanh nhẹn, tấn cơng
đặc biệt

-

Bản đồ có cơ chế ngày đêm, liền mạch khơng ngắt qng

-

Người chơi sẽ có 3 thanh trạng thái: năng lượng, máu, thể lực
● Thanh năng lượng hiển thị lượng năng lượng hiện có của người
chơi, sẽ tiêu hao khi người chơi xài kĩ năng và có thể hồi lại theo
thời gian hoặc sử dụng vật phẩm
● Thanh máu để hiển thị lượng máu hiện tại của người chơi, mất
khi người chơi bị quái đánh trúng và sẽ hồi khi người chơi sử
dụng vật phẩm
● Thanh thể lực hiển thị thể lực hiện có của người chơi,thanh thể
lực sẽ giảm khi người chơi tấn công và sẽ hồi lại từ từ nếu người
chơi tạm ngừng đánh quái, nghỉ ngơi hoặc dùng vật phẩm

-

Người chơi có thể thực hiện các nhiệm vụ nhận từ công hội cũng như các
nhiệm vụ ủy thác từ NPC

-


Cơ chế tiền tệ dùng để mua vật phẩm, mua trang bị, thức ăn, vũ khí. Tiền
có thể kiếm được từ việc nhận nhiệm vụ ở công hội, bán vật phẩm nhặt
được khắp bản đồ hoặc rơi ra khi hạ gục quái

-

Người chơi có thể tương tác với NPC của thị trấn để tăng độ hào cảm

-

Việc hồn thành nhiệm vụ nhận từ cơng hội có thể nhận thêm tiền và kinh
nghiệm để có thể thăng cấp hạng mạo hiểm

-

Game chỉ có thể lưu khi người chơi ngủ để kết thúc 1 ngày

2


4.4.4 Đối tượng
-

Những người có đam mê với game nói chung và dịng game top down nói riêng.

4.4.5 Phương pháp thực hiện
-

Làm việc cá nhân dưới sự hướng dẫn của giáo viên hướng dẫn thơng qua
phương thức online và offline.


-

Tìm hiểu cách làm game bằng cơng cụ Unity Engine

-

Tìm hiểu q trình phát triển và hồn thiện một game

-

Tìm hiểu các thuật ngữ được sử dụng nhiều trong game để có thể thiết kế sức
mạnh và chỉ số nhân vật.

-

Sử dụng aseprite để hỗ trợ cho việc thiết kế game asset

4.4.6 Nền tảng và môi trường phát triển game
-

Nền tảng: Windows

-

Môi trường: Unity

-

Công cụ quản lý source code: Github, git


-

Ngôn ngữ: C#

-

Công cụ phát triển: visual studio 2022

-

Công cụ thiết kế: aseprite(game asset)

4.4.7 Kết quả mong đợi
-

Xây dựng được hoàn chỉnh một game Topdown có cơ chế tương tác với NPC
tăng điểm hào cảm, hệ thống ngày đêm, cơ chế thăng cấp hạng và một thế giới
liền mạch trên nền tảng PC

-

Game chạy ổn định, mượt mà, khơng địi hỏi cấu hình cao

4.4.8 Hướng phát triển của đề tài.
-

Mở rộng thêm bản đồ

-


Thêm cơ chế nghề nghiệp cho người chơi tùy ý phát triển

-

Cải thiện chất lượng đồ họa, đổ bóng, độ chi tiết của asset

-

Đa dạng hóa hệ thống môi trường, thêm thời tiết, sự kiện

-

Thêm chế độ coop nhiều người chơi

-

Nâng cao thuật toán của quái để người chơi có thể nâng cao trải nghiệm

3


4.4.9 Kế hoạch làm việc
Thời gian thực hiện: từ ngày 10/03/2023 cho đến ngày 17/06/2023. Kế hoạch thực hiện
đồ án nhóm chia thành 8 sprint (mỗi sprint kéo dài từ 1 – 2 tuần):
Sprint

Thời gian

Sprint 1


10/03/2023 - 17/03/2023

Công việc dự kiến
Đăng ký đề tài
Viết tài liệu, đề cương chi
tiết

Sprint 2

17/03/2023 - 31/03/2023

Chuẩn bị công nghệ
Lên ý tưởng thiết kế
Chuẩn bị tài liệu mô tả
(gameplay, đối tượng, cấu
trúc trong game)

Sprint 3

31/03/2023 - 14/04/2023

Thiết kế giao diện
Xây dựng map
Thiết kế nhân vật

Sprint 4

14/04/2023 - 28/04/2023


Lập trình gameplay cơ bản
Xây dựng bản đồ
Chuẩn bị báo cáo tiến độ
giữa kỳ

Sprint 5

28/04/2023 - 12/05/2023

Tiếp tục hoàn thiện thiết kế
nhân vật, map, vật phẩm và
xây dựng cơ chế gameplay
Kiểm thử game

Sprint 6

12/05/2023 - 26/5/2023

Tiếp tục hoàn thiện thiết kế
nhân vật, map, vật phẩm và
xây dựng cơ chế gameplay

4


Kiểm thử game
Sprint 7

26/05/2023 - 09/06/2023


Xây dựng danh sách vật
phẩm
Cài đặt Game Setting
Hoàn thiện lối chơi

Sprint 8

09/06/2023 - 17/06/2023

Kiểm thử game lần cuối
Triển khai game
Hoàn thành báo cáo đồ án
cuối kỳ

Xác nhận của CBHD

TP. HCM, ngày 10 tháng 3 năm 2023

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

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

Đặng Đình Dũng

5


NỘI DUNG ĐỒ ÁN
CHƯƠNG 1: GIỚI THIỆU CHUNG

1.1. Tổng quan đề tài
Tên đề tài: Lập trình Game 2D Top down trên Unity.
Nền tảng công nghệ: Unity Engine, Microsoft Visual Studio 2022
Môi trường phát triển: Desktop
1.2. Lý do chọn đề tài
Ngày nay, ngành công nghiệp game đang ngày càng phát triển và chiếm một phần
lớn trong nền kinh tế của thế giới. Với sự phát triển của các nền tảng công nghệ và nhu
cầu giải trí ngày càng tăng cao của con người, game được tìm đến như cơng cụ dùng
để giải trí sau những ngày làm việc căng thẳng, cũng như rèn luyện tính kiên trì và khả
năng quan sát tính tốn nhanh nhạy. Tuy hiện nay việc phát hành và phổ biến game ở
Việt Nam đang trở nên dễ dàng và dễ tiếp cận đối với người dùng nhưng hầu hết đều
là game của nước ngồi, khơng thực sự có nhiều game được phát triển bởi người Việt.
Do đó, em quyết định chọn đề tài này để thử sức mình trong việc phát triển một game
2D top down nhỏ.
Top-down perspective, đơi khi cịn được gọi là chế độ xem toàn cảnh, chế độ xem
từ trên cao hoặc chế độ xem trực thăng, khi được sử dụng trong trò chơi điện tử đề cập
đến một góc camera hiển thị người chơi và khu vực xung quanh họ từ trên cao. Mặc dù
khơng dành riêng cho các trị chơi điện tử sử dụng phép chiếu song song, nhưng nó đã
từng phổ biến trong các trò chơi điện tử nhập vai 2D, trị chơi chiến tranh và các trị
chơi mơ phỏng quản lý và xây dựng như SimCity, Pokémon và Railroad Tycoon, cũng
như trong hành động và phiêu lưu hành động chẳng hạn như các trò chơi The Legend
of Zelda và Grand Theft Auto đời đầu. Những trò chơi điện tử mang phong cách Topdown thường thu hút người chơi bởi nó mang lại cảm giác thế giới rộng lớn, di chuyển
tự do, thu hút người chơi với nội dung theo cốt truyện hấp dẫn, dường như mang đến
cho người chơi một thế giới tưởng tượng kỳ thú và cho phép họ sống trong đó.

6


Unity là một trong những Game Engine phổ biến nhất hiện nay, là một “crossplatform game engine” có thể hiểu như là một công cụ phát triển game đa nền tảng
được phát triển bởi Unity Technologies. Game Engine này được sử dụng để phát triển

các tựa game trên PC, consoles, các thiết bị di động cũng như trên websites. Unity được
cho ra mắt lần đầu tại sự kiện Apple’s World Wide Developer Conference bởi nhà sáng
lập David Helgason vào năm 2005. Vào năm 2014, Unity thắng giải “Best Engine” tại
giải UK’s annual Develop Industry Excellence. Một số game nổi tiếng sử dụng Unity
Engine như: Pokémon Go, Heartstone, Ori And The Blind Forest, Monument Valley,
Axie Infinity, … Độ “phủ sóng” của Unity rộng đến mức có thể áp dụng đại trà cho
nhiều dòng Game khác nhau từ game Triple A (AAA) “hạng nặng” cho đến những
Game giáo dục đơn giản dành cho trẻ em.
1.3. Mục tiêu của đề tài
Mục tiêu nghiên cứu: Tìm hiểu, hiểu rõ Unity Engine và xây dựng được ứng dụng
game 2D Top-down.
Nhiệm vụ nghiên cứu:
• Viết đề cương chi tiết, viết báo cáo.
• Phân tích bối cảnh, thiết kế gameplay
• Tra cứu tài liệu, nghiên cứu, tìm hiểu cách sử dụng Unity và cách xây
dựng một game 2D Top-down bằng Unity Engine.
1.4. Đối tượng nghiên cứu
Công nghệ: Unity Engine, C#, Visual Studio 2022
Những người có đam mê với game nói chung và dịng game Top-down nói
riêng.
1.5. Phạm vi nghiên cứu
Đề tài chủ yếu tập chung vào xây dựng và hồn thiện gameplay cơ bản của dịng
game Top-down.
Đồ họa và cốt truyện cũng là một trong những khía cạnh quan trọng mang đến sự
thu hút của một game. Tuy nhiên vì giới hạn về nhân lực và kiến thức, kỹ năng thiết kế

7


đồ họa nên em chỉ tập trung vào mảng gameplay của game, còn đồ họa ở mức thân

thiện với người chơi.
1.6. Mã nguồn:
-

Github: DANGDINHDUNG/GAME_2D_TOPDOWN-UNITY (github.com)

CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
2.1. Unity và Unity2D URP
2.1.1. Về Unity

Hình 1: Logo Unity
Unity là một cơng cụ trị chơi 3D/2D và IDE đa nền tảng mạnh mẽ dành cho các
nhà phát triển. Là một cơng cụ trị chơi, Unity có thể cung cấp nhiều tính năng tích hợp
quan trọng nhất giúp trị chơi hoạt động. Nó bao gồm những thứ như vật lý, kết xuất
3D và phát hiện va chạm.
Cũng như một công cụ trò chơi, Unity là một IDE. IDE là viết tắt của "mơi trường
phát triển tích hợp", mơ tả một giao diện cho phép bạn truy cập vào tất cả các công cụ
bạn cần để phát triển ở một nơi. Phần mềm Unity có trình chỉnh sửa trực quan cho phép
người sáng tạo chỉ cần kéo và thả các phần tử vào cảnh, sau đó thao tác với các thuộc
tính của chúng.
Unity cũng cung cấp một loạt các tính năng và cơng cụ hữu ích khác: chẳng hạn
như khả năng điều hướng qua các thư mục trong dự án hoặc tạo các animations thông
qua timeline tool.

8


Khi nói đến việc coding, Unity sẽ tự động chuyển sang các trình duyệt code thay
thế mà người dùng chọn. Tùy chọn phổ biến nhất là Visual Studio của Microsoft.
Unity sử dụng ngơn ngữ lập trình C# để xử lý các đoạn code và logic với rất nhiều

class và API. Người dùng cũng có thể xử lý các cơng việc trên Unity mà khơng cần
phải code q nhiều. Điều đó cho thấy rằng, việc hiểu rõ cách thức sử dụng Unity sẽ
có thể tạo ra nhiều tùy biến khác nhau trong việc phát triển ứng dụng và Unity sẽ mang
đến cho người dùng sự linh hoạt để thay đổi hầu hết mọi thứ.
Những ưu điểm của Unity:
-

Chức năng cốt lõi đa dạng bao gồm: cung cấp cơng cụ dựng hình (kết
xuất đồ họa) cho các hình ảnh 2D hoặc 3D, cơng cụ vật lý (tính tốn và
phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo,
phân luồng, tạo dò nguồn dữ liệu xử lý, quản lí bộ nhớ, dựng ảnh đồ thị
và kết nối mạng. Nhờ có các engine mà cơng việc làm game trở nên ít
tốn kém và đơn giản hơn.

-

Hỗ trợ đa nền tảng: một trong các thế mạnh của Unity chính là khả năng
hỗ trợ gần như toàn bộ các nền tảng hiện có.

-

Dễ sử dụng: Unity được built trong một mơi trường phát triển tích hợp,
cung cấp một hệ thống tồn diện cho các lập trình viên, từ soạn thảo mã
nguồn, xây dựng cơng cụ tự động hóa đến trình sửa lỗi. Do được hướng
đến đồng thời cả lập trình viên không chuyên và studio chuyên nghiệp,
nên Unity khá dễ sử dụng.

-

Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine

cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới 100.000
USD/năm. Với bản Pro, người dùng phải trả 1.500 USD/năm – một con
số rất khiêm tốn so với những gì engine này mang lại.

9


Các thành phần trong Unity Editor:

Hình 2: Các thành phần cơ bản trong Unity Editor
1. Cửa sổ Scenes
o Phần này hiển thị các đối tượng trong scenes một các trực quan, có thể
lựa chọn các đối tượng, kéo thả, phóng to, thu nhỏ, xoay đối tượng …
o Phần này có để thiết lập một thông số như hiển thị ánh sáng, âm thanh,
cách nhìn 2D hay 3D …
o Khung nhìn Scenes là nơi bố trí các Game Object như cây cối, cảnh
quan, enemy, player, camera,… trong game. Sự bố trí hoạt cảnh là một
trong những chức năng quan trọng nhất của Unity.
2. Cửa sổ Hierarchy
o Tab hierarchy là nơi hiển thị các Game Object trong Scenes hiện hành.
Khi các đối tượng được thêm hoặc xóa trong Scenes, tương ứng với
các đối tượng đó trong cửa sổ Hierarchy.
o Tương tự trong tab Project, Hierarchy cũng có một thanh tìm kiếm
giúp quản lý và thao tác với các Game Object hiệu quả hơn đặc biệt là
với các dự án lớn.
3. Cửa sổ Game
o Đây là màn hình demo Game, là góc nhìn từ Camera trong game.

10



o Thanh công cụ trong cửa sổ Game cung cấp các tùy chỉnh về độ phân
giải màn hình, thơng số (stats), gizmo, tùy chọn bật tắt các
component…
4. Cửa sổ Project
o Đây là cửa sổ Explorer của Unity, hiển thị thông tin của tất cả các tài
nguyên (Assets) trong game.
o Cột bên trái hiển thị assets và các mục yêu thích dưới dạng cây thư
mục tương tự như Windows Explorer. Khi click vào một nhánh trên
cây thư mục thì tồn bộ nội dung của nhánh đó sẽ được hiển thị ra ở
khung bên phải.
o Ta có thể tạo thư mục mới bằng cách Right Click -> Create -> Folder
hoặc ấn vào nút Create ở góc trên bên trái cửa sổ Project và chọn
Folder. Các tài nguyên khác trong game cũng có thể được tạo bằng
cách này.
o Đường dẫn của thư mục tài nguyên hiện tại. Chúng ta có thể dễ dàng
tiếp cận các thư mục con hoặc thư mục gốc bằng cách Click chuột vào
mũi tên hoặc tên thư mục.
5. Cửa sổ Inspector
o Cửa sổ Inspector hiển thị chi tiết các thông tin về Game Object đang
làm việc, kể cả những component được đính kèm và thuộc tính của
nó. Bạn có thể điều chỉnh, thiết lập mọi thông số và chức năng của
Game Object thông qua cửa sổ Inspector.
o Mọi thuộc tính thể hiện trong Inspector đều có thể dễ dàng tùy chỉnh
trực tiếp mà không cần thông qua một kịch bản định trước. Tuy nhiên
Scripting API cung cấp một số lượng nhiều và đầy đủ hơn do giao diện
Inspector có giới hạn.
o Các thiết lập Inspector cũng thể hiện mọi thông số Import Setting của
asset đang làm việc như hiển thị mã nguồn của Script, các thông số
Animator, Rect transform, Sprite Renderer,…


11


Các khái niệm cơ bản :
• GameObject: Một đối tượng cụ thể trong game gọi là một gameobject,
có thể là player, enemy, đồ vật nào đó. Ví dụ : cây cối, đường xá, nhà
cửa,…
• Component: Một GameObject sẽ có nhiều thành phần cấu tạo nên nó
như là Sprite Renderer, tập hợp các hoạt ảnh hành động (Animator),
thành phần xử lý va chạm (Collision), tính tốn vật lý (Rigidbody), các
thành phần khác…Mỗi thứ như vậy gọi là một component của
GameObject.
• Sprite: Là một hình ảnh 2D của một Game Object, có thể là hình ảnh đầy
đủ, hoặc có thể là một bộ phận nào đó.
• Animation: Là tập các hình ảnh động dựa trên sự thay đổi liên tục của
nhiều Sprite khác nhau.
• Key Frame: Key Frame hay Frame là một trạng thái của một animation.
Có thể được tạo nên từ 1 Sprite hay nhiều Sprite khác nhau.
• Prefabs: Là một khái niệm trong Unity, dùng để sử dụng các đối tượng
giống nhau có trong game mà chỉ cần khởi tạo lại các giá trị vị trí, tỉ lệ
biến dạng và góc quay từ một đối tượng ban đầu.
• Sounds: Âm thanh trong game.
• Script: Là tập tin chứa các đoạn mã nguồn, dùng để khởi tạo và xử lý các
đối tượng trong game. Trong Unity có thể dùng C#, Java Script, BOO để
lập trình Script.
• Scenes: Quản lý tất cả các đối tượng trong một màn chơi của Game.
• Assets: Bao gồm tất cả những gì phục vụ cho dự án game như Sprite,
Animation, Sound, Script, Scenes,…
• Camera: Là một game object đặc biệt trong Scene, dùng để xác định tầm

nhìn, quan sát các đối tượng khác trong game.
• Transform: Là 3 phép biến đổi tịnh tiến, quay theo các trục và phóng to
thu nhỏ một đối tượng.

12


2.1.2. Về Unity2D URP
Unity2D URP là một trong những Template được khởi tạo khi tạo một Project
mới. Giống như Unity2D, Unity2D được sử dụng để tạo những game có phong cách
đồ họa 2D. Ngồi ra, Unity2D được tích hợp sẵn Universal Render Pipeline(URP),
khi sử dụng URP với 2D Renderer, thành phần Light2D giới thiệu cách áp dụng ánh
sáng được tối ưu hóa 2D cho Sprites.
Các loại ánh sáng khác nhau sẽ xuất hiện để người dùng có thể lựa chọn trong
thành phần Light2D. Những loại ánh sáng hiện tại có sẵn trong gói là:

Hình 3: Các loại ánh sáng trong 2D URP
• Freeform: tạo ánh sáng từ đa giác có thể chỉnh sửa bằng trình chỉnh
sửa spline.

Hình 4: Freeform Light 2D Inspector

13


Hình 5: Freeform trong chế độ Edit

Hình 6: Ánh sáng đầu ra

• Sprite: tạo ánh sáng dựa trên Sprite đã chọn bằng cách gán Sprite đã

chọn cho thuộc tính Sprite bổ sung.

Hình 7: Sprite Light 2D Inspector

Hình 8: Sprite được chọn

Hình 9: Ánh sáng đầu ra

• Parametric: loại ánh sáng này hiện tại không được dùng nữa. Để
chuyển đổi từ Parametric lights to Freeform lights, Edit > Rendering >
Lights > Upgrade Project > Scene URP Parametric lights to Freeform.

14


• Point: Chọn loại Spot light để kiểm soát tốt góc và hướng của ánh sáng
đã chọn với các thuộc tính bổ sung.

Hình 10: Spot Light 2D Inspector

Hình 11: Point Light trong chế độ Edit

Hình 12: Ánh sáng đầu ra

• Global: chiếu sáng tất cả các đối tượng trên các lớp phân loại được
nhắm mục tiêu (Targeted sorting layers). Chỉ có thể sử dụng một loại
Global Light mỗi Blend Style, và mỗi lớp phân loại.

2.2. C#


15


Hình 13: C# Logo
C# (hay C sharp) là một ngơn ngữ lập trình đơn giản, được phát triển bởi đội ngũ
kỹ sư của Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng
và được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.
Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được biên
dịch trực tiếp thành mã thực thi của hệ điều hành.
Trong các ứng dụng sử dụng .NET Framework, mã nguồn chương trình (C#,
VB.NET) được biên dịch thành mã ngôn ngữ trung gian MSIL (Microsoft intermediate
language).
Sau đó mã này được biên dịch bởi Common Language Runtime (CLR) để trở
thành mã thực thi của hệ điều hành.

2.3. Inky
2.3.1. Inky – the editor

16


Hình 14: Giao diện Inky
Plugin cung cấp cho bạn mọi thứ bạn cần để bắt đầu viết tay trong Unity. Nó tự
động biên dịch lại các tập tin viết tay khi bạn chỉnh sửa chúng và thậm chí đi kèm với
một trình xem trước đơn giản cho phép bạn phát các câu chuyện trực tiếp trong Trình
chỉnh sửa mà khơng cần viết một dịng mã nào.
Màn hình Inky chia làm 2 phần, phần bên trái để nhập code (dùng ngôn ngữ ink
để nhập), cịn màn hình bên phải để hiển thị kết quả. Phía trên của màn hình bên phải
có 2 nút mũi tên dùng để lùi đoạn hội thoại về hội thoại trước đó hoặc reset tồn bộ
đoạn hội thoại.

2.3.2. ink – the language
ink là ngôn ngữ kịch bản được xây dựng dựa trên ý tưởng đánh dấu văn bản thuần
túy bằng dòng chảy để tạo ra các tập lệnh tương tác. Ở mức cơ bản nhất, nó có thể được
sử dụng để viết một câu chuyện theo phong cách Chọn của riêng bạn hoặc một cây đối
thoại phân nhánh. Nhưng sức mạnh thực sự của nó là viết các đoạn đối thoại với nhiều
lựa chọn và nhiều sự kết hợp lại của dòng chảy. ink cung cấp một số tính năng để cho
phép những người viết khơng có kỹ thuật phân nhánh thường xuyên và giải quyết hậu
quả của các nhánh đó, theo cả cách nhỏ và cách chính, mà khơng gây phiền phức. Kịch
bản nhằm mục đích rõ ràng và được sắp xếp hợp lý, vì vậy có thể kiểm tra các đoạn
hội thoại phân nhánh "bằng mắt". Luồng được mô tả theo kiểu khai báo nếu có thể. Nó

17


cũng được thiết kế với mục đích phác thảo lại; vì vậy việc chỉnh sửa một luồng phải
nhanh chóng.
2.4. Microsoft Visual Studio

Hình 15: Logo Microsoft Visual Studio
Microsoft Visual Studio là một mơi trường phát triển tích hợp (IDE)
từ Microsoft. Microsoft Visual Studio cịn được gọi là "Trình soạn thảo mã nhiều người
sử dụng nhất thế giới ", được dùng để lập trình C++ và C# là chính. Nó được sử dụng
để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web,
các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần
mềm của Microsoft như Windows API, Windows Forms, Windows Presentation
Foundation, Windows Store và Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn
ngữ máy và mã số quản lý.
Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải
tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và
gỡ lỗi mức độ máy. Cơng cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức

xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ
liệu. Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm
hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công

18


cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công
cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm.
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên
tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngơn ngữ lập trình. Các
ngơn

ngữ

tích

hợp

gồm

có C, C++ và C++/CLI (thông

qua Visual

C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như
của Visual

Studio


2010).

Hỗ

trợ

cho

các

ngôn

ngữ

khác

như J++/J#, Python và Ruby thơng qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ
trợ XML/XSLT, HTML/XHTML, JavaScript và CSS.
Microsoft cung cấp phiên bản "Express" (đối với phiên bản Visual Studio 2013
trở về trước) và "Community" (đối với bản Visual Studio 2015 trở về sau) là phiên bản
miễn phí của Visual Studio.
2.5. Github

Hình 16: Logo Github
GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động giống như
một mạng xã hội cho lập trình viên. Các lập trình viên có thể clone lại mã nguồn từ một
repository và Github chính là một dịch vụ máy chủ repository cơng cộng, mỗi người
có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc.

19



Github cung cấp các tính năng social networking như feeds, followers, và
network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử
commit.
Nếu một comment để mô tả và giải thích một đoạn code. Thì với Github, commit
message chính là phần mơ tả hành động mà bạn thực hiện trên source code.
Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồn mở.
Cùng với Linkedin, Github được coi là một sự thay thế cho CV của bạn. Các nhà tuyển
dụng cũng rất hay tham khảo Github profile để hiểu về năng lực coding của ứng viên.
CHƯƠNG 3: XÂY DỰNG GAME 2D TOPDOWN
3.1.

Tổng quan

3.1.1. Tên game
Reincarnation – Chuyển sinh
3.1.2. Thể loại
Reincarnation thuộc thể loại game nhập vai RPG, người chơi sẽ điều khiển
nhân vật trong một bản đồ rộng lớn với góc nhìn Top-down. Trên bản đồ sẽ bao
gồm các vật thể cố định như núi, rừng, cây cối, nhà cửa và cả những NPC (Non
playing character) cũng với những quái vật xuất hiện rải khác khắp nơi có khả
năng tấn cơng người chơi với những chỉ số máu và tấn công xác định. Người
chơi sẽ tiêu diệt quái vật bằng cách chém hoặc tung kĩ năng trúng những con
qi. Ngồi ra game có những yếu tố cần thiết của những game RPG như cơ chế
nhiệm vụ, giao dịch, chế tạo.

20



×