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: 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ủaGame 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ư Unity 2D, Unity 2D đượ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 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 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 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.
● 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 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.
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 CHƯƠNG 3: XÂY DỰNG GAME 2D TOP DOWN 20 3.1 Tổng quan 20 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ữngNPC (Non player 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ỗi Level đượ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: ĐẶ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 1: 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í
Bảng 2: 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 3: Đặ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 qua 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: Đặ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
Luồng sự kiện Luồng chính 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ắn Yê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 5: Đặ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 6: Đặ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 xa Luồng sự kiện
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 7: Đặ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 8: Đặ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 9: Đặ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
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 10: Đặ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 11: Đặ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 12: Đặ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 Yêu cầu đặc biệt 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 13: Đặ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 14: Đặ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
Luồng sự kiệnLuồng chính 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 15: Đặ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 16: Đặ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 đồ
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 17: Đặ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 18: Đặ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ện
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 19: Đặc tả chức năng “Mở giao diện quản lý nhân vật”
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG
STT Tên màn hình Loại
5 Potion Shop Scene Hiển thị
Bảng 20: Danh sách các màn hình của Game
5.2 Mô tả chi tiết từng màn hình
Menu Scene
Menu Scene là một màn hình xuất hiện khi vừa vào Game Chức năng của nó là giúp người chơi truy cập vào Game với 2 lựa chọn là “Chơi mới” và “Chơi tiếp bản lưu”, hoặc lựa chọn “Thoát trò 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 New Button Chơi mới game
2 Load Button Chơi lại bản lưu
4 REINCARNATION TextMeshPro Hiển thị tên game
Game Scene
Hình 20.2: Màn hình Game Scene
Hình 20.3: Giao diện quản lý nhân vật
Hình 20.5: Túi đồ nhân vật/ Rương đồ
Hình 20.6: 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.
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) đ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 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 Dialogue
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
Dungoen 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
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
Shop Scene
Hình 20.12: 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à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
Potion Shop Scene
Hình 20.14: 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 20.16: 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
Blacksmith Scene
Hình 20.18: Giao diện rèn vật phẩm của Blacksmith 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ènGiao 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 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 người chơi
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ả
Hạn chế
- 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ơ sài, chưa thật sự có nhiều sự thiết thực.
- 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.
Các tài liệu hướng dẫn lập trình
[1] Unity: Get started with Unity - Unity Learn