Báo cáo Đồ án 2: Xây dựng Dungeon Escape Game - ĐH Công nghệ Thông tin

Tài liệu tham khảo đồ án 2 game Dungeon Escape 2D xây dựng bằng Unity, C#. Báo cáo đầy đủ nội dung phân tích, thiết kế, use case cho sinh viên.

Chuyên ngành

Công nghệ phần mềm

Người đăng

Ẩn danh

Thể loại

Báo cáo đồ án

2022

62
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Về Đồ Án Game Dungeon Escape 2D Bằng Unity

Dungeon Escape Game là một đồ án phát triển game 2D được thực hiện tại Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM. Đây là một game 2D kết hợp giữa giải đố và tiêu diệt quái, nơi người chơi sẽ điều khiển nhân vật chính vượt qua các màn chơi phức tạp để thoát ra khỏi hầm ngục. Dự án được phát triển bằng Unity Engine với ngôn ngữ lập trình C#, được hướng dẫn bởi ThS. Trần Anh Dũng. Nội dung game được thiết kế logic, hấp dẫn và phù hợp với đối tượng người chơi từ 7 tuổi trở lên. Đây là một dự án thực tiễn giúp sinh viên áp dụng các kiến thức về phát triển game 2D, quản lý game objectlập trình C# hiệu quả trong môi trường thực tế.

1.1. Lý Do Chọn Đề Tài Và Mục Tiêu Phát Triển

Video game ngày nay là hình thức giải trí phổ biến nhất của giới trẻ. Với sự phát triển của công nghệ, gần như ai cũng sở hữu máy tính và các nền tảng phân phối game rất dễ tiếp cận, giúp game indie của những nhóm phát triển nhỏ dễ đến được với người chơi hơn. Nhóm em chọn đề tài này để phát triển kỹ năng lập trình game thực tế, kết hợp thiết kế giao diện, xây dựng AI cho quái vậtquản lý logic game. Mục tiêu chính là tạo ra một sản phẩm game hoàn chỉnh với giao diện hài hoà, đẹp mắt và các tính năng hoạt động ổn định.

1.2. Đối Tượng Sử Dụng Và Phạm Vi Ứng Dụng

Dungeon Escape Game được thiết kế cho tất cả người chơi có độ tuổi từ 7 tuổi trở lên, bao gồm cả trẻ em và người lớn yêu thích game 2D. Phạm vi ứng dụng bao gồm PC Windows, Mac và các nền tảng hỗ trợ Unity. Game có thể chơi offline mà không cần kết nối internet, phù hợp với nhu cầu giải trí trong thời gian rảnh. Nội dung không chứa bạo lực khó nghe mà chỉ tập trung vào giải đốchiến đấu theo kiểu arcade, an toàn cho mọi lứa tuổi.

II. Các Tính Năng Chính Và Hệ Thống Game

Dungeon Escape Game được xây dựng với các tính năng chính bao gồm hệ thống chiến đấu, hệ thống loot và shop, cùng nhiều game object đa dạng. Trò chơi sử dụng Tilemap 2D để xây dựng môi trường game, tạo ra các màn chơi phức tạp với các yếu tố giải đố kết hợp với tiêu diệt quái vật. Hệ thống âm thanh bao gồm ambience musicsound effects như âm thanh tấn công, đánh kiếm và nhận sát thương, tạo ra trải nghiệm chơi game sống động và hấp dẫn. Giao diện game có health bars, coin/loot counter, và các menu điều hướng dễ sử dụng, giúp người chơi theo dõi trạng thái nhân vật một cách rõ ràng.

2.1. Hệ Thống Chiến Đấu Và Quái Vật AI

Hệ thống chiến đấu trong Dungeon Escape bao gồm các game object quái vật như Moss Giant, SkeletonSpider, mỗi loại có AI độc lập với hành vi riêng. Moss Giant sử dụng State Diagram để quản lý các trạng thái Idle (chờ đợi) và Attack (tấn công). Skeleton có khả năng tấn công với tốc độ trung bình, còn Spider thực hiện tấn công liên tục với tốc độ cao. Mỗi quái vật khi nhận sát thương sẽ có phản ứng khác nhau, tạo ra gameplay đa dạngthách thức.

2.2. Hệ Thống Loot Shop Và Nâng Cấp

Hệ thống loot cho phép quái vật drop tiền khi bị tiêu diệt, người chơi có thể tích lũy tiền để sử dụng trong cửa hàng. Shop system cung cấp hai loại nâng cấp chính: sword upgrade (tăng sát thương kiếm) và hit points upgrade (tăng máu nhân vật). Mỗi nâng cấp có giá tiền khác nhau, khuyến khích người chơi lên kế hoạch tài chính trong game. Health bars hiển thị máu của nhân vậtmáu của quái vật, giúp người chơi dễ dàng theo dõi trạng thái chiến đấu.

III. Công Nghệ Sử Dụng Và Môi Trường Phát Triển

Dungeon Escape Game được phát triển sử dụng các công nghệ hiện đại và phổ biến trong ngành game development. Unity Game Engine là nền tảng chính, hỗ trợ phát triển game 2D với hiệu suất cao và khả năng xuất bản đa nền tảng. Ngôn ngữ C# được sử dụng để lập trình các logic game, xử lý player input, quản lý game state và điều khiển AI quái vật. Microsoft Visual Studio được sử dụng làm IDE chính để viết code, cung cấp các tính năng hỗ trợ lập trình mạnh mẽ. Tilemap 2D cho phép tạo bản đồ game một cách hiệu quả, Github được sử dụng để quản lý source code, đảm bảo version controlcollaboration giữa các thành viên nhóm.

3.1. Unity Engine Và C Lập Trình Game

Unity là một game engine mạnh mẽ hỗ trợ phát triển game 2D và 3D cho nhiều nền tảng. C# là ngôn ngữ lập trình hướng đối tượng được Unity hỗ trợ natively, cho phép lập trình game logic một cách hiệu quả và an toàn. Các C# scripts trong Dungeon Escape quản lý player movement, enemy behavior, collision detection, health managementshop system. Unity Editor cung cấp visual development environment, giúp thiết kế level, kết nối scripts, và kiểm thử game một cách trực quan.

3.2. Tilemap 2D Và Quản Lý Source Code

Tilemap 2Dcông cụ chuyên biệt trong Unity để xây dựng bản đồ game bằng cách sắp xếp tile (những hình ảnh nhỏ) trên một grid. Điều này giúp tối ưu hóa hiệu suấtgiảm độ phức tạp của game development. Github được sử dụng để quản lý source code, cho phép nhóm lưu trữ code trên cloud, track thay đổi, và hợp nhất code từ nhiều thành viên. Version control giúp nhóm tránh mất mát codedễ dàng quay lại phiên bản cũ khi cần thiết.

IV. Kết Quả Đạt Được Và Hướng Phát Triển

Dự án Dungeon Escape Game đã hoàn thành thành công với tất cả các tính năng chính được thiết kế. Giao diện game được thiết kế hài hoà và đẹp mắt, với health bars, loot countermenu điều hướng rõ ràng. Hệ thống loot và shop hoạt động ổn định, cho phép người chơi mua nâng cấp một cách trơn tru. Các màn chơi được thiết kế với logic hợp lýđộ khó tăng dần, giúp người chơi không bị nhàm chán. Hệ thống âm thanh với ambience musicsound effects tạo ra trải nghiệm sống động. Tuy nhiên, dự án vẫn có những hạn chếhướng phát triển trong tương lai, bao gồm thêm các loại quái vật, thêm màn chơi phức tạp hơn, và hỗ trợ mobile platform.

4.1. Các Thành Tựu Chính Của Dự Án

Dungeon Escape Game đã thành công trong xây dựng game logic hoàn chỉnh với player movement system, enemy AI systemcombat mechanics hoạt động ổn định. Giao diện game được thiết kế hài hoà, với UI elements tối ưu hóa cho user experience. Hệ thống loot được lưu trữ chính xáccập nhật động cho từng loại quái vật. Kiểm thử ứng dụng đã được thực hiện toàn diện, đảm bảo không có lỗi nghiêm trọng. Báo cáo đồ án được viết chi tiết, tài liệu hóa toàn bộ quá trình phát triển từ thiết kế đến triển khai.

4.2. Khó Khăn Hạn Chế Và Định Hướng Tương Lai

Thách thức chính trong dự án bao gồm tối ưu hóa hiệu suất khi số lượng enemy tăng, cân bằng độ khó game để phù hợp với mọi người chơi, và thiết kế AI phức tạp. Hạn chế hiện tại là game chỉ hỗ trợ PC platform, chưa có multiplayer mode. Hướng phát triển tương lai bao gồm thêm các loại quái vật mới, thêm power-up items, hỗ trợ mobile (Android/iOS), thêm boss battleshệ thống achievement. Optimisasi code để cải thiện hiệu suấtthêm tính năng save/load game sẽ là ưu tiên hàng đầu.

28/12/2025

Trích đoạn nội dung tài liệu

Chương I: GIỚI THIỆU CHUNG 1. Tổng quan đề tài Tên đề tài: Dungeon Escape Game Nền tảng công nghệ: Unity Engine Môi trường phát triển: Desktop - Windows 10 2. Lý do chọn đề tài Hiện nay video game là một trong những hình thức giải trí phổ biến nhất của giới trẻ trong thời gian rảnh. Do ngày nay gần như ai cũng sở hữu máy tính cá nhân và các hệ thống phân phối game rất phổ biến nên các game do những nhóm phát triển nhỏ dễ đến được tay người chơi hơn.

Dựa theo nhu cầu giải trí của mọi người, nhóm quyết định chọn đề tài phát triển một game 2D nhỏ. Đối tượng sử dụng Tất cả người chơi có độ tuổi từ 7 tuổi trở lên. Phạm vi nghiên cứu Phạm vi môi trường: Ứng dụng máy tính. Phạm vi chức năng: + Game 2D đa màn chơi.

+ Một nhân vật do người chơi điều khiển với hệ thống di chuyển cơ bản - đi trái phải và nhảy – và khả năng chiến đấu cơ bản – nhấn chuột để vung kiếm. + Nhiều enemy NPC (quái vật) tự di chuyển và hành động theo AI được cài đặt sẵn, phản ứng theo hành vi của người chơi. + Màn chơi được thiết kế thủ công, sử dụng asset có sẵn, với độ rộng thấp. + Một menu chính khi mở ứng dụng game lên và kết thúc game với các nút cơ bản.

+ Hệ thống loot diamond và shop bán trang bị mua bằng diamonds. 9 Báo cáo đồ án 2 Chương II: CƠ SỞ LÝ THUYẾT 1. Unity Engine Hình II.1: Unity Logo Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies, lần đầu tiên được công bố và phát hành vào tháng 6 năm 2005 tại Apple Worldwide Developers Conference dưới dạng game engine cho Mac OSX. Unity Engine đã dần dần được mở rộng để hỗ trợ các loại nền tảng desktop, mobile, console và Virtual Reality.

Nó đặc biệt phổ biến trên IOS, Android và được coi là dễ sử dụng cho người mới bắt đầu phát triển game và các nhà phát triển indie. Công cụ có thể được sử dụng để tạo ra game 3D và 2D, cũng như mô phỏng tương tác và các trải nghiệm khác. Engine đã được được chấp nhận bởi các ngành bên ngoài trò chơi điện tử, chẳng hạn như phim, ô tô, kiến trúc, kỹ thuật và xây dựng. Unity cung cấp cho người dùng khả năng tạo ra game và trải nghiệm ở cả 2D và 3D, đồng thời engine cung cấp một scripting API chính trong C# bằng cách sử dụng Mono, cho cả trình soạn thảo Unity editor ở dạng plugin và bản thân các game, cũng như chức năng kéo và thả.

Trước khi C# trở thành ngôn ngữ lập trình chính được sử dụng trong engine, trước đây engine hỗ trợ Boo, nhưng đã bị xóa khi phát hành Unity 5 và triển khai dựa trên Boo của JavaScript được gọi là UnityScript, và không được dùng nữa vào tháng 8 năm 2017, sau khi phát hành Unity 2017. Trong các game 2D, Unity cho phép import các sprite và 2D world renderer tiên tiến. Đối với game 3D, Unity cho phép đặc tả kỹ thuật texture compression, mipmap và cài đặt độ phân giải cho mỗi nền tảng mà engine hỗ trợ và cung cấp hỗ trợ cho bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), dynamic shadows using shadow maps, render-to-texture và full-screen post-processing effects.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 độ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# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), phát triển game, ứng dụng Web, ứng dụng Mobile trở nên rất dễ dàng.

Microsoft Visual Studio Hình II.3: Visual Studio Logo Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) từ Microsoft. Microsoft Visual Studio còn được gọi là "Trình soạn thảo mã nhiều người sử dụng nhất thế giới ", được dùng để lập trình C++ và C# là chính. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight.

Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý. Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình. Các ngôn ngữ tích hợp gồm có C,[4] C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic. Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ.

Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS. Microsoft cung cấp phiên bản "Express" (đối với phiên bản Visual Studio 2013 trở về trước) và "Community" (đối với bản Visual Studio 2015 trở về sau) là phiên bản miễn phí của Visual Studio. GitHub Hình II.4: GitHub Logo GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động giống như một mạng xã hội cho lập trình viên. Các lập trình viên có thể clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ repository công cộng, mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc.

Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social để các developer tương tác với nhau. 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. 13 Báo cáo đồ án 2 Chương III: TỔNG QUAN ỨNG DỤNG 1. Giới thiệu tính năng − Sau khi nhấn Start, người chơi sẽ được điều khiển một nhân vật có các khả năng chạy, nhảy và vung kiếm bằng các nút điểu khiển sau: + A: di chuyển trái + D: di chuyển phải + Space: nhảy + Left Click: vung kiếm − Mục tiêu chính của người chơi là thoát ra khỏi màn chơi bằng cách đi đến cổng nằm bên trái bức tường ban đầu, vượt qua hiểm nguy của vô số kẻ địch và các hố chông trên màn chơi.

− Người chơi có thể sử dụng khả năng chiến đấu cơ bản của mình để tiêu diệt địch và tiếp tục di chuyển về đích. − Game kết thúc khi người chơi bị kẻ địch đánh trúng 3 lần, hoặc rơi vào hố chông. Giới thiệu về các GameObject 2.1 MainCamera: Camera object do Unity Engine cung cấp với tác dụng kiểm soát màn hình người chơi (những gì người chơi thực sự thấy khi chơi game). MainCamera object trong game có nhiệm vụ theo dõi Player object, nhờ đó màn hình game luôn luôn quan sát hành động của nhân vật chính và môi trường xung quanh.2 Grid: Là hệ thống vẽ bao gồm các lớp (layer) để thiết kế và vẽ map.

Grid bao gồm 4 layer: Ground, MidGround, FarGround, Foreground - Ground: vẽ các bề mặt (có collision) để nhân vật và các kẻ địch có thể đứng và di chuyển được trên bề mặt - MidGround: dùng để vẽ nền (background) cho game, có độ ưu tiên cao hơn FarGround nên khi render sẽ nằm đè lên FarGround. 14 Báo cáo đồ án 2 - FarGround: dùng để vẽ nền (background) cho game, có độ ưu tiên thấp hơn MidGround nên khi render sẽ nằm dưới MidGround. - ForeGround: dùng để vẽ những chi tiết nhỏ trên bề mặt (như cỏ cây, đá, đèn, …).3 Player: Nhân vật chính của game. Hệ thống logic game xoay quanh object Player và cập nhật trạng thái game dựa trên object này.

Player object tương tác với thế giới game thông qua những script file Player.cs – quản lý logic – và PlayerAnimation.cs – quản lý animation.4 Moss_Giant_Enemy: Một loại quái trong game có hình dạng là người khổng lồ. Di chuyển qua lại giữa 2 điểm được lập trình sẵn. Chuyển sang trạng thái “combat” khi bị người chơi đánh trúng và gây sát thường cho người chơi bằng cách đấm trả.5 Spider_Enemy: Một loại quái trong game có hình dạng là nhện. Không có khả năng di chuyển.

Gây sát thương cho người chơi bằng cách phun ra axid (axid được tạo ra bằng acid prefab). Acid prefab: tạo ra acid objects (tạm thời) khi Spider trong trạng thái phun acid.6 Skeleton_Enemy: Một loại quái trong game có hình dạng là bộ xương .Di chuyển qua lại giữa 2 điểm được lập trình sẵn. Chuyển sang trạng thái “combat” khi bị người chơi đánh trúng và gây sát thường cho người chơi bằng cách đánh trả.7 Spike: Là hệ thống chông được đặt dưới các hố bẫy, khiến người chơi mất hết máu khi chạm vào (người chơi sẽ “chết” ngay lập tức khi chạm vào).8 Gate: Là cổng để kết thúc trò chơi. Khi người chơi chạm vào sẽ chuyển sang màn hình Menu chính sau 3 giây.9 EventSystem: Hệ thống xử lí các sự kiện của GameScene.1 Main Camera: Camera object do Unity Engine cung cấp, dùng để quan sát màn hình chính.2 Canvas: Nơi vẽ Menu chính, chứa các object con là: BackGround, Title, Symbol, Start_Button, Quit_Button.

- BackGround: vẽ hình nền cho màn hình Menu chính - Title: vẽ tựa đề Dungeon Escape cho màn hình Menu chính - Symbol: vẽ hình ảnh tượng trưng cho màn hình Menu chính - Start_Button: bắt đầu trò chơi khi người chơi nhấp vào (chuyển sang màn hình GameScene để bắt đầu trò chơi) - Quit_Button: thoát khỏi trò chơi (đóng cửa sổ trò chơi lại) 2.3 EventSystem: Hệ thống xử lí các sự kiện của MenuScene. Giới thiệu các màn chơi 3.1 Tutorial Một màn chơi ngắn với tác dụng hướng dẫn người chơi các phím di chuyển, tấn công và nhặt diamond. Bước qua cổng cuối đường sẽ đưa người chơi đến scene 1.2 Scene 1 Bao gồm shop ở đầu level, kế cổng qua scene 2. Người chơi cần đi hết màn chơi và vòng lại chỗ ban đầu để mua (ít nhất) gate key để có thể qua màn chơi tiếp theo.

Ngoài ra, người chơi hoàn toàn có thể kiếm đủ diamond trong màn chơi thứ nhất để mua toàn bộ mọi trang bị trong shop trước khi qua màn chơi thứ 2.3 Scene 2 Là một màn chơi tuyến tính với cửa kết thúc nằm cuối màn chơi, đây cũng là mục tiêu của trò chơi. Người chơi không thể mua trang bị ở màn chơi này.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ