1. Trang chủ
  2. » Tất cả

Đồ án 2 đề tài dungeon escape game

62 6 0

Đ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

Định dạng
Số trang 62
Dung lượng 1,54 MB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN ĐỀ TÀI: DUNGEON ESCAPE GAME Giảng viên: Trần Anh Dũng Sinh viên thực hiện: Trần Lộc Tài – 19522157 Lê Trần Thanh Duy – 19520062 Thành phố Hồ Chí Minh, năm 2022 Báo cáo đồ án Mục lục LỜI CẢM ƠN ĐỀ CƯƠNG CHI TIẾT NỘI DUNG Chương I: GIỚI THIỆU CHUNG Tổng quan đề tài Lý chọn đề tài Đối tượng sử dụng Phạm vi nghiên cứu Chương II: CƠ SỞ LÝ THUYẾT 10 Unity Engine 10 C# 11 Microsoft Visual Studio 12 GitHub 13 Chương III: TỔNG QUAN ỨNG DỤNG 14 Giới thiệu tính 14 Giới thiệu GameObject 14 2.1 Trong GameScene 14 2.1.1 MainCamera: 14 2.1.2 Grid: 14 2.1.3 Player: 15 2.1.4 Moss_Giant_Enemy: 15 2.1.5 Spider_Enemy: 15 2.1.6 Skeleton_Enemy: 15 2.1.7 Spike: 15 2.1.8 Gate: 15 2.1.9 EventSystem: 15 2.2 Main Menu 16 2.2.1 Main Camera: 16 2.2.2 Canvas: 16 2.2.3 EventSystem: 16 Giới thiệu chơi 16 Hệ thống loot shop 18 Báo cáo đồ án Chương IV: ĐẶC TẢ USE CASE 20 Sơ đồ Use Case 20 1.1 Player 20 1.2 Moss Giant 21 1.3 Spider 22 1.4 Skeleton 23 Danh sách tác nhân 24 Danh sách Use Case 24 Mô tả chi tiết Use Case 26 4.1 Start Game 26 4.2 Quit Game 27 4.3 Người chơi di chuyển 28 4.4 Vung kiếm 29 4.5 Người chơi nhận sát thương 30 4.6 Chạm Spike 31 4.7 Trở lại menu 32 4.8 Moss Giant – Idle 33 4.9 Moss Giant – Tấn công 34 4.10 Skeleton – Idle 35 4.11 Skeleton – Tấn công 36 4.12 Spider – Tấn công liên tục 37 4.13 Enemy nhận sát thương 38 4.14 Enemy chết 39 4.15 Chạm cổng 40 Chương V: PHÂN TÍCH THIẾT KẾ 41 Phân tích class 41 1.1 Class diagram 41 1.2 Danh sách class 42 1.3 Quan hệ 43 1.4 Chi tiết class 44 State Diagram 55 1.1 Player State Diagram 55 1.2 Moss Giant State Diagram 56 Báo cáo đồ án 1.3 Skeleton State Diagram 57 1.4 Spider State Diagram 58 Danh sách audio clip 59 Chương VI: CÀI ĐẶT VÀ KIỂM THỬ 60 Môi trường cài đặt kiểm thử 60 Kết kiểm thử 60 Chương VII: KẾT LUẬN 61 Tổng kết 61 Kết đạt 61 Khó khăn hạn chế 61 Hướng phát triển 61 Báo cáo đồ án LỜI CẢM ƠN Sau trình học tập rèn luyện khoa Cơng nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM chúng em trang bị kiến thức bản, kỹ thực tế để lần đầu thực Đồ án Để hoàn thành Đồ án này, chúng em xin gửi lời cảm ơn chân thành đến: Ban Giám hiệu trường Đại học Cơng nghệ Thơng tin – ĐHQG TP.HCM tạo điều kiện sở vật chất với hệ thống thư viện đại, đa dạng loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng tận tình giúp đỡ, định hướng cách tư cách làm việc khoa học Đó góp ý q báu khơng q trình thực luận văn mà hành trang tiếp bước cho chúng em trình học tập lập nghiệp sau Trong trình làm Đồ án chúng em khơng tránh khỏi sai sót, chúng em kính mong nhận dẫn góp ý q thầy để hồn thiện phát triển đồ án môn học Đồ án Chúng em xin chân thành cảm ơn Xin chúc điều tốt đẹp đồng hành người Báo cáo đồ án ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: Game 2D Dungeon Escape Cán hướng dẫn: ThS Trần Anh Dũng Thời gian thực hiện: Từ ngày 05/03/2022 đến ngày 11/06/2022 Sinh viên thực hiện: Lê Trần Thanh Duy – 19520062 Trần Lộc Tài – 19522157 Lý chọn đề tài: Hiện video game hình thức giải trí phổ biến giới trẻ thời gian rảnh Do ngày gần sở hữu máy tính cá nhân hệ thống phân phối game phổ biến nên game nhóm phát triển nhỏ dễ đến tay người chơi Dựa theo nhu cầu giải trí người, nhóm em định chọn đề tài phát triển game 2D nhỏ Nội dung sơ lược: Người chơi điều khiển nhân vật vượt qua chơi kết hợp giải đố tiêu diệt quái, người chơi chiến thắng thoát khỏi hầm ngục (dungeon) Đối tượng sử dụng: Tất người chơi có độ tuổi từ tuổi trở lên Báo cáo đồ án Phương pháp thực hiện: Phương pháp làm việc: − Làm việc online offline nhóm thành viên hướng dẫn giảng viên hướng dẫn Phương pháp nghiên cứu: − Nghiên cứu tài liệu cơng nghệ liên quan Phương pháp cơng nghệ: − Tìm hiểu xây dựng game 2D Unity Engine, sử dụng ngơn ngữ C# để lập trình − Tìm hiểu xây dựng môi trường game 2D Tilemap − Quản lý source code Github Nền tảng công nghệ: − Unity Game Engine − Tilemap 2D − Visual Studio IDE Kết mong đợi: − Các tính hoạt động ổn định − Game có giao diện hài hoà, đẹp mắt − Thiết kế nội dung chơi sau logic, hấp dẫn Kế hoạch làm việc: Thời gian thực từ ngày 22/09/2022 đến ngày kết thúc môn học Đồ án – 31/12/2022 Chia thành giai đoạn cụ thể: Giai đoạn 1: Xây dựng chế dự định hồn thiện Thời gian: 22/09/2022 - 23/11/2022 Bao gồm công việc dự kiến: − Thiết kế, xây dựng giao diện + Health bars + Coin/loot counter Báo cáo đồ án − Xây dựng hệ thống loot: lưu trữ đơn vị tiền monster drop, cập nhật loot cho loại monster − Xây dựng hệ thống cửa hàng sử dụng loot: sword upgrade, hit points upgrade − Xây dựng thêm chơi (và kẻ địch), thêm tutorial Giai đoạn 2: Hoàn thiện chế giai đoạn viết báo cáo Thời gian: 24/11/2022 – 31/12/2022 Bao gồm công việc dự kiến: − Xây dựng hệ thống âm + Ambience music + Sound effects: monster attacks, sword swing, sword hit… − Kiểm thử ứng dụng − Viết báo cáo Thời gian thực cụ thể cho công việc phân chia sau: Giai đoạn Giai đoạn Thời gian 22/09 – 24/09 Project review 25/09 – 09/10 Thiết kế, xây dựng giao diện 10/10 – 24/10 Xây dựng hệ thống loot, thiết kế vẽ chơi 25/10 – 8/11 Giai đoạn Nội dung thực Xây dựng hệ thống cửa hàng, thiết kế background cho chơi 9/11 – 23/11 Hoàn thành chơi tutorial 24/11 – 7/12 Xây dựng hệ thống âm 8/12 – 17/12 Xây dựng hệ thống save/load 18/12 – 31/12 Kiểm thử ứng dụng viết báo cáo Phân công công việc: Công việc chung: − Kiểm thử ứng dụng game − Triển khai ứng dụng − Viết báo cáo Báo cáo đồ án − Xây dựng thêm chơi (và kẻ địch) Công việc riêng: Thành viên Công việc Xây dựng giao diện Trần Lộc Tài Xây dựng hệ thống âm Xây dựng hệ thống loot Lê Trần Thanh Duy Xây dựng hệ thống cửa hàng sử dụng loot Báo cáo đồ án NỘI DUNG Chương I: GIỚI THIỆU CHUNG 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 Lý chọn đề tài Hiện video game hình thức giải trí phổ biến giới trẻ thời gian rảnh Do ngày gần sở hữu máy tính cá nhân hệ thống phân phối game phổ biến nên game nhóm phát triển nhỏ dễ đến tay người chơi Dựa theo nhu cầu giải trí người, nhóm định chọn đề tài phát triển game 2D nhỏ Đối tượng sử dụng Tất người chơi có độ tuổi từ 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 chơi + Một nhân vật người chơi điều khiển với hệ thống di chuyển - trái phải nhảy – khả chiến đấu – nhấn chuột để vung kiếm + Nhiều enemy NPC (quái vật) tự di chuyển hành động theo AI cài đặt sẵn, phản ứng theo hành vi người chơi + Màn chơi thiết kế thủ cơng, sử dụng asset có sẵn, với độ rộng thấp + Một menu mở ứng dụng game lên kết thúc game với nút + Hệ thống loot diamond shop bán trang bị mua diamonds Báo cáo đồ án PlayerAnimation No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Mô tả _anim private Animator Thuộc tính Unity cung cấp dùng để quản lý đồ hoạ đối tượng _swordAnimation private Animator Thuộc tính dùng để quản lý đồ họa đối tượng Start() private void Phương thức thực game bắt đầu Move() public void Phương thức bắt đầu animation di chuyển nhân vật quản lí logic vận tốc Jump() public void Phương thức bắt đầu animation nhảy nhân vật Swing() public void Phương thức bắt đầu animation vung kiếm nhân vật, đồng thời bắt đầu animation swordAnimation Death() public void Phương thức bắt đầu animation chết nhân vật Hit() public void Phương thức bắt đầu animation bị đánh trúng nhân vật 47 Báo cáo đồ án Attack No Thuộc tính/Phương Thức _canDamage OnTriggerEnter2D() ResetDamage() Quyền truy cập Kiểu liệu bool Thuộc tính dùng để quản lý đối tượng nhận sát thương hay không void Phương thức thực đối tượng thực trạng thái công: kiểm tra hitbox thuộc tính _canDamage thực ResetDamage() IEnumerator Phương thức thực OnTriggerEnter2D() thực Bắt đầu thời gian cho đối tượng 0.5 giây private private private Mô tả MainMenu No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Mơ tả StartButton public void Phương thức thực người dùng nút ‘Start’ – Chuyển ứng dụng sang GameScene QuitButton public void Phương thức thực người dùng nút ‘Quit’ – tắt ứng dụng 48 Báo cáo đồ án AcidEffect No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Mơ tả Start() private void Phương thức thực game bắt đầu Update() private void Phương thức cập nhật cho Acid prefab (được cập nhật liên tục frame) OnTriggerEnter2D() private void Phương thức thực Acid prefab va chạm nhân vật Moss_Giant No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Health public int Init() Movement() Damage() OnTriggerEnter2D() Mơ tả Máu qi, thực hóa từ interface IDamageble public Phương thức khởi tạo quái override void game bắt đầu, override lại từ lớp Enemy public Phương thức di chuyển override void quái, override lại từ lớp Enemy public void Phương thức tính sát thương, xử lí qi bị đánh trúng, thực hóa từ interface IDamageble void Phương thức xử lí va chạm với người chơi (gây sát thương cho người chơi, đổi trạng thái) private 49 Báo cáo đồ án Enemy No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu health protected int speed protected float pointA protected Transform Lưu vị trí quái game bắt đầu pointb protected Transform Lưu vị trí mà quái di chuyển tới currentTarget protected Vector3 Hướng quái (là pointA pointB) Animator Thuộc tính Unity cung cấp dùng để điều khiển trạng thái quái Mô tả Máu quái Tốc độ di chuyển quái anim protected sprite Thuộc tính Unity cung cấp protected SpriteRenderer dùng để điều khiển render hình ảnh quái Kiểm tra quái chết hay chưa isDeath protected bool isHit protected bool Kiểm tra quái bị đánh trúng hay chưa 11 player protected Player Một instance lớp Player, dùng để truy cập thuộc tính , thay đổi trạng thái người chơi 12 Start() private void Phương thức thực game bắt đầu 13 Update() public virtual void Phương thức cập nhật cho quái (được cập nhật liên tục frame), lớp override lại 14 Movement() public virtual void Phương thức di chuyển quái, lớp override lại 50 Báo cáo đồ án 15 Init() public virtual void Phương thức khởi tạo quái game bắt đầu, lớp override lại Skeleton No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Health public int Init() Movement() Damage() OnTriggerEnter2D() Mô tả Máu quái, thực hóa từ interface IDamageble Phương thức khởi tạo quái override void game bắt đầu, override lại từ lớp Enemy public public public private 51 override void Phương thức di chuyển quái, override lại từ lớp Enemy void Phương thức tính sát thương, xử lí quái bị đánh trúng, thực hóa từ interface IDamageble void Phương thức xử lí va chạm với người chơi (gây sát thương cho người chơi, đổi trạng thái) Báo cáo đồ án Spider No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Health public int Máu quái, thực hóa từ interface IDamageble public GameObject Một instance lớp acidEffect, dùng để tạo acid nhện công public Phương thức khởi tạo quái override void game bắt đầu, override lại từ lớp Enemy acidEffectPrefab Init() Movement() public Mô tả override void Phương thức di chuyển quái, override lại từ lớp Enemy Damage() public void Phương thức tính sát thương, xử lí qi bị đánh trúng, thực hóa từ interface IDamageble Attack() public void Phương thức cơng nhện void Phương thức xử lí va chạm với người chơi (gây sát thương cho người chơi, đổi trạng thái) OnTriggerEnter2D() private 52 Báo cáo đồ án SpiderAnimationEvent No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Mô tả _spider public Spider Một instance lớp Spider, dùng để truy cập vào lớp Spider để xử lí kiện Start() private void Phương thức thực game bắt đầu void Phương thức xử lí nhện cơng (tạo acid từ lớp AcidEffect) Fire() public Shop No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu Mô tả shopPanel private GameObject Biến để lưu Panel giao diện cửa hàng currentSelectItem private int Biến cho biến vật phẩm chọn currentItemCost private Int Biến cho biết giá trị vật phẩm chọn OnTriggerEnter2D() private void Phương thức mở giao diện cửa hàng nhân vật di chuyển vào OnTriggerExit2D() private void Phương thức tắt giao diện cửa hàng nhân vật di chuyển SelectItem() public void Phương thức lựa chọn vật phẩm cửa hàng BuyItem() public void Phương thức mua vật phẩm cửa hàng 53 Báo cáo đồ án UI Manager No Thuộc tính/Phương Thức Quyền truy cập Kiểu liệu playerGemCountText public Text Số lượng gem người chơi sở hữu Image Lưu hình ảnh vị trí vật phẩm chọn cửa hàng Image Lưu hình ảnh máu public selectionImg healthBars gemCountText OpenShop() UpdateShopSelection() UpdateLife() public public public public public Text Lưu gem người chơi cửa hàng void Phương thức để mở giao diện cửa hàng void Phương thức để cập nhật vật phẩm chọn void Phương thức cập nhật máu nhân vật quái public UpdateMaxHealth() void public UpdateLife_Spike() 11 UpdateGemCount() public 54 Mô tả Phương thức cập nhật máu tối đa nhân vật void Phương thức cập nhật máu nhân vật đạp phải chông Void Phương thức cập nhật gem nhân vật Báo cáo đồ án 2 State Diagram 1.1 Player State Diagram Alias s0 s1 s2 s3 s4 s5 s6 s7 State Initial state Idle state Run state Jump state Swing state Hit state Dead state Final state Alias e1 e2 e3 e4 e5 e6 Action ToIdle ToMove ToJump Attack isHit isDeath No 10 11 12 13 14 15 State s0 s1 s1 s1 s1 s2 s2 s2 s3 s3 s3 s4 s4 s5 s5 s6 55 Action/Event e2 e4 e5 e6 e1 e3 e6 e1 e2 e6 e1 e6 e1 e6 Result state s1 s2 s4 s5 s6 s1 s3 s6 s1 s2 s6 s1 s6 s1 s6 s7 Báo cáo đồ án 1.2 Moss Giant State Diagram Alias s0 s1 s2 s3 s4 s5 s6 State Initial state Idle state Walk state Attack state Hit state Dead state Final state Alias e1 e2 e3 e4 e5 Action ToIdle ToMove Attack isHit isDeath No 10 State s0 s1 s1 s1 s2 s2 s3 s3 s4 s4 s5 56 Action/Event e2 e3 e5 e1 e5 e1 e5 e1 e5 Result state s2 s2 s3 s5 s1 s5 s1 s5 s1 s5 s6 Báo cáo đồ án 1.3 Skeleton State Diagram Alias s0 s1 s2 s3 s4 s5 s6 State Initial state Idle state Walk state Attack state Hit state Dead state Final state Alias e1 e2 e3 e4 e5 Action ToIdle ToMove Attack isHit isDeath No 10 State s0 s1 s1 s1 s2 s2 s3 s3 s4 s4 s5 57 Action/Event e2 e3 e5 e1 e5 e1 e5 e1 e5 Result state s2 s2 s3 s5 s1 s5 s1 s5 s1 s5 s6 Báo cáo đồ án 1.4 Spider State Diagram Alias s0 s1 s2 s3 s4 s5 State Initial state Idle state Attack state Hit state Dead state Final state Alias e1 e2 e3 e4 Action ToIdle Attack isHit isDeath No State s0 s1 s1 s2 s2 s3 s3 s4 58 Action/Event e2 e4 e1 e4 e1 e4 Result state s1 s2 s4 s1 s4 s1 s4 s5 Báo cáo đồ án Danh sách audio clip 59 Báo cáo đồ án Chương VI: CÀI ĐẶT VÀ KIỂM THỬ Môi trường cài đặt kiểm thử Mơi trường nhóm cài đặt kiểm thử: Windows 10 Để kiểm tra quản lí source code, cần có Unity Editor, launch qua Unity Hub, hướng dẫn cài đặt theo link sau: Unity - Manual: Installing Unity using the Hub (unity3d.com) Để chạy thử game, tải file DungeonEscape.zip qua link GitHub đồ án: https://github.com/Moonbanner/Dungeon_Escape_Game Kết kiểm thử STT Tính Độ hoàn thiện Nhân vật di chuyển 100% AI hành vi Enemy 100% Hệ thống combat 90% Thiết kế chơi 80% Giao diện menu 100% Hệ thống loot shop 100% Hệ thống âm 100% Hệ thống đa chơi chế chuyển 100% 60 Báo cáo đồ án Chương VII: KẾT LUẬN Tổng kết Đạt tồn tính đề ra, với sản phẩm hoạt động mong muốn Phân đoạn kiểm thử hồn thành kĩ, với đồ án khơng có lỗi đáng kể Kết đạt − Game có animation mượt mà, đẹp mắt − Điều khiển người chơi thoải mái, khơng lứng cứng, cầu kì − Tính không nhiều chăm chút kĩ lưỡng − Hệ thống âm lần đầu triển khai vận hành mong muốn, chất lượng âm không cao hạn chế asset − Thông qua q trình làm đồ án, nhóm có thêm nhiều kiến thức Unity Engine, cách thức Engine vận hành sử dụng giao diện Unity Editor, sửa lỗi có liên quan gặp vấn đề Visual Studio IDE lúc viết script cho đồ án Khó khăn hạn chế − Một số hiệu ứng công người chơi enemy đôi lúc thơ sơ, thiếu tự nhiên nhóm chưa thơng thạo animator Hướng phát triển − Thêm nhiều loại enemy/boss − Viết cốt truyện 61 ... gian thực từ ngày 22 /09 /20 22 đến ngày kết thúc môn học Đồ án – 31/ 12/ 2 022 Chia thành giai đoạn cụ thể: Giai đoạn 1: Xây dựng chế dự định hồn thiện Thời gian: 22 /09 /20 22 - 23 /11 /20 22 Bao gồm công... Thời gian thực hiện: Từ ngày 05/03 /20 22 đến ngày 11/06 /20 22 Sinh viên thực hiện: Lê Trần Thanh Duy – 19 520 0 62 Trần Lộc Tài – 19 522 157 Lý chọn đề tài: Hiện video game hình thức giải trí phổ biến... Báo cáo đồ án NỘI DUNG Chương I: GIỚI THIỆU CHUNG 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 Lý chọn đề tài Hiện

Ngày đăng: 01/02/2023, 21:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w