1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật phần mềm: Nghiên cứu các thuật toán và ứng dụng phát triển Game 3D với hệ thống AI NPC

58 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Nghiên cứu các thuật toán và ứng dụng phát triển Game 3D với hệ thống AI NPC
Tác giả Trần Quốc Huy
Người hướng dẫn ThS. Nguyễn Thị Thanh Trúc, TS. Nguyễn Thị Xuân Hương
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật phần mềm
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 58
Dung lượng 56,83 MB

Nội dung

Đề tài sẽ đi sâu vào tìm hiểu các kĩ thuật được sử dụng trong việc lập trình một AI cụ thể là việc tìm kiếm người chơi.. Nguyên lí hoạt động Thuật toán Xử lý Hành vi Bat thường dựa trên

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHAN MEM

TRAN QUOC HUY - 20520554

KHOA LUAN TOT NGHIEP

AINPC

Research on Algorithm and Application in Developing

3D Game with NPC AI system

KY SU NGANH KY THUAT PHAN MEM

GIANG VIEN HUONG DAN THS NGUYEN THI THANH TRUC

TS NGUYEN THI XUAN HUONG

TP HO CHÍ MINH, NĂM 2024

Trang 2

LOI CAM ON

Khóa luận tốt nghiệp với dé tài “Nghiên cứu các thuật toán và ứng dung pháttriển game 3D với hệ thống AI NPC” là minh chứng cho quá trình nỗ lực không

ngừng nghỉ trong công việc tìm tòi, học hỏi suốt hơn 4 năm học tập tại trường Đại

học Công nghệ Thông tin.

Trong quá trình thực hiện khóa luận, em đã nhận được sự hướng dẫn tận tình từ

quý thầy cô, cũng như sự hỗ trợ về mặt chuyên môn, tinh thần từ phía gia đình, bạn

bè.

Em xin gởi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại họcCông nghệ thông tin — Dai học Quốc gia TP.HCM và quý Thầy Cô khoa Công nghệphần mềm đã giúp cho em có những kiến thức cơ bản làm nền tảng để thực hiện đề

tài này.

Đặc biệt, em xin gui lời cảm ơn và lòng biết ơn sâu sắc nhất tới Cô Nguyễn Thị

Thanh Trúc Cô đã trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến

quý báu giúp em hoàn thành tốt báo cáo môn học của mình

Trong thời gian một học kỳ thực hiện đề tài, em đã vận dụng những kiến thứcnền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiếnthức mới Từ đó, em đã có gắng hết sức dé hoàn thành một báo cáo đồ án tốt nhất.Tuy nhiên, trong quá trình thực hiện sẽ không tránh khỏi những thiếu sót Chính vìvậy, em rất mong nhận được những sự góp ý từ phía các Thầy Cô nhằm hoàn thiệnnhững kiến thức mà em đã học tập và là hành trang để em thực hiện tiếp các đề tài

khác trong tương lai.

Xin chân thành cảm ơn các quý Thầy Cô!

Thành phố Hồ Chí Minh, ngày 24 tháng 06 năm 2024

Sinh viên thực hiện

Huy

Trần Quốc Huy

Trang 3

1.5 Các hướng nghiên cứu liên Quan - s6 1+ 19119 11 9v knrưy 17

1.6 Pham vi đề tài 4⁄0 tee SEI co — ằ-ũgs-«s 18

CHƯƠNG 2 CƠ SỞ LÝ THUYET o csccccscsscssesssseeseeesseecsaneessneessneessneeesneesenses 19

2.1 Unity , XẾp ổn, S OQ QQQ QC HH, 19

2.1.1 Giới thiệu UnI(y -.L Sc SH HH nghệ 19

2.1.2 Các thành phan cơ bản của Unify - ¿2-52 +2s+£+E+£+Eers+rezxerxee 19

2.2 Thuat ton AI Co 1 Se 20

2.2.1 Thuật toán A* ( Thuật toán tìm đường di ) 55s << xxx 20

2.2.2 _ Thuật toán ngẫu nhiên có GiSU 0t 21

2.2.3 Thuật toán LOS ( Line of Sight ) - c Si, 23

2.2.4 Thuật toán xử lí hành vi bất thường -2- + 2 2+++c£z+E+£zzxzxererxez 25

2.2.5 _ Fimite State MachIne - cv ng ng ng re 25

CHƯƠNG 3 XÂY DỰNG HE THONG GAME 22: 2 +S++£++E+£++zezxse2 27

3.1 Cuối o0 27

3.2 Hệ thống nhân vật -:- 2 ©++SE+E£EE#EE2EEEEEEEEEE1E1711121711171 111.1 xe 29

3.2.1 Người ChơƠI S Ăn ST TH 29 3.2.2 NPC ( Ememies ) -cc QQnnQnnn v 30

Trang 4

SE SN) 9 4 33

3.2.4 NPC “ĐiẾC” như 38

3.2.5 NPC “CÂm” Quế 41

3.2.6 Đồng xu c.c St TT T1 121 T111 1010111211111 crye 423.2.7 Ga bông -c.cc tt T2 E111111 1111211111111 43

3.2.8 Pa 0 e 44

3.2.9 Nó 0 45

3.3 Xây dựng đồ họa game - ¿ke SE EE21511121111 2171112171111 cxe 463.4 Dé họa nhân vat trong game - ¿2 + +S2+E+E£EE+E+EEEEEEEEEEEEEerkrkrrererree 46

3.5 _ Xây dựng giao dIỆn GAME - c2 + 110 ng kg 47

3.5.1 Giao diện start ØaIT€ - -c 131119991111 11 11 1v ng re 47 3.5.2 — Giao diện trÒ ChƠI - LH nnnnnHnHnHgệt 48

CHƯƠNG 4 PHAN TÍCH THIET KE HỆ THÓNG - : :-©++5+++c5+z2 5I

4.1 Xây dựng sơ đỒ use Ca$e - 521cc 3 1 St 111811 211111111 1111111111 xe 51

4.1.1 Sơ đồ use case Player - 5 c- Set E211 212121215121 211.1 xe 51

4.1.2 Sơ đồ use case NPC -ccc thư 51

4.2 — Danh sách AC(OF G9 HH HH ni 52 4.3 Danh sách đặc tả Use CaS€ - Q2 2 211111101101 52

4.4 Đặc ta USE CAS© TQ HQ Họ về 54

AAD Di chuy cicccccccccccccccsccscscsescscsscscscssescssescscsscscsesecsvsesessessscseseesesseeesees 54

4.4.2 — Chạy Ăn HT TH HH HH HH Hà 54 4.4.3 _ Thu thập đá quý - + St ng TH HH tr 55

4.4.4 Nhat đồng XU oeceecccccccccssssessesscsessescsesscsessessssessssessessssessssessesssseeseaeseesees 564.4.5 Mua vật pham hỗ tro cecccccccccscscsscsccssscsssssseseseseesescsessssessescseeseseseesesees 564.4.6 Chọn vat pham hỗ tro ceccccccsccscscsesessscseesssessscsesssscsessssesesscsesscseseesesees 57

Trang 5

4.4.7 Sử dụng vật phâm hỗ trỢ -¿- ¿5+ ©5£2x2x+EE+EE2EEEEEeEEeExerxzrrrrrrei 57

AAS Mở CỬa Ă.2Q 21222 2H HH 11212121212 re 58 4.4.0 Xem S€(tLInE HH ngờ 58 4.4.10 Chơi lại trÒ CHhƠI cc 1S 1122201011111 11111111921 1111111111111 822351 111kg 58

4.4.11 Di chuyển ngẫu nhiên - ¿E5 SE2EEEEE2E£EEEEEEEEEEEEEEEErErrrkrrrrs 594.4.12 Truy đuổi người chơi ¿5-5 ++x+SSE+E£EEEEEEEEEEEEEEEEEEEEEEEEEEErkrrree 604.4.13 Tìm kiếm người chơi - 2 ¿S52 +E‡SE+EEEEEEEEEEEEEEEEEEEEEEErErrkrrerkrei 60

4.4.14 Phát hiện người chơi + 2 ++s£+x£2E£EE£EEEEEEEEEEEEEEEEEEEEEEeErrrrei 61

CHƯƠNG 5 TONG KẾT - 2-52 SE2S22E92E2EE2EE2123121221212111212121121 2.21 xe 62

` 62

511 Kết quả đạt được , 4 A cena Sigs ee sÓ, Lee 625.12 Han chế ZZ ết 625.1.3 Hướng phát triển : ¿2¿©2¿2x22x2EtEkEEEEEEEEkeEkererererves 63/.08i200/9:7 7/047 9n 64

Trang 6

DANH MỤC HÌNH ẢNH

Hình 2.1 Logo Unity c1 1101 S9 ng gưy 19

Hinh 2.2 /0080/10/15011/)011)080.1ỐỐỒ 20

Hình 2.3 Sơ đồ hoạt động của thuật toán ngẫu nhiên có điều kiện 22

Hình 2.4 Mô phỏng xác định việc bi phát hiện trong thuật toán LOS 24

Hình 2.5 Sơ đồ hoạt động của thuật toán LOS 2c Series 24Hình 2.6 Sơ đồ mô tả ESM -. -c¿- 52t tre 26Hình 3.1 Bản đồ trò chơi ( mặt cắt ) + - + 2+E+E£EE+E£EEEEzEeEEEErErrkrkerrree 27Hình 3.2 Bản đồ trò chơi nhìn từ trên xuống - 2 - 2 2 s252+x+£sz£ezxccez 28Hình 3.3 Cánh công hoàn thành trò chơi - - ¿2 + 2+++E+£££E+E££zE+Eecszeszs 28

Hình 3.4 FSM các trạng thái của NPC trong trò chơi - « «<< c+sec++ 33 Hình 3.5 Tạo hình NPC “im” - << c 1111311121222 1111k 92211111 krrec 34

Hình 3.6 Vùng phát hiện của NPC “mùi” - 2 c che rey 35

Hình 3.7 Biểu đồ quyết định 2 vectOr - ¿+ ¿52 ©S2x+£x+Ex+EE£EEeExzExzzezrecsee 36Hình 3.8 Vector ban đầu của NPC -¿- ¿252 2x22E2E2EEE2EeExekrrkerrererrrei 37Hình 3.9 Quyết định Vector thứ nhất trong giai đoạn tìm kiếm - 37

Hình 3.10 Quyết định vector thứ hai trong giai đoạn tìm kiếm 38

Hình 3.11 Tạo hình NPC “Điếc” ¿5c cct tri 39Hình 3.12 Mô phỏng tầm nhìn thực tế của NPC “Điếc” -s5c++s+5s+2 40

Hình 3.13 Tạo hình NPC ““CÂIỶ” G- c1 1H HH ng ch 4I

Hình 3.14 Đồng xu - 2 5S S SE E9 12111E11211112111 1111111111111 11111 te 42

Hình 3.15 Gấu bông - 2 -©% 2+E9EE+EEEE#EEEEEEE2E1212121712112111711 21111 xe, 43

Hình 3.16 Luu đạn choáng << 1E 1118311111139 31111 99 1 1 ng ve 44 Hình 3.17 NƯỚC 'EỌ( - G1 9n nh 45

Hình 3.18 Một số assest được tạo từ FIST 0 — 46Hình 3.19 Một số assest được tạo từ việc biến đổi model ¿s2 <<: 47

Hình 3.20 Giao diện start game - - - + 1111k rưy 47

Hình 3.21 Giao diện trò chƠI - + <2 1133111332222 1 1 E351 rrree 48 Hình 3.22 Giao diện trò chơi khi có NPC - <1 E+++sssssseeexs 49

Hình 3.23 Giao diện trò chơi có cánh cổng hoàn thành trò chơi - 49

Hình 4.1 Sơ đồ use case Play€r ¿5-5 2E SE EEEE 2212121112111 xe 51

Trang 7

Hình 4.2 Sơ đồ use case NPC

Trang 8

DANH MỤC BANG

Bảng 3-1: Bảng mô tả giao diện Start gaME - 55x eeeeeere 48 Bảng 3-2: Bảng mô tả giao diện trO ChơƠI - c3 11 13 svrereeree 50 Bảng 4-1: Bảng mô tả danh sách actor - - c5 + 11333 EESsseeerreeseeerre 52 Bảng 4-2: Bảng danh sách đặc tả use Ca§€ 2G HH nhe, 33

Bang 4-3: Đặc tả use case đi chuyên ¿5-5 S2+E+ESt+EvEEEEEEEEEeErrkrrrrrree 54

Bang 4-4: Đặc ta use Case Chay SH TH HH re 55 Bảng 4-5: Đặc ta use case thu thập đá quý - «5tr 56

Bảng 4-6: Đặc tả use case nhặt đồng XU wicccccesseseesesssesesseseeeesecececececeecccecceceseeeesess 56

Bang 4-7: Đặc ta use case mua vật pham c.ccccececccscscsescssssesesessesessesesesesesvees 57Bang 4-8: Dac ta use case chon vat pham — 57Bang 4-9: Đặc ta use case sử dụng vật phẩm - 25 + z+s+£+£szx+zcez 58

Bảng 4-10: Đặc ta use Case MO CỬA 25 5 0111111 911v vn key 58

Bảng 4-11: Đặc tả use case Xem S€f[ITØ - - - G1111 39111 9v ng re 58 Bảng 4-12: Đặc ta use case chơi lại trò CƠI - c5 +++seeeexseeeeesss 59

Bảng 4-13: Đặc tả use case di chuyển ngẫu nhiên 2- 2 5522522522522 59Bang 4-14: Đặc tả use case truy đuôi người chơi - 2s + s+s+s+zszx+zzcs2 60Bảng 4-15: Đặc tả use case tìm kiếm người chơi -.- 2-5 +22s2c++s++s+>s+2 60

Bang 4-16: Đặc tả use case phát hiện người chơƠï -‹- 5 «5s «+ s£sseesseess 61

Trang 9

DANH MỤC TỪ VIẾT TẮT

STT | Ký hiệu chữ viết tắt Chữ viết đầy đủ

1 NPC Non-playable character (Nhân vật không thé

điều khiển)

2 AI Artificial Intelligent (Trí tuệ nhân tạo)

3 RPG Role-playing games (Game nhập vai)

4 FPS First-person perspective (Goc nhin thir nhat)

5 RNG Random number generate

6 ROV Range of View

7 FOV Field of View

8 FSM Finite-state machine

Trang 10

CHƯƠNG 1.GIOI THIEU ĐỀ TÀI

1.1 Tổng quan

Ngày nay, trí tuệ nhân tao (AI) dang dong vai trò ngày cảng quan trong trong

nhiều lĩnh vực, và ngành công nghiệp game cũng không ngoại lệ Việc ứng dụng

AI vào game 3D mở ra nhiều tiềm năng to lớn, hứa hẹn mang đến những trải nghiệmchơi game mới mẻ, hấp dẫn và chân thực hơn cho người chơi

Đề tài nghiên cứu các thuật toán AI của NPC ra đời nhằm mục đích nghiên cứu

vào vận hành trong game Đề tài sẽ đi sâu vào tìm hiểu các kĩ thuật được sử dụng

trong việc lập trình một AI cụ thể là việc tìm kiếm người chơi Đồng thời, đề tài

cũng sẽ phân tích hướng đi và cách cải thiện các thuật toán, từ đó đưa ra đánh giá

và kết luận về các thuật toán được sử dụng

Lý do lựa chọn đề tài này xuất phát từ niềm đam mê với game và mong muốntìm hiểu về những thuật toán được sử dụng trong lĩnh vực này Việc tìm hiểu và

ứng dụng nó vào game 3D có thê mang lại nhiều lợi ích cho cả nhà phát triển game

và người chơi Do đó, nghiên cứu về đề tài này có ý nghĩa khoa học và thực tiễn.

1.2 Mục tiêu đề tài

Mục tiêu của đề tài là xây dựng một game 3D và áp dụng các thuật toán trongviệc tìm kiếm và theo đuôi người chơi Game sẽ được hoàn thiện ở mức độ có thểdemo được các tính năng cơ ban và các thuật toán AI Các thuật toán AI truy đuổingười chơi sẽ được nghiên cứu và tham khảo từ nhiều trò chơi khác nhau Dựa trênnhững gi đã tìm hiểu, các thuật toán này sẽ được xây dung và tái hiện trong game

Ngoài ra, đề tài còn mục tiêu tìm hiểu sâu về hành vi con người và áp dụng vàotriển khai các thuật toán nâng cao, nhằm làm cho AI trở nên giống con người hơn

Sự cân bằng giữa thuật toán và tính chơi được của game cũng sẽ được nghiên cứu

và điều chỉnh Cuối cùng, việc nghiên cứu các kiểu thuật toán khác nhau trong việc

tìm kiếm người chơi sẽ tăng thêm tính đa dạng cho trò chơi.

Trang 11

1.3 Đối tượng game hướng tới

Game này hướng tới những người yêu thích thể loại game kinh dị, có khả năng

tư duy cao và phản xạ tốt dé tính toán được những bước đi tốt nhất trong việc tránh

né kẻ thù, cũng như bât cứ ai muôn tìm cảm giác hôi hộp khi chơi game.

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

Đối tượng nghiên cứu của dự án này bao gồm người dùng và các công nghệ sau:

- Người chơi: Nhóm nay mong đợi trải nghiệm chơi game, vì game hướng tới là

thể loại game kinh di nên mục tiêu là tạo ra game có một độ khó nhất định để cóthé gây áp lực cho người chơi, đồng thời tìm hiểu về hành vi tâm lí con người dé cóthé cải thiện hơn về AI

- Trí tuệ nhân tạo (AI): AI được phát triển và sử dụng trong việc tìm kiếm, theo

đuôi người chơi, cộng theo tính ngẫu nhiên và tính “người” trong đó

- Các trò chơi kinh dị có sẵn: Tìm hiểu các thuật toán dựa trên các game có sẵn từ

đó có thể học hỏi, áp dụng

1.5 Các hướng nghiên cứu liên quan

Môi trường và kịch bản tương tác:

Tạo ra các môi trường game và kịch bản có tính tương tác cao để mang lại cảmgiác chân thực và sợ hãi cho người chơi Điều này đòi hỏi sự sáng tạo trong việcxây dựng bối cảnh và tình huống trong game, sao cho người chơi cảm nhận được

sự hồi hộp và bat ngờ liên tục

Âm thanh, hình anh và ánh sáng:

Nghiên cứu sâu về âm thanh, hình ảnh và ánh sáng nhằm tối ưu hóa trải nghiệm

kinh dị Việc sử dụng âm thanh đáng sợ, hình ảnh rùng rợn và ánh sáng yếu sé tăng

cường yếu tố kinh dị và làm cho người chơi cảm thấy căng thắng, hồi hộp hơn

Thu thập và phân tích dit liệu:

Thu thập di liệu từ quá trình chơi game dé hiểu rõ hành vi của người chơi Dữliệu này sẽ cung cấp cái nhìn sâu sắc về cách người chơi tương tác với các yếu tốkinh di trong game và hiệu quả của những yếu tổ đó

Tôi ưu hóa và cải thiện trải nghiệm:

Trang 12

Sử dụng dữ liệu đã thu thập để tối ưu hóa độ khó của game, tạo ra các kịch bản

mới và cải thiện trải nghiệm người chơi Điều này giúp đảm bảo rằng game không

chỉ gây sợ hãi mà còn thú vị và thách thức người chơi một cách hợp lý.

1.6 Phạm vi đề tài

Phạm vi môi trường của đề tài này được xác định là các máy tính có hệ điều hành

từ Windows 10 trở lên Về mặt tính năng, game sẽ là một trò chơi 3D với góc nhìnthứ nhất (FPS), cho phép người chơi trải nghiệm một mình Gameplay của game sẽtập trung vào một màn chơi duy nhất nhưng có cấu trúc thay đổi mỗi lần chơi nhờ

vào việc sử dụng các kỹ thuật Random Number Generation (RNG).

Trò chơi hoàn chỉnh sẽ bao gồm nhiều chức năng khác nhau Hệ thống nhân vật

sẽ có hai loại: người chơi và kẻ thù, mỗi loại có chức năng và hành vi riêng biệt.

Hệ thống hitbox sẽ được thiết kế đa dạng, với các môi trường tinh như mặt đất,

tường và cửa có khả năng chặn người chơi Các hitbox của vật tương tác như đá

quý va máy ban hàng tự động sẽ được thiết kế để người chơi có thé tiếp xúc trựctiếp Hitbox của kẻ thù sẽ hoạt động tương tự với môi trường xung quanh như cách

người chơi tương tác, nhưng khi đụng phải người chơi sẽ dẫn đến tình trạng game

over Ngoài ra, hitbox của kẻ thù cũng sẽ được sử dụng đề phát hiện người chơi

Hệ thống tương tác trong game cho phép người chơi tương tác với các vật phẩm

hỗ trợ và item hoàn thành nhiệm vụ Hệ thống item va inventory sẽ cho phép ngườichoi thu thập và lưu trữ các vật pham trong inventory, mỗi vật pham sẽ có tác dụngriêng biệt, giúp người chơi tạo lợi thế trong game

Trang 13

CHƯƠNG 2.CƠ SỞ LÝ THUYET2.1 Unity

2.1.1 Giới thiệu Unity

Unity là một nền tang phát triển game đa nền tang, được sử dụng dé tạo ra cácứng dụng trò chơi 2D và 3D cho nhiều thiết bị như máy tính cá nhân, console, điện

thoại thông minh, máy tinh bảng, va web Unity được biết đến với tinh dé sử dụng,

unity

Hinh 2.1 Logo Unity

2.1.2 Các thành phan cơ bản của Unity

linh hoạt và cộng đồng mạnh mẽ

Cảnh: Cảnh là một tập hợp các đối tượng đại diện cho một môi trường hoặc man

chơi trong game Unity hỗ trợ nhiều cảnh trong một dự án, cho phép bạn tạo ra

những thế giới game phức tạp.

Doi tượng: Đối tượng là đại diện cho các yếu tố cụ thé trong game, như nhân vật, vật phẩm, cảnh quan Mỗi đối tượng có thể có nhiều thành phần, thuộc tính và

hành vi riêng.

Thành phan: Unity sử dụng mô hình thành phan để tổ chức các đối tượng trong

game Mỗi thành phần có các thuộc tính và phương thức riêng, giúp quản lý và tái

sử dụng code dễ dàng.

Hệ thống sự kiện: Hệ thống sự kiện cho phép bạn kết nối các thành phần và đối

tượng khác nhau trong game Khi một sự kiện xảy ra, nó sẽ thông báo cho các đốitượng đã đăng ký dé thực hiện hành động phù hợp

Trang 14

2.2 Thuật toán AI cơ bản

2.2.1 Thuật toán A* ( Thuật toán tìm đường di )

2.2.1.1 Giới thiệu

Thuật toán A* được phát triển bởi Peter Hart, Nils Nilsson và Bertram Raphael

vào năm 1968 Đây là một thuật toán tìm kiếm thông minh sử dụng phương pháp

heuristic dé tối ưu hóa việc tìm đường Thuật toán này tìm kiếm đường đi từ điểmbắt dau (start) đến điểm dich (goal) trong một đồ thị bằng cách mở rộng các điểm(node) sao cho chi phí đường đi tổng cộng là nhỏ nhất

2.2.1.2 Nguyên lí hoạt động

Thuật toán A* sử dụng hai hàm chi phí chính:

g(n): Chi phí đường đi từ điểm bắt đầu đến node n

h(n): Hàm ước lượng chi phí từ noden đến điểm đích Hàm này thường được gọi

là hàm heuristic.

Thuật toán A* sử dung tổng chi phí ƒ(m) để đánh giá các node, được tinh bằngcông thức: [Ƒ{t) = g(n) + A(n)j Thuật toán sẽ mở rộng node có f(n) nhỏ nhấttrước, nghĩa là node mà tông chi phí ước lượng thấp nhất

Trang 15

2.2.1.3 Ưu và nhược điểm của thuật toán A*

Ưu điểm: Tìm được đường đi ngắn nhất, thông minh nhất

Nhược điểm: Tốn khá nhiều về mặt bộ nhớ và thời gian tính toán khi đồ thị quá

dạng.

2.2.2.2 Nguyên lí hoạt động

Thuật toán ngẫu nhiên có điều kiện hoạt động dựa trên việc phân chia xác suất

thực hiện các hành động khác nhau dựa trên điều kiện hiện tại của hệ thống, các

bước của nó như sau.

Xác định điều kiện: Xác định trạng thái hiện tại của đối tượng, ví dụ việc xác

định xem bản thân có đói không, có mệt không, có đang hăng hái không, các yếu

tố từ bên ngoài đang ảnh hưởng chúng ta như thế nào

Phân phối xác xuất: Dựa trên trạng thái hiện tại, phân phối xác suất cho các

hành động khác nhau Ví dụ: Khi ta đang đói:

e 30% sẽ chọn việc mua gi đó dé ăn

© 30% sẽ chọn việc mua gì đó dé uống

Trang 16

Lựa chọn hành động

Di chuyển điểm ngẫu nhiên

Thực hiện hành động

Di chuyển điểm ngẫu nhiên

Hình 2.3 Sơ đồ hoạt động của thuật toán ngẫu nhiên có điều kiện

Trang 17

2.2.2.3 Ý nghĩa và ứng dụng trong trò chơi

Thuật toán ngẫu nhiên có điều kiện là một công cụ mạnh mẽ để tạo ra hành vi

động và khó đoán trong nhiều ứng dụng khác nhau Bang cách kết hợp xác suất và

điều kiện, thuật toán này giúp tăng cường tính thực tế và thử thách trong các hệthống mô phỏng và trò chơi

2.2.3 Thuật toán LOS ( Line of Sight )

2.2.3.1 Giới thiệu

Thuật toán LOS là một thuật toán dùng dé xác định xem một NPC có thể nhìnthấy người chơi hay không LOS được sử dụng rộng rãi trong các trò chơi để môphỏng tầm nhìn của NPC, giúp tăng tính thực tế và thách thức cho trò chơi

2.2.3.2 Nguyên lí hoạt động

Thuật toán LOS bao gồm 3 yếu tố:

Tầm nhìn ( Range of View ): Đây là khoảng cách tối đa mà NPC có thể nhìnthấy người chơi

Góc nhìn ( Field of View ): Đây là góc mà NPC có thê nhìn thay, thường là một

góc hình nón mở rộng từ vi trí của NPC.

Kiểm tra không có vật can ( Obstacle check ): Sử dụng Raycasting để kiểm

tra xem có vật can nao giữa NPC và người chơi hay không.

Quá trình kiểm tra LOS bao gồm ba bước chính Đầu tiên, tính khoảng cách giữaNPC và người chơi, và xác định hướng từ NPC đến người chơi Nếu khoảng cáchnày nhỏ hơn hoặc băng tầm nhìn của NPC, bước tiếp theo là kiểm tra góc giữahướng của NPC và hướng đến người chơi Nếu góc này nằm trong phạm vi gócnhìn đã định trước (field of view), hệ thống sẽ tiễn hành kiểm tra Raycast

Raycasting là kỹ thuật được sử dụng để xác định xem có vật cản nào trên đườngthắng giữa NPC và người chơi hay không Nếu không có vật cản nào và Raycasttrúng người chơi, điều đó có nghĩa là người chơi đã bị NPC phát hiện Ngược lại,nếu Raycast gặp phải vật cản trước khi đến người chơi, điều này cho thấy ngườichơi đang bị che khuất và không bị NPC phát hiện Kỹ thuật này đảm bảo rằng NPCchỉ phản ứng với người chơi khi thực sự có tầm nhìn trực tiếp và không bị cản trở

bởi các vật thê khác.

Trang 18

Hình 2.4 Mô phỏng thuật toán LOS

Trang 19

2.2.4 Thuật toán xử lí hành vi bat thường

2.2.4.1 Giới thiệu

Hành vi bất thường là những hành vi không mong muốn hoặc không thể dự đoántrước xảy ra trong quá trình hoạt động của các thực thể trong game Các hành vinày có thé bao gồm:

Nhân vật bị kẹt: Khi nhân vật không thé di chuyển được do va chạm với các vậtthé khác hoặc do lỗi logic

Lỗi điều hướng: Khi nhân vật không thể tìm đường đúng tới đích

Hành vi không đồng bộ: Khi nhân vật thực hiện các hành động không phù hợp

với kịch bản hoặc sự kiện trong game.

2.2.4.2 Nguyên lí hoạt động

Thuật toán Xử lý Hành vi Bat thường dựa trên các kỹ thuật phát hiện va xử lý déduy trì trạng thái hoạt động bình thường của thực thé Các bước cơ bản của thuậttoán bao gồm:

Phát hiện hành vi bat thường: Sử dụng các điều kiện đề xác định khi nào mộtthực thé có hành vi bất thường

Đánh giá và phân loại: Xác định loại hành vi bất thường và mức độ nghiêm

trọng của nó.

Xử lý và khôi phục: Thực hiện các biện pháp để khôi phục trạng thái bình

thường của thực thé, chang han nhu thiét lập lai vi trí hoặc trang thai của thực thé.

2.2.5 Finite State Machine

2.2.5.1 Giới thiệu

Finite State Machine (FSM) là một mô hình toán học dùng đề thiết kế logic của

hệ thống, bao gồm các trạng thái và các chuyển đổi giữa các trạng thái đó Tronggame và lĩnh vực AI, FSM được sử dụng để quản lí hành vi của NPC, chia hành vi

phức tạp của NPC thành các trạng thái đơn giản và dé quản lí hơn.

2.2.5.2 Nguyên lí hoạt động

Các thành phần chính bao gồm:

States ( Trạng thái ): Đại diện cho các điều kiện cụ thê của đối tượng

Trang 20

Transitions ( Chuyển đổi ): Các điều kiện dé chuyên từ trạng thái này sang

2.2.5.4 Ý nghĩa

Việc sử dung FSM sẽ giúp việc quản lí các trạng thái của đối tượng dé dang hơn,tránh việc gây ra lỗi, ngoài ra cũng có thé dé dang thay đổi các yếu tố cũng nhưđiều kiện dé có thé phù hop hơn

States C

Action A Condition 4

Hình 2.6 Sơ đồ mô ta FSM

Trang 21

CHUONG 3.XAY DỰNG HỆ THONG GAME

3.1 Giới thiệu game

Mục tiêu: Người chơi can thu thập đủ các đồ vat ( đá quý ) dé có thé hoàn thành

game, cũng trong thế giới đó, sẽ có ba kẻ ác luôn canh giữ những đồ vật đó và truyđuôi người chơi, nhiệm vụ của người chơi là vừa sống sót vừa thu thập dé có thé

thoát khỏi trò chơi.

Bản đồ: Bản đồ gồm các thành phần chính như cửa, đồ vật hoàn thành nhiệm

vụ, đồ vật hỗ trợ, kẻ thù, điểm kết thúc trò chơi, điểm bắt đầu trò chơi, các bức

tường, được xây dựng trên nền tảng 3D, trên một mặt phẳng có chiều dài và rộng

bằng nhau

Trang 22

Hình 3.3 Cánh công hoàn thành trò chơi

Trang 23

3.2 Hệ thống nhân vật

3.2.1 Người chơi

3.2.1.1 Thông tin tổng quan

Người chơi (Player) là nhân vật chính mà người chơi điều khiển trong trò chơi,

người chơi có thé tương tác với môi trường xung quanh, thu thập các vật pham, đối

phó với các kẻ thù và giải thoát khỏi bản đồ game Người chơi có thé thực hiệnnhiều hành động khác nhau như nhặt đồ, sử dụng vật phẩm, và di chuyền trong

không gian 3D của trò chơi.

3.2.1.2 Di chuyển

Người chơi sử dụng các phím W,A,S,D để đi chuyền lên, trái, xuống, phải,

camera của game được gắn vào phần đỉnh đầu của người chơi, con chuột dùng dé

điều chỉnh camera của người chơi Về căn bản, cách di chuyển tương tự như một

game FPS thông thường.

3.2.1.3 Khả năng và cơ chế hành động

Thu thập va quản lý vật phẩm: Người chơi có thé thu thập các vật phẩm nhưđồng xu, nước ngọt, gấu bông và lựu đạn choáng Mỗi vật phẩm có tác dụng vàcách sử dụng riêng biệt Hệ thống túi đồ của player cho phép chứa tối đa ba vậtphẩm cùng một lúc Khi một vật phẩm mới được thu thập, nó sẽ hiển thị trong túi

đồ của người chơi và có thé được lựa chon dé sử dụng

Ném vật phẩm: Người chơi có thé ném gấu bông/lựu đạn choáng với góc ném

điều chỉnh bằng hướng camera của người chơi Khi ném, vật phẩm hỗ trợ sẽ đượcném ra theo hướng đã xác định, các vật phẩm sẽ tương tác với môi trường xung

quanh như bật ra, và cuôi cùng là cham dat.

3.2.1.4 Tương tác với môi trường

Player có thê khám phá môi trường xung quanh, thu thập vật phâm từ các vị tríđịnh trước hoặc ngẫu nhiên Hệ thống camera giúp player tránh hoặc đối phó vớiNPC, NPC sẽ đuổi theo người chơi khi phát hiện

Trang 24

3.2.2 NPC ( Enemies )

3.2.2.1 Thông tin tong quan

NPC là nhân vat mà người choi cần phải né tránh, kẻ thù có khả năng tìm kiếm,truy đuôi, và bảo vệ những viên đá quý Có nhiều loại kẻ thù nhưng mặt bằng chungvẫn sẽ có những điểm chung như phương thức di chuyên, truy đuôi, tìm kiếm

3.2.2.2 Hành vi co bản ( hành vi chung )

Trạng thái bình thường ( Idle ):

Ở trạng thái bình thường, NPC di chuyền một trong hai địa điểm sau:

e Địa điểm chứa đá quý chưa được nhặt bởi người chơi

e Địa điểm bắt kì trên map có thé di chuyền.

NPC sử dụng thuật toán ngẫu nhiên có điều kiện để chọn địa điểm đi chuyền,

công thức được tính như sau:

10 x số đá quý con ton tại trên ban đồ

y = 100 - x(%)

Trong do:

X là tỉ lệ NPC sẽ chon vi trí chứa điểm đá quý dé di đến (sử dung thuật toán A*),

X có giá trị từ 0-80% tùy vào số đá quý còn lại trên bản dé

Y là tỉ lệ NPC sẽ chọn vị trí ngẫu nhiên trên bản đồ dé đi đến ( sử dụng thuậttoán A*),Y có giá trị từ 20-100% tùy vào số đá quý còn lại trên bản dé

Trạng thái truy đuỗi ( Chasing ):

Trạng thái truy đuôi xảy ra ngay khi người chơi kích thích điều kiện phát hiệncủa NPC Các điều kiện có thể là bị nhìn thấy hoặc bị nghe thấy, ở trạng thái truyđuôi, NPC sẽ dùng thuật toán A* dé di chuyển tới vị trí cuối cùng người chơi kíchthích điều kiện phát hiện NPC Trong quá trình truy đuổi, NPC sẽ cập nhật vị trí

cuối cùng nảy theo thời gian thực, đảm bảo vị trí luôn được cập nhật, đồng thời

NPC sẽ tăng tốc độ di chuyền so với trạng thái bình thường Một số NPC sẽ phat ratiếng động đe dọa, giúp người chơi có thé biết được mối đe dọa

Trong trạng thái truy đuổi, độ ưu tiên của việc truy đuôi sẽ theo thứ tự như sau:

Bị nhìn thay -> Gau bông -> Tiéng động người chơi chạy -> Tiếng động khác

Trang 25

Khi có lớn hơn 1 yếu tố kích thích NPC vào trạng thái truy đuổi, NPC sẽ dựa vào

độ ưu tiên và di chuyên đến đó, mỗi kẻ thù sẽ có sự kích thích trang thái truy đuổikhác nhau, trong trò chơi này sẽ có ba yếu tố chính khiến người chơi bị phát hiện:

Tiếng động người chơi chạy: Khi người chơi chạy hoặc di chuyên nhanh trongvùng phát hiện của NPC nhất định, NPC sẽ nhận diện và di chuyển tới vị trí kíchthích cuối cùng đó

Bị nhìn thấy trong vùng phát hiện: Nếu người chơi lọt vào tầm nhìn và giữaNPC và người chơi không có vật cản, NPC sẽ nhận diện và di chuyên tới vi trí kíchthích cuối cùng đó

Tạo tiếng động trong vùng phát hiện: Các hành động như mở cửa, ném đồchơi sẽ tạo ra âm thanh, khi NPC có vùng phát hiện tiếp xúc với địa điểm tạo âmthanh, NPC sẽ nhận diện và đi tới những điểm đó

Trạng thái tìm kiếm ( Searching ) :

Trang thái tìm kiếm là một giai đoạn hậu của giai đoạn truy đuổi, xảy ra khi NPC

đã di chuyên tới vị trí cuối cùng của trạng thái truy đuổi và không có điểm kíchthích khác Các đặc điểm nồi bật của trạng thái tìm kiếm bao gồm:

Chu Kỳ Tìm Kiếm: Trạng thái truy đuổi sẽ kéo dai trong khoảng thời gian cỗ

định, cụ thể là 6 giây Trong suốt chu kỳ này, NPC sẽ chủ động tìm kiếm người

chơi trong khu vực mà chúng mat dấu

Phản ứng với kích thích mới: Trong khi đang ở trạng thái tìm kiếm, nếu NPC

nhận được bat kỳ kích thích mới nào như tiếng động hoặc nhìn thấy người chơi,chúng sẽ ngay lập tức chuyền lại trạng thái truy đuổi

Thuật Toán Tìm Kiếm: Mỗi loại NPC có thể sử dụng các thuật toán tìm kiếm

khác nhau, nhưng mục tiêu chung là di chuyển thông minh dựa trên hướng vi trícuối cùng mà người chơi được phát hiện Các thuật toán tìm kiếm có thể bao gồm

di chuyên theo các mẫu nhất định, kiểm tra các khu vực xung quanh

Chuyển về trạng thái bình thường: Khi kết thúc chu ky tìm kiếm mà không

phát hiện ra người chơi, NPC sẽ quay về trạng thái bình thường

Tốc độ di chuyến: Trong trang thái tìm kiếm, tốc độ di chuyền của kẻ thù thườngtương đương với tốc độ lúc truy đuổi

Trạng thái không bình thường ( Abnormal ):

Trang 26

Trạng thái không bình thường xuất hiện khi kẻ thù gặp phải các tình huống bấtthường hoặc lỗi kỹ thuật, như bị kẹt hoặc không thé thực hiện hành vi theo dự định.Việc xử lý các trang thái không bình thường là cần thiết dé duy tri trải nghiệm mượt

mà cho người chơi Dưới đây là một số khía cạnh quan trọng của trạng thái không

bình thường:

Vấn đề: NPC đôi lúc sẽ bị kẹt ở một vị trí nào đó, có thể là do va chạm với vật

thể môi trường hoặc va chạm với NPC khác Trò chơi sẽ kiểm tra vị trí cuối cùngcủa kẻ thù trong một khoảng thời gian (4s) Nếu phát hiện thấy kẻ thù không dichuyền hoặc di chuyển rất it trong thời gian này, hệ thống sẽ xác định rằng kẻ thù

đang bị kẹt.

Biện pháp xử lí: Khi kẻ thù bị phát hiện trong trạng thái kẹt loại 1 ( kẹt quá 4s

và dưới 10s ) sẽ cho kẻ thù quay về trạng thái bình thường và di chuyền tới một vị

trí mới được chỉ định, khi kẻ thù bị kẹt loại 2 ( kẹt qua 10s ) sẽ reset lai vi tri của kẻ

thù ( sẽ có kiểm tra nếu điểm đó gần người chơi không )

Trường hợp đặc biệt: trong thuật toán tìm kiếm của kẻ thù “mù” và kẻ thù

“câm”, việc kẻ thù bị kẹt là một sự dự tính và không được tính là trường hợp bat

thuong.

Trang 27

Người chơi bị phát hiện

————

Di chuyển ngẫu nhiên Di chuyển tới vị trí kích thích

Trạng thái bình thường Trạng thái truy đuổi

Người chơi bị phát hiện Người chơi bị phát hiện

Kết thúc chu kì tìm kiếm Tới địa điểm kích thích cuối cùng

3.2.3.1 Thông tin tổng quan

NPC "Mù" là một trong những đối thủ chính mà người chơi phải đối mặt trong

trò chơi “Mù” có khả năng phát hiện và theo dõi người chơi dựa trên chuyển động

và âm thanh, đặc biệt là khi người chơi chạy trong phạm vi phát hiện của nó.

Trang 28

3.2.3.2 Thuật toán phát hiện

Vùng phát hiện ( vùng nghe thay ) của NPC “mù” là một hình cầu rộng 15 đơn

vị map Khi người chơi đạt một vận tốc nhất định trong khu vực phát hiện của NPC

“mù”, cụ thể theo công thức sau, khi người chơi đã đạt vận tôc x:

x = runspeed — 0.375)

Người choi mở cửa / ném đô choi vào vùng phat hiện của kẻ thu cũng được coi

là một nhân tố kích thích sự phát hiện của NPC “mù”

Trang 29

3.2.3.3 Thuật toán truy đuổi

NPC “mù” có những đặc điểm của NPC khi ở trong trạng thái truy đuôi, khi truyđuôi, chúng sẽ phát ra tiếng động để đe dọa NPC “mù” vì không thể thấy nên thứ

tự ưu tiên của nó sẽ là:

Gau bông -> Tiếng động người chơi chạy -> Tiếng động khác

3.2.3.4 Thuật toán tìm kiếm

Kẻ thù “mù” sẽ suy luận vị trí có thé của người chơi bằng cách dùng chính hướng

của NPC với bản đồ khi đó dé quyết định hướng đi tiếp theo, khi tìm kiếm sẽ có hai

giai đoạn tương ứng với hai đường đi:

Lần một, sử dụng độ nghiêng của góc dé quyết định hướng đi tiếp theo ( trênxuống trái phải, vuông góc với bản đồ ), lần hai, sử dụng chính góc đó dé suy luận

và quyết định hướng đi tiếp theo nếu tại lần một NPC đã bị kẹt ( trường hợp đặc

biệt và không bị tính là NPC bị kẹt và reset).

Ngày đăng: 08/12/2024, 15:41

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

TÀI LIỆU LIÊN QUAN