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 2LỜ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 3MỤ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 43.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 54.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 6DANH 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 7Hinh 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 8Bả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 9DANH 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 10TOM 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 11Chươ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 121.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 131.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 14Zombie 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 15Chươ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 16Và 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 17có 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 19Hinh 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 21se <>
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 24Khở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 26Thuậ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 27Chươ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 283.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 293.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 309 | 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 32Tac 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í