Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
1,47 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: LẬP TRÌNH GAME 3D RPG TRÊN UNITY UNITY Giảng viên : Huỳnh Hồ Thị Mộng Trinh Sinh viên thực hiện: Trần Anh Tuấn _ 19522481 Võ Đông Phong _ 19522015 Thành phố Hồ Chí Minh, năm 2022 Báo cáo đồ án Mục lục LỜI CẢM ƠN NHẬN XÉT CỦA GIẢNG VIÊN NỘI DUNG Chương I: GIỚI THIỆU CHUNG Tổng quan đề tài Lý chọn đề tài Mục tiêu đề tài Đối tượng nghiên cứu Phạm vi nghiên cứu Chương II: CƠ SỞ LÝ THUYẾT Unity Engine C# 10 Microsoft Visual Studio 11 GitHub 12 Chương III: THIẾT KẾ GAME 13 Tổng quan 13 1.1 Tên game 13 1.2 Thể loại 13 Gameplay 13 Chương IV: ĐẶC TẢ USE CASE 14 Sơ đồ Use Case 14 Danh sách tác nhân 15 Danh sách Use Case 15 Mô tả chi tiết Use Case 16 4.1 Start Game 16 4.2 Quit Game 16 4.3 Pause Game 17 4.4 Resume Game 17 4.5 Exit Game 18 4.6 Người chơi di chuyển 18 4.7 Đổi vũ khí 19 4.8 Vung kiếm 20 Báo cáo đồ án 4.9 Bắn súng 20 4.10 Người chơi nhận sát thương 21 Chương V: PHÂN TÍCH THIẾT KẾ 22 Phân tích class 22 1.1 Class diagram 22 1.2 Danh sách class 22 1.3 Chi tiết class 23 Chương VI: THIẾT KẾ GIAO DIỆN 32 Thiết kế game object 32 1.1 Player 32 Thiết kế hình 33 2.1 Màn hình “Menu Scene” 33 2.2 Màn hình “Game Scene” 34 2.3 Màn hình “Pause Menu” 35 2.4 Màn hình “Loading” 36 Chương VII: KẾT LUẬN 37 Tổng kết 37 Kết đạt 37 Ưu điểm 37 Khó khăn hạn chế 37 Hướng phát triển 38 Báo cáo đồ án Mục lục hình Hình Logo Unity .9 Hình Logo C# .10 Hình Logo Visual Studio 11 Hình Logo Github 12 Hình Use Case Diagram 14 Hình Class Diagram 22 Hình Hình ảnh nhân vật 32 Hình Hình ảnh quái vật beholder 32 Hình Hình ảnh quái vật Turn 32 Hình 10 Hình ảnh hệ thống vũ khí 33 Hình 11 Màn hình Menu Scene .33 Hình 12 Hình ảnh Game Scene 34 Hình 13 Hình ảnh Pause Menu 35 Hình 14 Màn hình Loading 36 Báo cáo đồ án Mục lục bảng Bảng Danh sách actors 15 Bảng Danh sách use case 15 Bảng Đặc tả chức Start Game 16 Bảng Đặc tả chức Quit game .17 Bảng Đặc tả chức Pause Game 17 Bảng Đặc tả chức Resume Game 18 Bảng Đặc tả chức Exit Game .18 Bảng Đặc tả chức di chuyển .19 Bảng Đặc tả chức đổi vũ khí 20 Bảng 10 Đặc tả chức vung kiếm .20 Bảng 11 Đặc tả chức bắn súng 21 Bảng 12 Đặc tả chức người chơi nhận sát thương 21 Bảng 13 Danh sách class 23 Bảng 14 Danh sách trường class Player 24 Bảng 15 Danh sách trường class EnemyAI .24 Bảng 16 Danh sách trường class Enemy 25 Bảng 17 Danh sách trường class Beholder 25 Bảng 18 Danh sách trường class Spikball .26 Bảng 19 Danh sách trường class Turtle 26 Bảng 20 Danh sách trường class IBattleObserve 26 Bảng 21 Danh sách trường class BattleSystem .27 Bảng 22 Danh sách trường class Sword 27 Bảng 23 Danh sách trường class OHS06 28 Bảng 24 Danh sách trường class Sword12Purple 28 Bảng 25 Danh sách trường class Gun 28 Bảng 26 Danh sách trường class Blaster 29 Bảng 27, Danh sách trường class Rifle .29 Bảng 28 Danh sách trường class Bullet 29 Bảng 29 Danh sách trường class BlasterBullet 30 Bảng 30 Danh sách trường class EnemyBullet 30 Bảng 31 Danh sách trường class RifleBullet 31 Bảng 32 Danh sách hình 33 Bảng 33 Bảng thành phần hình Menu Scene 34 Bảng 34 Bảng thành phần hình Game Scene 35 Bảng 35 Bảng thành phần hình Pause Scene 36 Bảng 36 Bảng thành phần hình Loading 36 Báo cáo đồ án LỜI CẢM ƠN Sau q 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, nhóm em trang bị kiến thức bản, kỹ thực tế để hồn thành Đồ án Để hồn thành Đồ án này, nhóm em xin gửi lời cảm ơn chân thành đến: Đầu tiên, nhóm em xin chân thành cảm ơn bày tỏ lòng biết ơn sâu sắc đến ThS Huỳnh Hồ Thị Mộng Trinh, cảm ơn tận tình bảo, hướng dẫn, truyền đạt kinh nghiệm, kiến thức chuyên môn tài liệu liên quan để nhóm hồn đề tài tốt Nhóm xin gửi đến lời tri ân điều mà dành cho nhóm Nhóm xin chân thành cảm ơn tồn thể q thầy khoa Cơng Nghệ Phần Mềm tồn thể q thầy Trường Đại Học Công Nghệ Thông Tin TP.HCM Quý thầy ln tận tình truyền đạt kiến thức, kinh nghiệm quý báu tạo điều kiện thuận lợi cho nhóm suốt q trình học tập trường đặc biệt suốt trình thực đồ án Báo cáo đồ án NHẬN XÉT CỦA GIẢNG VIÊ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: Lập trình game 3D RPG Unity Nền tảng công nghệ: Unity Engine, Microsoft Visual Studio Môi trường phát triển: Android Lý chọn đề tài Ngày nay, sản phẩm giải trí mà đặc biệt game mang lại nguồn lợi nhuận to lớn cho ngành công nghiệp máy tính Do nhu cầu thị trường tăng nhanh, game ngày có chất lượng cao thời gian xây dựng ngày rút ngắn Các game 3D thị trường đa dạng nội dung chủng loại đặc biệt chúng em yêu thích thể loại game nhập vai (RPG) RPG, viết tắt cụm từ Role-Playing Games, thể loại game nhập vai chiến đấu theo lượt thời gian thực thể loại phổ biến thị trường game Lối chơi thường thấy thể loại người chơi tự tạo nhân vật cho bắt đầu tham gia vào phiêu lưu game Các hoạt động phổ biến gồm có luyện level, thu lượm vật phẩm, luyện kỹ năng, lập team với nhiều nhân vật khác Thể loại RPG thu hút người chơi đồ họa ấn tượng, nội dung theo cốt truyện hấp dấn, dường mang đến cho người chơi giới tưởng tượng kỳ thú cho phép họ sống Unity game engine phổ biến nay, có khả phát triển trị chơi đa nền, trình biên tập chạy Windows Mac OS, xuất game cho Windows, Mac, iOS, Android, Wii, Web, Xbox 360, Play station3 Unity tạo nhiều loại game 3D đa dạng, hỗ trợ nhập vào nhiều mơ hình định dạng khác nhau, hỗ trợ tạo mơ hình trực tiếp Lượng tài liệu hướng dẫn nhiều, cộng đồng lớn diễn đàn riêng Unity có hai phiên Unity Pro có tính phí Unity Free để người dùng dễ dàng lựa Báo cáo đồ án chọn, mà Unity khơng dành cho cơng ty lớn chuyên nghiệp, mà kể giới làm game khơng chun sử dụng cách dễ dàng Bởi tính tuyệt vời phổ biến Unity, em lựa chọn đề tài:“Lập trình game 3D RPG Unity” để thực đồ án Mục tiêu đề tài Mục tiêu nghiên cứu: tìm hiểu engine Unity sử dụng Unity để xây dựng ứng dụng game 3D RPG Nhiệm vụ nghiên cứu: • Viết đề cương, báo cáo • Phân tích thiết kế game • Thu thập, đọc tài liệu, nghiên cứu tìm hiểu cách sử dụng Unity cài đặt xây dựng ứng dụng game 3D RPG Unity Đối tượng nghiên cứu - - Cơng nghệ: • Unity Engine • C# • Microsoft Visual Studio Tất người chơi Phạm vi nghiên cứu Đề tài chủ yếu tập trung xây dựng hoàn thiện gameplay dòng game RPG Đồ họa khía cạnh quan trọng, định độ thu hút tựa game Tuy nhiên, nhận thức giới hạn kiến thức, kỹ thuật thiết kế đồ họa, nhóm em tự đặt yêu cầu giao diện mức độ thân thiện với người chơi Báo cáo đồ án Chương II: CƠ SỞ LÝ THUYẾT Unity Engine Hình Logo Unity Unity game engine đa tảng phát triển Unity Technologies, lần công bố phát hành vào tháng năm 2005 Apple Worldwide Developers Conference dạng game engine cho Mac OSX Unity Engine mở rộng để hỗ trợ loại tảng desktop, mobile, console Virtual Reality Nó đặc biệt phổ biến IOS, Android coi dễ sử dụng cho người bắt đầu phát triển game nhà phát triển indie Cơng cụ sử dụng để tạo game 3D 2D, mô tương tác trải nghiệm khác Engine được chấp nhận ngành bên ngồi trị chơi điện tử, chẳng hạn phim, ô tô, kiến trúc, kỹ thuật xây dựng Unity cung cấp cho người dùng khả tạo game trải nghiệm 2D 3D, đồng thời engine cung cấp scripting API C# cách sử dụng Mono, cho trình soạn thảo Unity editor dạng plugin thân game, chức kéo thả Trước C# trở thành ngơn ngữ lập trình sử dụng engine, trước engine hỗ trợ Boo, bị xóa phát hành Unity triển khai dựa Boo JavaScript gọi UnityScript, không dùng vào tháng năm 2017, sau phát hành Unity 2017.1, để sử dụng C# Trong game 2D, Unity cho phép import sprite 2D world renderer tiên tiến Đối với game 3D, Unity cho phép đặc tả kỹ thuật texture compression, mipmap cài đặt độ phân giải cho tảng mà engine hỗ trợ 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 full-screen post-processing effects Báo cáo đồ án currentHealth float Thuộc tính chỉ số máu enemy SightRange() float Phương thức tầm nhìn enemy AttackRange() void Phương thức phạm vi công enemy Attack() void Phương thức công enemy Move() void Phương thức di chuyển enemy TakeDame() void Phương thức nhận sát thương từ người chơi Bảng 16 Danh sách trường class Enemy Beholder STT Thuộc tính/Phương Thức Kiểu liệu Mô tả maxHealth float battleSystem IBattleObserve Hệ thống chiến đấu Beholder Thuộc tính chỉ số máu tối đa Beholder Bảng 17 Danh sách trường class Beholder 25 Báo cáo đồ án Spikball STT Thuộc tính/Phương Thức Kiểu liệu Mơ tả maxHealth float battleSystem IBattleObserve Hệ thống chiến đấu Spikball Thuộc tính chỉ số máu tối đa Spikball Bảng 18 Danh sách trường class Spikball Turtle STT Thuộc tính/Phương Thức Kiểu liệu Mơ tả maxHealth float battleSystem IBattleObserve Hệ thống chiến đấu Turtle Thuộc tính chỉ số máu tối đa Turtle Bảng 19 Danh sách trường class Turtle IBattleObserve STT Thuộc tính/Phương Thức Update() Kiểu liệu Mơ tả Phương thức cập nhật void Bảng 20 Danh sách trường class IBattleObserve 26 Báo cáo đồ án BattleSystem STT Thuộc tính/Phương Thức Kiểu liệu Mơ tả currentEnemies float Thuộc tính enemy waveLevel int Thuộc tính cấp độ enemy SpawnNewEnemyWave() void Phương thức sinh sản enemy StartBattle() Phương thức gọi bắt đầu trận chiến void Bảng 21 Danh sách trường class BattleSystem Sword STT Thuộc tính/Phương Thức Kiểu liệu Mơ tả StartAttack() void Phương thức gọi bắt đầu vung kiếm EndAttack() void Phương thức gọi kết thúc vung kiếm Bảng 22 Danh sách trường class Sword 27 Báo cáo đồ án OHS06 STT Thuộc tính/Phương Thức damage Kiểu liệu Mơ tả Thuộc tính mức độ sát thương kiếm OHSO6 float Bảng 23 Danh sách trường class OHS06 Sword12Purple STT Thuộc tính/Phương Thức damage Kiểu liệu Mơ tả Thuộc tính mức độ sát thương kiếm Sword12Purple float Bảng 24 Danh sách trường class Sword12Purple Gun STT Thuộc tính/Phương Thức Shoot() Kiểu liệu Mơ tả Phương thức gọi lúc bắn súng void Bảng 25 Danh sách trường class Gun 28 Báo cáo đồ án Blaster STT Thuộc tính/Phương Thức bullet Kiểu liệu Mơ tả Thuộc tính đạn Blaster Bullet Bảng 26 Danh sách trường class Blaster Rifle STT Thuộc tính/Phương Thức bullet Kiểu liệu Mơ tả Thuộc tính đạn Rifle Bullet Bảng 27, Danh sách trường class Rifle Bullet STT Thuộc tính/Phương Thức Kiểu liệu Mơ tả lifeTime float Thuộc tính khoảng thời gian đạn bay Spawn() void Phương thức hồi sinh Bảng 28 Danh sách trường class Bullet 29 Báo cáo đồ án BlasterBullet STT Thuộc tính/Phương Thức Kiểu liệu Mơ tả damage float Thuộc tính mức độ sát thương đạn BlasterBullet speed float Thuộc tính vận tốc đạn BlasterBullet Bảng 29 Danh sách trường class BlasterBullet EnemyBullet STT Thuộc tính/Phương Thức Kiểu liệu Mơ tả damage float Thuộc tính mức độ sát thương đạn EnemyBullet speed float Thuộc tính vận tốc đạn EnemyBullet Bảng 30 Danh sách trường class EnemyBullet RifleBullet STT Thuộc tính/Phương Thức damage Kiểu liệu Mơ tả Thuộc tính mức độ sát thương đạn RifleBullet float 30 Báo cáo đồ án 2 speed Thuộc tính vận tốc đạn RifleBullet float Bảng 31 Danh sách trường class RifleBullet 31 Báo cáo đồ án Chương VI: THIẾT KẾ GIAO DIỆN Thiết kế game object 1.1 Player Player đối tượng trị chơi mà người dùng điều khiển di chuyển để thực tất loại thứ tùy thuộc vào quy tắc game Hình Hình ảnh nhân vật 1.2 Enemy NPC Enemy NPC quái vật điều khiển trí tuệ nhân tạo AI, có nhiệm vụ truy lùng đánh player người chơi điều khiển Hình Hình ảnh quái vật beholder Hình Hình ảnh quái vật Turn 1.3 Weapon Hệ thống vũ khí game 32 Báo cáo đồ án Hình 10 Hình ảnh hệ thống vũ khí Thiết kế hình STT Ý nghĩa/Ghi Tên hình Màn hình Menu Scene Màn hình vào game Màn hình Game Scene Màn hình để chơi game Màn hình Pause Scene Màn hình tạm dừng game Màn hình Loading Màn hình chờ để vào chơi game Bảng 32 Danh sách hình 2.1 Màn hình “Menu Scene” Hình 11 Màn hình Menu Scene 33 Báo cáo đồ án STT Tên thành phần Kiểu Ý nghĩa Play Button Bắt đầu vào game, chuyển đến hình “Game Scene” Shop Button Xem vật phẩm, chuyển đến hình “Shop Scene” Settings Button Cài đặt game, chuyển đến hình “Settings Scene” Quit Button Thốt game Bảng 33 Bảng thành phần hình Menu Scene 2.2 Màn hình “Game Scene” Hình 12 Hình ảnh Game Scene STT Tên thành phần Kiểu Ý nghĩa Nhân vật GameObject Biểu thị ngoại hình nhân vật Enemy GameObject Biểu thị ngoại hình quái vật số máu chúng 34 Báo cáo đồ án Chỉ số HP Text Biểu thị HP nhân vật Nút điều khiển Button Di chuyển nhân vật Jump Button Cho nhân vật nhảy Dash Button Cho nhân vật chạy Swap Button Đổi vũ khí cho nhân vật Attack/Shoots Button Attrack: cho nhân vật vung kiếm, Shoots: cho nhân vật bắn súng Tạm dừng game Button Tạm dừng game, hình “Pause Menu” Bảng 34 Bảng thành phần hình Game Scene 2.3 Màn hình “Pause Menu” Hình 13 Hình ảnh Pause Menu 35 Báo cáo đồ án STT Tên thành phần Kiểu Resume Button Exit Button Ý nghĩa Trở lại ván game Thoát trận Bảng 35 Bảng thành phần hình Pause Scene 2.4 Màn hình “Loading” Hình 14 Màn hình Loading STT Tên thành phần Kiểu Background Image Loading bar Text Ý nghĩa Trang trí Thời gian chờ vào game Bảng 36 Bảng thành phần hình Loading 36 Báo cáo đồ án Chương VII: KẾT LUẬN Tổng kết Qua trò chơi demo chúng em bước tiếp cận với công nghệ làm game, cách thức phương pháp, tảng tối ưu, biết cách cài đặt, sử dụng Unity để làm game Trong trình xây dựng game chúng em nhận nhiều vấn đề phát sinh, nhiều khó khăn suy nghĩ việc tìm tài liệu xây dựng ý tưởng game tài liệu unity đa phần tiếng anh sau khoảng tháng cố gắng tìm tịi, học hỏi em làm cho game gần hoàn chỉnh để phục vụ cho đồ án Link github: https://github.com/AnhTuan2k1/Knight Kết đạt Hiểu cấu trúc, cách thức hoạt động, cách thức phát triển ứng dụng Unity Nâng cao kiến thức lập trình tiếng anh chuyên ngành thông qua tài liệu Unity tiếng anh Sinh viên có kỹ viết kỹ trình bày xây dựng tài liệu hoàn chỉnh cho dự án trình bày trước hội đồng kết đạt Sinh viên biết cách làm việc hiệu phối hợp với làm việc nhóm Ưu điểm - Game có đầy đủ tính năng, chế game tối thiểu - Game có animation mượt mà, đẹp mắt - Game có hiệu ứng âm sống động - Giao diện game ổn, thân thiện với người chơi - Chức đơn giản dễ sử dụng phù hợp với lứa tuổi Khó khăn hạn chế - Giao diện game chưa thực bắt mắt, thu hút người chơi 37 Báo cáo đồ án - Chế độ chơi đơn giản - Hệ thống nhân vật, quái vật, phần thưởng chưa đa dạng - Hiệu ứng animation cịn thơ sơ, thiếu tự nhiên - Chưa xử lý tối ưu buộc, liệu chưa xếp linh hoạt hợp lý - Cịn nhiều chức chưa hồn thiện - Chưa bắt hết lỗi hệ thống - Chưa xử lý trạng thái hệ thống bị dừng thao tác số tồn việc đặt tên sử dụng linh hoạt điều khiển Hướng phát triển - Bổ sung animation cho hiệu ứng chuyển cảnh, kết thúc chơi - Thêm hệ thống loading - Thêm nhiều chế độ chơi - Thiết kế thêm nhiều chơi chế chuyển màn, kết thúc - Bổ sung hiệu ứng âm thanh, lời thoại nhân vật - Thêm hệ thống loot/inventory/shop/equipment - Tương tác người chơi thông qua hệ thống - Dữ liệu tối ưu hóa đến mức chi tiết - Tối ưu hóa nhân vật giúp nhân vật chuyển nhiều trạng thái - nhân vật TÀI LIỆU THAM KHẢO [1] Janine Suvak - Lập Trình Game Với Unity [2] Unity for Absolute Beginners [3] Unity 2D Game Development [4] Learn Unity for 2D Game Developmen [5] Learning C# Programming With Unity 3D - Alex Okita [6] Learn Unity3D Programming with UnityScript [7] Sue Blackman - Beginning 3D Game Development with Unity All-inOne, MultiPlatform Game Development 2nd Edition - 2013 38 Báo cáo đồ án [8] Terry Norton - Learning C# by Developing Games with Unity 3D Beginner's Guide - 2013 [9] Jeff Murray - C# Game Programming Cookbook for Unity 3D - 2014 [10] Charles Bernardoff - NGUI for Unity - 2014 [12]http://www.unity3dstudent.com/ [13]http://unity3d.com/learn [14]http://vietgamedev.net [11]http://forum.unity3d.com/threads/26785-Unity-Jump-Start-VideoTutorials 39 ... Unity, em lựa chọn đề tài:? ?Lập trình game 3D RPG Unity? ?? để thực đồ án Mục tiêu đề tài Mục tiêu nghiên cứu: tìm hiểu engine Unity sử dụng Unity để xây dựng ứng dụng game 3D RPG Nhiệm vụ nghiên cứu:... Janine Suvak - Lập Trình Game Với Unity [2] Unity for Absolute Beginners [3] Unity 2D Game Development [4] Learn Unity for 2D Game Developmen [5] Learning C# Programming With Unity 3D - Alex Okita... 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: Lập trình game 3D RPG Unity Nền tảng công nghệ: Unity Engine, Microsoft Visual Studio