ĐẠ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 ĐẠ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 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. Nguyễn Trịnh Đông — Chủ tịch. Nguyễn Tan Toàn — Thư ký.
Nguyễn Thị Thanh Trúc ~ Ủy viên. 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 MỤC LỤC TOM wyvà‹: 900950077. 2 Phát biểu đề tài. 2 Pham vi Ứng dụng. - + + TH HH TH HH HT ng ri 2 Đối tượng ứng dụng.
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. Giới thiệu khái quát.cc tt rớy 4 1. Game, Game Online và Board Game đang phát triên.
_ Sự tăng trưởng của ngành Game trong dai dich Covid 19. Khối lượng người choi Board Game khổng 16 và ngày một tăng. 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).
Unity Photon NetwOrK.---c-c+SeS+ttetererrkere 9 Chương 3. TRÒ CHOI BOARD GAME SIMULATOR. Giới thiệu tổng quát. Thiết kế kiến trúc.
_ Kiến trúc hệ thống 3. Mô tả các cơ chế. Thiết kế giao diện. Phan đăng nhập.
Màn hình chính. Tỉnh chỉnh Ñe€SOUTCG.- ---- 5-55 222S32 S222 EErr re51 Chuong 4. MOT SO KY THUAT SU DỤNG. Kỹ thuật sử dụng trong Unity3D, C#.
Script Define Symbol Setting.6 Json String Compress. Một số Plugin được sử dụng:. Kỹ thuật su dụng Framework Unity Photon Network. _ Photon Transform View Component.
TH HH HH HH HT HH HH kg, 63 4. Kỹ thuật sử dụng GameSparks (BaaS). Cài đặt GameSparks trong unity3ÌD. Các cai đặt GameSparks S€TVIC€.
Triển khai ứng dụng trên itCh.---2¿©22©5222x+2£xt2E+tzx+srxsrxrrxesree 71 Chương 5. | DUNG THU VÀ PHAN HÔI. Một số hình ảnh trải nghiệm của người dùng.------¿©z©cs+cs=sce- 73 5. Một số phản hôi tiêu biỀU.
So sánh với một số ứng dụng tương tự trên thị trường. Mức độ hoàn thiện.S+ SE HH tre79 6. HH HH ng 80 TÀI LIEU THAM KHẢO. -:- -StSSE2EEESEEEEEEEEEEEEEEEEESEEEEEEEEEEEESEEEkrkrkrrerkrrr 81 DANH MỤC HÌNH VẼ Hình 1.
Minh họa Board Game cổ điển [ I I].---- ¿+ 5s s+x+E+EeEx+EeEerxzxeEerezxez 4 Hình 1. Tổng doanh thu của ngành Game và sự tăng trưởng [ 14].3 Board game Ludo cô điển [15] .----¿--2¿- 5¿25++2++2£x+2zx+zx+erxezrxeszeee 6 Hình 2. Unity Engine hỗ trợ làm Game đa nền tảng [16] ,.cc-<csec++ 7 Hình 2. Unity Photon Network Asset Store Packages [19].
Entity — Component — System [23]. Kết nối Client — Server. Các thành phan chính của phần Editor.---¿--5¿ 2 5z2cxz2zxzs+szsz 13 Hình 3. Cơ chế Spawn Object ở EditOr.---2- 2222 s+SE+2E2EE+EEvEEeEEerrkerkerkerex 14 Hình 3.
Cơ chế tải Project trên EditOr. Cơ chế người chơi trong phòng.-- 22 2£ ©5£+2S22£+2EEtEE+eExezrxrrxeeree 16 Hình 3. Mô phỏng cơ chế hoạt động của Camera. Cơ chế xử lý Mouse InpUI.--- ¿- + 5s x+EE£EE+EE+EE+EEzErEerkerkerxerkrree 18 Hình 3.
Cơ chế kế thừa Object chung.---¿- ¿2+ ©5++2x+2£x+2x++zx+zrxezrxerresree 19 Hình 3. Sơ đồ Use-Case đăng nhập .-----¿- 2 ++E+2E£+EE+EE+EEtrEErrksrxrrrerex 19 Hình 3. Sơ đồ Use-Case màn hình chính .---- 2-22 x+x+zx++z+zzxerxezss 20 Hình 3. Sơ đồ Use-Case màn hình phòng chờ.
Biéu đồ Sequence đăng nhập. Biéu đồ Sequence đăng ký.-- ¿- ¿5c SEeEE2EE2EE2EEEEEeEEerkerkrrkrree 22 Hình 3. Biéu đồ Sequence quên mật khẩu .------¿- ¿+2 5++zx+2z+zs+zzs+ 23 Hình 3. Biéu đồ Sequence hiển thị danh sách Project.
Biéu đồ sequence tạo mới ProjeCt. Biéu đồ Sequence lưu PrOj€Cf.- ¿2-2 E+SE+EE2E++E£EEEerEerkerxerkrree 26 Hình 3. Biêu đồ Sequence tạo mới phòng chơi.:--2¿2©5¿25z2cx+>s+scsz 27 Hình 3. Biéu đồ Sequence gia nhập phòng chơi .--- 2-2 2s x+£x+zs+£sz +2 28 Hình 3.
Giao diện màn hình đăng nhập. Giao diện màn hình đăng ky. - -- 5 SĂ S22 2xx ssirrirrrerkrree 30 Hình 3. Giao diện màn hình yêu cầu mật khâu mới.
Màn hình chính .-- 6 6 + 1 3 23191931 91 01 vn ng ghng g g gưệp 31 Hình 3. Giao diện màn hình quản ly PrOJ€C(. Giao diện màn hình tạo mới PTOJ€CI .-- 255 55 3+ + ++ve+ssessees 33 Hình 3. Giao diện màn hình tạo phòng ChƠI.
Giao diện màn hình gia nhập phòng chơi. Giao diện màn hình thông tin tai khoản. Giao diện màn hình thay đôi mật khẩu. Giao diện màn hình cập nhật Display Name.
Giao diện chính của phần Editor.---- 2 5¿©¿+£+2x++zx+zzxzxssrxz 39 Hình 3. Giao diện bảng chỉnh sửa thông tin obJ€C(.- 255555 <++ss+ssss+ 43 Hình 3. Giao diện màn hình danh sách hình ảnh đăng tải. Giao diện màn hình đăng tải hình ảnh.
Giao diện màn hình phòng ChỜ. Giao diện của màn hình chơi Game. Doan mã xử dụng Raycast [2Š]. Mô phỏng cơ chế ánh xa ảnh con chuột của các người chơi.
Doan mã su dụng Raycast anh xạ ảnh con chuột. Doan mã tao Object Config bằng ScriptableObject. Doan mã su dung AssetDatabase Load Asset.--s-cs+e+sses 54 Hình 4. Cau hình của một Scriptable Object Config.------ ¿2s s+zxz>sz55 Hình 4.
Cài dat Script Define Symbol Setting trong Unity3D. Doan mã sử dung Script Define Symbol .---««++-««+++se++seexsssss 56 Hình 4. Doan mã sử dụng JsonUtility Parse chuỗi Json. Doan mã Convert từ Base64 sang Texture [30].
Doan mã Convert từ Texture sang Base64.- -- --cc-cscssssee 58 Hình 4. Doan mã nén chuỗi Ison. Doan mã giải nén chuỗi đã nén sang ISON. Đoạn mã sử dung DOTween làm Animafion.
Component WebGL Input trên Input Field UĨ. Doan mã hàm GetÏmage.-- -- + + + 13k ng trên 61 Hình 4. Photon View COImPORTTI.- 4 5 5E E11 931 119 1 1 nh ng ng tr 62 Hình 4. Photon Transform View compOTI€TI.
Doan mã gửi RPC qua tat cả Clientt.--- 2-2 2 2+se£xe£xe£xzzzrszxez 63 Hình 4. Doan mã nhận lệnh gọi R.- --- G25 E211 k**E* Vi skksrree 63 Hình 4. Cài đặt RPCs của Photon Unity NetWOrK.- ccs«cs«cssessssessee 64 Hình 4.-- - -- <1 3 12121191 9 1g ng ng 64 Hình 4. Setting GameSparks trong nity3ÌÏ.
Cau hình GameData trên GameSparks. Cau hình Event trên GameSparks. Doan mã CloudCode Save Project Model [39]. Doan mã gửi LogEventRequest Save Project Model từ Client.
Doan mã gửi AuthenticationRequest từ C]ienf. Doan mã gửi RegistrationRequest từ CÏient. Doan mã gửi ChangeUserDetailsRequest từ CÏient. Doan mã custom AuthenticationRequest ở BaaS.
Doan mã gọi Mailjet API Send Mail ở BaaS. Doan mã xử lý Reset Password ở BaaS. Doan mã gửi AuthenticationRequest với hành động resetPassword .io lưu trữ va phát hành trò chơi [4Š]. Giao diện trò chơi trên trang Web.- --c c ng ng 72 Hình 5.
Cờ Vua đã được tạo ra bởi Board Game SimulatOr. Cờ Tướng đã được tao ra bởi Board Game SimulafOr. Cờ Cá Ngựa đã được tạo ra bởi Board Game Simulator. Cờ Ty Phú đã được tạo ra bởi Board Game SimulatOr.
Chơi cờ Cá Ngựa trên Board Game Simulator. Ảnh chụp 4 người chơi cờ Ty Phú cùng một thời điểm. Tabletop Simulator trên Stream [46] DANH MỤC BANG Bang 5. Bảng ý kiến phản hồi đóng góp.
Bảng so sánh ứng dụng và TableTop Simulator 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. 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.
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ơi cá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ành trê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.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). 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.