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: Phát triển Game phối hợp trực tuyến

65 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 đề Phát Triển Game Phối Hợp Trực Tuyến
Tác giả Nguyen Huu Viet
Người hướng dẫn ThS. Nguyen Thi Thanh Truc
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.HCM
Định dạng
Số trang 65
Dung lượng 60,28 MB

Nội dung

Thêm vào đó, dé có thé thu hút người dung thì trò chơi cần phải đáp ứng các yêu cầu cơ bản như chạy mượt mà, có được hệ thống nhân vật, vũkhí, quái vật, màn chơi đa dạng.. Mục đích chính

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA CONG NGHE PHAN MEM

NGUYEN HUU VIET - 20522152

KHOA LUAN TOT NGHIEP PHAT TRIEN GAME PHOI HOP TRUC TUYEN

DEVELOPING AN CO-OP GAME

KY SU NGANH KY THUAT PHAN MEM

GIANG VIEN HUONG DAN THAC SĨ NGUYEN THỊ THANH TRÚC

TP HÒ CHÍ MINH, 2024

Trang 2

LỜI CẢM ƠN

Khóa luận tốt nghiệp với đề tài “PHÁT TRIEN GAME PHOI HỢP TRỰC TUYẾN” là

minh chứng cho kết quả nỗ lực hết mình tại trường Đại học Công Nghệ Thông tin Trong thời

gian thực hiện đề tài, em đã có được rất nhiều sự hỗ trợ của thầy cô, gia đình và bạn bè

Em xin chân thành cảm ơn toàn thể quý thầy cô trường Đại học Công nghệ Thông tinnói chung và quý thầy cô trong Khoa Công nghệ Phần mềm nói riêng đã dìu dắt em trên

chặng hành trình tìm kiếm tri thức Đó là món quà vô giá và là hành trang tiếp sức cho em

trên con đường của mình.

Em xin gửi lời cảm ơn đến cô ThS Nguyễn Thi Thanh Trúc, giảng viên hướng dẫn trực

tiếp hỗ trợ em trong quá trình thực hiện Những lời khuyên hữu ích của cô đã giúp em kịp

thời thích ứng và hoàn thành đúng tiễn độ, đúng yêu cầu được đặt ra ban đầu Ngoài ra emcũng xin cảm ơn thầy phản biện và quý thầy cô của hội đồng chấm khóa luận về những đóng

góp giúp em cải thiện những lỗi sai của mình.

TP.HCM, 30 tháng 7 năm 2024

Nhóm sinh viên thực hiệnNGUYEN HỮU VIỆT

Trang 3

MỤC LỤCChương 1: GIỚI THIỆU DE TÀII ¿2£ 2+ E2 E+EE£EE£EE£EEE£EEEEEEEEEEEEEEEEEEEEEEEEEEEEErrkrrkee 5

1.1 TỔng quan -¿- 2-52 SEềEE£EE9EE2E12EEEEEE19E12112111111111 21111111111 1.11 111111111111 re 5

I2 /009àš(2ì8ii):48,)/:0111777 ỗÏ|l0ạBạB 5

1.3 Phạm VI - - << c S121 12222303110 810111 111900930111 61.4 Đối tượng sử dụng: ¿52 sex E211 2112211717171711211211 1111111111111 11 11c re 61.5 Phương thức thực hiỆN: - - c5 222132211321 11113311 181119111111 81111 11 111 H1 ng ng re 6

1.6 Các game tương tự trên thi tTƯỜnØ: - - - - ¿5 + 331133311332 E351 EErerrrerre 7

1.6.1 The nh 55 7 2/2/00 ca 8

Chương 2: CƠ SỞ LY THUYET VÀ CONG NGHE eececescsscsscssessessessesessessessessesesseesesseasess 9

2.1 Unity: ee „⁄⁄2 6Đ0 LÒ ” 22x 9

2.2 Netcode for GameOJ€CES - G119 TH TH HH 10

2.2.1 Cau trúc liên kết mạng ¿- + - 2 2 2+E£+E£EE£EESEEEEEEEEEEEEEEEEE1212217121 212 xe 10

2.2.1.1 Mô hình client — S€TVT c- s6 <1 nh TH nu HH gi ngờ 11 2.2.1.1.1 Dedicated game S€TV€I G11 TH ng ng kg 11 2.2.1.1.2 Client-hosted listen S€TV€T <1 vn ngư 12

2.2.1.2 Mô hình mạng phân tấn - - - - E2 1E 231132101 113 11119 111 91 1H Hy 12

2.2.2 Các khái nệm cơ bản trong NGO c - S1 v v.v HH ng ng ket 132.2.3 Nghiên cứu và áp dung NGO trong đồ án ¿22 252+SE+EEe£EzEtzEzrxrrxrred 142.3 Unity 9i: 0 15

2.3.1 Các dịch vụ của Unity CÏOU <6 3c 1331332111111 13111111111 1 rrkre 152.3.2 Nghiên cứu và áp dụng Unity Cloud trong đồ án -2- 2 52 +522£22£z+cs+ced 162.4 Thuật toán tìm đường vector field pathfinding - -s + +++s£++e£+se+seeeeess 16Chương 3: PHAN TÍCH THIET KE HE THÓNG 2 2 2£ + E££E£+E££E£+E++£+zxzei 21

3.1 Sơ đỒ kiẾn tTÚC 22+xc E1 HH HH HH He 21

3.2 SO d6 USE CASE an 95/5Ă 223.3 Danh sách CAC aCẦOT - - - CS ng 23

Trang 4

3.4 Danh sách USE CaS€ - - - - Q11 S911 ng ng 23

3.5 Đặc tả USE CASE 00H50 ĐC và 24

3.5.1 Điều chỉnh nhân vật -.-¿ 22++++22++ttrEEktrtrtrrrrtrttrirrrtrrirrrrrirrrrrrrrrrrieg 243.5.2 Lựa chọn vũ khí < c1 1111223111199 11110 1v ng 25

3.5.3 Lựa chọn nhân Vậtt - - E2 222111111111111112253531 1111 11H ng 0 1kg 27 3.5.4 Tham gia phòng CHỜ c 13133211119 111191111 0111 1T 1n ng Hy 28

3.5.5 Đuôi người chơi khỏi phòng chờ 2-2 5£2S£2S£2E£+EE£EE£EEeEEezEzxezrerrxrred 303.5.6 Thoadt KhOi phong ChO 1 ố 31

3.5.7 Tao phong áo 323.5.8 Bắt đầu màn chơi -22++++2++tt2EEkttrtErrrtrrrrrrrrrrrrirrrriirrrrrirrreriie 343.5.9 Lựa chọn chế độ chơi -.-¿- c5 c9 191111915E18EEEkE11EEE111E11111111111 1111111 ce 363.5.10 Bì v00 000177 7 37 3.5.11 Chơi màn CƠI (6 t1 91 1998 1 1 1 1 HH HH HH Hà HH Hưng 38

3.5.12 Thu thập tai nQuy6n 0 eee eeseeeseceseeesseceseesseeceseceaecsseesseeeeeesaeesseeeseessaeeeeeesees 39

3.5.13 Chiến dau Ay PT A1 m7 pc Ằ << 403.5.14 Làm nhiệm VỤ - - - - Ă Ă 2E 22111111211 1111151 111112 1111116011111 190 11kg ngu 42 3.5.15 Sử dụng kỹ năng - . - c + 1 TH HH HH kh 443.5.16 Kết thúc màn chơi 555cc 222 tì EEvttHEEE rE rrrriie 45Chương 4: XÂY DỰNG GAME 2-2 S2E22E2E19E19E19712112112112111171111121 1111 xe 41

4.1 Thiết kế nội dung game và luật chơi + ¿+ + +2 £+E£EE£EE£EE+EEEeEEeEkerxrrerrers 41

4.2 Các đối tượng trong game - +: + + ©s2E+E2EE2EEEEEE2E21121121121171 7171.211211 re 47

“ »N»šG 47

“2v i0 mm 484.3 Đồ họa game - ¿tt 1E 1211211 21111121111 1111111111111 1111111111111 49G20 na U:: 51

4.4.1 Man hinh Main menu 0n 51 4.4.2 Man hình Custom ChaTC(€T - (c6 1611 1E 11 1 1h ng TH tt 52

4.4.3 Màn hình Create LLODyy - G5 1101 HH HH kt 53

Trang 5

4.4.4 Màn hình Join LODVy - - 5 1118211111911 1 11 11119 11H HH ket 54

4.4.5 6000 - 55 4.4.6 Màn hình Gameplay ¿ 2- 22 +©2£+Ex+2EE2EE+2EEE2EEE212112711221 21122121 Ekecre 56

Chương 5: KET LUẬN VÀ HƯỚNG PHAT TRIEN - 2 5 2+£z+Ee£x+£++£zzzzxeẻ 57

5.1 Kết quả đạt được - 5-5c 21 21 E1 2121121121121111 1111121121111 11111111111 Hee 575.2 Hann 1m ă 57

5.3 Hướng phát triỂn - ¿22 %+Sk+SE£SE£EEE2E12212117171211211211211117111111 2111 xe 57TÀI LIEU THAM KHẢO - 5c E5 E‡EEEE£EE+E£EE+EEEESEEEESEEEEEEEEEEEEEEEEETEEEEEEEEETEErkrkrrkred 59

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1.1: Trò chơi The ASC€TIE - -G c1 E206111211111911 111911111911 11921 1118111101111 8011118111 grvy 7 Hình 1.2: Trò choi Zombie blast Crew - c2 2200133111311 11131 1318111581111 1 1111111 8 Hinh 2.1: Unity 0 ce Ả 9 Hinh 2.2: Netcode for GameObjects T8 10

Hình 2.3: Mô hình dedicated game S€TV€T - 5 5 s13 E9 1991019119 ng re 11 Hình 2.4: Mô hình client-hosted listen Server cccccccccsssscccesesseeceesesseeeeeseseeeesssseeeeesenaes 12

Hình 2.5: Mô hình mạng phân tắn - - - - - - E22 113911 231991119119 1H ng kh 13

Hinh 2.6: Unity 04/0) 58 T1 .ằe 15

Hình 2.7: Mô tả các bước của thuật toán vecter field pathfinding - - ‹ +: 16

Hình 2.8: Minh họa kết quả thuật toán Heatmap Generation -¿¿sz+ss+ss+zx+c++ 17

Hình 2.9: Lưu đồ thuật toán WavefrOIL ¿2c St E33 EESEEEEEEEESEEEEEEEEEEEEEEEEErrrrrrkrrrree 18

Hình 2.10: Minh họa kết quả thuật toán Vector Field Generation -«««++ss«++ 19

Hình 2.11: Minh họa kết quả thuật toán pathfinder movermen( -««+++<«s+++ss+2 20Hình 3.1: Sơ d6 kiến trÚC -¿-2¿- 2: 22222222+222122E1222122112211271127112711211211 2112112112 21

Hình 3.2: Sơ d6 use Ca§e s.- s56 S EE E1 1211111211211 1111111111111111 1121111111111 1g 22

Hình 3.3: Sơ đồ hoạt động use case điều chỉnh nhân vật - - ¿6 + *+x+x+EeEzxexererxei 25

Hình 3.4: Sơ đồ hoạt động use case lựa chọn vũ khí - - + + + +2 *++++seeeeeexeeeeeserese 26

Hình 3.5: Sơ đồ hoạt động use case lựa chọn nhân Vat ¿5+ ++++*++ss+*eex+eexseerses 27

Hình 3.6: Sơ đồ hoạt động use case tham gia phòng chờ -2- 52 s¿+sz+£2+££+£+zzx+zxd 29

Hình 3.7: Sơ đồ hoạt động use case đuôi người chơi khỏi phòng chờ -5- 30Hình 3.8: Sơ đồ hoạt động use case thoát khỏi phòng chờ . -¿-2¿5¿©5225++++zs+>+2 3]Hình 3.9: Sơ đồ hoạt động use case tạo phòng chỜ - ¿- 2 2 ++++++£x+£x+E+zzzserxered 33

Hình 3.10: Sơ đồ hoạt động use case bắt đầu màn chơii ¿2+ SE+E+EvEErErEsrrsrrcrs 35

Hình 3.11: Sơ đồ hoạt động use case lựa chọn chế độ chơi -¿- - + +cx+xezx+xerxzxerxexee 36Hình 3.12: Sơ đồ hoạt động use case lựa chọn màn chơi - - 55+ >+sss++s++s+sessesss 37

Hình 3.13: Sơ đồ hoạt động use case chơi màn ChƠI - - - 5c 3311333 Eveeereeersrseeree 38

Hình 3.14: Sơ đồ hoạt động use case thu thập tài nguyên - 2+ 52 5++s++z++z+zzxsred 39

Hình 3.15: Sơ đồ hoạt động use case chiến đấu ¿s2 SESESEEEEEESEEEEEEEEEErrkrkrrrrrrees 41

Hinh 3.16: So dé hoat động use case làm nhiỆm VU ee eeecceeseeeeeeeseeeseeeeeeeeseeeseeeeseenseeesees 43

Hình 3.17: So đồ hoạt động use case sử dung kỹ năng ¿2-2 2 z+EeEEeEeExzrrxees 45

Hình 3.18: Sơ đồ hoạt động use case kết thúc màn chơi - - - + + +z+x+xeEeEztexererxes 46Hình 4.1: Ảnh minh họa nhân vat : ¿©2++©+++2E+++2EE+22EE+2EEE2EEEtEEkvrrtrrrrrrrrrrrree 47Hình 4.2: Ảnh minh họa QUAI 4040011111177 48Hình 4.3: Ảnh minh họa quái vat Zombie King 2 252 ++E+£E+£Ee£E+EzEzrerrxered 48

Trang 7

Hinh 4.4: Minh hoa m6 hinh "low 2s) 49

Hình 4.5: Minh họa thiết kế nhân vật - - 2 SE SE £EE+E£EE£EEEEEEEEEEEEEEEEEEEEEEEEerkrkerkred 50Hình 4.6: Giao diện màn hình Main Menu - 5 << <1 11133333 ** +22 eeeeeeeres 51 Hình 4.7: Giao diện màn hình Custom charaCf€T- - << 5522 22113 ‡*‡+*22#EEE++Sseeessessessse 52 Hình 4.8: Giao diện màn hình Create ]ODyy 2+2 1E +31 E**EE+EeEEErkreeeeererereereere 53 Hình 4.9: Giao diện màn hình Join IObbyy - << s33 E191 93 1 911 9v vn ng re 54 Hình 4.10: Giao diện màn hình LODby - - - G c1 3221133211133 111991 11 1 111g ng vn re 55 Hình 4.11: Giao diện màn hình GamepÌayy - - c 13311133 111139111111 111 811 re 56

Trang 8

Bảng 3.7: Mô tả use case đuôi người chơi khỏi phòng chờ - - +-ss + sssvssseeske 30

Bảng 3.8: Mô ta use case thoát khỏi phòng ChỜ - G5 E1 191 ng ng ng re 31

Bang 3.9: Mô tả use case tạo phòng CHỜ - G1121 1911 9011111 1v ệp 32

Bang 3.10: Mô tả use case bắt đầu màn chơi 2- 5c ©5£5£2S£‡E£EE£EEeEEeEErErrerrrerrrred 34

Bảng 3.11: Mô tả use case lựa chon chế độ chơi - - s+s+x+E+E+E+EEEEE+EeEErErErrrrsrerrrree 36Bảng 3.12: Mô ta use case lựa chọn màn CHƠI ¿2 55 33+ * 3+ ++#E+eeEeeexeereeereeesrs 37 Bảng 3.13: Mô tả use case chơi MAN COI - 6 2 3131112111911 91111 1 11 x1 re 38

Bang 3.14: Mô tả use case thu thập tài ngu yÊN .- s11 1213911 1931 1991 1v nrưkt 39

Bang 3.15: Mô tả use case chiến đấu - % 2+S2+Ek‡EEE2E2EE2E12E12217121212211 2 crk 40

Bảng 3.16: Mô tả use case làm nhiỆệm VỤ - - G110 91991 91 ng ng ng ve 42

Bảng 3.17: Mô tả use case sử dụng kỹ nắng - - ¿+55 +11 + skseeesrsereseeereere 44

Bang 3.18: Mô tả use case kết thúc màn chơi - 2: 5£ ©5£+5£+E£+EE££E£EEeEErErrezrxerxered 46

Bảng 4.1: Mô tả giao diện Main Menu - - <2 1x 39211193119 111911 9 1n ng ng rệt 51

Bang 4.2: Mô tả giao diện Custom character .- c5 1139111331 9111119911 re 52 Bảng 4.3: Mô tả giao diện Create [ODDyy - - 111gr 53 Bang 4.4: Mô ta giao diện Join ÏODyy - - 6 c6 2 1111193011 91119301 19 1 9 1H ng 54

Bang 4.5: M6 ta giao dién LODDY 0.0 55

Trang 9

DANH MỤC TỪ VIET TAT

OOP Object Oriented Programming Lập trình hướng đối tượng

GDD Game Design Document Tài liệu thiết kế game

CO-OP Cooperative games Game có sự hợp tác giữa nhiều

nguoi.

RPG Role-playing game Game nhap vai

NGO Netcode for GameObjects Một thư viện mạng cap cao cua unity

Trang 10

TOM TAT KHÓA LUẬN

Hiện nay, chúng ta đang sống trong thời đại 4.0 nơi mà hầu hết mọi người đều có

các thiết bị kết nối internet của riêng mình dé phục vu các mục đích khác nhau, một trong

số đó là chơi game để giải trí Game thì có vô số thé loại khác nhau, từ hành động nhậpvai, chiến thuật, giải dé, nhung thé loai duoc moi người ưa chuộng nhất vẫn là các

game trực tuyến, nơi mà người chơi có thê kết nối và choi cùng với nhau thông qua mạng

1nternet.

Dựa trên nhu cầu đó, tác giả quyết định thực hiện đề tài "Phát triển Game phối hợp

trực tuyến" có mục tiêu chính là tạo ra một trò chơi đa người chơi có tính hợp tác với

nhau trên nền tang mạng internet Thêm vào đó, dé có thé thu hút người dung thì trò chơi

cần phải đáp ứng các yêu cầu cơ bản như chạy mượt mà, có được hệ thống nhân vật, vũkhí, quái vật, màn chơi đa dạng.

Sản phẩm cua đề tài sẽ được nghiên cứu và phát triển dựa trên công cụ Unity Engine

dé phat trién tro choi, thu vién mang Netcode For GameObjects dé đồng bộ trò chơi trên

nền tang mạng internet và dịch vụ cloud do Unity cung cấp đề lưu trữ và chạy may chủcủa mình Thêm vào đó là việc nghiên cứu, áp dụng các thuật toán tối ưu để giảm tải chỉ

phí, giúp trò chơi chạy 6n định và mượt mà hơn

Kết quả cuối cùng mà tác giả thu được là một trò chơi trực tuyến hỗ trợ tối đa 4

người chơi cùng lúc, nội dung của trò chơi được đồng bộ hóa ở thời gian thực với độ trễthấp dé người chơi có thé choi cùng nhau một cách mượt mà Thêm vào đó là hệ thống

vũ khí đa dạng để người chơi lựa chọn tùy vào sở thích của mình, giúp trò chơi hấp dẫn

hơn.

Tông kết lại, báo cáo sẽ cung câp một cái nhìn toàn diện về quá trình phát triên và

kêt quả của dự án "Phát triên Game phôi hợp trực tuyên".

Trang 11

Chương 1: GIỚI THIỆU DE TÀI

1.1 Tổng quan

Hiện nay, với sự phô cập rộng rãi của mạng internet va các thiết bị điện tử trong

thời đại công nghệ 4.0, nhu cầu về việc giải trí của mọi người cũng ngày càng tăng vàmột trong những lựa chọn đó là chơi game, đặc biệt là sau đại dịch covid thì game ngày

càng được biết đến rộng rãi Tính riêng tại nước ta đã có khoảng 50 triệu người chơigame, chiếm 50% dân số Điều đó cho thay thị trường game là một trong những thitrường lớn nhất trong lĩnh vực giải trí

Hiện nay, có rất nhiều công cụ phát triển game trên thị trường như Unity, Unreal,Godot, Armory, CryEngine, GameMaker, được các nhà phát triển và cộng đồng của

họ trang bị rất nhiều công cụ và giải pháp giúp cho người sử dụng có thé phát triển gamecủa mình một cách nhanh chóng và hiệu quả.

Mục đích chính của dé tài là nghiên cứu và phát triển một trò chơi đa người chơi,

thêm vào đó là áp dụng các nguyên lý thiết kế, mẫu thiết kế, các phương pháp và thuật

toán tôi ưu dé mang đến một sản phẩm tốt nhất Điều này yêu cầu khả năng tìm hiểu và

lượng kiến thức tong hợp cực kỳ lớn dé có thé áp dụng nó vào quy trình thực hiện, rat

phù hợp dé làm minh chứng cho kiến thức va kỹ năng mà bản thân có được trong quá

trình học tập tại trường.

1.2 Mục tiêu thực hiện

Mục tiêu của đề tài là xây dựng một game phối hợp trực tuyến hỗ trợ tối đa 4 ngườichơi trên nền tảng Window 10 Game sẽ được phát triển dựa trên công cụ Unity Engine

và các tính năng mà công cụ này cung cấp Ngoài ra còn có việc tìm hiểu và áp dụng

thêm các thuật toán tối ưu phù hợp dé game chạy mượt mà, giảm tải chi phí ở mức tốiđa.

Trang 12

1.3 Phạm vi

- Pham vi môi trường: Ung dụng chạy trên hệ điều hành Microsoft Window

- Pham vi chức năng:

o Đối với game:

Game 3D, góc nhìn nghiêng từ trên xuống

Hình anh, đồ hoa low poly

Có khả năng choi co-op từ 1 đến 4 người

o Đối với gameplay:

Game tuyến tính, chơi theo màn, hoàn thành mục tiêu của từng màn chơi

dé qua màn tiếp theo

Các màn chơi có thiết kế độ khó theo interest curve nhằm kích thích

hứng thú qua từng màn game.

Một trò chơi hoàn chỉnh, đáp ứng được các chức năng mong muốn:

e Chức năng coop: người chơi có thé chơi với nhau bang cách tạo

phòng va mời người chơi khác tham gia vào trận đấu của mình

e _ Hệ thống đánh giá kết quả: sau khi kết thúc màn chơi, hệ thống sẽ

trả về kêt quả mà người chơi có được dựa trên thang tính diém.

1.4 Đối tượng sử dụng:

Người chơi có đam mê với thê loại game co-op, có thê chơi từ 1 dén 4 người cùng

nhau trên nền tảng window 10

1.5 Phương thức thực hiện:

o Tìm hiểu cách làm model va animation với blender và mixamo

o Tìm hiểu Netcode For GameObject dé triển khai tính năng co-op

© Nghiên cứu và sử dụng các dịch vụ của Unity Cloud để lưu trữ, chạy server

o Sử dụng Github dé quan ly source code

Trang 13

1.6 Các game tương tự trên thị trường:

1.6.1 The Ascent

i

The Ascent là game trực tuyến bắn súng nhập vai, được đặt trong một thé giới

cyberpunk tap nap trên hành tinh Veles Trò chơi có tính năng chơi đơn va choi đa người

cho phép người chơi kết hợp cùng những game thủ khác trên toàn cầu chiến đấu cùng nhau

Bước vào game, bạn sẽ vào vai một nô lệ dưới quyền của tập đoàn Ascent Group.Việc của bạn là nhận nhiệm vụ của tập đoàn này và hoàn thành nó Khả năng nâng cấp nhân

vật theo ý thích, vũ khí đa dạng kết hợp với âm thanh và đồ họa đã mang đến sự thành công

của trò chơi này.

Trang 14

Zombie Blast Crew là một game lay chủ dé là vào dai dịch xác sông lan truyềnkhắp mọi nơi Tham gia vào game, bạn sẽ vào vai một người sống sót và đi giải cứunhững người sống sót khác và chiến đấu, bạn phải tìm cách tiêu diệt hết những con xác

sống dé hoàn thành game, và dé thực hiện được điều đó thi bạn có trang bi cho người

chơi của mình các loại súng hoặc các loại vũ khí khác nhau Tiêu diệt càng nhiều xácsống, bạn nhận được càng nhiều tiền thưởng để nâng cấp trang bị và mở khóa các kỹ

năng mới có thé kích hoạt trong quá trình chơi

Hệ thống vũ khí đa dạng, đồ họa gọn nhẹ phù hợp với nhiều thiết bị là điểm mạnh

của trò chơi nay.

Trang 15

Chương 2: CƠ SỞ LÝ THUYÉT VÀ CÔNG NGHỆ

là ngôn ngữ lập trình chính Ngoài việc dùng để phát triển game thì nó cũng được sử

dụng dé làm các video ngăn Một vài diém mạnh cua unity:

— Đa nền tảng : chúng ta có thé sử dung Unity dé tạo ra trò chơi chạy được trên các

nên tảng máy tính, điện thoài, consle cùng lúc Nó cũng có thể dùng để phát triển

các ứng dụng trên nền tang thực tế ảo và thực tế ảo tăng cường

— Công cụ đa dang: Unity cũng cung cấp nhiều công cụ cần thiết trong quá trình

phát triển game Animator, Timeline, Cinemachine Unity cũng có một Asset Storelớn, người dùng có thể mua hoặc tải về miễn phí các tài nguyên như mô hình 3D,

âm thanh, vật ly, AI,

— Cộng đồng: một điểm mạnh khác khi sử dụng công cụ này là nó có một cộng đồng

đông dảo và nhiệt tình, bạn có thể lên đây tìm kiếm câu trả lời cho các vấn đề

mình gặp phải trong quá trình phát triển trò chơi Unity cũng có tổ chức nhữngkhóa học hay sự kiện và cuộc thi nâng cao kỹ năng cộng đồng và tạo môi trường

giao lưu với các nha phát triên khác.

Trang 16

Và trên thực tế thì đã có rất nhiều sản phẩm như Among us, Fall Guys, Genshin

Impact, đã dat được những kết quả nhất định trong nền công nghiệp game Chứngminh sức mạnh của công cụ này.

2.2 Netcode for GameObjects

NETCODE FOR

Hinh 2.2: Netcode for GameObjects

Netcode for gameobject (NGO) là là một thu viện mang cấp cao cho Unity, giúp

xây dung game nhiều người chơi với Unity Với NGO, người dùng có thé bỏ qua các

van đề liên quan đến giao thức mang cấp thấp mà tập trung vào phát triển trò chơi củamình.

2.2.1 Cầu trúc liên kết mạng

Câu trúc liên kêt mạng định nghĩa cách sắp xêp một mạng Trong bôi cảnh của các

trò chơi nhiêu người chơi, điêu này chủ yêu liên quan đên cách các máy khách, máy chủ

va máy chủ trung tâm được kêt nôi và giao tiép Các câu trúc liên kêt mạng khác nhau

10

Trang 17

có những lợi ích và hạn chê khác nhau, tùy thuộc vao loại trò chơi ma chúng ta muôn

tạo ra.

NGO hỗ trợ 2 cấu trúc liên kết mạng là mô hình client — server và mô hình mạngphân tán.

2.2.1.1 Mô hình client — server

Mô hình client — server có thê triển khai theo 2 hướng là dedicated game server vàclient-hosted listen server

2.2.1.1.1 Dedicated game server

Hình 2.3: Mô hình dedicated game server

Mô hình dedicated game server bao gồm I máy chủ đồng bộ và xử lý hầu hết toàn

bộ dữ liệu của trò chơi, người dùng tham gia game bằng cách kết nối với máy chủ này ởvai tro client.

11

Trang 18

Ưu điểm của mô hình dedicated game server là chúng ta có thé quản lý toàn bộ tròchơi của mình, ngăn ngừa người chơi sử dụng các phương pháp gian lận một cách tốtnhất Đôi lại thi mô hình này tốn khá nhiều chi phí để duy trì máy chủ.

2.2.1.1.2 Client-hosted listen server

Hình 2.4: Mô hình client-hosted listen server

Khác với mô hình ở trên thi với client-hosted listen server, chúng ta sẽ không có

máy chủ của riêng mình mà sẽ do một máy khách đảm nhận công việc này gọi là host.

Ưu điểm của mô hình client-hosted listen server này là chúng ta không tốn chi phí

dé duy tri máy chu, nhưng kéo theo đó là việc tốc độ của trò chơi phụ thuộc hoàn toàn

vào máy host, ngoài ra thì các phương pháp chống gian lận cũng khó thực hiện được do

máy khách hoàn toàn quản lý trò chơi.

2.2.1.2 Mô hình mạng phân tán

12

Trang 19

Hinh 2.5: M6 hinh mang phan tan

Đặc trưng của mô hình mạng này là không có máy chủ trung tâm, các máy củanhững người chơi khác nhau sẽ liên kết trực tiếp với nhau và quyền quản trị của các máy

là như nhau, hay còn có nghĩa là mỗi máy của người chơi là một máy chủ riêng và hoạt

động độc lập Điều đó giải quyết được nhược điểm mô hình client— server là trong trườnghợp có máy gặp sự có thì nó không ảnh hướng đến các máy khác và trò chơi vẫn chơiđược bình thường.

Tuy nhiên nhược diém của mô hình này là phức tạp hon đê triên khai và các van

dé về chống gian lận cũng khó dé thực hiện.

2.2.2 Các khái niệm cơ bản trong NGO

Dé kết nối qua mạng cần có :

- NetworkManager: Là lớp đóng vai trò trung tâm điều khiển của mọi hoạt động

NGO NetworkManager xử lý việc khởi động, quản lý kết nối và cung cấp phảnứng kêt nôi giữa client và server.

13

Trang 20

- NetworkVariables: các thuộc tinh của một lớp trong trò chơi muốn đồng bộ qua

mang cần được khai báo trong một wrapper gọi là NetworkVariables

- NetworkBehavior: là một lớp kế thừa từ lớp MonoBehavior của unity, dé đồng bộ

trạng thái và giá tri của NetworkVariables của một lớp thì các lớp này phải được

kế thừa từ NetworkBehavior

- NetworkObject: một gameobject muốn tương tác và phản hồi với netcode thì phải

chứa NetwordObject và ít nhất một class kế thừa từ NetworkBehavior

Đề đồng bộ hóa các trạng thái và sự kiện, NGO có ba tùy chọn dé đồng bộ hóa

trạng thai và sự kiện của trò chơi :

- Messaging system :

o Remote procedure calls: là cách gửi thông báo sự kiện cũng như cach xử ly

liên lạc trực tiếp giữa máy chủ và máy khách hoặc giữa máy khách và dịch

vụ ủy quyền phân tán

o Custom Message: là một cách dé bạn có thé tùy chỉnh cách gửi thông báo của

mình.

- NetworkVariables: được xử lý bởi hệ thống nhắn tin nội bộ

2.2.3 Nghiên cứu và áp dụng NGO trong đồ ánGame sẽ được xây dựng theo mô hình dedicated game server với máy chủ do chúng

ta quản lý, người chơi muốn tham gia vào game thì sẽ kết nối với máy chủ này ở vai tròclient Các máy chủ sẽ được đặt ở trạng thái sẵn sàng đề bắt đầu một màn chơi, khi ngườichơi muốn bat đầu màn chơi thì sẽ kết nối đến một trong các máy chủ này dé bắt đầu

màn chơi của mình Thêm vào đó, nhằm mục đích chống gian lận ban đầu, các xử lýquan trọng trong game như xử lý va cham, tài nguyên, di chuyên, tính toán khác sẽ do

máy chủ đảm nhận.

14

Trang 21

se <>

PRODUCT HIGHLIGHT

Introductiongo

Unity Cloud

Hinh 2.6: Unity cloud

Unity Cloud là một hệ sinh thái gồm các sản pham và dich vụ giúp nang tam trải

nghiệm phát triển 3D thực tế Unity Cloud, tập trung hơn vào người sáng tạo, dé tiếp cận

hơn và kết nối tốt hơn

2.3.1 Các dịch vụ của Unity Cloud

- Unity Asset Manager: là một hệ thống quản ly asset kỹ thuật số (DAM) được thiết

kế như một giải pháp cho những thách thức trong việc phát triển games và tạo trải

nghiệm nhập vai, được tích hợp trực tiếp vào bảng điều khiển Unity

- Unity DevOps : truy cập khả năng quan lý mã nguồn linh hoạt, mạnh mẽ va tự động

hóa các bản dựng đa nén tảng trên đám mây với các giải pháp CI/CD của Unity

DevOps.

- Unity Gaming Services: dich vu dé xay dung tro choi cua ban va tién trién khi ban

phát triển, bao gồm phân tích, tương tác với người choi, phân phối nội dung qua

đám mây, Relay, sảnh chờ,

15

Trang 22

- Unity AI: hệ thống AI của Unity giúp chúng ta có thé tích hợp nó vào quá trình

phát triển game dé tăng tốc quá trình đó Một số công dụng tiêu biểu như là tạo môhình 3D, ảnh của nhân vật, materials cho mô hình 3d đó.

2.3.2 Nghiên cứu và áp dụng Unity Cloud trong đồ án

Nghiên cứu va sử dung dịch vụ Game Server Hosting dé lưu trữ và chạy máy chủ

của mình Thêm vao đó là sử dụng các dịch vụ liên quan như Unity Player Authentication

dé quản lý đăng nhập của người dùng trên hệ thống đa nền tảng va Unity Lobby dé thực

hiện tính năng tạo phòng chờ, giúp người chơi có thé tạo phòng và mời ban bè của minhvào cùng.

2.4 Thuật toán tìm đường vector field pathfinding

Ý tưởng của thuật toán tìm đường vector field pathfinding là chia bản đồ thànhnhiều ô nhỏ, sau đó tìm đường đi của toàn bộ các ô bản đồ đến địa điểm được chỉ định.Các đối tượng trong trò chơi không cần thực hiện việc thuật toán tìm đường đi độc lậpcho mình mà chỉ cân đi theo chỉ dân của các ô thì sẽ đên được đích.

Thuật toán gồm 3 bước :

Hình 2.7: Mô ta các bước của thuật toán vecter field pathfinding

16

Trang 23

- Bước 1 : Heatmap Generation

Heatmap là một bản đồ lưu trữ khoảng cách đường đi tính từ vị trí đích đến các ô

trong ban đồ Dé tạo ra Heatmap ta sử dụng một thuật toán gọi là thuật toán “Tran sóng”hay còn gọi là “Wavefront” Nó bat đầu từ mục tiêu và gan nhãn cho 6 đó là 0, sau đó

gan nhãn cho các ô xung quanh nó với giá tri tang thêm | Quá trình thực hiện tương tự

cho các ô còn lại cho đên khi tât cả tât cả các ô được gán nhãn.

Đặc điểm của thuật toán này là chúng ta có thể có thêm nhiều vị trí đích trên bản

đồ mà vẫn có thể tìm được đường đi từ ô ta đang đứng đến ô đích gần nhất với quảng

đường đi là ngắn nhất

17

Trang 24

Khởi tạo một vector 2 chiều kích

thước m*n đại diện cho bản đồ

Đánh dấu điểm bắt đầu và gán giá trị

cho điểm bắt đầu

Khởi tạo danh sách chứa các điểm

chưa xử lý, thêm điểm bắt đầu vào

tử trong danh sách gan giá trị ?

Hình 2.9: Lưu đồ thuật toán Wavefront

18

Trang 25

- Bước 2 : Vector Field Generation

Sau khi đã có được Heatmap ở bước 1, ta đã có được khoảng cach từ moi 6 trên ban đô đên vi tri đích mà ta mong muôn, dựa vào đó chúng ta tạo ra vector field băng

cách duyệt qua toàn bộ các ô, tìm ô liên kê có khoảng cách từ nó đên đích nhỏ nhât vàtạo một vector chỉ đến ô đó

- Bước 3 : Pathfinder Movement

Tim vi trí hiện tai cua đôi tượng ma chúng ta cân di chuyên dang nam ở 6 nao, dichuyền theo vector field của 6 đó thì sẽ đến được dich

19

Trang 26

Thuật toán này có độ phức tạp không gian là O(N) và thời gian là O(N*K), trong

đó N là tổng số ô của bản đồ và K là số ô liền kề của một ô

20

Trang 27

Chương 3: PHAN TÍCH THIET KE HE THONG

Kiến trúc của hệ thống gồm 3 thành phan chính:

— Client: là game ở phía người choi sử dụng, bao gồm giao diện, hệ thống âm thanh,

hình ảnh của trò chơi Client sẽ sử dụng các dịch vụ của Unity Cloud thông qua RestAPI.

— Unity Cloud: bao gồm các dịch vụ do unity cung cấp gồm có lobby services dé

quản lý phòng chờ, authentication service để quản lý đăng nhập và game server

hosting service dé quản lý server do unity cung cấp

— Server: là hệ thống máy chủ của game có vai trò là máy chủ trung tâm dé người

chơi kết nối vào và quản lý trò chơi

21

Trang 28

3.2 Sơ đồ use case

Thu thập tải nguyên Chiến đấu Làm nhiệm vụ

Sử dụng kỹ năng Chơi màn chơi Thoát trò chơi

Điều chỉnh nhân vật -Edends -4 _ Lựa chon vũ khí

` “Y Đuôi người chơi

include inctyde Extends o| phòng cho

Trang 29

3.3 Danh sách các actor

STT | Tên actor Mô tả

1 | Người chơi Người chơi trò chơi

2 | System Hệ thống quan lý màn chơi

Bang 3.1: Danh sách các actor

3.4 Danh sách use case

STT | Tên use case Actor Mô tả

1 | Điều chỉnh nhân vật Người chơi Điều chỉnh nhân vật

2 | Lựa chọn vũ khí Người chơi | Lựa chọn vũ khí sử dụng trong màn

chơi

3 | Lựa chọn nhân vat Người chơi | Lựa chọn nhân vat sử dụng trong màn

chơi

4 | Tham gia phòng chờ | Người chơi | Tham gia vào phòng chờ

5 | Đuôi người chơi khỏi | Người chơi | Đuôi người chơi khác ra khỏi phòng

phòng chờ chờ

6 | Thoát khỏi phòng chờ | Người chơi | Thoát khỏi phòng chờ

7 | Tạo phòng chờ Người chơi | Tạo phòng chờ

8 | Bat đầu màn chơi Người chơi | Bắt đầu màn chơi

23

Trang 30

9 | Lựa chọn chế độ chơi Người chơi | Lựa chọn chế độ chơi

10 | Lựa chọn màn chơi Người chơi | Lựa chọn man chơi

11 | Chơi màn chơi Người chơi | Chơi màn chơi

12 | Thu thập tài nguyên | Người chơi | Thu thập tai nguyên trong quá trình

chơi

13 | Chiến đấu Người chơi | Chiến dau trong quá trình chơi

14 | Làm nhiệm vụ Người chơi | Làm nhiệm vụ trong quá trình chơi

15 | Sử dụng kỹ năng Người chơi | Sử dụng kỹ năng của nhân vật người

chơi chọn

16 | Kết thúc màn chơi System Kết thúc màn chơi khi đủ điều kiện

3.5 Đặc ta use case

Bang 3.2: Danh sách use case

3.5.1 Diéu chinh nhan vat

Tén Use case Điêu chỉnh nhân vat

Mô tả Chức năng cho phép người chơi điều chỉnh ngoại hình, lựa

chọn vũ khí cho nhân vật

Tác nhân Người chơi

Điều kiện bắt đầu | - Không

Điều kiện kết thúc - Cập nhật thông tin của nhân vật

24

Trang 31

- Về lại màn hình “Main Menu”

Dòng sự kiện chính | - O màn hình “Main Menu”, nhân vào nhân vật

Tên Use case Lựa chọn vũ khí

Mô tả Chức năng cho phép người chơi lựa chọn vũ khí cho nhân

vật của mình

25

Trang 32

Tac nhân Người chơi

Điều kiện bắt đầu | - Không

Điều kiện kết thúc | - Không

Dòng sự kiện chính 1 Ở màn hình điêu chỉnh nhân vật, nhân vào vũ khí

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

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN