1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

90 21 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây dựng Game 2D Top-Down Bằng Unity
Tác giả Đặng Đình Dũng
Người hướng dẫn Trần Anh Dũng, Đinh Nguyễn Anh Dũng
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Phần mềm
Thể loại Đồ án 2
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 90
Dung lượng 6,94 MB

Cấu trúc

  • 2.1.1. Về Unity (14)
  • 2.1.2. Về Unity 2D URP (19)
  • 2.2. C# 15 2.3. Inky 16 2.3.1. Inky – the editor (0)
    • 2.3.2. ink – the language (24)
  • 2.4. Microsoft Visual Studio 18 2.5. Github 19 2.6. Perlin Noise 20 2.7. NavMesh 21 2.8. Edgar Unity 22 CHƯƠNG 3: XÂY DỰNG GAME 2D TOP DOWN 24 3.1. Tổng quan 24 3.1.1. Tên game (25)
    • 3.1.2. Thể loại (31)
    • 5.1.1. Class diagram (47)
    • 5.1.2. Danh sách các class (50)
  • 5.2. State diagram 51 1. Player State (57)
    • 5.2.2. Slime State (60)
    • 5.2.3. Skeleton State (62)
    • 5.2.4. Toaster State (64)
    • 5.2.5. Skeleton Archer (64)
  • CHƯƠNG 6: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 59 6.1. Danh sách màn hình 59 6.2. Mô tả chi tiết từng màn hình 60 6.2.1. Menu Scene (65)
    • 6.2.2. Game Scene (67)
    • 6.2.3. Dungeon Scene (73)
    • 6.2.4. Shop Scene (75)
    • 6.2.5. Potion Shop Scene (77)
    • 6.2.6. Guild Scene (79)
    • 6.2.7. Black Smith Scene (81)
    • 6.2.8. CutScene Scene (84)
    • 6.2.9. Ruins Scene (85)

Nội dung

Về 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.

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 quá 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 toá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 toà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.

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, â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. 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ì toà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,…

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

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.

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.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.3a: Sprite được chọn Hình 2.1.2.3b: Á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.

● 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.4a: Point Light trong chế độ Edit

Hì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.

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.

C# 15 2.3 Inky 16 2.3.1 Inky – the editor

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

Microsoft Visual Studio 18 2.5 Github 19 2.6 Perlin Noise 20 2.7 NavMesh 21 2.8 Edgar Unity 22 CHƯƠNG 3: XÂY DỰNG GAME 2D TOP DOWN 24 3.1 Tổng quan 24 3.1.1 Tên game

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 quái Ngoà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.

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 ghi trướ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ảm lượ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 Khi ngườ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ủa người chơi Những vật phẩm này sẽ được sử dụng để hoàn thành nhiệm vụ của cô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ơi hoà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ệm nhất định, vàng dùng để mua vật liệu hoặc mua những lọ thuốc dùng để hồi máu hoặ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òng thủ 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ẽ quay trở lại bản lưu trước đó.

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

STT Tác nhân Mô tả/ Ghi chú

1 Người chơi Người chơi điều khiển nhân vật để di chuyển, tấn công quá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ười chơ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ông

4 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

STT Tính năng Mô tả/ Ghi chú

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 quanh bả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ầm gầ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ăng tầ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 cách kéo thả vũ khí vào ô trang bị vũ khí

Người chơi nâng cấp chỉ số thông qua hệ thống nâng cấ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ột mố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 nhau

10 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ửa hàng, từ đó sử dụng vàng để có thể mua những vật phẩm cần thiết

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í

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ái

15 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

Xảy ra khi người chơi giữ nút sử dụng vật phẩm và ấn vào vật phẩm muốn sử dụng (Chỉ áp dụng cho những vậ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ư máu, mana, thể lực, …, có thể dùng để trang bị vũ khí

Khi người dùng trang bị vật phẩm “Nhẫn” vào ô trang bị, 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ăng sử dụng

Người chơi có thể trang bị tối đa 3 loại nhẫn, tùy thuộc và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 case

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.

“New Game” trong Menu Scene

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

Luồng phụ Lưu trạng thái truy cập vào Game

Yêu cầu đặc biệt Game đang mở Điều kiện trước Game đang ở màn hình Menu Scene Điều kiện sau Không

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

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ưu game Luồng sự kiện

1 Người chơi ấn vào nút “Load Game” trong Menu Scene

2 Game chuyển quan Load Scene, người chơi chọn bản ghi cần chọn để bắt đầu chơi game

Luồng phụ Lưu trạng thái truy cập vào Game

Yêu cầu đặc biệt Game đang mở Điều kiện trước Game đang ở màn hình Menu Scene Điều kiện sau Không

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

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ật

1 Người chơi ấn vào các nút mũi tên hoặc các phím WASD để di chuyển

2 Người chơi có thể di chuyển theo đúng hướng mong muốn

1 Người chơi giữ phím di chuyển càng lâu, nhân vật càng chạy nhanh tới mộ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ắnYêu cầu đặc biệt Hướng nhân vật đang di chuyển không bị địa hình cản trở, hoặc nhân vật đang khô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”

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ầm gần Luồng sự kiện

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

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

1 Có một khoảng trễ giữa mỗi lần tấn công

2 Khi người chơi tấn công sẽ tiêu hao một lượng thể lực nhất định

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 Điều kiện sau Không

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

4.4.5 Tung 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ăng tầm xaLuồng sự kiệnLuồng chính 1 Người chơi nhấn chuột phải

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

1 Có một khoảng trễ giữa mỗi lần tung kĩ năng

2 Khi người chơi tấn công sẽ tiêu hao một lượng mana nhất định

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 Điều kiện sau Không

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

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ố Luồng sự kiện

Luồng chính Người chơi kéo một vũ khí trong túi đồ vào ô trang bị vũ khí

Căn cứ vào loại vũ khí đang được trang bị mà các chỉ số tương ứng sẽ được cộng thêm

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 được mở Điều kiện sau Không

Bảng 4.4.6: Đặc tả chức năng “Trang bị vũ khí”

Mô tả chi tiết tính năng “Nâng cấp chỉ số”

Mô tả chi tiết Người chơi tăng điểm các chỉ số mong muốn Luồng sự kiện

1 Người chơi nhấn vào nút có biểu tượ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ột chỉ số là 100

1 Mỗi lần tăng một điểm chỉ số bất kì sẽ tiêu hao một điểm tăng cấp

2 Với mỗi điểm chỉ số công thêm sẽ tăng các chỉ số tương ứng

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ằng 100 Điều kiện trước Giao diện quản lý nhân vật đang được mở Điều kiện sau Không

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

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ật

Luồ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ểm kinh nghiệm tương ứng

2 Điểm kinh nghiệm đạt mốc tối đa của cấp độ đó yêu cầu thì cấp độ của nhân vật sẽ được tăng lên một bậc

1 Khi cấp độ nhân vật được tăng thêm một bậc thì điểm kinh nghiệm sẽ được làm mới về 0 và mốc kinh nghiệm tối đa sẽ được tăng lên tương ứng.

2 Với mỗi một cấp độ nhân vật được tăng lên thì nhân vật sẽ nhận được 10 điểm tăng cấp

Yêu cầu đặc biệt Không Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.8: Đặc tả chức năng “Tăng cấp độ”

Mô tả chi tiết tính năng “Nhận sát thương”

Mô tả chi tiết Nhân vật bị quái vật đánh trúng

Luồng chính 1 Nhân vật bị quái vật tấn công trúng

2 Chỉ số máu của nhân vật bị giảm

Luồng phụ Nhân vật sẽ chết khi chỉ số máu của nhân vật về 0

Yêu cầu đặc biệt Không Điều kiện trước

Game đang trong Game Scene Nhân vật còn sống

Nhân vật bị tấn công trúng Điều kiện sau Máu của nhân vật bị giảm đi

Bảng 4.4.9: Đặc tả chức năng “Nhận sát thương”

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

Mô tả chi tiết Nhân vật bị chết

Luồng sự kiện Luồng chính Chỉ số máu của nhân vật giảm về 0

Luồng phụ Game kết thúc và sẽ quay trở về bản lưu trước đó

Yêu cầu đặc biệt Không Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.10: Đặc tả chức năng “Chết”

Mô tả chi tiết tính năng “Mua đồ”

Mô tả chi tiết Người chơi điều khiển nhân vật mua đồ

1 Người chơi sử dụng tiền mà nhân vật đang sở hữu để mua vật phẩm

2 Vật phẩm vừa được mua sẽ được thêm vào túi đồ

Luồng phụ Nhân vật sẽ bị mất một lượng vàng tương ứng với vật phẩm vừa mua

Lượng vàng hiện có của người chơi phải lớn hơn hoặc bằng lượng vàng cần để mua vật phẩm Điều kiện trước Giao diện của hàng đang mở Điều kiện sau Không

Bảng 4.4.11: Đặc tả chức năng “Mua đồ”

Mô tả chi tiết tính năng “Chế tạo vũ khí”

Mô tả chi tiết Người chơi chế tạo vũ khí

1 Người chơi sử dụng tiền và vật phẩm yêu cầu để chế tạo vũ khí tương ứng

2 Vũ khí vừa được chế tạo sẽ được thêm vào túi đồ

1 Vật phẩm dùng để chế tạo vũ khí sẽ bị mất

2 Nhân vật sẽ bị mất một lượng vàng tương ứng với vũ khí vừa chế tạo

Nhân vật phải sỡ hữu lượng vàng và vật phẩm mà vũ khí cần được chế tạo yêu cầu Điều kiện trước Giao diện của rèn đang mở Điều kiện sau Không

Bảng 4.4.12: Đặc tả chức năng “Chế tạo vũ khí”

Mô tả chi tiết tính năng “Tương tác NPC”

Mô tả chi tiết Nhân vật tương tác NPC

1 Người chơi nhấn phím “E” để có thể tương tác với NPC

2 Tùy vào từng NPC mà sẽ có hội thoại tương ứng

Nhấn chuột vào hộp thoại được hiện lên để có thể chuyển sang câu thoại tiếp theo hoặc kết thúc đoạn hội thoại

Yêu cầu đặc biệt Không Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.13: Đặc tả chức năng “Tương tác NPC”

Mô tả chi tiết tính năng “Thu thập vật phẩm”

Mô tả chi tiết Người chơi điều khiển nhân vật thu thập vật phẩm Luồng sự kiện

1 Nhân vật chạm vào vật phẩm rớt ra từ quái để thu thập

2 Vật phẩm được thu thập sẽ được cho vào túi đồ

Yêu cầu đặc biệt Túi đồ nhân vật còn ô trống Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.14: Đặc tả chức năng “Thu thập vật phẩm”

Mô tả chi tiết tính năng “Cất giữ vật phẩm”

Mô tả chi tiết Người chơi cất giữ vật phẩm vừa kiếm được vào túi hoặc bỏ vào rương đồ Luồng sự kiện

1 Người chơi thu thập vật phẩm bằng các cách khác nhau, vật phẩm kiếm được sẽ được bỏ vào túi

2 Vật phẩm được thu thập sẽ được cho vào túi đồ

Yêu cầu đặc biệt Không Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.15: Đặc tả chức năng “Cất giữ vật phẩm”

Mô tả chi tiết tính năng “Sử dụng vật phẩm”

Mô tả chi tiết Người chơi điều khiển nhân vật sử dụng vật phẩm trong túi Luồng sự kiện

1 Người chơi giữ nút “Ctrl” và nhấn chuột vào vật phẩm để sử dụng

2 Vật phẩm sử dụng sẽ biến khỏi túi đồ

Tùy thuộc vào loại vật phẩm sử dụng mà mang lại các hiệu ứng khác cho cho nhân vật

Vật phẩm phải thuộc loại sử dụng được để có thể sử dụng

Giao diện cửa hàng phải đang tắt Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.16: Đặc tả chức năng “Sử dụng vật phẩm”

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

Mô tả chi tiết tính năng “Sử dụng vật phẩm”

Mô tả chi tiết Người chơi mở giao diện quản lý

Luồng chính Người chơi nhấn phím “G” để mở giao diệnLuồng phụ Người chơi có thể thực hiện các tác vụ như trang bị vũ khí, nâng cấp chỉ số trong giao diện quản lý nhân vật

Yêu cầu đặc biệt Không Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Mở rộng Nhấn phím “G” một lần nữa để tắt giao diện quản lý

Bảng 4.4.17: Đặc tả chức năng “Mở giao diện quản lý nhân vật”

Mô tả chi tiết tính năng “Trang bị kỹ năng”

Mô tả chi tiết Người chơi trang bị kỹ năng

Luồng sự kiện Luồng chính Người chơi trang bị nhẫn vào ô trang bị

Tùy thuộc vào ô trang bị nhẫn mà kỹ năng sẽ được trang bị vào ô kỹ năng tương ứng

Yêu cầu đặc biệt Không Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.18: Đặc tả chức năng “Trang bị kỹ năng”

Mô tả chi tiết tính năng “Chuyển đổi kỹ năng”

Mô tả chi tiết Người chơi chuyển đổi qua lại giữa các kỹ năng để sử dụng Luồng sự kiện

Người chơi ấn các phím ‘1’, ‘2’, ‘3’ để chuyển đổi qua lại giữa các kỹ năng ở từng ô.

Yêu cầu đặc biệt Ô chuyển đổi kỹ năng phải được trang bị nhẫn Điều kiện trước Game đang trong Game Scene Điều kiện sau Không

Bảng 4.4.19: Đặc tả chức năng “Chuyển đổi kỹ năng”

Mô tả chi tiết tính năng “Kích hoạt CutScene”

Mô tả chi tiết Người chơi kích hoạt CutScene khi đi vào khu vực có CutScene Luồng sự kiện

Người chơi chạm vào khu vực có CutScene hoặc bắt đầu chơi mới trò chơi

Một số CutScene sẽ kích hoạt hội thoại

Khi kích hoạt CutScene người chơi sẽ bị bất động

Yêu cầu đặc biệt Không Điều kiện trước

Game đang trong Game Scene Người chơi chưa từng kích hoạt

CutScene trước đó Điều kiện sau Không

Bảng 4.4.20: Đặc tả chức năng “Kích hoạt CutScene”

CHƯƠNG 5: PHÂN TÍCH THIẾT KẾ

Class diagram

Hình 5.1.1.1: Sơ đồ Class chức năng Save/Load, Inventory, Equipment, Time, Light

Hình 5.1.1.2: Sơ đồ Class chức năng quản lý Player, Enemy

Hình 5.1.1.3: Sơ đồ Class chức năng Dialogue, Shop, Craft, Quest

Danh sách các class

STT Tên Class Chức năng

1 SaveData Định nghĩa các thuộc tính có thể lưu vào file JSON

2 SaveLoad Thực hiện chức năng Save/Load/Delete file JSON

3 SaveGameManager Quản lý các chức năng

Save/Load/Delete trong Game

4 PlayerSaveData Lưu các chỉ số của nhân vật

5 ItemPick Class quản lý vật phẩm mà người chơi có thể nhặt

6 EquipmentHolder Quản lý việc lưu trữ vũ khí trong túi nhân vật

7 EquipmentSlotUI Quản lý slot trang bị vũ khí

8 EquipmentDisplay Hiển thị hình ảnh vũ khí đi theo nhân vật khi người chơi trang bị

9 PlayerWeapon Quản lý các hiệu ứng nhân vật có thể nhận được khi trang bị các vũ khí khác nhau

10 InventoryHolder Class định nghĩa các phương thức, thuộc tính để lưu trữ vật phẩm trong túi đồ của nhân vật

11 InventorySystem Quản lý hệ thống Inventory

12 InventorySlots Quản lý các slot đồ trong túi của nhân vật

13 ItemSlot Quản lý thông tin của vật phẩm đang có trong Slot đồ nhân vật

14 InventoryItemData Quản lý thông tin của từng loại vật phẩm

15 Database Quản lý danh sách các vật phẩm hiện có trong Game

16 MouseItemData Quản lý thông tin vật phẩm đang được tạm lưu trữ trong con trỏ chuột

17 InventorySlot_UI Quản lý giao diện Slot đồ nhân vật

18 PlayerInventoryHolder Quản lý lưu trữ vật phẩm trong

19 ChestInventory Quản lý lưu trữ vật phẩm trong rương đồ

20 IInteractable Quản lý khả năng tương tác môi trường của nhân vật

Class định nghĩa các phương thức, thuộc tính để nhân vật có thể tiến hành tương tác môi trường

22 StaticInventoryDisplay Thể hiện giao diện PlayerHotboard lên màn hình Game

23 DynamicInventoryDisplay Thể hiện giao diện Chest và Backpack lên màn hình Game

Quản lý các thông số vật phẩm hiện có trong từng Slot đồ để thể hiện lên màn hình Game

25 InventoryUIController Quản lý khả năng bật/tắt giao diện

26 TimeManager Quản lý thời gian trong Game

27 ClockManager Quản lý giao diện đồng hồ dùng để thể hiện thời gian trong Game

28 UniqueID Dùng để tạo giá trị ID ngẫu nhiên cho từng loại GameObject trong Game

Dùng để làm mờ môi trường khi người dùng đi qua để có thể nhìn rõ hơn được nhân vật

30 SavePlayerPos Class định nghĩa các phương thức, thuộc tính dùng để Save/Load vị trí của nhân vật

31 DoorManager Dịch chuyển nhân vật đến các Scene của các công trình khác nhau

32 ExitDoorManager Dịch chuyển nhân vật từ Scene các công trình khác nhau đến Scene chính của Game

33 DungeonDoorManager Dịch chuyển nhân vật đến các Dungeon khác nhau của Game

34 MainMenu Quản lý các chức năng trong giao diện

35 LoadSceneController Quản lý bật/tắt màn hình danh sách các file Save trong Game

36 TabGroup Thể hiện màn hình xuất hiện khi di chuyển qua lại giữa các Tabs

Class định nghĩa các phương thức, thuộc tính để người chơi có thể di chuyển qua lại giữa các tab để thể hiện các màn hình khác nhau

38 PlayerStatusController Singleton class để quản lý các chỉ số của nhân vật

39 PlayerMovement Quản lý khả năng di chuyển và lướt của nhân vật

40 PlayerStatus Quản lý trạng thái của nhân vật bao gồm: Nhận sát thương, Chết

41 PlayerCombat Quản lý khả năng tấn công của nhân vật

42 PlayerInformationManager Thể hiện thông tin chỉ số hiện của của nhân vật lên màn hình giao diện

43 PlayerSkillSystem Quản lý khả năng tung kỹ năng của nhân vật

44 Skills Quản lý hiệu ứng của các loại kỹ năng khác nhau

45 SkillSO Quản lý thông tin của từng loại skill khác nhau

46 RotationSkill Quản lý khả năng định vị của skill

47 AgilityBar Quản lý thanh tốc độ được cộng thêm

48 AttackBar Quản lý thanh tấn công được cộng thêm

49 DefendBar Quản lý thanh phòng thủ được cộng thêm

50 HPBar Quản lý thanh máu được cộng thêm

51 SpAttackBar Quản lý thanh tấn công đặc biệt được cộng thêm

52 HealthBar Quản lý thanh máu của nhân vật

53 ManaBar Quản lý thanh mana của nhân vật

54 Energybar Quản lý thanh thể lực của nhân vật

55 AgentMove Quản lý khả năng di chuyển của quái vật

Class định nghĩa các phương thức, thuộc tính để thể hiện các chức năng cơ bản của quái vật tầm gần như: tấn công, hoạt ảnh, di chuyển

Class định nghĩa các phương thức, thuộc tính để thể hiện các chức năng cơ bản của quái vật tầm xa như: tấn công, hoạt ảnh, di chuyển

Quản lý các khả năng của quái vật như: tấn công, di chuyển, theo đuổi nhân vật, phát hiện vật cản,…

59 AIData Quản lý thông tin nhân vật và vật cản mà quái vật có thể xác định

60 EnemyStatus Quản lý trạng thái của quái vật tầm gần như: Nhận sát thương, Chết

61 RangeEnemyStatus Quản lý trạng thái của quái vật tầm xa như: Nhận sát thương, Chết

62 SteeringBehaviour Định nghĩa phương thức Steering

63 Detector Định nghĩa phương thức Detect

Thể hiện khả năng xác định phương hướng của quái vật từ đó quyết định hành động tiếp theo của quái vật

Quản lý khả năng tránh né vật cản của quái vật để có thể tiếp tục truy đuổi người chơi

Quản lý khả năng quyết định hướng di chuyển của quái vật để có thể truy đuổi người chơi khi người chơi di chuyển vào trong khu vực quan sát của quái vật

67 ObstacleDetector Thể hiện khả năng phát hiện vật cản của quái vật

68 TargetDetector Thể hiện khả năng phát hiện người chơi của quái vật

69 DialogueVariables Class định nghĩa các phương thức, thuộc tính để có thể đọc được các thông tin cốt truyện được viết trong Inky

70 DialogueTrigger Quản lý khả năng tương tác bật/tắc giao diện hội thoại

Quản lý giao diện đoạn hội thoại bao gồm: avatar NPC, tên NPC, thông tin hội thoại đang diễn ra, các lựa chọn của nhân vật

72 ShopSystem Quản lý hệ thống của hàng

73 ShopKeeper Quản lý thông tin chủ cửa hàng và khả năng tương tác để bật/tắt giao diện mua bán

74 ShopkeeperDisplay Thể hiện giao diện mua bán

75 ShopItemList Quản lý vật phẩm mà cửa hàng đang bán

76 ShopSlotUI Quản lý giao diện của từng loại vật phẩm đang được bán

77 ShopSlot Quản lý hệ thống Slot vật phẩm trong cửa hàng

78 CraftingRecipe Quản lý công thức cần để có thể rèn vũ khí

79 CraftingBench Quản lý thông tin chủ lò rèn và khả năng tương tác bật/tắt giao diện rèn

80 CraftListItem_UI Quản lý giao diện của từng loại vũ khí có thể rèn

81 IngredientSlot_UI Quản lý giao diện hình ảnh của từng loại vật phẩm yêu cầu để có thể rèn vũ khí

82 CraftingDisplay Quản lý giao diện thể hiện thông tin của các loại vũ khí

83 QuestList_UI Quản lý giao diện các loại nhiệm vụ hiện có trong Game

84 QuestIngredientSlot_UI Thể hiện hình ảnh các loại vật phẩm yêu cầu để hoàn thành nhiệm vụ

85 QuestInformation Quản lý thông tin từng loại nhiệm vụ trong Game

86 QuestBoard Quản lý thông tin bảng nhiệm vụ và khả năng bật/tắt giao diện bảng nhiệm vụ

87 QuestDisplay Quản lý giao diện thể hiện thông tin của các loại nhiệm vụ trong Game

88 WeatherManager Quản lý thời tiết trong Game

89 SeasonSprite Thay đổi Sprite các Object trong Game tùy theo thời tiết hiện tại.

90 LampManager Quản lý bật tắt đèn hoặc lửa tùy theo thời gian hiện tại của Game

91 SceneShakeController Rung Camera khi nhân vật thực hiện tấn công trúng quái vật

92 SkillCooldown Quản lý thời gian hồi chiêu của từng loại kỹ năng

Class định nghĩa các phương thức, thuộc tính để thể hiện các chức năng cơ bản của quái vật tầm xa như: tấn công, hoạt ảnh, di chuyển

94 ArcherEnemyStatus Quản lý trạng thái của quái vật tầm xa như: Nhận sát thương, Chết

Quản lý các trạng thái của quái vật như máu, thủ, vật phẩm, tính sát thương nhận vào

96 FloatingHealthBar Thể hiện lượng máu hiện tại của quái vật khi bị người chơi tấn công

97 FloatingText Hiển thị lượng sát thương mà quái vật phải nhận từ người chơi

98 EnemySO Quản lý thông tin của từng loại quái vật khác nhau

99 Active CutScene Quản lý kích hoạt CutScene

100 SetSpawnPoint Quy định địa điểm xuất hiện của người chơi

101 TileMap_PerlinNoise Quản lý tạo bản đồ tự động sử dụng thuật toán Perlin Noise

102 NPCMovement Quản lý lịch trình và di chuyển của NPC tùy theo mùa, thời tiết, thời gian

103 Projectile Quản lý đạn bắn ra từ quái vật

104 Shooter Quản lý khả năng bắn đạn của quái vật

Bảng 5.1.2: Danh sách các Class

State diagram 51 1 Player State

Slime State

Hình 5.2.2.1: Sơ đồ State của Slime

Hình 5.2.2.2: Sơ đồ State trạng thái Idle của Slime

Hình 5.2.2.3: Sơ đồ State trạng thái Movement của Slime

Hình 5.2.2.4: Danh sách các Parameters của Slime Animator

Skeleton State

Hình 5.2.3.1: Sơ đồ State của Skeleton

Hình 5.2.3.2: Sơ đồ State trạng thái Idle của Skeleton

Hình 5.2.3.3: Sơ đồ State trạng thái Movement của Skeleton

Hình 5.2.3.4: Sơ đồ State trạng thái Attack của Skeleton

Hình 5.2.3.5: Sơ đồ State trạng thái Dead của Skeleton

Hình 5.2.3.6: Danh sách các Parameters của Skeleton Animator

Toaster State

Hình 5.2.4.1: Sơ đồ State của ToasterBot

Hình 5.2.4.2: Danh sách các Parameters của ToasterBot Animator

Skeleton Archer

Hình 5.2.5.1: Sơ đồ State của Skeleton Archer

Hình 5.2.5.2: Sơ đồ State trạng thái Idle của Skeleton Archer

THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 59 6.1 Danh sách màn hình 59 6.2 Mô tả chi tiết từng màn hình 60 6.2.1 Menu Scene

Game Scene

Hình 6.2.2.1: Màn hình Game Scene

Hình 6.2.2.2: Giao diện quản lý nhân vật

Hình 6.2.2.4: Túi đồ nhân vật/ Rương đồ

Hình 6.2.2.5: Thanh trạng thái nhân vật

Game Scene là màn hình hiển thị mọi thông số game bao gồm nhân vật, NPC, bối cảnh, bản đồ,…

Giao diện quản lý nhân vật dùng để người chơi có thể quản lý các chỉ số của nhân vật bao gồm máu, mana, thể lực, tấn công, phòng thủ, tốc độ, tấn công đặc biệt Người chơi có thể nâng cấp các chỉ số ấy bằng cách sử dụng điểm tăng cấp Ngoài ra, giao diện quản lý nhân vật còn dùng để người chơi trang bị vũ khí cho nhân vật.

Túi đồ nhân vật/ rương đồ dùng để lưu trữ vật phẩm mà người chơi thu thập được qua nhiều cách khác nhau.

Các ô trang bị vật phẩm để người chơi trang bị các vật phẩm nhằm tăng chỉ số cơ bản hoặc để trang bị kỹ năng Ô kỹ năng để hiển thị kĩ năng hiện tại của người chơi sau khi trang bị nhẫn, người chơi chỉ được sử dụng 1 kỹ năng và có thể chuyển đổi qua lại giữa các kỹ năng

Player hotboard dùng để lưu trữ vật phẩm mà người chơi có thể dùng vật phẩm trực tiếp mà không cần phải mở giao diện túi đồ.

Thanh trạng thái nhân vật dùng để thể hiện một cách trực quan cho người chơi biết được lượng máu/mana/thể lực/cấp độ hiện tại của nhân vật. Đồng hồ dùng để giúp người chơi có thể quan sát được thời gian hiện tại (Thứ/Ngày/Năm/Giờ/Mùa/Thời tiết) đang chạy trong game.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

1 Nhân vật GameObject Hiển thị hình ảnh nhân vật người chơi điều khiển

2 Bản đồ Tile map Hiển thị bản đồ trong game

3 Đồng hồ Panel Hiển thị giao diện đồng hồ

4 Player hotboard Panel Hiển thị vật phẩm chứ trong hotboard

5 Thanh trạng thái nhân vật Panel Hiển thị các trạng thái hiện tại của nhân vật

6 Ô kỹ năng Panel Hiển thị các kỹ năng người chơi có thể sử dụng Giao diện quản lý nhân vật

STT Tên đối tượng Loại Chức năng

1 Thẻ tab Button Chuyển qua lại giữa các trang trong giao diện

2 Trang giao diện Panel Hiển thị các thông tin của từng loại thẻ tab

3 Các thông số TextMeshPro Hiển thị các thông số của nhân vật

4 Thanh nâng cấp chỉ số Slider Hiển thị số điểm nâng cấp hiện tại của từng loại chỉ số

5 Nút “+” Button Nâng cấp chỉ số mong muốn

6 Ô trang bị Button Cho phép người chơi đặt một vũ khí bất kì vào ô

7 Nút Save game Button Lưu thông số hiện tại của game

8 Nút Quit game Button Thoát game

Túi đồ nhân vật/ Rương đồ

STT Tên đối tượng Loại Chức năng

1 Giao diện túi đồ Panel Hiển thị giao diện túi đồ

2 Ô vật phẩm Button Cho phép người chơi đặt vật phẩm bất kì vào ô Thanh trạng thái nhân vật

STT Tên đối tượng Loại Chức năng

1 Giao diện thanh trạng thái Panel Hiển thị giao diện thanh trạng thái

2 Thanh trạng thái Slider Hiển thị từng loại thì số hiện tại của nhân vật

3 Cấp độ TextMeshPro Hiển thị cấp độ hiện tại của nhân vật Đồng hồ

STT Tên đối tượng Loại Chức năng

1 Giao diện đồng hồ Panel Hiển thị giao diện đồng hồ

Giờ TextMeshPro Hiển thị Thứ/Ngày/Năm/Giờ hiện tại trong game

3 Mùa Image Hiển thị hình ảnh mùa hiện tại

4 Chu kỳ ngày đêm Image

Hiển thị kim đồng hồ quay theo chiêu kim đồng hồ thể hiện chu kỳ ngày đêm

STT Tên đối tượng Loại Chức năng

1 Giao diện Dialogue Panel Hiển thị giao diện hội thoại NPC

2 Avatar NPC Image Hiển thị Portrait NPC

3 Tên NPC TextMeshPro Hiển thị tên NPC đang tương tác

4 Dialogue TextMeshPro Hiển thị hội thoại của người chơi với NPC

Dungeon Scene

Dungeon Scene là một màn hình hiển thị giao diện màn chơi của game, người chơi có thể vào Dungeon thông qua cổng vào Dungeon Dungeon giúp người chơi có thể farm được nhiều quái và thu lượm được nhiều vật phẩm hơn so với bên ngoài bản đồ.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

Khi người chơi chạm vào cổng Dungeon sẽ được chuyển sang màn hình Dungeon Scene

2 Giao diện Dungen Tile Map Hiển thị bản đồ Dungeon

3 Quái vật GameObject Hiển thị quái vật trong màn chơi

Tác dụng triệu hồi quái vật khi người chơi lại gần và sau một khoảng thời gian quái vật bị người chơi tiêu diệt hết, sẽ hồi sinh lại quái vật

Shop Scene

Hình 6.2.4.2: Giao diện mua hàng trong Shop Scene

Shop Scene là màn hình hiển thị cửa hàng mua đồ, nơi người chơi sử dụng vàng kiếm được trong thời gian chơi để mua những vật phẩm cần thiết tùy theo nhu cầu của người chơi.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

1 Giao diện cửa hàng Tile Map Hiển thị giao diện cửa hàng

2 NPC GameObject Người chơi có thể tương tác với

NPC để mở giao diện mua hàngGiao diện mua hàng

STT Tên đối tượng Loại Chức năng

1 NPC Avatar Image Hiển thị Portrait NPC

2 Danh sách vật phẩm Panel & ScrollBar Hiển thị danh sách vật phẩm có thể mua được ở cửa hàng

Người chơi có thể nhấn vào vật phẩm để có thể mua hàng Ô vật phẩm thể hiện tên, hình ảnh và giá bán của vật phẩm

4 Vàng TextMeshPro Hiển thị số vàng hiện có của người chơi

Potion Shop Scene

Hình 6.2.5.2: Giao diện mua bán trong Potion Shop Scene

Potion Shop Scene là màn hình hiển thị cửa hàng bán thuốc hồi phục, nơi người chơi sử dụng vàng kiếm được trong thời gian chơi để mua những vật phẩm hồi phục cần thiết tùy theo nhu cầu của người chơi.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

1 Giao diện cửa hàng Tile Map Hiển thị giao diện cửa hàng

2 NPC GameObject Người chơi có thể tương tác với

NPC để mở giao diện mua hàng Giao diện mua hàng

STT Tên đối tượng Loại Chức năng

1 NPC Avatar Image Hiển thị Portrait NPC

2 Danh sách vật phẩm Panel & ScrollBar Hiển thị danh sách vật phẩm có thể mua được ở cửa hàng

Người chơi có thể nhấn vào vật phẩm để có thể mua hàng Ô vật phẩm thể hiện tên, hình ảnh và giá bán của vật phẩm

4 Vàng TextMeshPro Hiển thị số vàng hiện có của người chơi

Guild Scene

Hình 6.2.6.2: Giao diện bảng nhiệm vụ trong Guild Scene

Guild Scene là màn hình hiển thị giao diện Guild của game, nơi người chơi có thể tới để hoàn thành những nhiệm vụ mà Guild yêu cầu để có thể nhận được lượng vàng và điểm kinh nghiệm tương ứng tùy theo độ khó của nhiệm vụ.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

1 Giao diện Guild Tile Map Hiển thị giao diện cửa hàng

Người chơi có thể tương tác với bảng nhiệm vụ để mở ra danh sách nhiệm vụ

Giao diện bảng nhiệm vụ

STT Tên đối tượng Loại Chức năng

1 Giao diện bảng nhiệm vụ Panel Hiển thị giao diện bảng nhiệm vụ

2 Danh sách nhiệm vụ Panel & ScrollBar Hiển thị danh sách nhiệm vụ hiện có của Guild

Người chơi có thể ấn vào nhiệm vụ để có thể hiển thị chi tiết nhiệm vụ ở màn hình bên cạnh

4 Tên nhiệm vụ TextMeshPro Hiển thị tên nhiệm vụ

5 Mô tả nhiệm vụ TextMeshPro Hiển thị mô tả chi tiết về nhiệm vụ đó

Hiển thị lượng vàng và kinh nghiệm người chơi có thể nhận khi hoàn thành nhiệm vụ

7 Vật phẩm yêu cầu Image &

Hiển thị hình ảnh và số lượng vật phẩm yêu cầu để có thể hoàn thành nhiệm vụ

Người chơi có thể ấn vào nút để có thể hoàn thành nhiệm vụ và nhận được những vật phẩm tương ứng

9 Vàng TextMeshPro Hiển thị số vàng hiện có của người chơi

Black Smith Scene

Hình 6.2.7.2: Giao diện rèn vật phẩm của Black Smith Scene

Blacksmith Scene là màn hình hiển thị giao diện tiệm rèn, nơi người chơi có thể sử dụng vàng và những vật phẩm yêu cầu để có thể chế tạo ra một loại vũ khí để có thể sử dụng.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

Blacksmith Scene Tile Map Hiển thị giao diện tiệm rèn

2 NPC GameObject Người chơi có thể tương tác với

NPC để mở giao diện rèn Giao diện rèn vật phẩm

STT Tên đối tượng Loại Chức năng

1 Giao diện tiệm rèn Panel Hiển thị giao diện tiệm rèn

2 Danh sách vũ khí có thể rèn Panel & ScrollBar Hiển thị danh sách vũ khí có thể rèn

Người chơi có thể ấn vào vũ khí để có thể hiển thị chi tiết vũ khí ở màn hình bên cạnh

4 Tên vũ khí TextMeshPro Hiển thị tên vũ khí

5 Mô tả vũ khí TextMeshPro Hiển thị mô tả về vũ khí đó

6 Vàng của vũ khí TextMeshPro Hiển thị lượng vàng người chơi cần phải trả để có thể rèn vũ khí

7 Vật phẩm yêu cầu Image & Hiển thị hình ảnh và số lượng vật

TextMeshPro phẩm yêu cầu để có thể rèn vũ khí

8 Nút rèn Button Người chơi có thể ấn vào nút đó để rèn vũ khí

9 Vàng TextMeshPro Hiển thị số vàng hiện có của

CutScene Scene

CutScene Scene là một màn hình hiển thị khi người chơi mới bắt đầu chơi, tại đây sẽ có các đoạn hội thoại và các cắt cảnh để người chơi có thể làm quen với lối chơi của trò chơi trước khi bắt đầu.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

1 Hộp thoại Panel Hiển thị đoạn hội thoại của người chơi với người hướng dẫn

CutScene Tile Map Hiển thị bản đồ CutScene

3 Quái vật GameObject Hiển thị quái vật trong màn chơi

4 CutScene Trigger GameObject Kích hoạt một đoạn cắt cảnh khi người chơi chạm vào

Ruins Scene

Ruins Scene là một màn hình hiển thị giao diện màn chơi của game, người chơi có thể vào Ruins thông qua cổng vào Ruins Ruins giúp người chơi có thể farm được nhiều quái và thu lượm được nhiều vật phẩm hơn so với bên ngoài bản đồ.

Các đối tượng trên màn hình:

STT Tên đối tượng Loại Chức năng

Khi người chơi chạm vào cổng Dungeon sẽ được chuyển sang màn hình Ruins Scene

2 Giao diện Ruins Tile Map Hiển thị bản đồ Ruins

3 Quái vật GameObject Hiển thị quái vật trong màn chơi

GameObject Tác dụng triệu hồi quái vật khi người chơi lại gần và sau một khoảng thời gian quái vật bị người chơi tiêu diệt hết, sẽ hồi sinh lại quái vật

CHƯƠNG 7: CÀI ĐẶT VÀ KIỂM THỬ

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

Môi trường cài đặt: Window 10 hoặc hơn

Thiết bị cài đặt: Máy tính cá nhân chạy Window 11 với con chip Core i7.

STT Tính năng Mức độ hoàn thiện Ghi chú

5 Tung kĩ năng tầm xa 100%

17 Giao diện quản lý nhân vật 100%

Bảng 7.2: Kết quả kiểm thử

- Hoàn thành tất cả các tính năng theo kế hoạch dự kiến được đưa ra trong bản đề cương chi tiết.

- Hiểu được thêm về cách hoạt động của Unity Engine cũng như một phần kiến thức về quy trình thiết kế một game.

- Hiểu được cách sử dụng Inky cũng như tích hợp nó vào trong Unity Engine

- Hiểu được cách sử dụng và cài đặt Light 2D material trong Unity2D URP

- Hiểu được cách làm CutScene

- Hiểu được cách áp dụng Perlin Noise và sử dụng Unity Plugin để tạo map tự động.

- Biết cách sử dụng NavMesh vào tìm đường.

- Biết cách quản lý mã nguồn thông qua Github.

- Cải thiện khả năng lập trình, cách áp dụng các Design Pattern như Singleton và cách kiểm tra cũng như tự sửa lỗi.

- Cải thiện khả năng đọc hiểu code cũng như cải tiến thêm từ code kiếm được từ các trang hướng dẫn và khả năng đọc tài liệu bằng tiếng Anh.

- Các tính năng và code vẫn còn thô và nhiều lỗi vặt nhỏ.

- Giao diện, đồ họa game chỉ ở mức tạm được.

- Còn nhiều tính năng vẫn chưa thiết thực, còn gây nhiều khó khăn đối với người chơi.

- Cơ chế tương tác NPC cũng như Dialogue vẫn còn sơ xài, chưa thật sự có nhiều sự thiết thực.

- Cơ chế thay đổi thời tiết và hoạt ảnh tùy theo từng loại thời tiết vẫn chỉ là prototype, chưa thể áp dụng vào thực tiễn.

- NPC và quái vẫn còn ít, chưa được đa dạng.

- Cơ chế tấn công của nhân vật cũng như AI của quái vẫn còn đơn giản.

Qua quá trình thực hiện, em nhận thấy có những hạn chế của đồ án vẫn còn có thể cải thiện được và được mở rộng thêm nữa Cụ thể hóa bằng những hướng phát triển sau:

Cải thiện AI quái vật:

- Áp dụng những kỹ thuật như Gizmo direction, Steering Behavior để làm quái di chuyển “thông minh” cũng như có thể gây ra một chút khó khăn để thử thách người chơi.

Cải thiện tương tác NPC:

- Áp dụng kỹ thuật Path Finding cũng như tích hợp nhiều hơn Inky để làm cho NPC trở nên sinh động hơn

- Cải thiện đồ họa trò chơi trở nên trực quan hơn.

- Thêm nhiều chi tiết cho bản đồ để mang lại cảm giác chân thực hơn cho người chơi.

- Phát triển thêm nhiều khả năng cho nhân vật để làm đa dạng hơn lối chơi.

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

HÌNH ẢNH LIÊN QUAN

Hình 2.8.1: Khởi tạo cấu trúc Dungeon trong Edgar Unity - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 2.8.1 Khởi tạo cấu trúc Dungeon trong Edgar Unity (Trang 30)
Hình 2.8.2: Dungeon được tạo ngẫu nhiên sau khi sử dụng Edgar Unity - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 2.8.2 Dungeon được tạo ngẫu nhiên sau khi sử dụng Edgar Unity (Trang 30)
Bảng 4.4.12: Đặc tả chức năng “Chế tạo vũ khí” - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Bảng 4.4.12 Đặc tả chức năng “Chế tạo vũ khí” (Trang 43)
Bảng 4.4.13: Đặc tả chức năng “Tương tác NPC” - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Bảng 4.4.13 Đặc tả chức năng “Tương tác NPC” (Trang 44)
Hình 5.1.1.1: Sơ đồ Class chức năng Save/Load, Inventory, Equipment, Time, Light - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.1.1.1 Sơ đồ Class chức năng Save/Load, Inventory, Equipment, Time, Light (Trang 48)
Hình 5.1.1.2: Sơ đồ Class chức năng quản lý Player, Enemy - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.1.1.2 Sơ đồ Class chức năng quản lý Player, Enemy (Trang 49)
Hình 5.1.1.3: Sơ đồ Class chức năng Dialogue, Shop, Craft, Quest - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.1.1.3 Sơ đồ Class chức năng Dialogue, Shop, Craft, Quest (Trang 50)
Hình 5.2.1.1: Sơ đồ State của Player - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.2.1.1 Sơ đồ State của Player (Trang 58)
Hình 5.1.2.3: Sơ đồ State trạng thái Movement của Player - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.1.2.3 Sơ đồ State trạng thái Movement của Player (Trang 58)
Hình 5.1.2.4: Sơ đồ State trạng thái Slash của Player - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.1.2.4 Sơ đồ State trạng thái Slash của Player (Trang 59)
Hình 5.2.2.1: Sơ đồ State của Slime - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.2.2.1 Sơ đồ State của Slime (Trang 60)
Hình 5.2.2.2: Sơ đồ State trạng thái Idle của Slime - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.2.2.2 Sơ đồ State trạng thái Idle của Slime (Trang 61)
Hình 5.2.3.1: Sơ đồ State của Skeleton - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.2.3.1 Sơ đồ State của Skeleton (Trang 62)
Hình 5.2.3.2: Sơ đồ State trạng thái Idle của Skeleton - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.2.3.2 Sơ đồ State trạng thái Idle của Skeleton (Trang 62)
Hình 5.2.4.1: Sơ đồ State của ToasterBot - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 5.2.4.1 Sơ đồ State của ToasterBot (Trang 64)
Hình 6.2.1.1: Menu Scene - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.1.1 Menu Scene (Trang 66)
Hình 6.2.2.2: Giao diện quản lý nhân vật - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.2.2 Giao diện quản lý nhân vật (Trang 68)
Hình 6.2.2.7: Dialogue - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.2.7 Dialogue (Trang 70)
Hình 6.2.3.1: Dungeon - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.3.1 Dungeon (Trang 74)
Hình 6.2.4.1: Shop Scene - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.4.1 Shop Scene (Trang 76)
Hình 6.2.4.2: Giao diện mua hàng trong Shop Scene - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.4.2 Giao diện mua hàng trong Shop Scene (Trang 76)
Hình 6.2.5.2: Giao diện mua bán trong Potion Shop Scene - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.5.2 Giao diện mua bán trong Potion Shop Scene (Trang 78)
Hình 6.2.6.2: Giao diện bảng nhiệm vụ trong Guild Scene - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.6.2 Giao diện bảng nhiệm vụ trong Guild Scene (Trang 80)
Hình 6.2.7.1: Black Smith Scene - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.7.1 Black Smith Scene (Trang 82)
Hình 6.2.8: Màn hình CutScene - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.8 Màn hình CutScene (Trang 84)
Hình 6.2.9.2: Cổng vào Ruins - báo cáo đồ án 2 xây dựng game 2d top down bằng unity
Hình 6.2.9.2 Cổng vào Ruins (Trang 86)
w