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: Lập trình trò chơi mô phỏng thể loại game dạng bảng, mutiplayer

98 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 đề Lập trình trò chơi mô phỏng thể loại game dạng bảng, multiplayer
Tác giả Trần Xuân Bắc
Người hướng dẫn ThS. Đinh Nguyễn Anh Dũ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 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 98
Dung lượng 56,01 MB

Nội dung

So sánh với các trò chơi tương tự hiện nay trên thị trường, điểm yếu hay điểm nôi bật hơn của ứng dụng.. Trong khoảng 4 tháng làm việc, ứng dụng đã cơ bản hoàn thành va phát hành trên It

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HQC CONG NGHE THONG TIN

KHOA CONG NGHE PHAN MEM

TRAN XUAN BAC

KHOA LUAN TOT NGHIEP LAP TRINH TRO CHOI MO PHONG

THE LOAI GAME DANG BANG, MULTIPLAYER

Game programming to simulate board games, multiplayer

KY SU NGANH KY THUAT PHAN MEM

TP HO CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA CONG NGHE PHAN MEM

TRAN XUAN BÁC - 16520069

KHÓA LUẬN TÓT NGHIỆP

LAP TRÌNH TRÒ CHƠI MO PHONG

THẺ LOẠI GAME DẠNG BANG, MULTIPLAYER

Game programming to simulate board games, multiplayer

KY SU NGANH KY THUAT PHAN MEM

GIANG VIEN HUONG DAN

ThS ĐINH NGUYEN ANH DUNG

TP HO CHi MINH, 2021

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 453/QĐ-ĐHCNTT

ngày 19 tháng 07 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.

1 ThS Nguyễn Trịnh Đông — Chủ tịch.

2 Th§ Nguyễn Tan Toàn — Thư ký.

3 ThS Nguyễn Thị Thanh Trúc ~ Ủy viên.

Trang 4

LOI CAM ON

Em xin cảm ơn ThS Dinh Nguyễn Anh Dũng (giảng viên hướng dan) đã tận

tâm chỉ bảo, góp ý và định hướng phát triển cho ứng dụng Những lời khuyên của Thay đã giúp ứng dụng trở nên thực tế và dé dàng tiếp cận thị trường hon hon Em

rất biết ơn quá trình học các môn Game cùng với Thầy đã giúp em tích góp được rất

nhiều kiến thức và kinh nghiệm làm Game thực tiễn, những kiến thức vô cũng quý giá Em cảm on Thay.

Em xin cảm ơn ThS Trần Thị Hồng Yến (giảng viên phản biện) đã đưa ra nhiều

ý kiến đóng góp giúp em cải tiến ứng dụng cũng như hoàn thiện bản báo cáo khóa

luận.

Em xin cảm ơn nhà trường, các thầy cô, đặc biệt là các quý thầy cô khoa CNPM

đã tạo nền tang tư duy logic, tạo nền móng lập trình của em.

Em xin gửi lời cảm ơn đến quý thay cô, bạn bè và gia đình, trong quá trình xây

dựng đã dùng thứ ứng dụng và cho nhiều góp ý tích cực đề ứng dụng hoàn thiện hơn.

Trong quá trình thực hiện, em đã tham khảo và tìm kiếm tài liệu từ nhiều nguồn khác nhau, rất nhiều người đã trải qua van dé và dé lại những giải pháp, không thé kể

tên nhưng em xin cảm ơn sự đóng góp cộng đồng của mọi người.

Xin chân thành cảm ơn tắt cả.

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

Trần Xuân Bắc

Trang 5

MỤC LỤC

TOM wyvà‹: 900950077 1

0000007 2 Phát biểu đề tài cv He 2

I0 0 2

Pham vi Ứng dụng - + + TH HH TH HH HT ng ri 2

Đối tượng ứng dụng - 22 ©22+2++22EE+2+1222111222111122771112271112 271112 ce 2

Phương pháp thực hiỆn - - <5 1 E2 T219 111111 121110101001 ớy 3

Kết quả mong đợi.

Tinh khả thi của ứng dụng - -: 525222222 S*‡E‡tetextErrkekererrrrrrerrke 3

Nội dung của luận văn.

Chương 1 TONG QUAN oc the 4

1.1 Giới thiệu khái quát.

1.1.1 Board Game c.cc tt rớy 4

1.1.2 Mutilplayer Game.

1.2 Game, Game Online và Board Game đang phát triên - 5

1.2.1 _ Sự tăng trưởng của ngành Game trong dai dich Covid 19 5

1.2.2 Khối lượng người choi Board Game khổng 16 và ngày một tăng 6 1.2.3 Các vấn đề được giải quyết ccccccccscrrrrrrrrrrrrrrrrrrrrree 6

Chương 2 GIỚI THIỆU CÔNG NGHỆP 2 +¿222222+ttC2Evzrrerrveccee 7

P Ni) 7

2.2 WeDGL — 8

2.3 Unity Photon NetwOrK - - +: - St E22 E111 01212111110 9

Trang 6

2.4 GameSparks (BaaS: backend as a S€TVIC€) -c-c+SeS+ttetererrkere 9

Chương 3 TRÒ CHOI BOARD GAME SIMULATOR

3.1 Giới thiệu tổng quát 22¿5222++222E+++t222EEEEEEEEEEEEEEEErrrrrkrrrre 1 3.2 Thiết kế kiến trúc

Chuong 4 MOT SO KY THUAT SU DỤNG -ccccz22cccsse+ 52

4.1 Kỹ thuật sử dụng trong Unity3D, C# 5-55 ccscetsesrerereree 52

4.1.1 RayCaSK HH 52

4.1.2 ScriptableObject «Sen 53

4.1.3 Script Define Symbol Setting -. -5-5c5ccc+cccccccscee 56

41.4 JsonUtility cĂĂ 5 Ssieeeieieerree 56

4.1.5 Convert Base64 Ăn 57

4.1.6 Json String Compress 5c cty 58

4.1.7 Ki 59

4.1.8 Một số Plugin được sử dụng: - - -5c+c+c+cscerereeeree 60

4.2 Kỹ thuật su dụng Framework Unity Photon Network - 62

Trang 7

4.2.1 PhotonView COmpOTIIL - 6 5 + SH ri, 62 4.2.2 _ Photon Transform View Component scsccc«ccssessrs 62 4.2.3 PunRPC TH HH HH HH HT HH HH kg, 63 4.3 Kỹ thuật sử dụng GameSparks (BaaS) - - - net 64

4.3.1 Cài đặt GameSparks trong unity3ÌD -s-ccccssssseseeresrres 64

4.3.2 Các cai đặt GameSparks S€TVIC€ Ă SH ngư, 65

4.4 Triển khai ứng dụng trên itCh.iO -2¿©22©5222x+2£xt2E+tzx+srxsrxrrxesree 71Chương 5 | DUNG THU VÀ PHAN HÔI 2- 2 2 E+£E+zEzEzrxerxcrez 73

5.1 Một số hình ảnh trải nghiệm của người dùng -¿©z©cs+cs=sce- 735.2 Một số phản hôi tiêu biỀU ¿ 2¿25¿©22©5222E22£EEEESEE+2EEezEeerkesrxerrreeee 765.3 So sánh với một số ứng dụng tương tự trên thị trường - 77Chương 6 KET LUẬN -2 +-E+EECEEEEEEEEEEEEEErrkerkerkrres 79

6.1 Tổng kết đa ~«e- | ⁄ 79

6.1.1 Mức độ hoàn thiện - - 5S S.S+ SE HH tre 79

6.1.2 Ưuđiểm ccichrrriirrrrrirrrrrriirrrriirrrro 796.1.3 Khuyết điểm -5- St EkEEEEEEEE121 111111111 cxe 79ÂN.) 1018 .A.Ả Ô 79

Trang 8

DANH MỤC HÌNH VẼ

Hình 1.1 Minh họa Board Game cổ điển [ I I] ¿+ 5s s+x+E+EeEx+EeEerxzxeEerezxez 4Hình 1.2 Tổng doanh thu của ngành Game và sự tăng trưởng [ 14] - - 5Hình 1.3 Board game Ludo cô điển [15] -. ¿ 2¿- 5¿25++2++2£x+2zx+zx+erxezrxeszeee 6Hình 2.1 Unity Engine hỗ trợ làm Game đa nền tảng [16] , -~.cc-<csec++ 7

Hình 2.2 Unity Photon Network Asset Store Packages [19] -<+5 9

Hình 2.3 GameSparks Logo [21] 5< E211 1831118338 91 E911 11 11x vkrree 9

Hình 3.1 Entity — Component — System [23] - - 55555 + + +xsksseeesseeseeers 11

Hình 3.2 Kết nối Client — Server scsscssssssssssessssessssneesssneeessneeeesneeesnneeesnneeesaneses 12Hình 3.3 Các thành phan chính của phần Editor -¿ 5¿ 2 5z2cxz2zxzs+szsz 13

Hình 3.4 Cơ chế Spawn Object ở EditOr -2- 2222 s+SE+2E2EE+EEvEEeEEerrkerkerkerex 14

Hình 3.5 Cơ chế tải Project trên EditOr ¿5:52 ©++E22£E2EEtEEterxesrxerreeree 15Hình 3.6 Cơ chế người chơi trong phòng -. 22 2£ ©5£+2S22£+2EEtEE+eExezrxrrxeeree 16

Hình 3.7 Mô phỏng cơ chế hoạt động của Camera - 2 2 2+2 +x+£++z++£s2s+2 17

Hình 3.8 Cơ chế xử lý Mouse InpUI - ¿- + 5s x+EE£EE+EE+EE+EEzErEerkerkerxerkrree 18Hình 3.9 Cơ chế kế thừa Object chung -¿- ¿2+ ©5++2x+2£x+2x++zx+zrxezrxerresree 19Hình 3.10 Sơ đồ Use-Case đăng nhập -¿- 2 ++E+2E£+EE+EE+EEtrEErrksrxrrrerex 19

Hình 3.11 Sơ đồ Use-Case màn hình chính 2-22 x+x+zx++z+zzxerxezss 20

Hình 3.12 Sơ đồ Use-Case màn hình phòng chờ - 2-2 2 2 s2+x+z++zs+z+z +2 20Hình 3.13 Biéu đồ Sequence đăng nhập 2-2522 £+E£+E+E££EerEerxerxrrerree 21Hình 3.14 Biéu đồ Sequence đăng ký ¿- ¿5c SEeEE2EE2EE2EEEEEeEEerkerkrrkrree 22Hình 3.15 Biéu đồ Sequence quên mật khẩu -¿- ¿+2 5++zx+2z+zs+zzs+ 23Hình 3.16 Biéu đồ Sequence hiển thị danh sách Project . ¿-s¿+z=5+ 24Hình 3.17 Biéu đồ sequence tạo mới ProjeCt 2-5 s+52+££+E££kerkerxerxerssree 25Hình 3.18 Biéu đồ Sequence lưu PrOj€Cf - ¿2-2 E+SE+EE2E++E£EEEerEerkerxerkrree 26Hình 3.19 Biêu đồ Sequence tạo mới phòng chơi : 2¿2©5¿25z2cx+>s+scsz 27Hình 3.20 Biéu đồ Sequence gia nhập phòng chơi - 2-2 2s x+£x+zs+£sz +2 28

Hình 3.21 Giao diện màn hình đăng nhập - Ăn seeesersrrsersee 29 Hình 3.22 Giao diện màn hình đăng ky - 5 SĂ S22 2xx ssirrirrrerkrree 30

Trang 9

Hình 3.23 Giao diện màn hình yêu cầu mật khâu mới . -¿- ¿25+ 30

Hình 3.24 Màn hình chính 6 6 + 1 3 23191931 91 01 vn ng ghng g g gưệp 31 Hình 3.25 Giao diện màn hình quản ly PrOJ€C( - 5 <5 << «1s sksseeeseese 32 Hình 3.26 Giao diện màn hình tạo mới PTOJ€CI 255 55 3+ + ++ve+ssessees 33

Hình 3.27 Giao diện màn hình tạo phòng ChƠI 5 33c * + x++txseexeerseerees 34 Hình 3.28 Giao diện màn hình gia nhập phòng chơi 555555 <++s++sss+ 35 Hình 3.29 Giao diện màn hình thông tin tai khoản - 555 s<c+<<ssssses 36

Hình 3.30 Giao diện màn hình thay đôi mật khẩu - ¿2s s+zxzs+ 37

Hình 3.31 Giao diện màn hình cập nhật Display Name 55 55+ <5<<52 38

Hình 3.32 Giao diện chính của phần Editor 2 5¿©¿+£+2x++zx+zzxzxssrxz 39

Hình 3.33 Giao diện bảng chỉnh sửa thông tin obJ€C( - 255555 <++ss+ssss+ 43

Hình 3.34 Giao diện màn hình danh sách hình ảnh đăng tải - - 44 Hình 3.35 Giao diện màn hình đăng tải hình ảnh - 5 55 <5<<<+x+s+sx2 46 Hình 3.36 Giao diện màn hình phòng ChỜ 5 5< 25 3E + E++EEseeEeeessereeersee 48 Hình 3.37 Giao diện của màn hình chơi Game - - c2 2+ + s££++£++2<£££+zz 49 Hình 4.1 Doan mã xử dụng Raycast [2Š] - + Series 52

Hình 4.2 Mô phỏng cơ chế ánh xa ảnh con chuột của các người chơi 53

Hình 4.3 Doan mã su dụng Raycast anh xạ ảnh con chuột - ‹ -««s+ 53

Hình 4.4 Doan mã tao Object Config bằng ScriptableObject -¿ 54

Hình 4.5 Doan mã su dung AssetDatabase Load Asset - s-cs+e+sses 54

Hình 4.6 Cau hình của một Scriptable Object Config - ¿2s s+zxz>sz 55

Hình 4.7 Cài dat Script Define Symbol Setting trong Unity3D - 56 Hình 4.8 Doan mã sử dung Script Define Symbol -««++-««+++se++seexsssss 56

Hình 4.9 Doan mã sử dụng JsonUtility Parse chuỗi Json -. 5 5-552 57

Hình 4.10 Doan mã Convert từ Base64 sang Texture [30] -. ‹ -«<<<+ 57 Hình 4.11 Doan mã Convert từ Texture sang Base64 - cc-cscssssee 58

Hình 4.12 Doan mã nén chuỗi Ison . ¿222 2+ +E+E+E‡E+E+EEEEEEEEeEvErErErteErereree 58

Hình 4.13 Doan mã giải nén chuỗi đã nén sang ISON . - ¿2 2s 2+s5s 59

Hình 4.14 Material 3D 'TeX( cccecccccccsceccessssesseeeeeesseesseeeeeeeesseessseeeeees 60

Trang 10

Hình 4.15 Đoạn mã sử dung DOTween làm Animafion - - 5 «<< £+<x+xx 60

Hình 4.16 Component WebGL Input trên Input Field UĨ - 5 «<<<+ 61 Hình 4.17 Doan mã hàm GetÏmage -. + + + 13k ng trên 61 Hình 4.18 Photon View COImPORTTI - 4 5 5E E11 931 119 1 1 nh ng ng tr 62 Hình 4.19 Photon Transform View compOTI€TI 5 3S sseeeeeeereere 62

Hình 4.20 Doan mã gửi RPC qua tat cả Clientt - 2-2 2 2+se£xe£xe£xzzzrszxez 63

Hình 4.21 Doan mã nhận lệnh gọi R.PC - - G25 E211 k**E* Vi skksrree 63 Hình 4.22 Cài đặt RPCs của Photon Unity NetWOrK - ccs«cs«cssessssessee 64 Hình 4.23 GameSparks APÏ - <1 3 12121191 9 1g ng ng 64

Hình 4.24 Setting GameSparks trong nity3ÌÏ se, 65

Hình 4.25 Cau hình GameData trên GameSparks - 2 25c + s2£s+£szs+2 65

Hình 4.26 Cau hình Event trên GameSparks 2- 2-2 2 2+ +x£E+£x+zzrszsez 66

Hình 4.27 Doan mã CloudCode Save Project Model [39] -« -<«<+<<s>+ 66

Hình 4.28 Doan mã gửi LogEventRequest Save Project Model từ Client 67

Hình 4.29 Doan mã gửi AuthenticationRequest từ C]ienf «+ +-«+<<+ 68 Hình 4.30 Doan mã gửi RegistrationRequest từ CÏient - -«<<<<<<++<ss+ 68 Hình 4.31 Doan mã gửi ChangeUserDetailsRequest từ CÏient - 69

Hình 4.32 Doan mã custom AuthenticationRequest ở BaaS -«‹+- 69

Hình 4.33 Doan mã gọi Mailjet API Send Mail ở BaaS - << c+<<<<+2 70 Hình 4.34 Doan mã xử lý Reset Password ở BaaS - chư, 70 Hình 4.35 Doan mã gửi AuthenticationRequest với hành động resetPassword 7 Í Hình 4.36 Itch.io lưu trữ va phát hành trò chơi [4Š] s5 55+ ++<++s+sexsxs 71 Hình 4.37 Giao diện trò chơi trên trang Web - c c ng ng 72 Hình 5.1 Cờ Vua đã được tạo ra bởi Board Game SimulatOr - - 73

Hình 5.2 Cờ Tướng đã được tao ra bởi Board Game SimulafOr 73

Hình 5.3 Cờ Cá Ngựa đã được tạo ra bởi Board Game Simulator 74

Hình 5.4 Cờ Ty Phú đã được tạo ra bởi Board Game SimulatOr - ‹ 74

Hình 5.5 Chơi cờ Cá Ngựa trên Board Game Simulator 5s s55 +++s+ 75 Hình 5.6 Ảnh chụp 4 người chơi cờ Ty Phú cùng một thời điểm - 75

Trang 11

Hình 5.7 Tabletop Simulator trên Stream [46]

Trang 12

DANH MỤC BANG

Bang 5.1 Bảng ý kiến phản hồi đóng góp

Bang 5.2 Bảng so sánh ứng dụng và TableTop Simulator

Trang 13

DANH MỤC TỪ VIET TAT

STT Từ viết tắt Ý nghĩa

1 Client - Phần chung được hiểu là ứng dụng (giữ ứng

dụng với BaaS).

- Trong game: người chơi khách (giữ người chơi

client với người chơi host).

2 Host Người chơi máy chủ (người chơi tạo server,

cũng chính là chủ phòng).

3 BaaS Backend as a service (cũng được hiểu là

server, cũng chính là GameSparks).

4 PUN Photon Unity Netwoking (xử lý multiplayer).

4 Multiplayer Nhiêu người chơi.

5 Board game Các trò chơi dạng bảng nói chung.

6 Object Cac déi tuong trong game

7 Input Cac component nhập thông tin từ ban phim,

chuột.

8 Button Button nhận hành động click chuột.

9 Display Thông tin hiện thị trên UI: image, text,

10 Model Cac object 3D phục vụ việc đồ họa 3D

Trang 14

TÓM TAT KHÓA LUẬN

Tổng quan, giới thiệu về xu hướng chơi game trong tương lai, cách thức chơicác trò chơi dang bảng đang thay đồi

Giới thiệu về trò chơi và đánh giá mức độ khả thi của trò chơi

So sánh với các trò chơi tương tự hiện nay trên thị trường, điểm yếu hay điểm

nôi bật hơn của ứng dụng

Công nghệ nao có tính tương thích cao, không kén thiết bị, thực sự vận hànhtrên trình duyệt của thiết bị mà không cần cài đặt thêm phần mềm thứ ba

Lua chọn công nghệ tối ưu, có sự quan tâm nhiều và đảm bảo hiệu năng

Trong khoảng 4 tháng làm việc, ứng dụng đã cơ bản hoàn thành va phát hành

trên Itch.io với đường dẫn: https://banogames.itch.io/board-game-simulator

Quá trình xây dựng ứng dụng đồng thời dùng thử trên một tập người dùng đãnhận được nhiều ý kiến đóng góp và cập nhật

Hiện tại ứng dụng dang được cải tiến, tối ưu và quảng bá cộng đồng (trên các

mạng xã hội).

Trang 15

MỞ DAU

Phát biểu đề tài

- _ Trong quá trình chon đề tài, sau khi nghiên cứu về xu hướng của ngành game

và cũng như tập người chơi của các dạng game Dong thời với sự cỗ van của

giảng viên phụ trách cũng như khía cạnh chủ quan cũng là sở thích chơi game

cá nhân, em đã quyết định lựa chọn làm thể loại Board game và chơi

Mutilplayer.

- _ Mức độ cạnh tranh thấp, nếu trò choi dang Board game Mutilplayer đang có

rất nhiều trên thị trường, nhưng nếu nói về ứng dụng hỗ trợ tạo Board game

thì rat ít Xét về mức độ thì những các ứng dụng hỗ trợ tạo board game nỗi trội

hiện tại có quy mô lớn hơn, nhưng về mức độ thân thiện với người dùng Boardgame simulator dễ tiếp cận hơn

- Tan dụng cơ hội, bắt kịp xu hướng của thị trường game, em đã bắt đầu nghiên

cứu va phát triên trò choi Board game simulator sớm nhat có thê.

Mục tiêu

- Tim hiểu về xu hướng chơi game trên thé giới

- _ Xây dựng và hoàn thiện trò choi Board game simulator.

- Dua vào thực tiễn và thu thập được một lượng người dùng thân thiết

Phạm vỉ ứng dụng

- Khong có phạm vi về địa lý, chính trị hay tôn giáo,

Đối tượng ứng dụng

- _ Những người chơi game trên PC hoặc sẵn sang trải nghiệm trò chơi trên PC.

- _ Những người choi board game truyền thống và muốn sáng tạo game mới hay

thay đôi cách choi game cô điền

- _ Cộng đồng những người chơi yêu thích board game

Trang 16

Phương pháp thực hiện

- Trai nghiệm các ứng dụng tương tự, xem đánh giá cộng đồng, ghi chú những

điểm đáng quan tâm

- _ Thiết kế cau trúc cơ bản của ứng dụng

- _ Nghiên cứu và tìm nhiễu những công nghệ hỗ trợ

- Bat đầu xây dựng ứng dụng

- Dua ứng dụng ra thị trường va theo dõi đánh giá của người choi.

Kết quả mong đợi

- _ Hiện tại ứng dụng đã được xuất bản trên Itch.io và bắt đầu nhận được những

phản hồi từ những người chơi thử nghiệm

- Ung dụng chạy trên nên tang web và tương thích với hầu hết các browser hiện

hành, cũng như hoạt động tốt trên ba hệ điều hành: Window, Mac và Linux

Tính khả thi của ứng dụng

- _ Mức độ tương thích các hệ điều hành, trình duyệt cao mức độ cũng như phan

hồi tích cực từ những người chơi thử nghiệm cho thấy mức độ khả thi của ứngdụng đang rất tốt

Nội dung của luận văn

Nội dung luận văn được chia thành 5 chương chính:

- Tổng quan

- Giới thiệu công nghệ.

- Tro chơi Board game simulator.

- Một số kỹ thuật được sử dụng

- Dùng thử va phản hồi

- Tong kết và hướng phát triển

Trang 17

Chương 1 TONG QUAN

1.1 Giới thiệu khái quát

1.1.1 Board Game

- Board Game là thé loại trò choi cờ bàn, bao gồm 2 hay nhiều người tương tac

trực tiếp với nhau thông qua một bàn cờ Board Game thường được sử dụng

dé chơi là các vật dụng như: các lá bài, các quân cờ, bàn cờ, xí ngau, thẻ card,

xúc xắc Đề hỗ trợ cho từng cuộc chơi

- Hiện nay, Board Game được sản xuất và lưu hành rất nhiều nơi trên thế giới

Những trò cho Board Game chủ yếu phô biến ở Châu Âu Tại Việt Nam tuy

chưa phô cập rộng rãi nhưng Board Game cũng đã dan phổ biến Một số BoardGame nổi lên như một trào lưu trong giới trẻ Việt như: Uno, Ma sói, Mèo nô,

cờ tướng, Cờ cá ngựa, cờ ty phú [12]

1.1.2 Mutilplayer Game

- Multiplayer là thé loại Game có nhiều người chơi cùng hợp tác hoặc chống lại

nhau, đòi hỏi phải có kết nối mạng Lan hoặc kết nối Internet trên cùng một

máy chủ [13]

- Multiplayer là cái tên báo quát cho các thé loại Game như:

o MoBa (trò chơi trực tuyến mô phỏng các trận chiến)

Trang 18

o MMORPG (Game nhập vai trực tuyến nhiều người chơi).

o MMOFPS (Game bắn súng trực tuyến).

o Và, nhiều thể loại Game Online khác

1.2 Game, Game Online và Board Game dang phát triển

1.2.1 Sự tăng trưởng của ngành Game trong đại dịch Covid 19

2020 Global Games Market

Per Device & Segment With Year-on-Year Growth Rates

Hình 1.2 Tổng doanh thu của ngành Game và sự tăng trưởng [14]

- _ Khi mà đại dịch vẫn chưa có dấu hiệu được kiểm soát thì thị trường game thế

giới vẫn tiếp tục tăng trưởng mạnh mẽ trong năm 2020

- _ Những thông tin này được hé 16 bởi công ty phân tích thị trường Newzoo,

những dữ liệu này bao gồm nguồn thu từ quảng cáo trong trò chơi (tăng trưởnghơn 59% trong suốt thời gian dịch bệnh bùng phát) và các giao dịch từ những

trò chơi Console của người dùng Ngoài ra thì những quảng cáo trong game

đã bất ngờ thu về một nguồn thu đáng kể, đạt doanh thu hơn 3 tỷ USD tại thị

trường Mỹ trong năm 2019.

- Dan số thé giới hiện đang có 7,8 tỷ người và có đến 4,2 tỷ (53,6%) người hiện

đang có thê tiếp cận được với kết nối Internet và trong năm 2020 này đang có

2,96 tỷ người đang chơi những trò chơi điện tử Theo như Newzoo dự đoán

thì trong năm 2023 thì con số này sẽ tăng lên 3 tỷ người Đây cũng là lý dokhiến cho những chỉ số của thị trường game toàn cầu luôn có dấu hiệu tăng dù

bị chi phối bởi nhiều yếu tố khác nhau

5

Trang 19

1.2.2 Khối lượng người choi Board Game không lồ và ngày một tăng

- Theo báo cáo của ResearchAndMarkets.com, thị trường Board game toàn cầu

được dự báo sẽ đạt trị giá 12 tỷ USD trong năm 2023.

Với tình hình của đại dịch ảnh hưởng lớn tới tư duy chơi Game các dòng Game

cổ điển của người chơi đang có hướng chuyên biến, cách thức chơi Game

truyền thống đang dan thay đôi sang choi Game Online trên các thiết bi và tốc

độ chuyền đôi được đầy nhanh hơn

1.2.3 Cac vấn đề được giải quyết

Câu hỏi đặt ra khi một người chơi có ý tưởng về Board game của mình, làm

sao đề hiện thực nó?

o Cần đầu tư cho những đồ vật cần thiết? (các loại xúc xắc, bài, đồ vật

với các hình thu, các hình vẽ, ).

o Làm sao có thé cùng nhau xây dựng khi mỗi người ở một quốc gia?

Board Game Simulator sẽ giải quyết 2 vấn đề quan trọng:

o Hỗ trợ khối lượng Object, Model day đủ cho việc sáng tạo Board Game

o_ Giải quyết vấn đề địa lý

Board Game Simulator không phải là một trò chơi chơi các Board Game, nó

là công cụ để sáng tạo một Board Game hoàn chỉnh, và hỗ trợ chơi Board

Game đó.

Trang 20

Chương 2 GIỚI THIỆU CÔNG NGHỆ

2.1 Unity3D Engine

< unity

Hinh 2.1 Unity Engine hé tro lam Game da nén tang [16]

- Unity li mộtGame Engineda nền tangduoc phát triển bởi Unity

Technologies, ma chủ yếu đề phát trién video game cho máy tinh, consoles vàđiện thoại Lần dau tiên nó được công bố chạy trên hệ điều hành OS X, tai

Apples Worldwide Developers Conference vào năm 2005, đến nay đã mở

rộng 27 nên tảng

- Unity nỗi bật với khả năng xây dựng trò chơi chạy trên nhiều nền tảng Các

nên tảng được hỗ trợ hiện nay là Android, Android TV, Facebook, Unitytrước đây cũng đã hỗ trợ 7 nền tảng khác chạy trên Unity Web Player Unity

Web Player là một plugin của trình duyệt chạy trên Windows và OS X, đã bị

gỡ bỏ vì lợi ích của WebGL.

- Unity, nói một cách đơn giản, là công cụ trò chơi phố biến nhất thé giới Nó

gói rất nhiều tính năng lại với nhau và đủ linh hoạt dé tạo ra hầu hết mọi trò

chơi.

- _ Với các tính năng đa nền tảng vô song, Unity phổ biến với cả các nhà phát

triển sở thích và các studio AAA Nó được sử dụng dé tạo ra các trò chơi như

Pokemon Go, Heathstone, Rimworld, Cuphead và nhiều trò chơi khác

- API tập lệnh C # và tích hợp Visual Studio có sẵn Unity cũng cung cấp

JavaScript như một ngôn ngữ kịch bản và MonoDevelop như một IDE cho

những người muốn một sự thay thế cho Visual Studio

Trang 21

- Unity ra đời từ năm 2005, nó đã phát triển một lượng lớn người dùng va một

thư viện tài nguyên tuyệt vời Unity không chỉ có tài liệu tuyệt vời, mà vô sốvideo và hướng dẫn trực tuyến vô cùng lớn [17]

2.2 WebGL

- WebGL là một DOM API (Document Object Model), nó có thé dung 6 moi

ngôn ngữ tương thích với DOM như: Javascript, Java Da số các nhà phát triển

trình duyệt như Google (Chrome), Opera (Opera), Mozilla (Firefox), Apple

(Safari), cũng như nhiều nhà phát triển đồ họa 3D khác đều là thành viên của

WebGL Working Group thuộc hiệp hội Khronos [18]

- WebGL cho phép máy tính thao tác với phần cứng đồ hoa cụ thé thông qua

Javascript, và từ đó vẽ được mô hình lên trang web Trước khi có WebGL,

thao tác với phần cứng chỉ thực hiện được thông qua phần mềm Trình duyệt

vì vậy nên mắc kẹt với môi trường 2D (trừ những plugins do bên thứ ba như

Adobe Flash).

- WebGL xuất hiện trong vô số các framework phổ biến liên quan tới đồ hoa

hiện tại như: A-Frame, Three.js, Babylon.Js, SketchFab, Unity,

- Ưu điểm của WebGL:

o_ Hỗ trợ tốt trên Unity3D Engine

o_ Một API dựa trên chuẩn đồ họa 3D pho bién va duoc chap nhan rong

rai.

o Tuong thich da trinh duyét, da nén tang

o Tích hợp chặt chẽ với HTML, tương tác được với các phan tử HTML

khác và sử dụng các cơ chế xử lý event chuẩn của HTML

o_ Có tính năng đồ họa Hardware-accelerated 3D, đảm nhận trách nhiệm

tận dụng card đồ họa vào việc xử ly hình ảnh và nội dung của website.o_ Môi trường script giúp dựng các mô hình 3D dễ dàng, không cần phải

biên dịch và liên kết dé thay được sản phẩm

Trang 22

2.3 Unity Photon Network

Hinh 2.2 Unity Photon Network Asset Store Packages [19]

- Photon Unity Networking (PUN) là framework Unity dành cho các trò choi

mutilplayer Tính năng mai mối linh hoạt đưa người chơi của bạn vào cácphòng nơi các đối tượng có thể được đồng bộ hóa qua mạng RPC, Thuộc tínhtùy chỉnh hoặc sự kiện Photon "mức thấp" chỉ là một số tính năng Giao tiếp

nhanh chóng và đáng tin cậy (tùy chọn) được thực hiện thông qua (các) máy

chủ Photon chuyên dụng, các máy khách không cần kết nối one to one

- Photon Unity Networking sẽ hỗ trợ thiết bị của người chơi sẽ hoạt động như

một server, các người chơi khác có thể kết nối vào server của người chơi đã

tạo [20]

- _ Ưu điểm của Unity Photon Network

o Thư viện tích hợp của Unity3D engine.

Trang 23

GameSparks là một trong số các nhà cung cấp Trò chơi BaaS (backend as a

service) tốt nhất Nó có thể cung cấp nhiều hơn là chỉ cung cấp tính năng phụ

trợ săn sàng sử dụng cho các ứng dụng chơi game.

Đây là một nền tảng phía máy chủ có thé giúp bạn quản lý cơ sở hạ tang ứngdụng và tích hợp các tính năng cần thiết có thể làm cho ứng dụng trò chơi hoạtđộng tốt hơn theo cách tốt nhất có thê

GameSparks cho phép quản lý các ứng dụng ngay cả sau khi chúng ra mắt vàcung cấp các dịch vụ linh hoạt và có khả năng mở rộng cao, giúp việc thay đổi

cập nhật dễ dàng [22]

Tại sao chọn game sparks làm BaaS cho game:

©

le)

Gói Developer GameSparks được sử dụng miễn phí.

GameSparks cho phép các nhà phát triển quản lý nền kinh tế của họ baogồm giao dịch, hàng hóa ảo, tiền tệ và hệ thống thành tích Nó cũng

cung cấp các giải pháp phát hiện gian lận, IAP và quản lý danh mục

hiệu quả.

GameSparks cung cấp một giải pháp tuyệt vời cho trò chuyện, bảng xếphạng, bạn bè và nhiều tùy chọn nhiều người chơi đầy đủ khác Toàn bộcác tính năng cần thiết khác như giải đấu, đội, hành lang và mai mối,

v.v cũng được bao gồm

Hiệu suất cao, tốc độ xử lý nhanh

Tất cả các tính năng của GameSparks đều có tính tùy chỉnh cao Nócũng có thể cho phép truy cập lớp PaaS đầy đủ tính năng có thể cho

phép tạo API tùy chỉnh với Cơ sở dữ liệu như một giải pháp Dịch vụ,

logic máy chủ và hơn thế nữa

Giải pháp quản lý người chơi hiệu quả của GameSparks có thể cung

cấp quyên truy cập dé dàng hơn và tùy chỉnh vào tóm tắt và lịch sử của

người chơi Thậm chí, nó còn cung cấp các giải pháp giao tiếp linh hoạt

cho người chơi thông qua nhiều kênh

10

Trang 24

Chương 3 TRÒ CHƠI BOARD GAME SIMULATOR

3.1 Giới thiệu tổng quát

- Tro chơi gồm 3 phan:

o Phần Editor (phần chính):

"Hỗ trợ người chơi tạo ra Project (Board game).

= Hỗ trợ người chơi quản lý các Project đã tao.

= Phần Editor được xử lý với backend service GameSparks

= Quản lý tài khoản người choi.

= Di liệu các Project tạo ra sẽ được lưu theo tai khoản của người

Trang 25

- _ Kiến trúc ứng dụng được chia thành 3 phần:

o_ Phần quản lý tài khoản

o_ Phần Editor (phần chính)

" Cơ chế quản ly Object

" Cơ chế lưu, tải Project

o Phan Game

* Cơ chế quan lý người choi

" Cơ chế tai và khởi tạo Game từ Project

“_ Cơ chế quản ly Object

- Một số cơ chế chung (phan Editor và phan Game):

o_ Cơ chế xử lý Camera

o Cơ chế xử lý Mouse Input

o_ Cơ chế quản lý Object, Model

3.2.2 Mô tả các cơ chế

3.2.2.1 Phan quan lý tài khoản

Application BaaS

Hình 3.2 Kết nối Client — Server

- Phần quản lý tài khoản được thiết kế với kiến trúc Client — Server

- Cac hành động đăng nhập, đăng ký được gửi Request lên BaaS va nhận

Response hiển thị ở Application

3.2.2.2 Phần Editor

- Phần Editor sẽ gồm ba thành phan chính:

Controller, UI, Resource Config.

12

Trang 26

Hình 3.3 Các thành phan chính của phan Editor

o Phan Controller:

= Object Manager: Quan ly Object trên bàn, quan lý việc tao hay

x6a Object khoi Project.

= Camera Manager: Quản lý góc nhìn người choi, thu phóng, di

chuyền, xoay Camera

= Input Manager: Quản lý, xác định Input từ bàn phím, con chuột.

o Phan UI:

" Game Scene: Hién thị toàn bộ Object, cac đối tượng được cài

đặt ở Project Các đối tượng được hiển thị bằng Camera dưới

góc nhìn 3D.

=" Canvas Manager: Quản ly Canvas, các đối tượng hiển thị trên

Canvas dưới góc nhìn 2D Canvas bao gồm các Popup, Button,

Text, Input field,

o Phan Resource:

13

Trang 27

= Game Object Config: Liên kết với tất cả Model, quản lý Model

và tạo Config thủ công Các Model sẽ được truy cập theo Loại,

Kiểu, Mã định danh

" Cơ chế quản ly Object:

© Các Object được quan lý theo 3 tang truy xuất theo cấp

độ:

Loại (Type) — Kiểu (Kind) — Mã định danh (ID)

“_ Cơ chế Spawn Object:

Hình 3.4 Co chế Spawn Object ở Editor

e Mỗi loại Object sẽ có một Spawner riêng.

e Mỗi Spawner có chức năng tao Object theo từng loại và

quản lý ObJect theo từng loại.

14

Trang 28

e Tất cả Object, Spawner sẽ được quản lý bởi Game Object

Manager.

- _ Thiết kế cơ chế lưu, tai Project Model:

o_ Các Project Model được lưu dưới dạng chuỗi Json và được gửi lên và

load với BaaS.

o Khi tải Project, chuỗi Json sẽ được tải về và Parse ra thành Project

Model, từ đó bắt đầu truy vẫn các đối tượng trong Project Model vàkhởi tạo lên màn hình hiển thị

Objects manager |——»| Object spawner

Hinh 3.5 Co ché tai Project trén Editor

3.2.2.3 Phần Game

- Co chế quản lý người choi:

o Người chơi tạo phòng sẽ khởi tạo phòng, trở thành người chơi chủ (Host

Player).

o Các người choi khách tham gia vào phòng sẽ trở thành người chơi

khách (Client Player).

15

Trang 29

Hình 3.6 Cơ chế người chơi trong phòng

o Người choi Client với Host theo kiến trúc Client — Servero_ Tất cả các người chơi trong phòng sẽ cùng kết nối với người chơi chủ

phòng.

o Cơ chế khởi tạo Game từ Project:

o Ứng dụng sẽ truy xuất dữ liệu với BaaS theo Project ID, lay được chuỗi

Json và từ chuỗi Json parse thành Project Model.

o_ Từ Project Model, phan Game sẽ truy xuất các đối tượng trong Project

Model và khởi tạo các Object Mutilplayer (các Object Photon Room).

3.2.2.4 Cac cơ chế chung

- Cơ chế xử lý Camera:

o Camera được xử lý tương tác với Input từ chuột và bàn phím:

“ Cơ chế xử lý Camera với con chuột:

e Chuột giữa: Nhấn giữ kéo chuột thay đổi vị trí Camera

trên thé giới (song song với mặt phang thế giới)

e Chuột phải: Thay đổi gốc quay Camera theo gốc nhìn thứ

nhất

e Lăn chuột giữa: Thay đôi độ cao Camera (theo trục Y —

vuông góc với mặt phăng thế giới)

16

Trang 30

“_ Cơ chế xử lý Camera với bàn phim:

e Các phim Horizontal (A, D, <, >): Quay Camera xung

quanh tâm điểm của mặt phang thé giới [24]

Hình 3.7 Mô phỏng cơ chế hoạt động của Camera

e Các phim Vertical (W, S, ^, v): Thay đổi độ cao Camera

(theo trục Y — vuông góc với mặt phẳng thé giới)

- _ Cơ chế xử lý Mouse Input:

© Cơ chế xử lý Mouse Input sử dụng Rayscast (bắn một tia lấy các object

cắt qua) [25]

Các ObJect được lây sau khi bắn sẽ được xử lý theo thứ tự gần nhất so

với Camera.

Từ danh sách các Object được bắn trúng sẽ chuyên đến các xử lý riêng

cho từng Object khi được chon.

17

Trang 31

Màn hình

Object 1

Hinh 3.8 Co ché xtr ly Mouse Input

- Co chế object chung:

o_ Mỗi Object sẽ có 3 loại Prefab:

Base Prefab, Editor Prefab và Game Prefab

(Edior Prefab và Game Prefab được kế thừa từ Base Prefab)

o Các Prefab kế thừa được thừa hưởng các Component chung từ Base

như: Mesh Render, Collider, Skin, Behavior, Animation,

18

Trang 32

Editor object

Mesh Collider

Trang 34

3.2.3.2 Biểu đồ Sequence chính

Bas5 (Backend

Service)

Nhắp username, passwork

'Gửi thẳng tinusemam, password

Kiểm tra user name, passwork

Kit qua đăng nhap

Kiểm tra ket quả

Hình 3.13 Biéu đồ Sequence đăng nhập

21

Trang 35

- Sequence đăng ký:

service)

Yêu cầu dang ky

Yêu cầu nhập thông tin dang ky

username, password, email, name

Nhập thông tin dang ký

Kiễm tra input

Gửi thông tin dang ký

Kiém tra thông tin đăng ký

[Không hợp lê gìn đăng ký

Trả về thông báo

5e

Hình 3.14 Biêu đồ Sequence đăng ký

22

Trang 36

- Sequence quên mật khâu:

Yéu cau quên mat khẩu

: Trả vd thẳng bán

mm —.s gáo

Hình 3.15 Biéu đồ Sequence quên mật khẩu

23

Trang 37

- Sequence hiền thị danh sách Project:

¬ BasS (Backend

'Yêu cau danh sach project

Load danh sách project

Kiém tra danh sách project

: < Hién thi danh sách

Lưu danh sách project

Hình 3.16 Biéu đồ Sequence hiển thị danh sách Project

24

Trang 38

Xác nhận tao praject

Trả về kết quả -k~~~

Câu nhật danh sách peaject

Hiển thị danh sách project

_ sen h

Hình 3.17 Biểu đồ sequence tạo mới Project

25

Trang 39

- Sequence lưu Project:

Load toản bộ model

Format data sang json

Gửi project data

Tra vé két qua '

Hình 3.18 Biéu đồ Sequence lưu Project

Lay project data tồn tại

Cap nhap project data

26

Trang 40

- Sequence tao mới phòng chơi:

Hình 3.19 Biéu đồ Sequence tạo mới phòng chơi

27

Ngày đăng: 03/11/2024, 19:16

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

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

TÀI LIỆU LIÊN QUAN