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

Khóa luận tốt nghiệp Công nghệ phần mềm: Xây dựng trò chơi trực tuyến nhiều người chơi bằng công nghệ Unity3D

60 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 đề Xây dựng trò chơi trực tuyến nhiều người chơi bằng công nghệ Unity3D
Tác giả Nguyen Duy Minh Tuan
Người hướng dẫn Th.S. Đinh Nguyễn Anh Dũng
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ 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 60
Dung lượng 44,22 MB

Nội dung

Trò chơi chạy trực tiếp trên nềntảng Windows mà không cần cài đặt với hình thức server chạy trong mạng nội bộ,tuy nhiên người chơi vẫn có thé tìm được các server không cùng mạng do hệ th

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

NGUYEN DUY MINH TUẦN - 20520845

KHOA LUAN TOT NGHIEP XAY DUNG TRO CHOI TRUC TUYEN NHIEU NGUOI CHOI BANG

CONG NGHE UNITY3D

Building a multiplayer game using Unity3D

CU NHAN NGANH CONG NGHE PHAN MEM

GIANG VIEN HUONG DAN Th.S DINH NGUYEN ANH DUNG

TP HO CHÍ MINH, 2024

Trang 2

LỜI CẢM ƠN Khóa luận tốt nghiệp với đề tài “KAY DUNG TRÒ CHƠI TRỰC TUYẾN

NHIÊU NGƯỜI CHƠI BẰNG CÔNG NGHỆ UNITY3D” 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 than từ phía gia đình, 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 tin nói chung và quý thầy cô trong Khoa Công nghệ Phần mềm nói

riêng đã dìu đắt em trên chặng hành trình tìm kiếm tri thức Đó là món quà vô

giá, cũng như hành trang hữu ích trên con đường sự nghiệp của ban thân sau

này.

Em xin được gửi lời cảm ơn sâu sắc đến thầy Đinh Nguyễn Anh Dũng, người đã trực tiếp hướng dẫn, chỉ bảo Những lời khuyên hữu ích của thầy đã 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.

Cảm ơn giảng viên phản biện và quý thầy cô trong hội đồng chấm luận văn về

những góp ý quý báu Cuối cùng, xin gửi lời cảm ơn chân thành nhất đến những người đã, đang và sẽ tiếp tục đồng hành, gắn bó cùng em trong từng chặng

đường đời.

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

Sinh viên thực hiện

Nguyễn Duy Minh Tuan

Trang 3

MỤC LỤC

Chương 1: Tổng quan về dé tài s- 5-5 << s s£ss£ssessessessessessessessessese 2

1.1 Ly do chọn đề tài o-s-s< sec scscsssersersessessessessessessese 2 1.2 Đối tượng và phạm Vi dé tài - 5< s°s se sessessessessessessessessese 2

1.2.1 Mục tiêu đề tài -°-scs<csscvserseteeersersstkserserksrrssrssrssrrssre 2 1.2.2 Đối tượng của đề tài cs<s<cscsvsevsekseksersersessessessessessessrse 2 1.2.3 Phạm vi đề tài -s-s- se s©cseSsESsexsEEsExseEsessessessesessessessssserse 3 CHƯƠNG 2: TONG QUAN VE DE TÀI s«<ssseecvxseesrreseorrrsee 4

2.1 So lược về cách hoạt động của Unity -s-ss<ssessecssessessesse 4 2.2 Sơ lược về cách hoạt động của Netcode for GameObjects 5 2.3 Sơ lược về cách hoạt động của Unity Lobby s-sccsscssecsscse 6 2.4 _ Thiết kế hệ thống -s cscs©csecss©cscsscssessEssEssersersstsserssrssersssee 7

2.4.1 Phòng chơi (LOÌDY), o o5 << 5 << 5< 9 9 9.9 90v 0.0 09.00098609 06 7 2.4.2 Màn chơi (L€V€ÌÌ) s 5< < 5 5 5 5 9 9 90.0.0000 0004 009466896 08906 8

CHUONG 3: PHAN TÍCH THIET KE HỆ THÓNG -° 5-5° << 11

3.1 Use Case Diagram Người Chơi .o s5 <5 S5 S55 8505689568996 11

3.1.1 Sơ đồ Use Case 2-s5-cse<LeHE.HHE AH.AAE.1000.140n10seerke 11

3.1.2 Danh sách ACfOF oœ- 0G G G55 9 9 99 9.9.9 0000000 0009650 11 3.1.3 Danh sách các Use Case do< 55 <5 5< 9 9 99.9001.0009 0050 6896 88 12 3.1.4 Đặc tả các Use aA§G 0G Họ cọ Họ c0 000.000 09 0860680 13 3.2 Use Case Diagram Người chơi trong Game < «<< sse< ssses se 27

3.2.1 Sơ đồ Use Case sssssssssssssssssssssssssssssssssssssssssssssssnsssssssssessssssssesssssssssssssssses 27

3.2.2 Danh sách ÁCfOF œœo œ5 5S s5 9 9.59 9 9 1 0009.100000910008601 80 28

3.3 in a 46

3.4 Giao diện màn hìÌnh << 5< < s 9 9.99 0.0009 090890688996 48

3.3.1 Giao diện màn hình bắt đầu -s-s- 5s s<sessessessessess 48

3.3.2 Giao diện màn hình Lobby BrOWS€F 05-55-55 S S5 55595 49

3.3.3 Giao diện màn hình thông tin Lo y s-s5-< << «55s «sesss< sse 49

3.3.4 Giao diện màn hình màn Ch0ïÌ - << << 5 5< 55 8S 9564 9595959 50 3.3.5 Giao diện màn hình dừng trò €ÌƠï - << 5< «5< s5 ss sesss+ sse 50

Trang 4

CHƯƠNG 4: KET LUẬN VÀ HƯỚNG PHAT TRIÊN .5 5 5 51

4.1 Kết 6am e.cecccescesssessessssssesssssessessssssecsscsscssessncsscssecsscssecsscsscssnssuceseeaneaseeses 51

4.1.1 Kết quả dat đưỢC - << 5< 5< 5< SseSseSseEseEseEseEsersersessersersessessese 51 4.1.2 Han ChE nh 6 51 4.2 Hướng phat triỂn s- se ©ss©esecssesserserssesssrserseerssrsee 51

Trang 5

DANH MỤC HÌNH

Hình 2.1: Màn chơi duy nhất của chế độ chơi giải đó 2-2 2 25522 5+‡ 11 Hình 3.1 So đồ Use Case Actor Người ChOi cceccsccsscescsssssesssssesesssessestssesseesessesees li Hình 3.2: Sơ đồ Use Case Tạo LObby - 2-2-2 2 ++2£+E2EE2EE+EEEEEEEErrerrerreee 14 Hình 3.3: Sơ đồ Use Case Tùy Chỉnh Lobbyy ¿- 2 2 2 +2 s+++£++£z+xzzzzeez 16 Hình 3.4: Sơ đồ Use Case Thoát LObbY cc.csesssesssesssesssesssecssecssecssecsuecsssssceseessecsses 18 Hình 3.5: Sơ đồ Use Case Host Game .ccssesssessesssessessesssessessssssessusssessessusssesseesseeses 20 Hình 3.6: Sơ đồ Use Case Thoát Game ccscccssesssessesseessessesssessessesssessessusssessecsseeses 22

Hình 3.7: So đồ Use Case Tìm kiếm thông tin Lobby 2-2222: 24

Hình 3.8: Sơ đồ Use Case Vào LObbyy - 2-2 2 5++22+E2E2EEcEeEeErrrrrrrerrree 25 Hình 3.9: Sơ đồ Use Case Tham gia game -: 2-2 5+++++cx++zxvsrxrrxez 27 Hình 3.10: Sơ đồ Use Case Actor Người chơi trong game -2- 55+ 27 Hình 3.11: Sơ đồ Use Case Di chuyền 2-2: 22 S£+SE+E£+EE+EE+E£EE+EzErrerrerreee 30 Hình 3.12: Sơ đồ Use Case Tan công - + 2 2+ £+E++E++EE+E+EE+EzEerrrrrerreee 32 Hình 3.13: Sơ đồ Use Case Gây sát thương - 2 2 s+S++E++E£EzEzrerrerrerreee 34 Hình 3.14: Sơ đồ Use Case Dừng trò chơi -¿ 2 s¿+£+£++xe+xzrxerxezrxerxee 35 Hình 3.15: Sơ đồ Use Case Thoát Game -¿- 2 ¿+ £+++x£+E++£xerxezrxerxez 37 Hình 3.16: Sơ đồ Use Case Nhận sát thương - 2-2 2 2 +2 ++E++E++Ezzzzzrzrxee 39 Hình 3.17: Sơ đồ Use Case Chết 22 2++t tt eeieg 41 Hình 3.18: Sơ đồ Use Case Hồi sinh dé tham gia ccccccccecsesseessesseessessesssessesseesseeses 43 Hình 3.19: Sơ đồ Use Case Hồi sinh dé quan sát -2- 2 ¿522 ++sz+sz2£xez 45 Hình 3.20: Sơ đồ lớp LevelManager - 2-2 + + E+EE£EE+EE+EE+EEEEEEEEEEEEkrrerreee 46 Hình 3.21: Sơ đồ lớp LobbyManager - 2-2: 2 ++S£+E++EE+EE+E2EE+EEEErEkrrerreee 47

Hình 3.22: Giao diện màn hình bắt đầu -¿ ©2+c+ccxxrrtrkrrrrrrrrerrriee 48

Hình 3.23: Giao diện màn hình LobbyrOWSGT - - c5 + srrrsrerreeek 49 Hình 3.24: Giao diện màn hình thông tin Lobbyy - 5 <5 svseeseeserse 49 Hình 3.25: Giao diện màn hình màn chơi .- 5-5 25225 S3 +22 c+zseeeeeezss 50 Hình 3.26: Giao diện màn hình dừng trò ChO1 .- <5 5s + *++se+seexeeerseess 50

Trang 7

DANH MỤC BANG

Bang 2.1: Vòng đời của một lớp kế thừa MonoBehaviour - 2-2 2 z+s+¿ 5

Bang 2.2: Các thành phần chính của Netcode for GameObjects -. - 6

Bảng 1.1: Danh sách Actor Người chơi - - 5c + stsevrerrrerrerererrerree 10

Bang 3.2: Danh sách Use Case người ChƠI - óc 5c SE EEEseekeeeererreeree 12

Bang 3.3: Bang Use Case Tạo LODyy - ch HH nàn 12 Bảng 3.4: Bang Use Case Tùy chỉnh Lobby .- - - <5 *+vvsseereeeseeereesrs 14 Bảng 3.5: Bang Use Case Thoát LODDyy 2c 2c 3321113 118131511111 rerre 16 Bang 3.6: Bang Use Case Host Game .- - 5 5 111v ng ng 18

Bang 3.7: Bang Use Case Thoát Œaime - - 2c 3 1v ng ng ngư 20

Bang 3.8: Bang Use Case Tìm kiếm thông tin Lobbyy .¿- 2-5522 525522 22

Bảng 3.9: Bang Use Case Vào LLODDy - óc c1 2E 9 ng ng nh rưy 24 Bảng 3.10: Bảng Use Case Tham gia Carm© - -. << + E+*kESeeeEeeeseeereeere 25

Bảng 3.11: Danh sách Actor Người chơi trong øame - - + +++s++ss>+ex++x 27 Bảng 3.12: Danh sách Use Case - - L2 2 12111211 11111111111 1 1 kg 28

Bang 3.13: Bảng Use Case Di chuyên -2- 2: ©52©5<SE2E£2EE£EEtzEEerxerxerrxrrkee 29 Bang 3.14: Bang Use Case Tan @8n2 -. o 6 Mmm 30

Bảng 3.15: Bảng Use Case Gây sát thương c1 net 32 Bảng 3.16: Bang Use Case mở màn hình dừng trò chơi 55+ s++<<s+s++x 34

Bảng 3.17: Bang Use Case Thoát øame - - - - 5c + + vs kirerirrrsrrrree 35

Bang 3.18: Bang Use Case Nhận sát thương cty 37

Bảng 3.19: Bảng Use Case ChẾT 2-5252 S1 SE 2E1EE12112717112117121111 2121 xe 39 Bang 3.20: Bang Use Case Hồi sinh dé tiếp tục tham gia -5- 41 Bang 3.21: Bang Use Case Hồi sinh dé quan Sat c cecceccsscsscsssesessesesessessseesesseaes 43

Trang 8

TÓM TẮT KHÓA LUẬN

Theo số liệu của một bài báo của VTV1, năm 2023 vừa qua doanh thu ngành

Game tại Việt Nam đã đạt được doanh thu 500 triệu USD và hiện tại đang là thị

trường đứng thứ 5 tại Đông Nam Á Tuy nhiên, hiện tại thống trị trong các phòng

net, điện thoại và máy tính của người chơi vẫn là các tựa game nước ngoài như

Liên Minh Huyền Thoại, Genshim Impact, do các tựa game của các studio Việt

Nam hiện tại vẫn chưa đủ sức cạnh tranh.

Nhằm tìm hiéu thêm về quá trình sản xuất trò chơi điện tử nói chung và cảithiện trình độ bản thân nói riêng, em quyết định theo đuổi dé tài này với mục tiêu

là ngghiên cứu cách thức và tạo ra một tựa game nhiều người chơi đơn giản Tuy

vướng bận nhiều khó khăn như việc làm đồ án chỉ với bản thân và vướng bận lịch

thực tập doanh nghiệp fulltime nhưng trò chơi hiện tại đã hoàn thành và chạy được trơn tru.

Tro chơi được xây dựng sử dụng engine Unity3D va 2 công nghệ đi kèm là

Unity Lobby Service và Netcode for Gameobjects Trò chơi chạy trực tiếp trên nềntảng Windows mà không cần cài đặt với hình thức server chạy trong mạng nội bộ,tuy nhiên người chơi vẫn có thé tìm được các server không cùng mạng do hệ thống

Unity Lobby Service sử dụng server riêng của nó.

!

https://vtv.vn/cong-nghe/thi-truong-game-viet-nam-so-huu-nhieu-tiem-nang-can-duoc-khai-pha-202403 12104519037.htm

Trang 9

Chương 1: Tổng quan về đề tài

1.1 Lý do chọn đề tài

Năm 2022 và 2023 được đánh giá là giai đoạn mà ngành game phát triển vượt bậc

nhất Theo số liệu từ NewzooŸ, cuối năm 2022, thế giới có gần 3,2 tỷ người chơi

game, tong doanh thu toàn ngành đạt tới con số lớn nhất từ trước tới nay là 182,9

tỷ USD Năm 2023, doanh thu ước tính sẽ chạm mốc mới là 187,7 tỷ USD Trong

đó, riêng game di động đã đóng góp hơn 92,6 tỷ USD.

Tuy thị trường game Việt Nam đang có các bước tiến rõ rệt, đại đa số các tựa game

phổ biến tại thị trường nước ta hiện nay là game nước ngoài, với các studio Việt

đang gặp rất nhiều khó khăn trong việc cạnh tranh với các studio triệu đô của các

cường quốc ngành giải trí như Mỹ và Trung Quốc, đặc biệt là trong khoản phát

triển các tựa game nhiều người chơi

Mục tiêu của khóa luận này là tìm hiểu cơ bản về phương pháp lập trình game

nhiều người chơi và lập trình một sản phẩm hoàn chỉnh nhằm trải nghiệm những

khó khăn và thách thức trong quá trình sản xuất trò chơi điện tử, cũng như cải thiện

và thách thức khả năng của chính bản thân em với tư cách là một game developer.

1.2 Đối tượng và phạm vi đề tài

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

Đề tài nhắm đến nghiên cứu cách thức lập trình, xây dựng một hệ thống frameworkgame nhiều người choi cơ bản cũng như tạo ra một prototype đơn giản nham trình

bày những gì đã nghiên cứu thành công.

1.2.2 Đối tượng của đề tài

Phương pháp và cách thức lập trình một tựa game nhiều người chơi

? https://newzoo.com/resources/blog/the-games-market-in-2022-the-year-in-numbers

Trang 10

1.2.3 Phạm vi đề tài

Phạm vi môi trường: Máy tính từ hệ điều hành Windows 10 trở lên

Phạm vi tính năng:

e Game chơi trong môi trường 3D, góc nhìn thứ 3.

e Người chơi chơi chung với nhau trong môi trường mạng nội bộ.

Trang 11

CHƯƠNG 2: TONG QUAN VE DE TÀI

2.1 So lược về cách hoạt động của Unity

Khóa luận sử dụng công nghệ Unity làm nền tảng nghiên cứư và ứng dụng , vốn là mộtgame engine đa nền tảng được phát triển bởi Unity Technologies và hiện tại đang là

một trong những game engine thông dụng nhất hiện nay, sử dụng rộng rãi trong khắp

các studio trên toản thê giới và cũng là engine của nhiêu tựa game thành công như

Hollow Knight, Genshin Impact, BattleBit,

Một tựa game truyền thống lập trình trong Unity sẽ bao gồm nhiều cHinh 3D riêng biệt

(Scene) nối chung lại với nhau thành một game hoàn chỉnh, trong các Scene này sẽ baogồm các vật thê (GameObject) có thể chứa hoặc không chứa các thành phần

(Component) khác nhau, chứa một hoặc nhiều script kế thừa từ lớp MonoBehaviour

Vòng đời của một lớp kế thừa MonoBehaviour đơn giản hóa lại là như sau:

Tên Function Điều kiện kích hoạt | Chức năng

AwakeQ Chạy một lần duy Khởi tạo các biến, hàm số trong

nhất khi Scene lần đầu | Component một cách riêng biệt

được nạp.

OnEnable() Chay mỗi lần Trong trường hợp Object được bật từ

GameObject được bat | trạng thái tắt

từ trạng thái tắt

StartQ Chạy một lần duy Nối ghép các component với nhau

nhất scene lần đầu sau khi đã khởi tạo

được nạp sau khi Awake chạy xong.

Update() Chạy một lần duy Kiểm tra và chạy các game logic

nhất mỗi khung hình | như di chuyển nhân vật, cập nhật

UI,

Trang 12

LateUpdateQ Chạy một lần duy Chạy các game logic yêu cầu biến,

nhất mỗi khung hình | hằng số và logic từ Update cũng nhưsau khi Update chạy chuẩn bị hằng số và logic cho lần

xong Update tiếp theo

OnApplicationQuit() | Chạy một lần duy Chuan bị logic dé thoát game

OnDisable() Chay mỗi lần Trong trường hợp Object được tắt từ

GameObject được tắt trạng thái bật

từ trạng thái bật.

OnDestroy() Chạy một lần duy Trong trường hợp GameObject bị

nhất khi GameObject | xóa (Viên đạn trúng đích, người chơi

bị xóa khỏi scene chét, )

hoặc scene bi Unload.

Bang 2.2: Vong đời của một lớp kế thừa MonoBehaviour

2.2 Sơ lược về cách hoạt động của Netcode for GameObjects

Netcode for GameObjects là một thư viện Networking cho Unity nhằm cho phép các

lập trình viên tạo ra một tựa game multiplayer dựa trên framework đã có sẵn của Unity.

Netcode for GameObject bao gồm các thành phan chính sau đây:

Tên Mở rộng Chức năng

NetworkObJect Mở rộng của Mở rộng một GameObJect thông

GameObJect thường cho phép tương tác với hệ thống

Netcode NetworkBehaviour | Mở rộng cua Mở rộng một MonoBehaviour với

MonoBehaviour nhiều khái niệm và function đề hỗ trợ

việc chạy trên network như quyền sở

Trang 13

hữu (Ownership), OnNetworkSpawn(),

OnNetworkDespawn()

Hệ thống RPC Mở rộng các Cho phép việc gọi hàm thông qua

(remote procedure | fuction thông network.

call) thường.

NetworkVariable Mở rộng của các Cho phép việc đồng bộ các biến thông

biến thông thường | qua network

NetworkManager Không có Cho phép người Host, Tạo hoặc Gia

nhập Server cũng như tùy biến server

đó, đồng thời đảm nhận trọng trách

đồng bộ các Scene và tạo các

NetworkObject dé GameLogic sử dụng

Bang 3.2: Các thành phân chính của Netcode for GameObjects

Qua trình hoạt động của một tựa game sử dụng Netcode là như sau:

e Đầu tiên, trò chơi sử dụng NetworkManager dé tao Client Host hoặc Server dé

những người choi khác kết nói

e_ Khi những người chơi khác kết nối, NetworkManager sẽ đồng bộ các

NetworkObJect và NetworkBehaviour trong Scene thông qua việc khởi tạo và

xóa đi các bản sao của chúng trên máy của người chơi, đồng thời đồng bộ các

biến NetworkVariable đã được định sẵn từ trước

e Trong quá trình chơi, các logic game được chọn sẽ được chạy và đồng bộ trên

máy của tất cả người chơi thông qua các NetworkVariable và hệ thống Rpc

2.3 Sơ lược về cách hoạt động của Unity Lobby

Dịch vụ Lobby cung cấp cách đề người chơi khám phá và kết nối với nhau nhằm thựchiện nhiều kịch bản chơi game nhiều người khác nhau:

e Duyệt danh sách các phiên trò chơi có sẵn và cho phép người choi chọn và tham

gia một phiên.

Trang 14

e Chia sẻ mã tham gia với bạn bè dé họ có thé kết nối trực tiếp vào phiên trò chơi

của bạn.

e Sử dụng Quick Join dé tìm bat kỳ trận đấu nào có sẵn và tham gia ngay

e_ Tạo một lobby riêng tư và gửi lời mời đến danh sách bạn bè trong trò choi của

bạn.

e©_ Tạo một lobby từ máy chủ trò chơi và sử dụng nó dé quản lý và giới hạn quyền

truy cập vào phiên máy chủ.

e_ Truy van các lobbies phù hợp với một tập hợp yêu cầu cụ thể (ví dụ: chế độ

chơi, loại bản đồ)

Lobby có thê tồn tại trong suốt thời gian của phiên trò chơi dé cung cấp cơ chế cho

người dùng tái tham gia một phiên trò chơi hiện có hoặc hỗ trợ việc di chuyên chủ nhà

sau khi bị ngắt kết nối không mong muốn

2.4 Thiết kế hệ thống

Trò chơi bao gồm 2 thành phan chính: phòng chơi va màn chơi

2.4.1 Phòng chơi (Lobby)

Đề đơn giản hóa quá trình tìm Server đề chơi và gia nhập màn chơi thì sản phẩm game

sử dụng một hệ thống lobby đơn giản Người chơi có thể tìm các Lobby đang mở thông

qua một Lobby Browser hoặc tự tạo một Lobby cho riêng mình Người chơi có thé tự

Lobby này bắt đầu Host server và các người chơi khác có thé gia nhập Server từ đây

Dữ liệu của một phòng chơi bao gồm:

e Id của phòng.

e Tên của phòng.

e Trạng thái của phòng.

e Địa chỉ IP cua Server.

e_ Chế độ chơi của Game

Dữ liệu của người chơi trong phòng chơi bao gồm:

Trang 15

e Id của người chơi.

e Tén người chơi.

e Trạng thái của người chơi.

Khi tạo một Lobby, người chơi sẽ tự động được đặt thành chủ Lobby Chủ Lobby có

quyên thay đổi thông tin Lobby như tên và tinh public, cũng như sẽ đảm nhận quá trình

Host Server Khi chu Lobby rời phòng thì vi tri này sẽ được nhường cho người chơi

khác Nếu Lobby không còn người chơi thì sẽ bị xóa

2.4.2 Màn chơi (Level)

Màn chơi sẽ được chạy trên cả máy chủ và máy tính của người chơi.

Trong đó:

e Màn chơi cua máy chu sé đảm nhiệm vi trí xử lý logic màn chơi cũng như quan

lý các vật thể, biến, hàm số liên quan, dé đảm bảo tính bảo mật cũng như tính

đồng nhất, do chỉ có duy nhất Server chạy các logic này

e Màn chơi trên máy người chơi sẽ đảm nhận trách nhiệm truyền tải, đồng bộ và

xử lý dữ liệu từ màn chơi của máy chủ gửi về

Duy chỉ có script điều khiển nhân vật không hoạt động theo logic này do van đề về độtrễ Input Trong trường hop này, script chạy trên máy của người choi sở hữu script sẽ

đảm nhiệm phần xử lý logic

e Khi chuyền sang màn hình màn chơi, màn choi sẽ dựa trên thông tin phòng dé

khởi tạo màn chơi như sau:

e Với mỗi người chơi trong phòng, tạo một NetworkObject dé lưu trữ và đại diện

cho người chơi đó trong màn chơi.

Sau đó, màn chơi sẽ dựa trên chế độ chơi đã chọn từ màn hình thông tin dé nap logic

màn choi và bắt đầu trò choi

Một màn chơi sẽ có ba trạng thái đơn giản:

Trang 16

e_ Chờ người chơi: Màn chơi sẽ chưa bắt đầu cho đến khi đủ số lượng người chơi

gia nhập Level Trong lúc đó thì người chơi có thể tùy ý duy chuyển xung quanh

khám phá man choi.

e Bắt đầu trò chơi: Màn chơi sẽ bắt đầu khi đủ số lượng người chơi gia nhập Tat

cả các người choi sẽ được đưa về một điểm xuất phát ngẫu nhiên và được cấp

cho một vũ khí và một số lượng mạng nhất định Nếu còn mạng thì khi chếtngười chơi sẽ được hồi sinh từ một điểm hồi sinh ngẫu nhiên Khi hết mạng thingười choi sẽ không thé hồi sinh được nữa

e Kết thúc trò chơi: Khi chỉ còn duy nhất một người chơi còn sống và còn mạng

thì trò chơi kết thúc và tuyên bố người chơi này thắng cuộc Sau một thời gianngắn thì trò chơi kết thúc, server sẽ tự hủy và mọi người chơi sẽ trở về màn hìnhchính ban đầu

2.5 Thiết kế của game và cách chơi

Hiện tại, trò chơi bao gồm ba chế độ chơi là Giải đó, Dau đơn và Sinh tồn Khi chủ

phòng chơi chọn một trong ba chế độ này, người đó cũng đồng chơi được quyền thay

đổi màn chơi theo ý họ muốn, miễn sao là màn chơi đó hỗ trợ chế độ chơi đã chọn

2.5.1 Các chế độ chơi giải đó

Là chế độ chơi chính của game, Giải dé là chế độ chơi dạng hợp sức (Co-op) mà trong

đó tất cả các người chơi phải hợp tác để cùng nhau đến được điểm cuối của màn chơi

Hiện tại, chế độ chơi giải đố chỉ có duy nhất một màn chơi và yêu cầu tối thiểu 2 người

dé bắt đầu

Trang 17

2.5.2 Chế độ chơi đấu đơn.

Dau don là một chế độ chơi theo dang đối choi (Players versus Players) Tat cả người

chơi khi gia nhập sẽ được cấp một vũ khí là gậy bóng chày cùng với mục tiêu là trở

thành người đầu tiên hạ gục được 5 đối thủ Khi bị hạ gục thì người chơi sẽ được hồi

sinh với không giới hạn số lần hồi sinh Trò chơi kết thúc khi có người chơi hoàn thànhmục tiêu Hiện tại, chế độ Dau đơn có 2 màn chơi va yêu cầu tối thiểu 2 người dé bat

dau

2.5.3 Chế độ chơi sinh tồn

Tương tự như Đấu Đơn, Sinh Tén là một chế độ chơi theo dạng đối chọi (Players

versus Players) và tất cả người chơi khi gia nhập sẽ được cấp một vũ khí là gậy bóng

chày Tuy nhiên, khác với Đấu Đơn, trong chế độ chơi Sinh Tồn mỗi người chơi sẽ chỉđược cấp 5 lần hồi sinh và nếu sử dụng hết số lần hồi sinh thì người chơi đó sẽ bị loại.Trò chơi kết thúc khi chỉ còn duy nhất một người chơi chưa bị loại và người này sẽ trở

thành kẻ thắng cuộc Hiện tại, chế độ Sinh Tôn có 2 màn chơi cùng sử dụng chung với

Dau Don và cũng yêu câu tôi thiêu 2 người đê bat đâu.

10

Trang 18

CHUONG 3: PHAN TÍCH THIẾT KE HE THONG

3.1 Use Case Diagram Người chơi.

7 : xiend :— Vào Lobby -~S%°*°°*.Í Tham gia Game

Hình 3.1 Sơ đô Use Case Actor Người chơi

3.1.2 Danh sách Actor

Tim kiễm thông tin

các Lohhy

STT Tên Actor Ý nghĩa

1 Người chơi Là người chơi trực tiệp đứng ra Host server cho

game hoặc tham gia các server đã có sẵn, chưa ở

trong màn chơi.

Bang 4.1: Danh sách Actor Người chơi.

11

Trang 19

3.1.3 Danh sách các Use Case

lobby hiện tại, nhường

quyền Host lại cho người

chơi khác hoặc xóa luôn Lobby.

và chạy server trên máy

mình đồng thời bắt đầu trò

chơi.

màn chơi hiện tại và trở về

màn hình chính, đồng thờichấm dứt server nếu là

Trang 20

7 Vào Lobby Tham gia Game Người chơi gia nhập một

Lobby trong danh sách các

Lobby tìm được.

8 Tham gia Game Thoát Game Nguoi choi gia nhập một

server từ Lobby đã gia

nhập.

Bảng 3.2: Danh sách Use Case người chơi.

3.1.4 Đặc tả các Use Case.

3.1.4.1 Use Case Tạo Lobby

Use Case: Tạo Lobby.

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

Mô tả ngắn gon:

¢ Tạo một Lobby dé những người choi khác có thé gia nhập

Điều kiện tiên quyết:

e©_ Người chơi đã bật trò chơi và có kết nối Internet

Sự kiện kích hoạt:

e Nút “Host Lobby” được bam

Điêu kiện thực hiện:

e Không có.

Luong sự kiện chính:

e©_ Người choi bấm vào nút “Host Lobby” tại màn hình chính

e Người chơi được chuyển đến màn hình Lobby hiện tại

e Kết thúc Use Case

Luong thay thé: Không có

Bảng 3.3: Bảng Use Case Tạo Lobby

13

Trang 21

Người chơi Hệ thông

Nút "Host Lobby”

duoc bam ¬

Có kết nỗi Internet

Hiễn thị lỗi không có kết nỗi

Yêu cau tao Lobby được gửi

Trang 22

3.1.4.2 Use Case Tùy chỉnh Lobby.

Use Case: Tùy chỉnh Lobby.

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

Mô tả ngắn gon:

e Tùy chỉnh thông tin Lobby hiện tai.

Điều kiện tiên quyết:

e©_ Người chơi đã bật trò chơi và có kết nối Internet

Sự kiện kích hoạt:

e Nút “Edit Lobby” được bam

Điêu kiện thực hiện:

e Người chơi là người đã tạo hoặc đang là Host của Lobby.

Luông sự kiện chính:

e©_ Người choi bam vào nút “Edit Lobby” tại màn hình thông tin Lobby

¢ Người chơi thực hiện các thay đổi mong muốn với Lobby

e Người choi bấm nút “Save”

e Kết thúc Use Case

Luong thay thé: Không có

Bang 3.4: Bang Use Case Tùy chỉnh Lobby.

15

Trang 23

hình sửa thẳng tin Lobby

qười chơi nhập thông

erver nhận được yêu cầu và

chỉnh sửa thông tin.

Hình 3.3: Sơ đồ Use Case Tùy Chỉnh Lobby

16

Trang 24

3.1.4.3 Use Case Thoát Lobby.

Use Case: Thoát Lobby.

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

Mô tả ngắn gon:

e Thoát khỏi Lobby hiện tại.

Điều kiện tiên quyết:

e©_ Người chơi đã bật trò chơi và có kết nối Internet

Sự kiện kích hoạt:

e Nút “Exit Lobby” được bam

Diéu kién thuc hién:

e Nguoi chơi dang ở trong một lobby.

Luông sự kiện chính:

e©_ Người choi bam vào nút “Exit Lobby” tại màn hình thông tin Lobby

e Nếu còn người chơi khác trong lobby và người chơi là Host thì sẽ tự

động nhường lại

e Kết thúc Use Case

Luông thay thé: Không có

Bang 3.5: Bang Use Case Thoát Lobby.

17

Trang 25

Người chơi Hệ thông

Server nhận được yêu cầu và

xóa người chơi khỏi Lobby.

trong

khác lài

Người chơi là Host

của Lohhy

on người chơi khac

Server chỉ định người chơi

Trang 26

3.1.4.4 Use Case Host Game.

Use Case: Host Game.

Tac nhan chinh: Nguoi choi.

M6 ta ngan gon:

¢ Người choi bắt đầu khởi tao và chạy server trên máy minh đồng thời

bắt đầu trò chơi

Điều kiện tiên quyết:

e Người chơi đã bật trò chơi và có kết nối Internet

Sự kiện kích hoạt:

e Nút “Host Game” được bam

Điêu kiện thực hiện:

e Người chơi là Host của một Lobby va đang ở trong lobby đó.

Luéng su kién chinh:

e Người choi bấm vào nút “Start Game” tại màn hình thông tin Lobby

e Người chơi sẽ được chuyển đến màn hình trò chơi

e Kết thúc Use Case

Luông thay thé: Không có

Bảng 3.6: Bảng Use Case Host Game.

19

Trang 27

Nút "Host Game” không hiễn

Những người chơi còn lại

được chuyén qua màn hình

Trang 28

3.1.4.5 Use Case Thoát Lobby

Use Case: Thoát Lobby.

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

Mô tả ngắn gon:

e Người chơi thoát ra khỏi Lobby hiện tại và trở về màn hình chính,

đồng thời cham dứt server nếu là Host

Điều kiện tiên quyết:

e Người chơi đã đang ở trong màn hình Lobby.

Sự kiện kích hoạt:

e Nút “Exit Lobby” được bam

Điêu kiện thực hiện:

e Không có.

Luéng su kién chinh:

e Người choi bấm vào nút "Exit Lobby”

e Người chơi sé được đưa về màn hình chính của Game Nếu người

chơi là Host của Lobby thì Server sẽ chuyên quyền Host cho một

người chơi khác Nếu không còn người chơi nào thì Lobby sẽ bị xóa

e Kết thúc Use Case

Luong thay thé: Không có

Bang 3.7: Bang Use Case Thoát Game

21

Trang 29

Người chơi

Nút "ExitLohhy”

được bam

Người chơi được đưa về

Yêu cầu được qửi tới Server

Server nhận được yêu cau và xủa người chơi khỏi Lobby cũng như Server Game hiện

tại.

Hình 3.6: Sơ đồ Use Case Thoát Game

22

Trang 30

3.1.4.6 Use Case Tìm kiếm thông tin Lobby.

Use Case: Tìm kiếm thông tin Lobby

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

Mô tả ngắn gon:

e Nguoi chơi tìm kiếm và nhận được một danh sách các Lobby

Điều kiện tiên quyết:

e©_ Người chơi đã bật trò chơi và có kết nối Internet

Sự kiện kích hoạt:

e Hoặc người chơi vừa được di chuyền tới màn hình chính

e Hoặc người choi bam nút "Refresh".

Điêu kiện thực hiện:

e Không có.

Luông sự kiện chính:

e Người choi vừa vào màn hình chính của tro choi.

e Danh sách các Lobby đang mở sẽ được tự động cập nhật trên man

hình.

e Kết thúc Use Case

Luong thay thé:

¢ Người choi bấm nút "Refresh"

e Danh sách các Lobby đang mở sẽ được tu động cap nhật trên man

hình.

e Kết thúc Use Case

Bảng 3.8: Bang Use Case Tìm kiếm thông tin Lobby

23

Ngày đăng: 06/12/2024, 15:20