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

90 9 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo đồ án 2 xây dựng game 2d top down bằng unity

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

ĐẠ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ẦNMỀM

Trang 2

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

Trang 3

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à quý 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 và Đinh Nguyễ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 quý báu giúp chúng em hoà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 để hoàn thành đồ án tốt nhất có thể Tuy nhiên, trong quá 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 ạ

Trang 4

1.2.Lý do chọn đề tài6

2.1.1.Về Unity 82.1.2.Về Unity 2D URP 13

Trang 5

5.1.Phân tích thiết kế42

5.1.1.Class diagram 42

5.1.2.Danh sách các class 44

5.2.State diagram515.2.1 Player State 52

Trang 6

8.1.Kết quả đạt được838.1.1.Thành quả 838.1.2.Hạn chế 84

Trang 7

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

TRƯỜNG ĐẠI HỌCCÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAMĐộc Lập - Tự Do - Hạnh Phúc

ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Xây dựng game 2D Top Down với UnityCán bộ hướng dẫn: ThS Đinh Nguyễn Anh Dũng ThS Trần Anh Dũng

Thời gian thực hiện : Từ ngày 23/09/ 2023 đến ngày kết thúc Đồ Án 2Sinh 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ầnlớ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ệntính kiên trì và khả năng quan sát tính toán nhanh nhạy Tuy hiện nay việc pháthành và phổ biến game ở Việt Nam đang trở nên dễ dàng và dễ tiếp cận đối vớingười dùng nhưng hầu hết đều là game của nước ngoài, không thực sự có nhiềugame đượ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

Trang 8

- 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 quãng- 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

- Việc hoà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

Trang 9

- Người chơi sở hữu các kỹ năng đặc biệt khi trang bị các trang bị khác nhau.

- Cơ chế thời tiết nắng mưa trong game.- Cơ chế thay đổi map theo mùa.

- NPC có cơ chế thời gian biểu tự động di chuyển đến những địa điểm khác nhau trên bản đồ vào những khoảng thời gian nhất định.

- Cơ chế Dungeon giúp người chơi có thể đánh quái thu thập vật phẩm.- Cơ chế hiển thị thanh máu cho từng loại quái.

- Cơ chế nhiệm vụ phần thưởng.- Cơ chế đối thoại với NPC.

- Cơ chế xếp hạng hạng mạo hiểm mỗi khi hoàn thành một lượng nhiệm vụ nhất định.

- Cơ chế nhiệm vụ phần thưởng.- Cơ chế thiên phú.

- Cơ chế chế tạo vũ khí, vật phẩm, thuốc.

- 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

Trang 10

- 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 Top Down 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

4.4.9 Kế hoạch làm việc

Thời gian thực hiện: từ ngày 23/09/2023 cho đến ngày 31/12/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 1 23/09/2023 – 07/10/2023 Đăng ký đề tài

Viết tài liệu, đề cương chi tiết

Trang 11

Sprint 2 07/10/2023 – 21/10/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 21/10/2023 – 04/11/2023 Thiết kế giao diện Xây dựng map Thiết kế nhân vật

Sprint 4 04/11/2023 – 18/11/2023 Lập trình gameplay cơ bảnXây dựng bản đồ

Chuẩn bị báo cáo tiến độ giữa kỳ

Sprint 5 18/11/2023 – 02/12/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ế gameplayKiểm thử game

Sprint 6 02/12/2023 – 16/12/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ế gameplayKiểm thử game

Sprint 7 16/12/2023 – 30/12/2023 Kiểm thử game lần cuốiTriển khai game

Hoàn thành báo cáo đồ án cuối kỳ

Xác nhận của CBHD

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

TP HCM, ngày 23 tháng 9 năm 2023Sinh viên

Trang 12

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

Đặng Đình DũngNỘI DUNG ĐỒ ÁN

CHƯƠNG 1: GIỚI THIỆU CHUNG1.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 2022Mô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ộtphầ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ôngnghệ 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ệntính kiên trì và khả năng quan sát tính toán nhanh nhạy Tuy hiện nay việc pháthành và phổ biến game ở Việt Nam đang trở nên dễ dàng và dễ tiếp cận đối vớingười dùng nhưng hầu hết đều là game của nước ngoài, không thực sự có nhiềugame đượ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ệntử đề 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ếusong 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

Trang 13

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 Top-down thường thu hút người chơi bởinó 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ộidung theo cốt truyện hấp dẫn, dường như mang đến cho người chơi một thế giớitưởng tượng kỳ thú và cho phép họ sống trong đó.

Unity là một trong những Game Engine phổ biến nhất hiện nay, là một platform game engine” có thể hiểu như là một công cụ phát triển game đa nềntả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ênwebsites Unity được cho ra mắt lần đầu tại sự kiện Apple’s World Wide DeveloperConference bởi nhà sáng lập David Helgason vào năm 2005 Vào năm 2014, Unitythắ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, Hearthstone, Ori And TheBlind Forest, Monument Valley, Axie Infinity, … Độ “phủ sóng” của Unity rộng đếnmứ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.

“cross-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 ứngdụ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

Trang 14

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.

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

2.1.1 Về Unity

Hình 2.1.1.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 chocá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ăngtí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ậtlý, kết xuất 3D và phát hiện va chạm

Trang 15

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ôitrườ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ửatrự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ẳnghạn như khả năng điều hướng qua các thư mục trong dự án hoặc tạo cácanimations thông qua timeline tool.

Khi nói đến việc coding, Unity sẽ tự động chuyển sang các trình duyệt codethay thế mà người dùng chọn Tùy chọn phổ biến nhất là Visual Studio củaMicrosoft

Unity sử dụng ngôn ngữ lập trình C# để xử lý các đoạn code và logic với rấtnhiề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ôngcần phải code quá nhiều Điều đó cho thấy rằng, việc hiểu rõ cách thức sử dụngUnity 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ếtxuất đồ họa) cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toánvà 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ệclà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íchhợp, cung cấp một hệ thống toàn diện cho các lập trình viên, từ soạnthảo mã nguồn, xây dựng công cụ tự động hóa đến trình sửa lỗi Do

Trang 16

được hướng đến đồng thời cả lập trình viên không chuyên và studiochuyê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 thudướ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.

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

Hình 2.1.1.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, âmthanh, 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ảnhquan, 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

Trang 17

o Tab hierarchy là nơi hiển thị các Game Object trong Scenes hiệnhà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ếmgiúp quản lý và thao tác với các Game Object hiệu quả hơn đặcbiệt là với các dự án lớn.

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ạobằ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 Clickchuột vào mũi tên hoặc tên thư mục.

5 Cửa sổ Inspector

Trang 18

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ộctính của nó Bạn có thể điều chỉnh, thiết lập mọi thông số và chứcnă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ùychỉ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 Settingcủa asset đang làm việc như hiển thị mã nguồn của Script, cácthông số Animator, Rect transform, Sprite Renderer,…

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 toán vật lý(Rigidbody), các thành phần khác…Mỗi thứ như vậy gọi là mộtcomponent 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.

Trang 19

● 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ácnhau.

● 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.

2.1.2 Về Unity 2D URP

Unity 2D 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 Ngoà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 Light 2D giới thiệu cách áp dụng ánh sáng được tối ưu hóa 2D cho Sprites.

Trang 20

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 2.1.2.1: 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 2.1.2.2: Freeform Light 2D Inspector

Trang 21

Hình 2.1.2.2a: Freeform trong chế độ Edit Hình 2.1.2.2b: Á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 2.1.2.3: Sprite Light 2D Inspector

Hình 2.1.2.3a: Sprite được chọn Hình 2.1.2.3b: Ánh sáng đầu ra

Trang 22

● 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.

● 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 2.1.2.4: Spot Light 2D Inspector

Hình 2.1.2.4a: Point Light trong chế độ EditHình 2.1.2.4b: Á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.

Trang 23

Hình 2.2: 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 độingũ 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 đượcbiê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 (Microsoftintermediate 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.1 Inky – the editor

Trang 24

Hình 2.3.1: 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í đikè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ếptrong 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ìnhbê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ặcreset toà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ảnthuầ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ạnhoặ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 cungcấ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ánhthường xuyên và giải quyết hậu quả của các nhánh đó, theo cả cách nhỏ và cáchchí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

Trang 25

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ó cũng được thiết kế với mục đíchphá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 2.4: 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ềungười sử dụng nhất thế giới ", được dùng để lập trình C++ và C# là chính Nó đượcsử 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ềntảng phát triển phần mềm của Microsoft như Windows API, WindowsForms, 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ũngnhư 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

Trang 26

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ầuhết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiênbản (như Subversion) và bổ sung thêm bộ công 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ạnhkhá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ìnhbiên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lậptrì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 2013trở về trước) và "Community" (đối với bản Visual Studio 2015 trở về sau) là phiênbản miễn phí của Visual Studio

2.5.Github

Trang 27

Hình 2.5: 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ôngcộ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êngmình để có thể làm việc.

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 sourcecode.

Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồnmở Cùng với Linkedin, Github được coi là một sự thay thế cho CV của bạn Cácnhà tuyển dụng cũng rất hay tham khảo Github profile để hiểu về năng lực codingcủa ứng viên.

2.6.Perlin Noise

Trang 28

Hình 2.6.1: Perlin Noise map Hình 2.6.2: Ứng dụng Perlin Noisevào tạo map tự động

Perlin Noise là một phương pháp tạo ra nhiều dữ liệu nhiễu (noise) có cấutrúc có thể sử dụng để tạo ra các mẫu ngẫu nhiên tự nhiên trong đồ họa máy tínhvà trò chơi Nó thường được sử dụng để tạo ra các mô phỏng của các hiện tượngtự nhiên như địa hình, mây, nước, hoặc để tạo ra các môi trường động trong tròchơi.

Trong Unity, Perlin Noise thường được sử dụng để tạo ra địa hìnhprocedural, nghĩa là tạo ra các bề mặt địa hình mà không cần đến việc tạo từng chitiết cụ thể một cách thủ công Điều này giúp tạo ra các môi trường tự nhiên, đadạng và có cấu trúc.

Để sử dụng Perlin Noise trong Unity, người dùng có thể sử dụng hàm“Mathf.PerlinNoise()” để tạo ra giá trị nhiễu tại một vị trí cụ thể trên một mặtphẳng 2D Bạn có thể sử dụng các giá trị này để thay đổi độ cao của các điểm trênbề mặt địa hình hoặc để tạo ra các hiệu ứng nhiễu khác.

Hình 2.7: Ứng dụng NavMesh trong Unity

Trang 29

NavMesh trong Unity là một công cụ cho phép đối tượng di chuyển thôngminh trong không gian game NavMesh được sử dụng để tạo ra một mạng lướihoặc bản đồ của không gian có thể di chuyển được cho các đối tượng như nhânvật, NPC hoặc quái vật.

NavMeshAgent là một thành phần của Unity được sử dụng để điều khiển dichuyển của đối tượng trên NavMesh Khi NavMeshAgent được gắn vào một đốitượng trong game, nó có thể sử dụng NavMesh để tính toán và thực hiện cácđường đi an toàn, tránh các vật cản và di chuyển theo các chỉ thị được đặt ra.

Để tạo NavMesh trong Unity, cần thực hiện các bước sau:

1 Tạo NavMesh Surface: sử dụng “NavMesh Surface” để tạo NavMesh

cho không gian trò chơi Điều này có thể được thực hiện bằng cách thêm mộtthành phần “NavMesh Surface” vào một đối tượng trong cảnh của trò chơi.

2 Bake NavMesh: Sau khi đã cấu hình “NavMesh Surface”, người dùng

cần “Bake” NavMesh để tạo bản đồ di chuyển Người dùng sẽ ấn nút “Bake” đểUnity tính toán và tạo NavMesh dựa trên không gian được xác định.

3 Sử dụng NavMeshAgent: Gắn “NavMeshAgent” vào đối tượng mà

người dùng muốn điều khiển di chuyển Có thể cấu hình các thuộc tính của“NavMeshAgent” như tốc độ, khoảng cách gần nhất để dừng, và đặt mục tiêu dichuyển trên NavMeshAgent bằng cách sử dụng code hoặc trực tiếp từ Editor.

NavMesh là công cụ mạnh mẽ trong việc xử lý di chuyển trong game, giúpcác đối tượng di chuyển một cách thông minh và tránh cách vật cản một cách tựđộng.

2.8.Edgar Unity

Trang 30

Hình 2.8.1: Khởi tạo cấu trúc Dungeon trong Edgar Unity

Hình 2.8.2: Dungeon được tạo ngẫu nhiên sau khi sử dụng Edgar Unity

Edgar Unity là một Unity Plugin dùng để tạo Dungeon 2D theo quy trình vànhằm mục đích cung cấp cho các nhà thiết kế trò chơi toàn quyền kiểm soát cáccấp độ được tạo Nó kết hợp với các mẫu phòng tạo theo quy trình và thủ công đểtạo ra các cấp độ mang lại cảm giác nhất quán

Chức năng:

Trang 31

● Kiểm soát hoàn toàn cấu trúc của cấp độ được tạo ra.● Kiểm soát hoàn toàn giao diện của từng phòng riêng lẻ.

● Các phòng được nối trực tiếp với nhau bằng cửa hoặc hành lang.Hạn chế:

● Một số đầu vào quá khó để có thể khởi tạo.

● Không phù hợp với những Dungeon có kích thước lớn.● Không phải mọi thứ đều có thể được cấu hình khi chỉnh sửa.

CHƯƠNG 3: XÂY DỰNG GAME 2D TOP DOWN

Trang 32

dịch, chế tạo.

3.2.Lối chơi (Gameplay)

Người chơi sẽ ấn nút New (để chơi mới) hoặc ấn nút Load (để chơi lại bản ghitrước đó) để bắt đầu chơi và được đưa vào một bản đồ 2D Trong bản đồ 2D đó,người chơi sẽ điều khiển nhân vật di chuyển, tiêu diệt quái vật bằng cách làm giảmlượng máu của quái vật về 0, vật phẩm sẽ rơi ra tùy thuộc vào loại quái vật Khingười chơi chạm vào vật phẩm rơi ra, nó sẽ tự động được đưa vào túi đồ củangười chơi Những vật phẩm này sẽ được sử dụng để hoàn thành nhiệm vụ củacông hội, dùng để bán cho cửa hàng hoặc dùng để chế tạo vũ khí Khi người chơihoàn thành một nhiệm vụ công hội sẽ được nhận một lượng vàng và kinh nghiệmnhất định, vàng dùng để mua vật liệu hoặc mua những lọ thuốc dùng để hồi máuhoặc hồi mana, còn điểm kinh nghiệm dùng để thăng cấp Level nhân vật, với mỗiLevel được thăng cấp, người chơi sẽ nhân được 10 điểm thăng cấp, điểm này sẽđược người chơi dùng để năng cấp 1 trong 5 chỉ số: máu, tấn công, tốc độ, phòngthủ và tấn công đặc biệt Game sẽ kết thúc khi máu của người chơi về 0 và sẽ quaytrở lại bản lưu trước đó.

Trang 33

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

4.1 Sơ đồ Use-Case

Trang 34

Hình 4.1: Use Case Diagram

4.2.Danh sách tác nhân

1 Người chơi Người chơi điều khiển nhân vật để di chuyển, tấn côngquái cũng như tương tác với các NPC

Nhân vật do người chơi điều khiển, được xem nhưngười chơi trong các use case, do hành động của ngườichơi tác động vào game tương tự như nhân vật

3 Enemy Quái vật do hệ thống quản lý chuyển động và tấn công4 NPC Dân làng do hệ thống quản lý có khả năng tương tác với

Bảng 4.2: Danh sách các actor

4.3.Danh sách Use case

1 New game Người chơi bắt đầu chơi mới game.

2 Load game Người chơi bắt đầu game từ bản lưu game

3 Di chuyển Người chơi điều khiển nhân vật di chuyển xung quanhbản đồ game, có thể chạy hoặc lướt

4 Tấn công tầm gần Người chơi tấn công quái vật bằng cách vung kiếm tầmgần

5 Tung kĩ năng tầm xa Người chơi tấn công quái vật bằng cách tung kĩ năngtầm xa

6 Trang bị vũ khí Người chơi trang bị vũ khí để tăng chỉ số nhân vật bằng

Trang 35

cách kéo thả vũ khí vào ô trang bị vũ khí

7 Nâng cấp chỉ số

Người chơi nâng cấp chỉ số thông qua hệ thống nângcấp chỉ số bằng cách sử dụng điểm nâng cấp, kiếmđiểm nâng cấp bằng cách tăng cấp độ nhân vật

Người chơi hoàn thành nhiệm vụ công hội sẽ nhận đượcđiểm kinh nghiệm, khi điểm kinh nghiệm đạt tới mộtmốc nhất định nhân vật sẽ thăng cấp

9 Nhận sát thương Xảy ra khi người chơi hoặc quái tấn công trúng nhau10 Chết Xảy ra khi chỉ số máu của người chơi hoặc quái về 0

Người chơi tương tác với NPC để mở ra giao diện cửahàng, từ đó sử dụng vàng để có thể mua những vậtphẩm cần thiết

12 Chế tạo vũ khí

Người chơi tương tác với NPC để mở ra giao diện rèn,từ đó sử dụng vàng và những vật phẩm yêu cầu để cóthể rèn vũ khí

13 Tương tác NPC

Người chơi có thể lại gần NPC và ấn nút tương tác đểcó thể trò chuyện với NPC hoặc mở giao diện tươngứng

14 Thu thập vật phẩm Xảy ra khi người chơi chạm vào vật phẩm rơi ra từ quái15 Cất giữ vật phẩm Vật phẩm khi người chơi thu thập được sẽ được bỏ vào

túi đồ hoặc rương

16 Sử dụng vật phẩm

Xảy ra khi người chơi giữ nút sử dụng vật phẩm và ấnvào vật phẩm muốn sử dụng (Chỉ áp dụng cho nhữngvật phẩm có thể sử dụng)

17 Mở giao diện quản lýnhân vật

Xảy ra khi người dùng mở giao diện quản lý nhân vật,giao diện sẽ quản lý các thông số của nhân vật như

Trang 36

máu, mana, thể lực, …, có thể dùng để trang bị vũ khí

18 Trang bị kỹ năng

Khi người dùng trang bị vật phẩm “Nhẫn” vào ô trangbị, tùy thuộc vào từng loại “Nhẫn “ mà người chơi sẽ cóthể sử dụng được những kỹ năng khác nhau.

19 Chuyển đổi kỹ năngsử dụng

Người chơi có thể trang bị tối đa 3 loại nhẫn, tùy thuộcvào ô mà nhẫn đó trang bị kỹ năng sẽ được đặt vào ô kỹnăng tương ứng.

20 Kích hoạt CutScene Khi người chơi bắt đầu game hoặc đi vào một vùng nàođấy chứa CutScene, sẽ tự động kích hoạt CutScene.

Bảng 4.3: Danh sách các Use case

4.4.Mô tả chi tiết Use case4.4.1 New Game

Mô tả chi tiết tính năng “New Game”

Mô tả chi tiết Người chơi bắt đầu chơi mới game.Luồng sự kiện

Luồng chính

1 Người chơi ấn nút“New Game” trong Menu Scene

Game Scene, người chơi bắt đầu chơigame

Luồng phụ Lưu trạng thái truy cập vào GameScene của người chơi

Yêu cầu đặc biệt Game đang mở

Điều kiện trước Game đang ở màn hình Menu Scene

Bảng 4.4.1: Đặc tả chức năng “New Game”

4.4.2 Load Game

Trang 37

Mô tả chi tiết tính năng “Load Game”

Mô tả chi tiết Người chơi bắt đầu game từ bản lưugame

Luồng phụ Lưu trạng thái truy cập vào GameScene của người chơi

Yêu cầu đặc biệt Game đang mở

Điều kiện trước Game đang ở màn hình Menu Scene

Bảng 4.4.2: Đặc tả chức năng “Load Game”

4.4.3Di chuyển

Mô tả chi tiết tính năng “Di chuyển”

Mô tả chi tiết Người chơi di chuyển nhân vậtLuồng sự kiện

Luồng chính

1 Người chơi ấn vào các nút mũi tênhoặc các phím WASD để di chuyển2 Người chơi có thể di chuyển theođúng hướng mong muốn

Luồng phụ

1 Người chơi giữ phím di chuyểncàng lâu, nhân vật càng chạy nhanh tớimột tốc độ nhất định

2 Người chơi nhấn phím “Space” đểcó thể lướt tới một đoạn ngắn

Yêu cầu đặc biệt Hướng nhân vật đang di chuyển không

Trang 38

bị địa hình cản trở, hoặc nhân vật đangkhông trong một tác vụ nào khác

Điều kiện trước Game đang ở màn hình Game SceneĐiều kiện sau Vận tốc của nhân vật lớn hơn 0

Bảng 4.4.3: Đặc tả chức năng “Di chuyển”

4.4.4Tấn công tầm gần

Mô tả chi tiết tính năng “Tấn công tầm gần”

Mô tả chi tiết Người chơi cho nhân vật tấn công tầmgần

Luồng sự kiện

Luồng chính

1 Người chơi nhấn chuột trái

2 Nhân vật sẽ vung kiếm chém tầmgần theo hướng di di chuyển của nhânvật

Yêu cầu đặc biệt Nhân vật đang còn thể lực

Điều kiện trước Game đang ở màn hình Game Scene

Bảng 4.4.4: Đặc tả chức năng “Tấn công tầm gần”

4.4.5Tung kĩ năng tầm xa

Mô tả chi tiết tính năng “Tung kĩ năng tầm xa”

Mô tả chi tiết Người chơi cho nhân vật tung kĩ năngtầm xa

Luồng sự kiện

Luồng chính 1 Người chơi nhấn chuột phải

Trang 39

2 Nhân vật sẽ tung một kĩ năng theohướng của chuột

Yêu cầu đặc biệt Nhân vật đang còn mana

Điều kiện trước Game đang ở màn hình Game Scene

Bảng 4.4.5: Đặc tả chức năng “Tung kĩ năng tầm xa”

4.4.6Trang bị vũ khí

Mô tả chi tiết tính năng “Trang bị vũ khí”

Mô tả chi tiết Người chơi trang bị vũ khí cho nhân vậtđể tăng chỉ số

Yêu cầu đặc biệt Vật phẩm muốn trang bị phải thuộc loại“Vũ khí”

Điều kiện trước Giao diện quản lý nhân vật đang đượcmở

Trang 40

Mô tả chi tiết Người chơi tăng điểm các chỉ số mongmuốn

Luồng sự kiện

Luồng chính

1 Người chơi nhấn vào nút có biểutượng “+” trước mỗi thanh chỉ số để cóthể cộng thêm một điểm chỉ số đó2 Số điểm tối đa có thể cộng của mộtchỉ số là 100

Yêu cầu đặc biệt

1 Điểm tăng cấp phải lớn hơn 0

2 Điểm chỉ số phải bé hơn hoặc bằng100

Điều kiện trước Giao diện quản lý nhân vật đang đượcmở

Bảng 4.4.7: Đặc tả chức năng “Nâng cấp chỉ số”

4.4.8Tăng cấp độ

Mô tả chi tiết tính năng “Tăng cấp độ”

Mô tả chi tiết Người chơi tăng cấp độ nhân vậtLuồng sự kiện

Luồng chính 1 Người chơi hoàn thành một nhiệm vụtừ công hội để có thể nhận được điểmkinh nghiệm tương ứng

2 Điểm kinh nghiệm đạt mốc tối đacủa cấp độ đó yêu cầu thì cấp độ của

Ngày đăng: 15/05/2024, 09:29

Tài liệu cùng người dùng

Tài liệu liên quan