Tải bản đầy đủ (.pdf) (79 trang)

LẬP TRÌNH TRÒ CHƠI mô PHỎNG THỂ LOẠI GAME DẠNG BẢNG, MULTIPLAYER

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.04 MB, 79 trang )

ĐẠ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Ệ PHẦN MỀM

TRẦN XN BẮC

KHĨA LUẬN TỐT NGHIỆP
LẬP TRÌNH TRÒ CHƠI MÔ PHỎNG
THỂ LOẠI GAME DẠNG BẢNG, MULTIPLAYER
Game programming to simulate board games, multiplayer.

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP. HỒ CHÍ MINH, 2021


ĐẠ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Ệ PHẦN MỀM

TRẦN XUÂN BẮC – 16520069

KHĨA LUẬN TỐT NGHIỆP
LẬP TRÌNH TRÒ CHƠI MƠ PHỎNG
THỂ LOẠI GAME DẠNG BẢNG, MULTIPLAYER
Game programming to simulate board games, multiplayer.

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM


GIẢNG VIÊN HƯỚNG DẪN
ThS. ĐINH NGUYỄN ANH DŨNG

TP. HỒ CHÍ MINH, 2021


THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………
……..ngày … tháng … của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1. ………………………….

– Chủ tịch.

2. ………………………….

– Thư ký.

3. ………………………….

– Ủy viên.

4. ………………………….

– Ủy viên.


LỜI CẢM ƠN

Nhóm xin cảm ơn thầy (ThS.) Đinh Nguyễn Anh Dũng đã 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 thầy đã giúp
ứng dụng trở nên thực tế và dễ dàng tiếp cận thị trường hơn hơn.
Nhóm xin gửi lời cảm ơn đến quý thầy 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, nhóm đã 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 vấn đề và để lại những giải pháp,
không thể kể tên nhưng nhóm 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

TÓM TẮT KHÓA LUẬN ..........................................................................................1
MỞ ĐẦU .....................................................................................................................2
Phát biểu đề tài ........................................................................................................2
Mục tiêu...................................................................................................................2
Phạm vi ứng dụng ...................................................................................................2
Đối tượng ứng dụng ................................................................................................2
Phương pháp thực hiện............................................................................................3
Kết quả mong đợi ....................................................................................................3
Tính khả thi của ứng dụng ......................................................................................3
Nội dung của luận văn.............................................................................................3
Chương 1.

TỔNG QUAN .....................................................................................4


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

Board game ..........................................................................................4

1.1.2.

Mutilplayer game ................................................................................4

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 đại dịch covid 19 ....................5

1.2.2.

Khối lượng người chơi board game khổng lồ và ngày một tăng ........6

1.2.3.

Các vấn đề được giải quyết .................................................................6

Chương 2.

GIỚI THIỆU CÔNG NGHỆ ...............................................................7

2.1. Unity3D engine..............................................................................................7
2.2. WebGL ..........................................................................................................8
2.3. Unity Photon Network ...................................................................................9



2.4. Gamesparks (baas: backend as a service) ......................................................9
Chương 3.

TRÒ CHƠI BOARDGAME SIMULATOR .....................................11

3.1. Giới thiệu tổng quát .....................................................................................11
3.2. Thiết kế kiến trúc .........................................................................................11
3.2.1.

Kiến trúc hệ thống .............................................................................11

3.2.2.

Mô tả các cơ chế ................................................................................12

3.2.3.

Sơ đồ, biểu đồ ....................................................................................17

3.3. Thiết kế giao diện ........................................................................................24
3.3.1.

Phần đăng nhập .................................................................................25

3.2.2. Màn hình chính .......................................................................................27
3.3.2.

Phần editor .........................................................................................34


3.3.3.

Phần game .........................................................................................39

3.4. Tinh chỉnh resource .....................................................................................41
Chương 4.

MỘT SỐ KỸ THUẬT SỬ DỤNG ....................................................42

4.1. Kỹ thuật sử dụng trong Unity3D, C# ..........................................................42
4.1.1.

Raycast ..............................................................................................42

4.1.2.

ScriptableObject ................................................................................43

4.1.3.

Script define symbol setting ..............................................................45

4.1.4.

JsonUtility .........................................................................................45

4.1.5.

Convert base64 ..................................................................................46


4.1.6.

3D Text ..............................................................................................47

4.1.7.

Một số plugin được sử dụng: .............................................................48

4.2. Kỹ thuật sủ dụng framework Unity Photon Network ..................................49
4.2.1.

PhotonView Component ...................................................................49


4.2.2.

Photon Transform View Component ................................................50

4.2.3.

PunRPC .............................................................................................50

4.3. Kỹ thuật sử dụng GameSparks (Baas) .........................................................51
4.3.1.

Cài đặt GameSparks trong unity3D ..................................................51

4.3.2.

Các cài đặt GameSparks service .......................................................53


4.4. Triển khai ứng dụng trên itch.io ..................................................................58
Chương 5.

DÙNG THỬ VÀ PHẢN HỒI ...........................................................60

5.1. Một số phản hồi tiêu biểu ............................................................................60
5.2. So sánh với một số ứng dụng tương tự trên thị trường ...............................61
Chương 6.

TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ........................................63

6.1. Tổng kết .......................................................................................................63
6.2. Hướng phát triển ..........................................................................................63
6.2.1.

Phần editor .........................................................................................63

6.2.2.

Phần game .........................................................................................63

6.2.3.

Quảng bá game ..................................................................................63

TÀI LIỆU THAM KHẢO .........................................................................................64


DANH MỤC HÌNH VẼ

Hình 1.1. Minh họa board game cổ điển [1] ...............................................................4
Hình 1.2. Tổng doanh thu của ngàng game và sự tăng trưởng [4] .............................5
Hình 1.3 Board game Ludo cổ điển [5] ......................................................................6
Hình 2.1. Unity engine, engine hỡ trợ làm game đa nền tảng [6] ...............................7
Hình 2.2. Unity Photon Network asset store packages [9] .........................................9
Hình 2.3. GameSparks logo [11].................................................................................9
Hình 3.1. Entity – Compornent – System [13] .........................................................11
Hình 3.2. Kết nối client – server ...............................................................................12
Hình 3.3. Các thành phần chính của phần editor ......................................................13
Hình 3.4. Cơ chế spawn object ở editor ....................................................................13
Hình 3.5. Cơ chế load project trên editor ..................................................................14
Hình 3.6. Cơ chế người chơi trong phòng.................................................................14
Hình 3.7. Mơ phỏng cơ chế hoạt động của camera ...................................................15
Hình 3.8. Cơ chế xử lý mouse input [15] ..................................................................16
Hình 3.9. Cơ chế kế thừa object chung .....................................................................16
Hình 3.10. Sơ đồ use-case đăng nhập .......................................................................17
Hình 3.11. Sơ đồ use-case chính ...............................................................................17
Hình 3.12. Sơ đồ use-case room ...............................................................................17
Hình 3.13. Biểu đồ sequence đăng nhập ...................................................................18
Hình 3.14. Biểu đồ sequence đăng ký .......................................................................19
Hình 3.15. Biểu đồ sequence quên mật khẩu ............................................................19
Hình 3.16. Biểu đồ sequence danh sách project .......................................................20
Hình 3.17. Biểu đồ sequence tạo mới project ...........................................................21
Hình 3.18. Biểu đồ sequence lưu project ..................................................................22
Hình 3.19. Biểu đồ sequence tạo mới phòng chơi ....................................................23
Hình 3.20. Biểu đồ sequence gia nhập phòng chơi ...................................................24
Hình 3.21. Giao diện màn hình đăng nhập ...............................................................25
Hình 3.22. Giao diện màn hình đăng ký ...................................................................25



Hình 3.23. Giao diện màn hình yêu cầu mật khẩu mới.............................................26
Hình 3.24. Màn hình chính .......................................................................................27
Hình 3.25. Giao diện màn hình quản lý project ........................................................28
Hình 3.26. Giao diện màn hình tạo mới project ........................................................29
Hình 3.27. Giao diện màn hình tạo phòng chơi ........................................................30
Hình 3.28. Giao diện màn hình gia nhập phòng chơi ...............................................31
Hình 3.29. Giao diện màn hình thơng tin tài khoản ..................................................31
Hình 3.30. Giao diện màn hình thay đổi mật khẩu ...................................................32
Hình 3.31. Giao diện màn hình cập nhật DisplayName............................................33
Hình 3.32. Giao diện chính của phần editor .............................................................34
Hình 3.33. Giao diện bảng chỉnh sửa thơng tin object ..............................................36
Hình 3.34. Giao diện màn hình danh sách hình ảnh đăng tải ...................................37
Hình 3.35. Giao diện màn hình đăng tải hình ảnh ....................................................38
Hình 3.36. Giao diện màn hình phòng chơi ..............................................................39
Hình 3.37. Giao diện của màn hình chơi game .........................................................40
Hình 4.1. Đoạn mã xử dụng raycast [15] ..................................................................42
Hình 4.2. Mơ phỏng cơ chế ánh xạ ảnh con chuột của các người chơi ....................42
Hình 4.3. Đoạn mã sử dụng raycast ánh xạ ảnh con chuột .......................................43
Hình 4.4. Đoạn mã tạo object config bằng ScriptableObject ...................................43
Hình 4.5. Đoạn mã sử dụng AssetDatabase load asset .............................................44
Hình 4.6. Cấu hình của một Scriptable object config ...............................................44
Hình 4.7. Cài đặt Script define symbol setting trong Unity3D .................................45
Hình 4.8. Đoạn mã sử dụng script define symbol .....................................................45
Hình 4.9. Đoạn mã sử dụng JsonUtility lưu, load ch̃i json ...................................46
Hình 4.10. Đoạn mã convert từ base64 sang texture [20] .........................................46
Hình 4.11. Đoạn mã convert từ texture sang base64 ................................................47
Hình 4.12. Material 3D text shader ...........................................................................47
Hình 4.13. Đoạn mã sử dụng DoTween làm animation UI ......................................48
Hình 4.14. Component WebGL input trên object Input Field ..................................48



Hình 4.15. Đoạn mã hàm GetImage..........................................................................49
Hình 4.16. Photon View component .........................................................................49
Hình 4.17. Photon Transform View component .......................................................50
Hình 4.18. Đoạn mã gửi RPC qua tất cả client .........................................................50
Hình 4.19. Đoạn mã nhận lệnh gọi RPC ...................................................................51
Hình 4.20. Cài đặt RPCs của Photon Unity Network ...............................................51
Hình 4.21. GameSparks API .....................................................................................52
Hình 4.22. Setting GameSparks trong Unity3D .......................................................52
Hình 4.23. Cấu hình GameData trên GameSparks ...................................................53
Hình 4.24. Cấu hình Event trên GameSparks ...........................................................53
Hình 4.25. Đoạn mã CloudCode save project model [29] ........................................54
Hình 4.26. Đoạn mã gửi LogEventRequest save project model từ ứng dụng ..........54
Hình 4.27. Đoạn mã gửi AuthenticationRequest từ ứng dụng ..................................55
Hình 4.28. Đoạn mã gửi RgistrationRequest từ ứng dụng ........................................55
Hình 4.29. Đoạn mã gửi ChangeUserDetailsRequest từ ứng dụng ..........................56
Hình 4.30. Đoạn mã custom AuthenticationRequest ở BaaS ...................................56
Hình 4.31. Đoạn mã gọi Maijet API send mail ở BaaS ............................................57
Hình 4.32. Đoạn mã xử lý resetPassword ở BaaS ....................................................57
Hình 4.33. Đoạn mã gửi AuthenticationRequest với hành động resetPassword ......58
Hình 4.34. Itch.io lưu trữ và phát hành trò chơi [35] ................................................58
Hình 4.35. Giao diện ứng dụng trên trang web .........................................................59
Hình 5.1. Tabletop Simulator trên Stream [36] ........................................................61


DANH MỤC BẢNG
Bảng 5.1. Bảng ý kiến phản hồi tiêu biểu .................................................................60
Bảng 5.3. Bảng so sánh ứng dụng và TableTop Simulator.......................................62



DANH MỤC TỪ VIẾT TẮT

STT
1

Từ viết tắt
Client

Ý nghĩa
-

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

MultiPlayer

Nhiều người chơi

5

Board game

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

6

Object

Các đối tượng trong game

7

Input

Các component nhập thông tin từ bàn phím,
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, …


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

Tổng quan, giới thiệu về xu hướng chơi game trong tương lai, cách chơi các
trò chơi dạng 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ệ nào 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.


-

Lựa 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 và phát hành
trên Itch.io với đường dẫn: />
-

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à thay đổi.

-

Hiện tại ứng dụng đang được cải tiến và quảng bá cộng đồng (trên các mạng
xã hội, youtube).

1


MỞ ĐẦU
Phát biểu đề tài
-

Trong quá trình chọn đề 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. Đồng thời với sự cố vấn 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, nhóm đã quyết định lựa chọn dòng game board game và chơi

mutilplayer.

-

Mức độ cạnh tranh thấp. Nếu trò chơi dạng 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
và chơi multiplayer thì rất ít. Xét về mức độ thì những ứng dụng hỡ trợ tạo
board game 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 Board game simulator dễ tiếp cận hơn.

-

Tận dụng cơ hội bắt kịp xu hướng của thị trường game, nhóm đã bắt đầu
nghiên cứu và phát triển trò chơi Board game simulator sớm nhất có thể.

Mục tiêu
-

Tìm hiểu về xu hướng chơi game trên thế giới.

-

Xây dựng và hoàn thiện trò chơi Board game simulator.

-

Đưa vào thực tiễn và kiếm được một lượng người dùng thân thiết.

Phạm vi ứng dụng
-


Không 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 sàng trải nghiệm trò chơi trên PC.

-

Những người chơi board game truyền thống và muốn tạo game hay thay đổi
cách chơi game cổ điển.

-

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

2


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

Trải 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ế cấu 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ợ.

-

Bắt đầu xây dựng ứng dụng.

-

Đưa ứng dụng ra thị trường và theo dõi đánh giá của người chơi.

Kết quả mong đợi
-

Hiện tại ứng dụng đã được đưa ra thị trường và đang bắt đầu nhận được
những phản hồi từ những người chơi thử nghiệm.

-

Ứng dụng chạy trên nền tảng 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ư phản
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
ứng dụ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ệ

-

Trò chơi Board game simulator

-

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

-

Dùng thử và phản hồi

-

Tổng kết và hướng phát triển

3



Chương 1. TỞNG QUAN
1.1.

Giới thiệu khái qt

1.1.1. Board game

Hình 1.1. Minh họa board game cổ điển [1]

-

Boardgame là thể loại trò chơi cờ bàn, bao gồm 2 hay nhiều người tương tác
trực tiếp với nhau thông qua một bàn cờ. Board game thường được sử dụng
để chơi là các vật dụng như: các lá bài, các quân cờ, bàn cờ, xí ngầu, thẻ
card, xúc xắc…. Để hỡ trợ cho từng cuộc chơi.

-

Hiện nay, Boardgame được sản xuất và lưu hành rất nhiều nơi trên thế giới.
Những trò chơ Boardgame 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 Boardgame cũng đã dần 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ờ tỷ phú… [2]
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ủ. [3]


-

Multiplayer là cái tên báo quát cho các thể loại game như:

-

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


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 đang phát triển

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

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

-

Khi mà đại dịch vẫn chưa có dấu hiệu được kiểm số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é lộ 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ưởng hơ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.

-

Dân 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ý do khiến cho những chỉ số của thị trường game tồn cầu ln có dấu
hiệu tăng dù bị chi phối bởi nhiều yếu tố khác nhau.
5


1.2.2. Khối lượng người chơi 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.

Hình 1.3 Board game Ludo cổ điển [5]

-

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 dần thay đổi và tốc độ chuyển đổi được đẩy nhanh

hơn.
1.2.3. Các vấn đề được giải quyết

-

Câu hỏi đặt ra khi một người chơi có ý tưởng (designer) 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, object
các hình thù, 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 đầy đủ cho việc sáng tạo.
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, có và hỗ trợ chơi board
game đó.

6


Chương 2. GIỚI THIỆU CƠNG NGHỆ
2.1.

Unity3D engine


Hình 2.1. Unity engine, engine hỗ trợ làm game đa nền tảng [6]

-

Unity là một game engine đa nền tảng được phát triển bởi Unity
Technologies, mà chủ yếu để phát triển video game cho máy
tính, consoles và điện thoại. Lần đầu tiên nó được công bố chạy trên hệ điều
hành OS X, tại Apple's 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,[12] Android TV, Facebook, ...Unity
trướ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,[17] đã
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 để 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 để 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.
7


-

Unity ra đời từ năm 2005, nó đã phát triển một lượng lớn người dùng và
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. [7]

2.2.
-

WebGL

WebGL là một DOM API (Document Object Model), nó có thể dụng ở mọi
ngơn ngữ tương thích với DOM như: Javascript, Java. Đa 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. [8]

-

WebGl cho phép máy tính thao tác với phần cứng đồ họa 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 đồ họa
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 phổ biến và được chấp nhận rộng
rãi.
o Tương thích đa trình duyệt, đa nền tảng.
o Tích hợp chặt chẽ với HTML, tương tác dược với các phần 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ử lý 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 để thấy được sản phẩm.

8


2.3.

Unity Photon Network


Hình 2.2. Unity Photon Network asset store packages [9]

-

Photon Unity Networking (PUN) là framework Unity dành cho các trò chơi
mutilplayer. Tính năng mai mối linh hoạt đưa người chơi của bạn vào các
phịng nơi các đối tượng có thể được đồng bộ hóa qua mạng. RPC, Thuộc
tính tù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. [10]

-

Ưu điểm của Unity Photon Network
o Thư viện tích hợp của Unity3D engine.
o Dễ dàng sử dụng.
o Tốc độ xử lý nhanh.

2.4.

Gamesparks (baas: backend as a service)

Hình 2.3. GameSparks logo [11]
9



-

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ạ tầng ứng
dụ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. [12]

-

Tại sao chọn game sparks làm BaaS cho game:
o Gói Developer Game Sparks được sử dụng miễn phí.
o Game Sparks cho phép các nhà phát triển quản lý nền kinh tế của họ
bao gồ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ả.
o Game Sparks cung cấp một giải pháp tuyệt vời cho trò chuyện, bảng
xếp hạ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.
o Hiệu suất cao, tốc độ xử lý nhanh.
o Tất cả các tính năng của Game Sparks đề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.
o Giải pháp quản lý người chơi hiệu quả của Game Sparks 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


Chương 3. TRÒ CHƠI BOARDGAME SIMULATOR
3.1.
-

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

Trò chơi gồm 3 phần:
o Phần editor (phần chính):
▪ Hỗ trợ người chơi tạo ra project (các board game), thay đổi,
chỉnh sửa project.
▪ Hỗ trợ người chơi quản lý các project (board game) đã tạo.
▪ Phần editor được xử lý với backend service GameSparks.
o Phần game:
▪ Tạo môi trường cho phép các người chơi cùng nhau chơi trên
một game (project).

▪ Người chơi có thể tạo room hay join vào một room sẵn có.
▪ Phần game được xử lý multiplayer với Unity Photon Network.
o Phần đăng nhập (tài khoản):
▪ Quản lý tài khoản người chơi.
▪ Mỗi người chơi bắt buộc phải có tài khoản, và dữ liệu các
project tạo ra sẽ được lưu theo tài khoản của người chơi.

3.2.

Thiết kế kiến trúc

3.2.1. Kiến trúc hệ thống
-

Ứng dụng được triển khai theo hệ thống Entity – Compornent – System
(ECS) (hệ thống Unity3D engine sử dụng).

Hình 3.1. Entity – Compornent – System [13]
11


-

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 lý object.
▪ Cơ chế lưu, load project.
o Phần chơi game
▪ Cơ chế quản lý người chơi.

▪ Cơ chế load và khởi tạo project.
▪ Cơ chế quản lý object.

-

Một số cơ chế chung (phần editor và phần game):
o Cơ chế xử lý camera.
o Cơ chế xử lý mouse input.
o Cơ chế object chung.
3.2.2. Mô tả các cơ chế
3.2.2.1.

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

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

-

Các hành động đăng nhập, đăng ký được gửi request lên BaaS và nhận
response hiển thị ở Application.
3.2.2.2.

-

Phần editor


Phần edioter sẽ gồm các thành phần chính: controller, UI, resource config

12


Hình 3.3. Các thành phần chính của phần editor

-

Cơ chế quản lý object
o Cơ chế spawn object

Hình 3.4. Cơ chế spawn object ở editor

13


×