1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phát triển ứng dụng game bằng unreal engine

113 0 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

Tiêu đề Phát triển ứng dụng game bằng Unreal Engine
Tác giả Đỗ Duy Long
Người hướng dẫn ThS. Nguyễn Minh Đạo
Trường học Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2019-2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 113
Dung lượng 5,97 MB

Nội dung

Năm 2021, Việt Nam nổi lên như một “thủ phủ” của game ứng dụng blockchain, NFT với hàng loạt tựa game do người Việt sản xuất, phát hành, như Axie Infinity, My DeFi Pet, Theta Arena, Myth

Trang 1

THÀNH PHỐ HỒ CHÍ MINH

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHÓA 2019-2023

GVHD: ThS NGUYỄN MINH ĐẠO SVTH : ĐỖ DUY LONG

S K L 0 1 2 0 4 8

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ PHẦN MỀM

ĐỖ DUY LONG: 19110390

ĐỀ TÀI PHÁT TRIỂN ỨNG DỤNG GAME BẰNG UNREAL ENGINE

KHÓA LUẬN TỐT NGHIỆP CÔNG NGHỆ PHẦN MỀM

GIÁO VIÊN HƯỚNG DẪN ThS NGUYỄN MINH ĐẠO

KHÓA 2019-2023

Trang 3

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Họ và tên Sinh viên : Đỗ Duy Long MSSV: 19110390

Ngành: Công nghệ Thông tin

Tên đề tài: Phát triển ứng dụng game bằng Unreal Engine

Họ và tên Giáo viên hướng dẫn: ThS Nguyễn Minh Đạo

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không ?

5 Đánh giá loại :

6 Điểm :

Tp Hồ Chí Minh, ngày tháng năm

Giáo viên hướng dẫn

(Ký & ghi rõ họ tên)

Trang 4

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên : Đỗ Duy Long MSSV: 19110390

Ngành: Công nghệ Thông tin

Tên đề tài: Phát triển ứng dụng game bằng Unreal Engine

Họ và tên Giáo viên phản biện: ThS Mai Anh Thơ

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm

4 Đề nghị cho bảo vệ hay không ?

5 Đánh giá loại :

6 Điểm :

Tp Hồ Chí Minh, ngày tháng năm

Giáo viên phản biện

(Ký & ghi rõ họ tên)

Trang 5

LỜI CÁM ƠN

Lời đầu tiên em xin chân thành cảm ơn trường Đại học Sư phạm Kỹ thuật thành phố

Hồ Chí Minh và khoa Công nghệ thông tin đã tạo môi trường học tập, nghiên cứu để em có thể thực hiện và hoàn thành đề tài Khóa luận tốt nghiệp

Cảm ơn thầy Nguyễn Minh Đạo đã hướng dẫn và hỗ trợ em trong suốt quá trình thực hiện Nhờ có sự chỉ dẫn, giải đáp và chỉnh sửa của thầy mà em mới có thể thực hiện và hoàn thành đề tài đúng thời hạn

Với kinh nghiệm và kiến thức chuyên môn còn hạn chế, bài báo cáo này không thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của quý thầy cô để em có thể rút ra kinh nghiệm và thực hiện tốt hơn sau này

Em xin chân thành cảm ơn

Hồ Chí Minh, ngày tháng năm

Sinh viên thực hiện

Trang 6

ĐH SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CNTT

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP

Họ và tên Sinh viên thực hiện 1: Đỗ Duy Long Mã số SV: 19110390

Thời gian làm luận văn từ: 27/2/2023 (Tuần 1) đến 2/7/2023 (Tuần 19)

Chuyên ngành Công nghệ phần mềm

Tên luận văn: Phát triển ứng dụng game bằng Unreal Engine

Giáo viên hướng dẫn: ThS Nguyễn Minh Đạo

Nhiệm vụ của luận văn:

1 Nghiên cứu các kỹ thuật, công nghệ và bộ công cụ trong phần mềm phát triển trò chơi Unreal Engine: gameplay framework, cơ chế hoạt ảnh, âm thanh, vật lý, hiển thị hình ảnh, AI, Unreal Editor, Blueprint và các thành phần khác

2 Nghiên cứu các phần mềm hỗ trợ trong quá trình phát triển như phần mềm chỉnh sửa

âm thanh với Audacity, hình ảnh với Photoshop, video với Davinci Resolve 17

3 Nghiên cứu các kỹ thuật và công nghệ trong phát triển game: lập trình hướng đối tượng, lập trình hướng sự kiện, hệ thống trạng thái hữu hạn Finite State Machine

4 Đánh giá, tối ưu hiệu năng và dung lượng ứng dụng

5 Nghiên cứu trải nghiệm và cảm nhận game của người dùng

Đề cương viết luận văn:

MỞ ĐẦU

1 Tính cấp thiết của đề tài

2 Mục đích của đề tài

3 Các tiếp cận và phương pháp nghiên cứu

4 Phân tích những công trình có liên quan

5 Kết quả dự kiến đạt được

NỘI DUNG

Trang 7

1 Chương 1: Cơ sở lý thuyết

1.1 Phần mềm phát triển trò chơi

1.2 Unreal Engine

1.2.1 Lý do chọn Unreal Engine

1.2.2 Giới thiệu Unreal Engine

1.2.3 Ngôn ngữ lập trình trực quan Blueprint 1.2.4 Mô hình cấu trúc dự án trong Unreal Engine 1.2.4.1 Cấu trúc code

1.2.4.2 Cấu trúc gameplay 1.3 Quy trình thực hiện

1.3.1 Ý tưởng

1.3.2 Thiết kế

1.3.2.1 Cốt truyện 1.3.2.2 Nhân vật 1.3.2.3 Quái vật 1.3.2.4 Môi trường 1.3.2.5 Nâng cấp 1.3.3 Phát triển

Trang 8

3.7 Cốt truyện và nhiệm vụ

4 Chương 4: Giao diện game

5 Chương 5: Cài đặt và kiểm thử

5.1 Cài đặt phần mềm

5.2 Kiểm thử

KẾT LUẬN

1 Kết quả đạt được

2 Ưu điểm, nhược điểm

3 Mục tiêu mở rộng và hướng phát triển DANH MỤC TÀI LIỆU THAM KHẢO

Trang 9

KẾ HOẠCH THỰC HIỆN

1 Tuần 1 Lập kế hoạch thực hiện chi tiết và đề

cương luận văn

2 Tuần 2, 3 Thực hiện tìm hiểu và khảo sát, mô tả ứng

dụng

Mô tả và xây dựng mô hình thiết kế ứng dụng

3 Tuần 4 Thiết kế lối chơi, quy tắc của trò chơi

5 Tuần 5 Thiết kế cơ bản hệ thống, chức năng có

trong game

Có những thành phần gì, thực hiện nhiệm vụ gì

3 Tuần 7, 8 Xây dựng hệ thống nhân vật và hệ thống

trạng thái nhân vật

4 Tuần 9, 10 Xây dựng hệ thống chiến đấu, chỉ số,

trang bị cơ bản

5 Tuần 11 Xây dựng hệ thống giao diện

6 Tuần 12, 13 Xây dựng hệ thống AI, quái vật và cạm

Trang 10

11 Tuần 19 Kiểm thử và hoàn thành báo cáo

Giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

Tp Hồ Chí Minh, ngày tháng năm

Người viết đề cương (Ký và ghi rõ họ tên)

Trang 11

11

MỤC LỤC

LỜI CÁM ƠN 5

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 6

MỤC LỤC 11

DANH MỤC HÌNH VẼ 15

DANH MỤC BẢNG BIỂU 18

DANH MỤC CHỮ VIẾT TẮT 20

MỞ ĐẦU 21

1 Tính cấp thiết của đề tài 21

2 Mục đích của đề tài 22

3 Cách tiếp cận và phương pháp nghiên cứu 22

3.1 Đối tượng nghiên cứu 22

3.2 Phạm vi nghiên cứu 22

4 Phân tích những công trình có liên quan 22

4.1 Hades 22

4.2 Curse Of The Dead Gods 24

5 Kết quả dự kiến đạt được 25

NỘI DUNG 27

1 Chương 1: CƠ SỞ LÝ THUYẾT 27

1.1 Phần mềm phát triển trò chơi 27

1.2 Unreal Engine 27

1.2.1 Lý do chọn Unreal Engine 27

1.2.2 Giới thiệu Unreal Engine 28

1.2.3 Ngôn ngữ lập trình trực quan Blueprint 28

Trang 12

12

1.2.4 Mô hình cấu trúc dự án trong Unreal Engine 28

1.2.4.1 Cấu trúc code 29

1.2.4.2 Cấu trúc gameplay 31

1.3 Quy trình thực hiện 37

1.3.1 Ý tưởng 37

1.3.2 Thiết kế 37

1.3.2.1 Cốt truyện 37

1.3.2.2 Nhân vật chính 38

1.3.2.3 Quái vật 39

1.3.2.4 Môi trường 39

1.3.2.5 Nâng cấp 39

1.3.3 Phát triển 39

2 Chương 2: THIẾT KẾ 40

2.1 Danh sách chức năng 40

2.2 Danh sách kịch bản 41

2.3 Chi tiết kịch bản 42

3.3.1 UC1: Bắt đầu trò chơi 42

3.3.2 UC2: Di chuyển nhân vật 43

3.3.3 UC3: Né tránh 44

3.3.4 UC4: Đổi vũ khí 45

3.3.5 UC5: Tương tác vật phẩm 46

3.3.6 UC6: Tương tác NPC 47

3.3.7 UC7: Tấn công quái vật 48

3.3.8 UC8: Thay đổi cài đặt game 49

Trang 13

13

3.3.9 UC9: Tương tác cốt truyện 50

2.4 Sơ đồ lớp 51

3.4.1 Sơ đồ lớp màn hình chính 51

3.4.2 Sơ đồ lớp game 52

3.4.3 Sơ đồ lớp quái vật 53

3 Chương 3: PHÁT TRIỂN 54

3.1 Người chơi 54

3.1.1 PlayerController 54

3.1.2 PlayerCharacter 54

3.1.3 Điều khiển 56

3.2 Quái vật 56

3.2.1 AIController 56

3.2.2 EnemyCharacter 59

3.3 Môi trường 61

3.4 Nâng cấp nhân vật 64

3.5 Thiết kế hệ thống 66

3.6 Lưu và tải dữ liệu 66

3.7 Cốt truyện và nhiệm vụ 67

4 Chương 4: GIAO DIỆN 69

4.1 Giao diện màn hình chính 69

4.2 Giao diện chọn file tải dữ liệu 71

4.3 Giao diện chọn đền thờ 72

4.4 Giao diện tương tác với NPC 73

4.5 Giao diện chọn nâng cấp 76

Trang 14

14

4.6 Giao diện tạm dừng game 78

4.7 Giao diện trong game 82

4.8 Giao diện cốt truyện 83

5 Chương 5: CÀI ĐẶT VÀ KIỂM THỬ 86

5.1 Cài đặt phần mềm 86

5.1.1 Epic Games Launcher và Unreal Engine 5.0.3 86

5.1.2 Visual Studio 88

5.1.3 Project 89

5.2 Kiểm thử 91

5.2.1 Các loại kiểm thử áp dụng 91

5.2.2 Các trường hợp kiểm thử 92

5.2.2.1 Các trường hợp kiểm thử chức năng 92

5.2.2.2 Các trường hợp crash và bug 104

KẾT LUẬN 111

1 Kết quả đạt được 111

2 Ưu điểm, nhược điểm 111

3 Mục tiêu mở rộng và hướng phát triển 111

DANH MỤC TÀI LIỆU THAM KHẢO 112

Trang 15

15

DANH MỤC HÌNH VẼ

Hình 1: Hình ảnh minh họa 1 trò chơi Hades 23

Hình 2: Hình ảnh minh họa 2 trò chơi Hades 24

Hình 3: Hình ảnh minh họa 1 trò chơi Curse Of The Dead Gods 25

Hình 4: Hình ảnh minh họa 2 trò chơi Curse Of The Dead Gods 25

Hình 5: Mô hình cấu trúc mã nguồn dự án game sử dụng Unreal Engine 30

Hình 6: Mô hình cấu trúc game 31

Hình 7: Mô hình vật thể nhận input từ người dùng 35

Hình 8: Mô hình kịch bản chung 42

Hình 9: Kịch bản bắt đầu trò chơi 42

Hình 10: Kịch bản người chơi di chuyển 43

Hình 11: Kịch bản người chơi né tránh 44

Hình 12: Kịch bản người chơi đổi vũ khí 45

Hình 13: Kịch bản tương tác vật phẩm 46

Hình 14: Kịch bản tương tác NPC 47

Hình 15: Kịch bản tấn công quái vật 48

Hình 16: Kịch bản thay đổi cài đặt game 49

Hình 17: Kịch bản tương tác luồng cốt truyện 50

Hình 18: Sơ đồ lớp màn hình chính 51

Hình 19: Sơ đồ lớp game 52

Hình 20: Sơ đồ lớp quái vật 53

Hình 21: Nhân vật người chơi điều khiển 54

Hình 22: Components của nhân vật người chơi 55

Hình 23: Cây trạng thái của quái vật Ghoul 57

Hình 24: Cây trạng thái của quái vật Lich 57

Hình 25: Cây trạng thái của quái vật Troll 58

Hình 26: Cây trạng thái của boss Master Grunt 58

Hình 27: Components của nhân vật quái vật 59

Hình 28: Nhân vật quái vật Ghoul 60

Hình 29: Nhân vật quái vật Lich 60

Trang 16

16

Hình 30: Nhân vật quái vật Troll 61

Hình 31: Nhân vật quái vật Grunt Master 61

Hình 32: Mẫu tầng chỉ số 0 của đền thờ Cobra 62

Hình 33: Mẫu tầng chỉ số 1 của đền thờ Cobra 63

Hình 34: Mẫu tầng chỉ số 2 của đền thờ Cobra 63

Hình 35: Giao diện hoạt họa mở đầu 1 69

Hình 36: Giao diện hoạt họa mở đầu 2 69

Hình 37: Giao diện hoạt họa mở đầu 3 70

Hình 38: Giao diện màn hình chính 70

Hình 39: Giao diện chọn file lưu 71

Hình 40: Giao diện chọn đền thờ đã mở khóa 72

Hình 41: Giao diện chọn đền thờ chưa mở khóa 72

Hình 42: Giao diện tương tác NPC 1 73

Hình 43: Giao diện tương tác NPC 2 73

Hình 44: Giao diện tương tác NPC 3 74

Hình 45: Giao diện tương tác NPC 4 74

Hình 46: Giao diện tương tác NPC 5 75

Hình 47: Giao diện tương tác NPC 6 76

Hình 48: Giao diện chọn nâng cấp 1 76

Hình 49: Giao diện chọn nâng cấp 2 77

Hình 50: Giao diện chọn nâng cấp 3 77

Hình 51: Giao diện xem thông tin người chơi khi ngừng game 78

Hình 52: Giao diện thay đổi cài đặt âm thanh 79

Hình 53: Giao diện thay đổi cài đặt đồ họa 80

Hình 54: Giao diện xem thông tin input người dùng 81

Hình 55: Giao diện thay đổi cài đặt lối chơi 81

Hình 56: Giao diện gameplay 1 82

Hình 57: Giao diện gameplay 2 82

Hình 58: Giao diện gameplay 3 83

Hình 59: Giao diện gameplay 4 83

Trang 17

17

Hình 60: Giao diện cốt truyện 1 84

Hình 61: Giao diện cốt truyện 2 84

Hình 62: Giao diện cốt truyện 3 85

Hình 63: Tải EpicGamesLauncher từ web 86

Hình 64: Đăng nhập vào EpicGamesLauncher 87

Hình 65: Di chuyển đến tab tải Unreal Engine 87

Hình 66: Nút chọn tải Unreal Engine 88

Hình 67: Chọn phiên bản Unreal Engine 88

Hình 68: Visual Studio workloads cho Unreal Engine 89

Hình 69: Xác nhận đăng ký phiên bản Unreal 89

Hình 70: Thông báo đăng ký phiên bản hoàn tất 90

Hình 71: ProjectNo6.uproject 90

Hình 72: Thông báo rebuild project do thiếu module 91

Hình 73: Output kiểm thử trong màn hình editor 91

Hình 74: Output kiểm thử trong Output Log 92

Trang 18

18

DANH MỤC BẢNG BIỂU

Bảng 1: Luồng kịch bản bắt đầu trò chơi 43

Bảng 2: Luồng kịch bản người chơi di chuyển 43

Bảng 3: Luồng kịch bản người chơi né tránh 44

Bảng 4: Luồng kịch bản người chơi đổi vũ khí 45

Bảng 5: Luồng kịch bản tương tác vật phẩm 46

Bảng 6: Luồng kịch bản tương tác NPC 47

Bảng 7: Luồng kịch bản tấn công quái vật 48

Bảng 8: Luồng kịch bản thay đổi cài đặt game 49

Bảng 9: Luồng kịch bản tương tác luồng cốt truyện 50

Bảng 10: Bảng nâng cấp cơ bản 64

Bảng 11: Bảng nâng cấp nâng cao 65

Bảng 12: Luồng cốt truyện và nhiệm vụ tuyến tính 67

Bảng 13: Kiểm thử các đường link liên kết bên ngoài 92

Bảng 14: Kiểm thử bắt đầu trò chơi mới 92

Bảng 15: Kiểm thử bắt đầu trò chơi với dữ liệu đã được lưu 93

Bảng 16: Kiểm thử xóa dữ liệu đã lưu 93

Bảng 17: Kiểm thử mua nâng cấp thất bại 94

Bảng 18: Kiểm thử mua nâng cấp thành công 94

Bảng 19: Kiểm thử chọn nâng cấp cơ bản 95

Bảng 20: Kiểm thử chọn nâng cấp đặc biệt 96

Bảng 21: Kiểm thử lưu nhiệm vụ 96

Bảng 22: Kiểm thử lưu đối thoại 96

Bảng 23: Kiểm thử bẫy gai 97

Bảng 24: Kiểm thử bẫy mìn 97

Bảng 25: Kiểm thử bẫy lửa 98

Bảng 26: Kiểm thử tấn công quái vật Ghoul 98

Bảng 27: Kiểm thử tấn công quái vật Lich 99

Bảng 28: Kiểm thử tấn công quái vật Troll 99

Bảng 29: Kiểm thử tấn công quái vật Master Grunt 100

Trang 19

19

Bảng 30: Kiểm thử tấn công của quái vật Ghoul 100

Bảng 31: Kiểm thử tấn công của quái vật Lich 101

Bảng 32: Kiểm thử tấn công của quái vật Troll 101

Bảng 33: Kiểm thử tấn công của quái vật Master Grunt 102

Bảng 34: Kiểm thử bắt đầu lại trò chơi từ khu vực bắt đầu khi chết 102

Bảng 35: Kiểm thử xem thông tin người chơi sau khi kích hoạt nâng cấp chỉ số 103

Bảng 36: Kiểm thử thông tin chỉ số sau khi hoàn thành tầng ngục 104

Trang 21

21

MỞ ĐẦU

1 Tính cấp thiết của đề tài

Ngành công nghiệp trò chơi đã và đang là một trong những ngành công nghiệp giải trí lớn hàng đầu về doanh thu Đây cũng là ngành công nghiệp giải trí có tốc độ phát triển nhanh nhất trong thập kỷ qua Vào năm 2020, có 2.69 tỷ game thủ trên toàn thế giới Đặc biệt, thị trường châu Á rất lớn và dự đoán rằng số lượng game thủ sẽ không ngừng tăng lên trong những năm tiếp theo

Ngành công nghiệp trò chơi ở Việt Nam cũng không phải là ngoại lệ Trong những năm trở lại đây ngành công nghiệp trò chơi tại Việt Nam đang có những bước phát triển vượt bậc Các giải đấu Esport được tổ chức với quy mô và giải thưởng lớn, từ chuyên nghiệp đến nghiệp dư Thị trường game mobile ngày càng phát triển, Việt Nam được xếp hạng 7 trong các quốc gia phát hành mobile game trên toàn cầu Năm 2013, cú hit Flappy Bird được phát hành và nhanh chóng trở thành một cơn sốt trên toàn thế giới Năm 2021, Việt Nam nổi lên như một “thủ phủ” của game ứng dụng blockchain, NFT với hàng loạt tựa game do người Việt sản xuất, phát hành, như Axie Infinity, My DeFi Pet, Theta Arena, Mytheria… Các streamer, youtuber, các nhà sáng tạo nội dung, các tuyển thủ chuyên nghiệp cũng ngày càng đánh dấu được vị thế Ngoài ra, các tựa game indie cũng được ủng hộ và đánh giá cao như Thần Trùng, Cỏ Máu, Hoa, Task Force Elite Đặc biệt, Bộ Thông tin và Truyền thông đã xây dựng lộ trình 5 năm phát triển lĩnh vực game từ 2022 đến 2027 với bước đi quan trọng là Ngày hội Game Việt Nam - Vietnam GameVerse đã được tổ chức lần đầu tiên vào tháng 3-2023

Để tạo ra một tựa game, các studio cần sử dụng một game engine cụ thể và xuyên suốt quá trình phát triển, có thể là custom game engine do họ tự phát triển hoặc là các game engine miễn phí và trả phí có trên thị trường Việc sử dụng các game engine thay vì phát triển từ cơ bản nhất giúp giảm một lượng lớn chi phí và thời gian phải bỏ ra

Xuất phát từ thực tế trên, người thực hiện báo cáo cho rằng việc nghiên cứu một game engine cụ thể, về khả năng, độ linh hoạt, hỗ trợ của game engine đối với nhu cầu, đặc tính và thiết kế của một tựa game trước khi quyết định sử dụng nó để phát triển là điều quan

Trang 22

Thứ hai, từ những tìm hiểu trên, sử dụng Unreal Engine để phát triển một tựa game hoàn thiện

3 Cách tiếp cận và phương pháp nghiên cứu

3.1 Đối tượng nghiên cứu

Đề tài tập trung nghiên cứu vào các đối tượng sau:

- Các tựa game được phát triển bằng Unreal Engine và các tựa game cùng thể loại với đề tài của người thực hiện đề tài

- Phần mềm phát triển game Unreal Engine, phiên bản 5.0.3 trở về trước

3.2 Phạm vi nghiên cứu

Đề tài tập trung nghiên cứu trong phạm vi:

- Công nghệ và kỹ thuật phát triển game trong Unreal Engine

- Xây dựng lối chơi và cơ chế gameplay

- Tối ưu hóa hiệu suất và tài nguyên của ứng dụng

- Đánh giá trải nghiệm người dùng, tương tác giữa người chơi và ứng dụng

4 Phân tích những công trình có liên quan

4.1 Hades

Là tựa game hành động nhập vai roguelike được phát triển và xuất bản bởi nhà phát hành Supergiant Games vào ngày 17/09/2020, được nhận giải thưởng "Best Indie Game" (Tựa game độc lập xuất sắc nhất) tại lễ trao giải The Game Awards 2020

Trang 23

23

Hades kết hợp yếu tố hành động và nhập vai, trong đó người chơi phải chiến đấu qua các tầng của địa ngục, chống lại các quái vật và cạm bẫy nguy hiểm Trong quá trình tiến lên, người chơi có thể thu thập và nâng cấp các vũ khí, kỹ năng và lợi ích để tăng sức mạnh cho nhân vật

Đặc điểm nổi bật:

- Hệ thống combat nhanh nhẹn và hấp dẫn, với sự kết hợp giữa các vũ khí và kỹ năng đặc trưng

- Cốt truyện phong phú và độc đáo, được phát triển thông qua các cuộc trò chuyện

và tương tác với các nhân vật

- Hệ thống nâng cấp và tùy chỉnh cho phép người chơi tùy biến và xây dựng phong cách chơi riêng

Một số hình ảnh minh họa cho tựa game Hades:

Hình 1: Hình ảnh minh họa 1 trò chơi Hades

Trang 24

24

Hình 2: Hình ảnh minh họa 2 trò chơi Hades

4.2 Curse Of The Dead Gods

Tựa game thuộc thể loại hành động nhập vai, roguelike được phát triển bởi Passtech Games, phát hành vào ngày 23/03/2021

Đặc điểm nổi bật:

- Hệ thống vũ khí đa dạng, kết hợp thay đổi trong quá trình chơi

- Hệ thống bóng tối và ánh sáng mới lạ

- Hệ thống lời nguyền làm thay đổi lối chơi, tạo trải nghiệm mới mẻ

Một số hình ảnh minh họa cho tựa game Curse Of The Dead Gods:

Trang 25

25

Hình 3: Hình ảnh minh họa 1 trò chơi Curse Of The Dead Gods

Hình 4: Hình ảnh minh họa 2 trò chơi Curse Of The Dead Gods

5 Kết quả dự kiến đạt được

Phát triển một tựa game roguelike cơ bản, đảm bảo các yêu cầu về:

Trang 26

- Dung lượng ứng dụng vừa phải, không chiếm quá nhiều bộ nhớ trên thiết bị người chơi

- Tối ưu hóa tốt, hiệu suất trò chơi cao, tạo trải nghiệm chơi game mượt mà, giảm thiểu độ trễ và giật lag trong quá trình trải nghiệm

Có thể mang tới những trải nghiệm hấp dẫn cho người chơi từ cơ chế hệ thống và lối chơi, cho đến điều khiển nhân vật cũng như sự cân đối của độ khó

Nhận được phản hồi tích cực từ cộng đồng, học hỏi được thêm kinh nghiệm trong quá trình phát triển, áp dụng cho các dự án tiếp theo

Trang 27

27

NỘI DUNG

1 Chương 1: CƠ SỞ LÝ THUYẾT

1.1 Phần mềm phát triển trò chơi

Phần mềm phát triển trò chơi, hay game engine là một loại phần mềm dùng để thiết

kế và phát triển trò chơi điện tử Game engine không chỉ giúp tiết kiệm thời gian và công sức phát triển, mà còn cung cấp cho nhà phát triển các công cụ mạnh mẽ để tạo ra trò chơi chất lượng cao với hiệu suất tốt trên nhiều nền tảng

Game engine cung cấp nhiều tính năng, bao gồm:

- Tạo nền tảng phát triển: cung cấp các bộ công cụ và tài nguyên cần thiết để phát triển game, giảm thiểu công việc, tăng tốc quá trình phát triển

- Hỗ trợ đa nền tảng: cho phép trò chơi có thể được build và chạy trên nhiều nên tảng khác nhau

- Hỗ trợ đa dạng chức năng: cung cấp kiến trúc và chức năng chính, bao gồm quản

lý vật thể, hệ thống vật lý, hệ thống âm thanh, hệ thống hình ảnh, quản lý sự kiện

Trang 28

28

- Khả năng tạo game trong môi trường 3D với chất lượng đồ họa cao, ánh sáng và hiệu ứng chân thật

- Bộ công cụ phát triển mạnh mẽ, hỗ trợ nhiều tính năng

- Kết hợp giữa 2 ngôn ngữ chính C++ và Blueprint Blueprint giúp tạo mẫu và kiểm thử chức năng hệ thống nhanh chóng, trước khi quyết định và thực hiện trong C++

- Mã nguồn mở, được phép truy cập và thay đổi

1.2.2 Giới thiệu Unreal Engine

Unreal Engine là phần mềm phát triển trò chơi được phát triển và cung cấp bởi Epic Games, được mô tả là một trong những bộ công cụ phát triển 3D thời gian thực tiên tiến nhất Nó cung cấp bộ công cụ đa dạng, linh hoạt trong công việc sáng tạo và miễn phí cho mọi đối tượng Sử dụng ngôn ngữ lập trình C++ và ngôn ngữ lập trình trực quan Blueprint

1.2.3 Ngôn ngữ lập trình trực quan Blueprint

Là ngôn ngữ dựa trên việc lập trình và thiết kế hệ thống thông qua việc sử dụng các node và không cần qua IDE Điều này giúp việc thực hiện các ý tưởng và hiện thực hóa nó được thực hiện một cách nhanh chóng hơn

Ngôn ngữ lập trình trực quan Blueprint không phải là một ngôn ngữ lập trình riêng biệt so với C++, nó được chạy trên một tầng máy ảo và được chuyển đổi thành C++ Việc chuyển đổi này sẽ tốn thêm tài nguyên trong quá trình chạy chương trình, cho nên theo lý thuyết, sử dụng Blueprint cơ bản sẽ tốn tài nguyên hơn so với việc sử dụng C++ nhưng không đáng kể nếu sử dụng hợp lý

Khi lập trình game với Unreal Engine, cần có sự cân bằng giữa việc sử dụng C++

và sử dụng Blueprint một cách hợp lý

1.2.4 Mô hình cấu trúc dự án trong Unreal Engine

Mô hình cấu trúc của một dự án game sử dụng Unreal Engine

Trang 29

29

Hình: Mô hình cấu trúc một dự án game sử dụng Unreal Engine

1.2.4.1 Cấu trúc code

Trang 30

30

Hình 5: Mô hình cấu trúc mã nguồn dự án game sử dụng Unreal Engine

Mã nguồn của dự án Unreal Engine, bao gồm mã nguồn của phần mềm phát triển được chia thành các module, plugin và platform

Module là cấu trúc code chia sẻ code và chức năng với nhau, đảm nhiệm một số chức năng và xử lý một phần cụ thể trong chương trình Ví dụ module xử lý lưu và tải dữ liệu, module thực hiện xử lý các giao diện người dùng

Plugin là cấu trúc code hoạt động độc lập chia sẻ code và chức năng giữa các thành phần trong nó, đảm nhiệm chức năng và xử lý một phần cụ thể Có thể được bật và tắt để

sử dụng khi cần thiết Ví dụ ControlRig plugin, AnimationWarping plugin

Plugin có thể bao gồm các file asset của Unreal Engine còn module chỉ bao gồm các file code Tùy vào mục đích sử dụng, plugin và module có thể được chia sẻ giữa các project với nhau

Mỗi module hoặc plugin sẽ có một file build.cs điều khiển và cấu hình module hoặc plugin đó được xây dựng như thế nào ví dụ như định nghĩa các module và plugin phụ thuộc khác, các thư viện được sử dụng và các đường dẫn

Trang 32

Game Instance không bị phá hủy trong suốt quá trình chạy chương trình, vì vậy có thể dùng làm lớp chung chứa các hệ thống quản lý tự tạo khác, đặc biệt là khi chuyển level, các object và actor thường bị phá hủy

- Số lượng người chơi và người theo dõi hiện tại, cũng như số lượng người chơi

và người theo dõi tối đa

- Các mà người chơi tham gia vào game, bao gồm các quy tắc người chơi như chọn

vị trí ban đầu, chọn nhân vật sẽ điều khiển

- Định nghĩa game có thể được tạm dừng hay không và cách tạm dừng trò chơi được xử lý như thế nào

- Các chuyển đổi giữa các level, bao gồm việc xác định việc game có được bắt đầu với chế độ cinematic hay không

- Quy định các nguyên tắc của game hiện tại, ví dụ như game sinh tồn với quy tắc của nó, game bắn súng với quy tắc khác và nhiều quy tắc khác nữa

Có 2 lớp cha được hỗ trợ và sử dụng phổ biến trong Unreal Engine, bao gồm AGameMode và AGameModeBase

AGameModeBase đơn giản và dễ dàng sử dụng AGameMode được kế thừa từ AGameModeBase, được tích hợp thêm các chức năng khác hỗ trợ nhiều người chơi và các thuộc tính liên quan như một StateMachine hỗ trợ luồng gameplay

Game State

Trang 33

Game State sẽ lưu trữ thông tin được thay đổi trong trận đấu, được nhìn thấy và chia

sẻ tới tất cả người chơi

Controller

Đối với người chơi và AI, Controller được xem như là bộ não điều khiển hành vi và các hoạt động liên quan Controller là các actor không có tính vật lý, có thể sở hữu các instance được tạo từ lớp Pawn hoặc các lớp kế thừa từ nó như Character

Các lớp kế thừa từ Controller như PlayerController và AIController hỗ trợ thêm các chức năng khác PlayerController được sử dụng bởi người chơi và thông thường sẽ nhận input từ người chơi để điều khiển nhân vật của mình, trong khi AIController được thực hiện thêm trí thông minh nhân tạo, dựa vào input từ môi trường xung quanh để quyết định hành động tiếp theo dựa trên các lập trình có sẵn, mặc định, không có khả năng học hỏi, dùng để điều khiển các nhân vật như NPC, quái vật,…

Controller nhận thông báo từ các sự kiện của Pawn mà nó đang điều khiển, từ đó có thể thực hiện các hành vi phản ứng lại các thông báo đó

Mặc định, mối quan hệ giữa Controller và Pawn là một-một, mỗi một Controller chỉ

có thể điều khiển và sở hữu một Pawn tại một thời điểm, nhưng có khả năng thay đổi Pawn đang được điều khiển

Player State

Player State được tạo cho mỗi người chơi trong server hoặc standalone Player State được đồng bộ hóa cho tất cả các client, chứa các thông tin được chia sẻ như tên người chơi, điểm số Player State được sử dụng để lưu trữ các thông tin được chia sẻ chung đến tất cả client, không chỉ riêng người sở hữu Giống như Player Controller, Player State được liên kết với Pawn theo mối quan hệ một-một

Pawn and Character

Trang 34

34

Pawn là thực thể vật lý đại diện cho người chơi và các nhân vật trong thế giới, được điều khiển và thực hiện hành động thông qua các Controller Pawn không chỉ xác định về mặt hình ảnh của các nhân vật mà còn thể hiện cách nó tương tác với thế giới như tương tác vật lý và va chạm

Input Object

Input Object là các vật thể chịu trách nhiệm chuyển input nhận được từ người chơi

và chuyển nó thành dữ liệu sao cho các thành phần trong engine có thể hiểu được Là một phần trong quá trình chuyển đổi input từ phần cứng của người chơi sang dạng các sự kiện

và giá trị, thông qua việc sắp xếp và xác định giá trị tương ứng được liên kết (hay còn gọi

là map giá trị và InputComponent)

Input từ phần cứng của người chơi có thể bao gồm các phím được nhấn, thả, di chuyển chuột, click chuột; nhấn thả các phím trên các loại tay cầm; chạm màn hình cảm ứng, di chuyển từ máy VR và các input khác

Input từ phần cứng của người chơi được chuyển sang 2 dạng chính là dạng sự kiện

và dạng giá trị Quá trình chuyển đổi input thành dạng sự kiện gọi là ActionMapping, quá trình chuyển đổi input thành dạng giá trị là AxisMapping

InputComponent được sử dụng trong các lớp Pawn và Controller Pawn là lớp cha của các nhân vật mà người chơi có thể điều khiển, còn Controller là lớp cha của lớp mà người dùng điều khiển và thực hiện giao tiếp, tương tác với game InputComponent kết nối quá trình Action Mapping và AxisMapping thành các hành động trong game, có thể trong C++ hoặc blueprint

Thứ tự ưu tiên khi nhận input bởi InputComponent:

- Các Actor với AcceptsInput được bật Actor nào được bật gần nhất sẽ có thứ tự

ưu tiên cao nhất

- Các Controller

- Các LevelScript

- Các Pawn

Trang 35

Các actor và component có thể được cài đặt để tick mỗi khung hình, thay đổi tick interval hoặc không bao giờ tick Ngoài ra, còn có thể thay đổi trình tự các nhóm tick khác nhau theo các nhóm của engine, về cơ bản sẽ thay đổi thứ tự hàm tick được thực hiện

Subsystem

Subsystem là các lớp được tự động tạo instance và được quản lý thời gian tồn tại khác nhau Các lớp này cung cấp khả năng sử dụng nhanh chóng, thay thế cho Singleton Pattern

Các loại Subsystem được hỗ trợ bao gồm:

- Engine Subsystem: được tạo, truy cập và tồn tại theo GEngine

- Editor Subsystem: được tạo, truy cập và tồn tại theo GEditor

Trang 36

36

- GameInstance Subsystem: được tạo, truy cập và tồn tại theo UGameInstance

- LocalPlayer Subsystem: được tạo, truy cập và tồn tại theo ULocalPlayer

Event và Delegate

Event là một loại node trong blueprint, được gọi để bắt đầu thực hiện một loạt hành động nào đó theo thứ tự Về cơ bản, nó tương tự và có quan hệ với hàm trong code C++

Unreal Engine hỗ trợ các event mặc định được sử dụng nhiều, có thể kể đến:

- ActorBeginOverlap/ActorEndOverlap: event được gọi khi hai actor bắt đầu/kết thúc overlap với nhau Overlap là khi collision detection của 2 actor có điểm chung với nhau và các setting của chúng là phù hợp

- EventHit: event được gọi khi collision detection của 2 actor va chạm với nhau và các setting của chúng là phù hợp

- EventBeginPlay: được gọi khi game bắt đầu và actor đã được đặt sẵn trong level hoặc khi actor được spawn trong thời gian thực

- EventEndPlay: được gọi khi actor bị loại bỏ khỏi thế giới

- EventTick: được gọi mỗi khung hình khi các cài đặt của actor là đúng

- CustomEvent: được gọi khi chủ động gọi tới nó hoặc khi bind vào các delegate Delegate có thể gọi hàm thành viên của các vật thể C++ một cách an toàn Một delegate có thể được gắn bởi nhiều hàm của vật thể và thực hiện gọi hàm đó trong một thời điểm sau này

Trang 37

xa hơn trong mỗi lần chơi

Ý tưởng:

- Tầng ngục ngẫu nhiên: sau khi chọn đền thờ cần khám phá, người chơi tiến hành khám phá các tầng ngục ngẫu nhiên được chọn ra từ mảng các khu vực tầng ngục mẫu

- Kẻ thù đa dạng, mỗi loại có một đặc tính riêng, bao gồm các loại quái vật cận chiến với tốc độ nhanh, quái vật có tầm đánh xa, quái vật có sức phòng thủ mạnh

mẽ và quái vật boss với sức chiến đấu cao

- Vũ khí và đòn đánh đa dạng, có thể kết hợp với nhau tạo ra các lối chơi riêng biệt cho mỗi người

- Nâng cấp người chơi trong quá trình khám phá

- Cốt truyện tuyến tính bao gồm các đoạn hội thoại với người dẫn truyện và các nhiệm vụ

1.3.2 Thiết kế

1.3.2.1 Cốt truyện

Tại một vùng đất xa xăm, xảy ra cuộc xâm lược khủng khiếp từ các quái vật Cả vùng đất chìm trong sự hỗn loạn và tuyệt vọng Một người chiến binh với danh xưng Revenant, người đã trải qua nhiều cuộc chiến và mang trong mình trái tim kiên cường, được chọn bởi các thần linh của vùng đất là người sẽ giải phóng tất cả Nhiệm vụ của Revenant

là tiêu diệt các quái vật và đưa lại hòa bình cho vùng đất bằng cách chinh phục 6 ngôi đền thờ quái vật, mỗi ngôi đền đại diện cho một khu vực của vùng đất

Trang 38

38

1.3.2.2 Nhân vật chính

Nhân vật chính người chơi điều khiển, Revenant là một chiến binh khoác trên mình

bộ đồ cao bồi bí ẩn, che kín mặt Revenant có sự bền bỉ vượt trội, khả năng chịu đựng và phục hồi thể lực nhanh chóng sau những trận chiến khốc liệt

Sử dụng 2 vũ khí chính là đuốc và súng dao Đuốc có khả năng phát sáng và tấn công diện rộng, súng dao nhỏ gọn linh hoạt và hiệu quả cả trong cận chiến và tầm xa Việc kết hợp 2 loại vũ khí cùng với các đòn đánh khác nhau của chúng tạo nên độ linh hoạt và

đa dạng trong chiến đấu

Các đòn đánh có thể thực hiện được với vũ khí đuốc:

- Đuốc tấn công nhẹ: nhấn chuột trái

- Đuốc tấn công mạnh: nhấn chuột phải

- Đuốc tấn công diện rộng: giữ chuột trái cho tới khi đạt được một thời gian nhất định và thả chuột

Các đòn đánh có thể thực hiện được với vũ khí súng dao:

- Dao tấn công nhẹ: nhấn chuột trái

- Dao tấn công mạnh: giữ chuột trái cho tới khi đạt được một thời gian nhất định

và thả chuột

- Dao tấn công liên hoàn: nhấn chuột trái trước khi đòn đánh dao tấn công nhẹ trước đó kết thúc Tối đa có thể tấn công liên hoàn 4 combo

- Dao súng kết hợp: nhấn chuột phải khi đòn dao tấn công liên hoàn đang diễn ra

và combo hiện tại chưa phải là 4

- Súng tấn công nhẹ: nhấn chuột phải

- Súng tấn công mạnh: giữ chuột phải cho tới khi đạt được một thời gian nhất định

và thả chuột Nếu thả chuột trong khoảng thời gian trước hoặc sau thời điểm nhất định đó, đòn đánh trở thành đòn đánh súng tấn công nhẹ

Mặc định, Revenant có 5 điểm năng lượng Khi sử dụng các đòn đánh mạnh hoặc tránh né, trừ một điểm năng lượng Điểm năng lượng tự động hồi sau một khoảng thời gian ngắn người chơi không thực hiện các hành động, di chuyển không tính là hành động của người chơi

Trang 39

39

1.3.2.3 Quái vật

Một môi trường đền thờ được thiết kế với ít nhất 3 loại quái vật tiêu biểu, bao gồm quái vật cận chiến với tầm đánh ngắn, quái vật tầm xa với tầm đánh dài và quái vật dạng mini boss

- Quái vật cận chiến: thường có kích thước nhỏ, linh hoạt, tấn công bằng cách xông thẳng vào mục tiêu và gây sát thương Loại quái vật này thường có lượng máu thấp, tuy nhiên di chuyển nhanh và đông về số lượng

- Quái vật tầm xa: thường có hình dạng của các quái vật bay, tấn công người chơi

từ xa, có thể bằng cung tên, súng, phép thuật hoặc năng lượng

- Quái vật mini boss: thường có kích thước lớn, tấn công cận chiến với sát thương lớn, lượng máu trâu và giáp cao tuy nhiên độ linh hoạt thấp

1.3.2.4 Môi trường

Mỗi đền thờ có đặc điểm riêng về môi trường, bao gồm hình dạng, màu sắc, chủ đề

và các đặc điểm khác Môi trường của đền thờ được chia thành các khu vực nhỏ, gọi là các tầng, được liên kết với nhau thông qua các cổng lối đi Hoàn thành tầng hiện tại bằng cách tiêu diệt hết quái vật có trong tầng đó để có thể di chuyển đến tầng kế tiếp

Nâng cấp tạm thời mua từ NPC chỉ có tác dụng trong tầng ngục hiện tại, khi hoàn thành tầng ngục nâng cấp sẽ mất tác dụng

1.3.3 Phát triển

Phát triển ứng dụng qua các giai đoạn:

- Tạo lớp điều khiển người chơi, xử lý input

Trang 40

- Xây dựng hệ thống chiến đấu, sử dụng cho người chơi và quái vật

- Xây dựng hệ thống chỉ số, sử dụng cho người chơi và quái vật, được mở rộng cho người chơi với các chỉ số phụ

- Xây dựng hệ thống vũ khí cho người chơi

- Xây dựng hệ thống hiệu ứng hình ảnh và âm thanh

- Xây dựng hệ thống quái vật, điều khiển trạng thái thông qua BehaviorTree

- Tích hợp các hệ thống, điều chỉnh và tạo gameplay cơ bản

- Xây dựng hệ thống giao diện người dùng

- Xây dựng hệ thống môi trường ngẫu nhiên

- Xây dựng hệ thống tiến trình và nâng cấp

- Quản lý trạng thái thông qua hệ thống trạng thái hữu hạn Finite State Machine và hệ thống trạng thái cây Behavior Tree: điều khiển logic, việc chuyển đổi giữa các trạng thái của nhân vật người chơi và quái vật

- Xử lý chiến đấu giữa người chơi và quái vật bao gồm vũ khí, đòn đánh, chỉ số, hiệu ứng hình ảnh và âm thanh

Ngày đăng: 23/02/2024, 11:12

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

TÀI LIỆU LIÊN QUAN

w