Báo cáo bài tập môn Lập trình game (nâng cao) đề tài "Game Goldenray"
Báo cáo bài tập môn Lập trình game (nâng cao) đề tài "Game Goldenray" của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!
Môn: Lập trình Game
Trường: Học viện Công Nghệ Bưu Chính Viễn Thông
Thông tin:
Tác giả:
Preview text:
lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
HỌCVIỆNCÔNGNGHỆBƯUCHÍNHVIỄNTHÔNG KHOAĐAPHƯƠNGTIỆN ---------- BÁOCÁOBÀITẬP
MÔNHỌC:LẬPTRÌNHGAMENÂNGCAO
ĐỀTÀI:GAMEGOLDENRAY lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Mục lục
Chương 1: Cơ sở lý thuyết ................................................................................. 3
1.1. Lý thuyết game a người chơi .................................................................... 3
1.1.1. Tổng quan game a người chơi .......................................................... 3
1.1.2. Lịch sử phát triển .............................................................................. 4
1.1.3. Tính chất ặc iểm ............................................................................... 5
1.1.4. Ưu iểm nhược iểm ............................................................................ 6
1.1.5. Các yếu tố ảnh hưởng ến trải nghiệm ............................................... 8
1.1.6. Những tác ộng ến xã hội ................................................................... 9
1.1.7. Xu thế phát triển ............................................................................. 10
1.1.8. Phân tích tựa game Arena of Valor ................................................ 11
1.2. Lý thuyết các giao thức mạng ................................................................. 14
1.2.1.Giao thức TCP/IP ............................................................................ 14
1.2.2.Giao thức UDP ................................................................................ 16
1.2.3.Giao thức WebSocket ...................................................................... 18
1.2.4.Peer to Peer(P2P) ............................................................................. 20
1.2.5. Kỹ thuật tối ưu giao thức trong Multiplayer Game ........................ 22
1.2.6. Một số ví dụ .................................................................................... 24
1.2.7. Kết luận .......................................................................................... 25
1.3. Game Design Document ......................................................................... 25
1.3.1.Tổng quan GDD .............................................................................. 25
1.3.2.Các thành phần của GDD ................................................................ 27
1.3.3. Game Pitch-Tiền ề của GDD.......................................................... 31
1.3.4. Các giai oạn khi xây dựng GDD .................................................... 32
1.4. Smartfox và Photon Engine1.4.1. Smartfox ........................................... 34
1.4.2. Photon Engine ................................................................................ 39
1.4.3. So sánh Photon Engine với Smartfox............................................. 45
1.4.4. Photon PUN .................................................................................... 49
1.5. Công cụ Unity ......................................................................................... 51
1.5.1. Tổng quan về Unity ........................................................................ 51
1.5.2.Tổng quan Unity Engine ................................................................. 54
Chương 2: Phân tích thiết kế thống ................................................................ 58
2.1. Lý do chọn ề tài ...................................................................................... 58
2.1.1. Sự ộc áo và sáng tạo ....................................................................... 58
2.1.2. Tiềm năng cho sự sáng tạo và sự phát triển ................................... 58 lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
2.1.3. Sự kết hợp giữa hành ộng và logic ................................................. 58
2.1.4. Sự phối hợp và tương tác giữa người chơi ..................................... 58
2.1.5. Tạo ra trải nghiệm mới và sự thách thức ........................................ 58
2.1.6. Tổng kết .......................................................................................... 59
2.2. Ý tưởng ................................................................................................... 59
2.2.1. Tia laser nối hai nhân vật ............................................................... 59
2.2.2. Tiêu diệt quái vật bằng tia laser ..................................................... 59
2.2.3. Thử thách a dạng ............................................................................ 59
2.2.4. Trải nghiệm ồ họa và âm thanh hấp dẫn ........................................ 60
2.2.5. Chế ộ chơi ....................................................................................... 60
2.2.6. Hệ thống tiến cấp và tùy chỉnh ....................................................... 60
2.3. Công nghệ và công cụ ............................................................................. 60
2.3.1. Unity ............................................................................................... 60
2.3.2. Photon Engine ................................................................................ 61
2.3.3. Lý do chọn công nghệ Photon Engine ........................................... 62
2.4. GDD Golden Ray (1 trang) ..................................................................... 64
2.4.1. Nhận dạng trò chơi ......................................................................... 64
2.4.2. Cột mốc thiết kế.............................................................................. 64
2.4.3. Thể loại/ Cốt truyện/ Cơ chế tổng quan ......................................... 64
2.4.4. Tính năng ........................................................................................ 64
2.4.5. Giao diện ........................................................................................ 64
2.4.6. Phong cách nghệ thuật .................................................................... 64
2.4.7. Âm thanh ........................................................................................ 64
2.4.8. Lộ trình phát triển ........................................................................... 64
Chương 3: Cài ặt và xây dựng game ............................................................... 70
3.1. Cài ặt môi trường .................................................................................... 70
3.2. Xây dựng giao diện ................................................................................. 70
3.3. Xây dựng Scripts..................................................................................... 73
3.3.1. Script ConnectToServer.cs ............................................................. 73
3.3.2. Script MainMenu.cs ....................................................................... 74
3.3.3. Script Spawner.cs ........................................................................... 75
3.3.4. Script PlayerController.cs .............................................................. 76
3.3.5. Các script còn lại............................................................................ 82
3.4. Đánh giá và kết luận............................................................................... 82 lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Chương 1: Cơ sở lý thuyết
1.1. Lý thuyết game a người chơi
1.1.1. Tổng quan game a người chơi
Hình ảnh minh họa MultiPlayer Game 1.1.1.1. Khái niệm
Multiplayer game (trò chơi a người chơi) là các trò chơi video cho phép
nhiều người chơi chơi cùng nhau trên internet hoặc mạng cục bộ. Những trò
chơi này có thể chơi trên nhiều nền tảng khác nhau như máy tính cá nhân, máy
chơi game, và thiết bị di ộng. Multiplayer game có thể ược phân loại vào các thể
loại khác nhau như game hợp tác, game cạnh tranh, game trực tuyến a người
chơi (MMOs), và game xã hội.
Game hợp tác là các trò chơi mà người chơi làm việc cùng nhau ể ạt ược
mục tiêu chung, chẳng hạn như hoàn thành một nhiệm vụ hoặc ánh bại một quái
vật. Trong khi ó, game cạnh tranh ưa người chơi vào cuộc ua giành chiến thắng.
Những trò chơi này có thể từ những trò chơi ơn giản như cờ vua và cờ tướng ến
những trò chơi phức tạp như game bắn súng góc nhìn thứ nhất và game battle royale.
MMOs là một loại game a người chơi nơi hàng ngàn người chơi có thể
tương tác với nhau trong một thế giới ảo liên tục. Người chơi có thể tham gia
vào các guild, hình thành liên minh và tham gia các trận chiến khổng lồ với
những người chơi khác hoặc những kẻ thù do máy tính iều khiển. Game xã hội
là các game a người chơi tập trung vào tương tác xã hội giữa người chơi, chẳng lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
hạn như các trình mô phỏng thế giới ảo, các trò chơi giải trí và các trò chơi dựa trên bữa tiệc.
Multiplayer game ã trở nên ngày càng phổ biến qua các năm với sự phát
triển của trò chơi trực tuyến và khả năng kết nối internet tốc ộ cao. Những trò
chơi này cung cấp cho người chơi cơ hội kết nối và tương tác với những người
chơi khác từ khắp nơi trên thế giới, góp phần tạo nên một cộng ồng và sự cạnh tranh. 1.1.1.2. Phân loại
Multiplayer game có thể chơi trên nhiều nền tảng khác nhau như máy tính
cá nhân, máy chơi game, và thiết bị di ộng. Các trò chơi này có thể ược phân
loại vào các thể loại khác nhau, bao gồm:
Game hợp tác: Các người chơi làm việc cùng nhau ể ạt ược mục tiêu chung,
chẳng hạn như hoàn thành một nhiệm vụ hoặc ánh bại một quái vật. Game cạnh
tranh: Người chơi tranh giành chiến thắng và ưa ra các chiến lược khác nhau ể ánh bại các ối thủ.
Game trực tuyến a người chơi (MMOs): Một loại game a người chơi nơi
hàng ngàn người chơi có thể tương tác với nhau trong một thế giới ảo liên tục.
MMOs thường có những thế giới rộng lớn, cho phép người chơi thực hiện các
hoạt ộng như săn boss, thám hiểm, xây dựng nhà cửa hoặc kinh doanh. Game xã
hội: Các game a người chơi tập trung vào tương tác xã hội giữa người chơi,
chẳng hạn như các trình mô phỏng thế giới ảo, các trò chơi giải trí và các trò
chơi dựa trên bữa tiệc.
Multiplayer game em lại cho người chơi cơ hội kết nối và tương tác với
những người chơi khác từ khắp nơi trên thế giới, góp phần tạo nên một cộng
ồng và sự cạnh tranh. Ngoài ra, trò chơi a người chơi cũng có thể giúp người
chơi rèn luyện kỹ năng tương tác xã hội, ồng thời giải trí và thư giãn.
1.1.2. Lịch sử phát triển
Multiplayer game có một lịch sử dài và phát triển từ những năm 1960, khi
các nhà khoa học máy tính ầu tiên ã phát triển những trò chơi a người chơi dựa
trên mạng nội bộ. Tuy nhiên, ến những năm 1970 và 1980, các trò chơi này vẫn
chủ yếu ược chơi trên các hệ thống máy tính cục bộ.
Sự phổ biến của multiplayer game bắt ầu gia tăng vào những năm 1990,
khi internet và các kết nối mạng khác trở nên phổ biến hơn. Các trò chơi như lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Doom, Quake và Warcraft ã trở thành những trò chơi a người chơi trực tuyến ầu
tiên và thu hút rất nhiều người chơi trên toàn thế giới.
Năm 1998, Starcraft - một game chiến lược thời gian thực của Blizzard
Entertainment - ã trở thành một trong những trò chơi a người chơi trực tuyến
phổ biến nhất thế giới. Sau ó, các game online khác như World of Warcraft,
League of Legends và Dota 2 ã trở thành những trò chơi a người chơi ược yêu
thích nhất trên toàn thế giới.
Các game a người chơi ã phát triển mạnh mẽ trong những năm qua, với
sự xuất hiện của nhiều loại game khác nhau như game bắn súng, game hành
ộng, game ua xe, game thể thao và game chiến lược. Ngày nay, các trò chơi a
người chơi trực tuyến là một phần không thể thiếu của ngành công nghiệp
game, thu hút hàng triệu người chơi trên toàn thế giới và tạo nên một cộng ồng
chơi game vô cùng a dạng và phong phú.
1.1.3. Tính chất ặc iểm 1.1.3.1. Tính chất
Multiplayer game có nhiều tính chất khác nhau, tùy thuộc vào loại game
và cách thức thiết kế.
Sau ây là một số tính chất chung của multiplayer game:
Đa dạng: Multiplayer game thường có nhiều loại và chủ ề khác nhau ể áp
ứng sở thích của nhiều người chơi.
Kết nối: Multiplayer game cung cấp một cách kết nối và tương tác với
những người chơi khác từ khắp nơi trên thế giới.
Thử thách: Multiplayer game thường òi hỏi người chơi cần phải cạnh tranh và
thách thức với những người chơi khác, từ ó cải thiện kỹ năng chơi game của mình.
Hỗ trợ tương tác: Multiplayer game cung cấp một nền tảng cho người
chơi ể tương tác và kết bạn với những người chơi khác.
Tính cộng ồng: Multiplayer game thường có tính cộng ồng cao, người
chơi có thể học hỏi từ những người chơi khác, tham gia các sự kiện trong game
và tạo ra những mối quan hệ áng giá.
Trải nghiệm cùng lúc với bạn bè: Multiplayer game cho phép bạn chơi
cùng lúc với bạn bè, tạo ra một trải nghiệm thú vị và gắn kết giữa những người chơi. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Phát triển kỹ năng: Multiplayer game có thể giúp người chơi phát triển
các kỹ năng như kỹ năng tương tác xã hội, kỹ năng quản lý thời gian và kỹ năng tư duy chiến lược.
Trải nghiệm vô tận: Multiplayer game có thể cung cấp một trải nghiệm vô
tận, do mỗi lần chơi lại có thể tạo ra những trải nghiệm khác nhau.
Những tính chất trên giúp multiplayer game trở thành một phần không thể thiếu
trong thế giới game hiện ại, thu hút hàng triệu người chơi trên toàn thế giới. 1.1.3.2. Đặc iểm:
Các ặc iểm chính của multiplayer game là:
Kết nối và tương tác với người chơi khác: Multiplayer game cho phép
người chơi kết nối và tương tác với những người chơi khác từ khắp nơi trên thế giới.
Có tính chất a dạng: Có nhiều loại multiplayer game với các chủ ề, cốt
truyện, lối chơi và ộ khó khác nhau.
Thử thách và cạnh tranh: Multiplayer game òi hỏi người chơi phải thử thách và
cạnh tranh với những người chơi khác ể chiến thắng.
Tính cộng ồng cao: Multiplayer game thường có tính cộng ồng cao, tạo ra
một môi trường giúp người chơi kết nối, tương tác, học hỏi và tạo ra những mối quan hệ trong game.
Cung cấp trải nghiệm mới lạ và vô tận: Mỗi lần chơi multiplayer game
ều mang ến những trải nghiệm khác nhau, giúp người chơi có thể khám phá,
trải nghiệm và phát triển kỹ năng chơi game.
Hỗ trợ cho các hoạt ộng tập thể: Multiplayer game thường có tính chất
hỗ trợ cho các hoạt ộng tập thể, giúp người chơi có thể chơi cùng nhau với bạn
bè, ồng ội hoặc kết nối với các người chơi khác.
Cập nhật và phát triển liên tục: Multiplayer game thường có sự cập nhật
và phát triển liên tục ể áp ứng nhu cầu của người chơi và ảm bảo sự cân bằng trong gameplay.
Tạo ra giá trị kinh tế: Một số multiplayer game có thể tạo ra giá trị kinh
tế cho người chơi, như trao ổi, mua bán hoặc tặng quà trong game.
Tổng thể, multiplayer game có nhiều ặc iểm thu hút và giúp người chơi
tận hưởng một trải nghiệm game a dạng, thú vị và phát triển các kỹ năng xã hội,
chiến lược, tư duy và tập thể.
1.1.4. Ưu iểm nhược iểm 1.1.4.1. Ưu iểm lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Multiplayer game có nhiều ưu iểm thu hút người chơi, bao gồm:
Tính tương tác và kết nối: Multiplayer game cho phép người chơi kết nối
và tương tác với những người chơi khác từ khắp nơi trên thế giới, tạo ra một
môi trường trò chuyện và học hỏi.
Giúp phát triển kỹ năng xã hội: Multiplayer game giúp người chơi phát
triển các kỹ năng xã hội như hợp tác, ối thoại, thuyết phục và lãnh ạo.
Cung cấp trải nghiệm a dạng: Mỗi lần chơi multiplayer game ều mang ến
những trải nghiệm khác nhau, giúp người chơi khám phá, trải nghiệm và phát
triển kỹ năng chơi game.
Tạo ra một cộng ồng game ông ảo: Multiplayer game thường có tính
cộng ồng cao, tạo ra một môi trường giúp người chơi kết nối, tương tác, học hỏi
và tạo ra những mối quan hệ trong game.
Có tính thử thách và cạnh tranh: Multiplayer game òi hỏi người chơi phải
thử thách và cạnh tranh với những người chơi khác ể chiến thắng, giúp người
chơi phát triển kỹ năng chơi game và tư duy chiến lược.
Tạo ra giá trị kinh tế: Một số multiplayer game có thể tạo ra giá trị kinh
tế cho người chơi, như trao ổi, mua bán hoặc tặng quà trong game. Có tính hỗ
trợ cho các hoạt ộng tập thể: Multiplayer game thường có tính chất hỗ trợ cho
các hoạt ộng tập thể, giúp người chơi có thể chơi cùng nhau với bạn bè, ồng ội
hoặc kết nối với các người chơi khác.
Tổng thể, multiplayer game có nhiều ưu iểm giúp người chơi có thể tận
hưởng một trải nghiệm game a dạng, thú vị và phát triển các kỹ năng xã hội,
chiến lược, tư duy và tập thể.
1.1.4.2. Nhược iểm
Multiplayer game cũng có một số nhược iểm sau:
Yêu cầu kết nối mạng ổn ịnh: Multiplayer game òi hỏi kết nối mạng ổn
ịnh ể có thể chơi mượt mà và tránh các tình huống lag, giật lag, gián oạn trong trò chơi.
Đôi khi có nguy cơ mất tiền hoặc thông tin cá nhân: Một số multiplayer
game yêu cầu người chơi trả phí hoặc tiến hành giao dịch trong game. Nếu
không cẩn thận, người chơi có thể bị lừa ảo hoặc mất tiền.
Có thể gây nghiện: Multiplayer game có tính nghiện cao, ặc biệt là ối với
những người chơi dễ bị ảnh hưởng bởi các yếu tố thử thách, cạnh tranh, xã hội hoặc thành tích.
Ảnh hưởng ến sức khỏe: Chơi multiplayer game trong thời gian dài có thể
gây ra nhiều vấn ề về sức khỏe như mỏi mắt, au ầu, au cổ, au lưng hoặc thiếu giấc ngủ. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Có thể gây xung ột và tranh cãi: Trong một số trường hợp, multiplayer
game có thể gây ra xung ột và tranh cãi giữa các người chơi do các lý do như
thất bại, tranh giành tài nguyên, lỗi phát sinh trong game hoặc việc vi phạm quy ịnh trong game.
Tổng thể, multiplayer game có những nhược iểm nhất ịnh nhưng nếu chơi
game úng cách và cân nhắc các yếu tố trên, người chơi vẫn có thể tận hưởng
một trải nghiệm game tốt và hữu ích.
1.1.5. Các yếu tố ảnh hưởng ến trải nghiệm
Có nhiều yếu tố có thể ảnh hưởng ến trải nghiệm người chơi multiplayer game, bao gồm:
Kết nối mạng: Kết nối mạng ổn ịnh là một yếu tố cực kỳ quan trọng ối
với trải nghiệm multiplayer game. Nếu kết nối mạng yếu hoặc không ổn ịnh, trò
chơi sẽ bị giật lag, trễ hình hoặc mất kết nối, dẫn ến giảm trải nghiệm và khó chơi.
Đội hình và tương tác với ồng ội: Trong những trò chơi yêu cầu tương tác
giữa người chơi, việc có một ội hình tốt và tương tác với ồng ội tốt sẽ giúp cho
trò chơi trở nên thú vị hơn.
Cấp ộ kỹ năng: Các multiplayer game thường có cấp ộ kỹ năng khác nhau
và người chơi có thể gặp phải những ối thủ cùng cấp ộ hoặc cao hơn. Việc chơi
với người chơi có trình ộ khác nhau có thể ảnh hưởng ến trải nghiệm chơi game.
Cơ chế phần thưởng: Cơ chế phần thưởng trong game cũng là một yếu tố
quan trọng ối với trải nghiệm chơi game. Việc ạt ược những phần thưởng hấp
dẫn, như vật phẩm, kỹ năng mới hay kinh nghiệm, sẽ giúp người chơi cảm thấy
hứng thú và tiếp tục chơi.
Thời gian chơi: Thời gian chơi cũng là một yếu tố quan trọng ối với trải
nghiệm chơi game. Việc chơi game trong thời gian quá lâu có thể gây ảnh
hưởng ến sức khỏe và gây cảm giác mệt mỏi cho người chơi.
Sự cân bằng trong game: Sự cân bằng trong game là một yếu tố quan trọng ể ảm
bảo rằng tất cả người chơi ều có cơ hội công bằng ể chiến thắng. Nếu một số
người chơi có lợi thế quá lớn, trò chơi sẽ không còn hấp dẫn cho những người chơi khác.
Thời gian chờ ợi: Trong những trò chơi ối kháng hoặc trò chơi yêu cầu
nhiều người chơi, việc phải chờ ợi lâu ể tìm ối thủ hoặc ồng ội có thể khiến
người chơi mất hứng thú.
Kiểm soát và cấu hình: Khả năng tùy chỉnh và cấu hình game cũng là một
yếu tố quan trọng. Người chơi muốn có khả năng kiểm soát ối với cấu hình
game như ộ phân giải, âm thanh, hình ảnh, và cách iều khiển. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Động lực chơi game: Các trò chơi multiplayer thường hỗ trợ nhiều cách
ể người chơi ạt ược mục tiêu, từ việc ạt cấp ộ mới ến việc thu thập vật phẩm
hoặc ạt thành tích. Động lực chơi game cũng là một yếu tố quan trọng ối với trải nghiệm chơi game.
Môi trường trò chơi: Môi trường trò chơi, bao gồm cả âm thanh, hình ảnh
và các yếu tố khác, cũng có thể ảnh hưởng ến trải nghiệm chơi game của người
chơi. Nếu môi trường không ược thiết kế tốt, nó có thể khiến người chơi cảm
thấy khó chịu hoặc giảm i sự hứng thú.
Tổng thể, những yếu tố này ều có thể ảnh hưởng ến trải nghiệm chơi
game của người chơi trong multiplayer game. Các nhà phát triển game luôn cố
gắng ể tạo ra một trải nghiệm tốt nhất có thể cho người chơi bằng cách tối ưu hóa các yếu tố này.
1.1.6. Những tác ộng ến xã hội
1.1.6.1. Những tác ộng tích cực
Multiplayer game ã và ang mang ến nhiều tác ộng tích cực ối với giới trẻ
và xã hội nói chung, bao gồm:
Kết nối và tương tác xã hội: Multiplayer game cho phép người chơi kết
nối và tương tác với những người chơi khác từ khắp nơi trên thế giới, em lại trải
nghiệm xã hội và giúp xây dựng cộng ồng trò chơi.
Phát triển kỹ năng giao tiếp và quản lý xung ột: Trong multiplayer game, người
chơi phải liên tục tương tác với những người chơi khác, từ ó phát triển các kỹ
năng giao tiếp và quản lý xung ột.
Giải trí và giảm căng thẳng: Multiplayer game mang lại cho người chơi
những giờ giải trí thú vị và giúp giảm căng thẳng sau những giờ làm việc căng thẳng.
Phát triển tư duy và khả năng giải quyết vấn ề: Trong các multiplayer
game, người chơi phải liên tục ưa ra các quyết ịnh và giải quyết các vấn ề khó
khăn, từ ó phát triển tư duy và khả năng giải quyết vấn ề.
Khuyến khích sáng tạo và am mê: Multiplayer game cũng có thể khuyến
khích sự sáng tạo và am mê trong việc tạo ra nội dung chơi game mới và ộc áo.
1.1.6.2. Những tác ộng tiêu cực
Multiplayer game cũng có thể mang ến những tác ộng tiêu cực ối với giới
trẻ và xã hội nói chung, bao gồm:
Nghiện game: Việc chơi game quá nhiều có thể dẫn ến nghiện game, ảnh
hưởng ến sức khỏe tinh thần và cuộc sống của người chơi. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Thiếu tập trung và sự tách biệt với xã hội: Khi chơi game, người chơi có
thể dễ dàng bị lôi cuốn và quên i các hoạt ộng khác trong cuộc sống, từ ó dẫn ến
sự tách biệt với xã hội và mất sự tập trung.
Gây xung ột và bạo lực: Một số multiplayer game có thể chứa ựng những
hình thức bạo lực và kích thích xung ột, dẫn ến các hành vi bạo lực trong thế giới thực.
Ảnh hưởng ến sức khỏe: Việc chơi game quá nhiều có thể dẫn ến mất ngủ,
cận thị, au ầu và các vấn ề về sức khỏe khác.
Tiêu cực hóa tư duy: Việc chơi game có thể dẫn ến việc tiêu cực hóa tư
duy của người chơi, khiến họ có xu hướng tập trung vào những thử thách ngắn
hạn trong game thay vì tư duy về những vấn ề lớn hơn trong ời sống thực. 1.1.6.3. Giải pháp
Để sử dụng multiplayer game một cách có trách nhiệm và hiệu quả, các
bạn có thể tuân thủ các lời khuyên sau ây:
Đặt giới hạn thời gian: Đặt ra giới hạn thời gian chơi game mỗi ngày và
tuân thủ nghiêm ngặt. Không nên ể chơi game chiếm quá nhiều thời gian trong
ngày, gây ảnh hưởng ến sức khỏe và cuộc sống của bạn.
Chơi game có tính giáo dục: Chọn lựa các multiplayer game có tính giáo
dục, giúp nâng cao kiến thức và kỹ năng của bạn.
Tham gia cộng ồng: Tham gia các cộng ồng game ể có thể kết nối và
tương tác với những người chơi khác.
Chơi game có tính xã hội: Chọn các game có tính xã hội, giúp bạn tương
tác và kết nối với người khác, cải thiện kỹ năng giao tiếp.
Điều chỉnh ộ sáng và khoảng cách giữa mắt và màn hình: Điều chỉnh ộ
sáng và khoảng cách giữa mắt và màn hình ể tránh mỏi mắt và các vấn ề về sức khỏe.
Sử dụng thiết bị phù hợp: Sử dụng thiết bị phù hợp, có ộ phân giải và kích
thước màn hình phù hợp ể tối ưu trải nghiệm chơi game.
Thực hiện các hoạt ộng khác trong cuộc sống: Không bỏ qua các hoạt ộng khác
trong cuộc sống, ảm bảo sự cân bằng giữa việc chơi game và cuộc sống hàng ngày.
Kiểm soát cảm xúc: Kiểm soát cảm xúc khi chơi game, tránh những hành vi bạo
lực hoặc gây xung ột trong game.
1.1.7. Xu thế phát triển
Trong tương lai, multiplayer game ược dự oán sẽ tiếp tục phát triển và có
những xu hướng chính như sau: lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Tăng cường trải nghiệm thực tế ảo: Với sự phát triển của công nghệ thực
tế ảo, các multiplayer game sẽ tập trung vào cung cấp trải nghiệm game thực tế ảo cho người chơi.
Sử dụng trí tuệ nhân tạo: Trí tuệ nhân tạo sẽ ược áp dụng trong các
multiplayer game ể tạo ra các trải nghiệm chơi game ộc áo và tương tác trực tiếp với người chơi.
Tăng cường tính năng xã hội: Các multiplayer game sẽ tập trung vào tính
năng xã hội ể tăng cường kết nối và tương tác giữa người chơi.
Phát triển game a nền tảng: Các game a nền tảng sẽ phát triển mạnh mẽ
hơn ể tạo ra trải nghiệm chơi game liền mạch và liên tục trên các thiết bị khác nhau.
Tăng cường tính bảo mật: Với sự gia tăng các vấn ề về bảo mật, các
multiplayer game sẽ tập trung vào tăng cường tính bảo mật ể ảm bảo an toàn cho người chơi.
Hợp tác a quốc gia: Hợp tác giữa các công ty phát triển game a quốc gia
sẽ tiếp tục phát triển ể tạo ra các sản phẩm chất lượng và a dạng hơn. Tăng
cường tính sáng tạo: Các game thủ và nhà phát triển sẽ ẩy mạnh tính sáng tạo
trong thiết kế game ể tạo ra những trải nghiệm chơi game mới và ộc áo hơn.
1.1.8. Phân tích tựa game Arena of Valor
1.1.8.1. Khái niệm Game liên quân mobile (Arena of valor)
Arena of Valor (hay còn gọi là Liên quân mobile) là một game iện tử a
nền tảng thuộc thể loại MOBA (Multiplayer Online Battle Arena) ược phát triển
bởi công ty Tencent Games và ược phát hành bởi Garena trên các nền tảng di ộng và PC.
Game Garena of Valor ã ra mắt năm 2016 tại Đài Loan dưới tên gọi
Honor of Kings. Sau ó, nó ược phát hành trên thị trường quốc tế và ổi tên thành
Arena of Valor. Trò chơi này ang rất phổ biến tại khu vực Đông Nam Á, bao
gồm Việt Nam, Thái Lan, Indonesia, Đài Loan, và còn ược phát triển và mở
rộng sang nhiều thị trường khác trên thế giới.
Trong Garena of Valor, người chơi sẽ tham gia vào những trận ấu ối ầu
giữa hai ội với mục tiêu tiêu diệt ối phương và phá hủy cơ sở của ối phương.
Game có một số nhân vật chơi ược lựa chọn và ội hình người chơi ược sắp xếp
tùy theo chiến thuật. Garena of Valor ược ánh giá là một trong những game
MOBA hay và có ồ họa ẹp trên thiết bị di ộng.
Ngoài chế ộ chơi ơn, Garena of Valor còn có chế ộ chơi ội (teamplay),
trong ó người chơi có thể tạo ra ội hình với bạn bè và tham gia vào các trận ấu
ối kháng 5v5 hoặc 3v3. Ngoài ra, game còn có một số chế ộ chơi khác như 1v1, lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
AI Mode, và chế ộ Tháp Thách Đấu (Tower Challenge). Garena of Valor cũng
ược ánh giá là một trong những game eSport phổ biến tại khu vực Đông Nam Á.
Trong năm 2019, Garena of Valor ã tổ chức giải ấu Liên quân Mobile Cup lần
ầu tiên tại Việt Nam với giải thưởng lên tới 300 triệu ồng. Trước ó, năm 2018,
giải ấu Liên quân Mobile International Championship cũng ã ược tổ chức tại
Thượng Hải, Trung Quốc với giải thưởng lên tới 500.000 USD.
Tổng quan về Garena of Valor, ây là một trong những game MOBA a nền
tảng phổ biến nhất hiện nay, ặc biệt là tại khu vực Đông Nam Á. Với ồ họa ẹp,
gameplay phong phú, và sự phát triển eSport tích cực, Garena of Valor hứa hẹn
sẽ tiếp tục thu hút ược nhiều game thủ trên toàn thế giới. 1.1.8.2.Những ặc
iểm nổi bật của Arena of
valor Một số ặc iểm nổi bật của Arena of Valor:
Đồ họa ẹp mắt: Arena of Valor có ồ họa 3D sắc nét và màu sắc rực rỡ.
Các nhân vật và chiến trường ược thiết kế tỉ mỉ với nhiều chi tiết nhỏ, tạo ra một
trải nghiệm trực quan và hấp dẫn cho người chơi.
Đa dạng nhân vật: Arena of Valor có hơn 100 nhân vật khác nhau ể
người chơi lựa chọn, mỗi nhân vật có kỹ năng và tính năng riêng biệt. Các nhân
vật ược phân loại theo các vai trò như sát thủ, hỗ trợ, pháp sư, tank, v.v.
Gameplay linh hoạt: Arena of Valor có nhiều chế ộ chơi khác nhau, bao
gồm chế ộ ấu 5v5, 3v3 và 1v1. Các trận ấu có thể kéo dài từ 15 ến 30 phút, tùy
thuộc vào chế ộ chơi và cách thức chơi của người chơi.
Hệ thống ấu trường và giải ấu: Arena of Valor có hệ thống ấu trường và
giải ấu chuyên nghiệp, cho phép người chơi tham gia vào các trận ấu cạnh tranh
và giành giải thưởng. Các giải ấu có cấp ộ khác nhau, từ cấp ộ ịa phương cho ến quốc tế.
Hỗ trợ a nền tảng: Arena of Valor có thể chơi trên nhiều nền tảng khác
nhau, bao gồm iện thoại di ộng, máy tính bảng và PC. Người chơi có thể chơi
trên mọi thiết bị và tiếp tục trải nghiệm trò chơi mà không cần chuyển ổi giữa các nền tảng.
Tóm lại, Arena of Valor là một trò chơi MOBA a nền tảng phổ biến với ồ
họa ẹp, gameplay a dạng, hệ thống ấu trường và giải ấu chuyên nghiệp và hỗ trợ
a nền tảng. Các ặc iểm này ã giúp trò chơi thu hút ược một lượng lớn người chơi trên toàn thế giới.
1.1.8.3.Đánh giá trải nghiệm người chơi: lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 *Tích cực
Arena of Valor (tên gọi gốc là Liên Quân Mobile) là một game mobile
MOBA rất phổ biến tại Việt Nam và nhiều quốc gia trên thế giới. Dưới ây là
một số ánh giá chung khi trải nghiệm Arena of Valor:
Đồ họa ẹp mắt: Arena of Valor ược ánh giá có ồ họa rất ẹp và chất lượng,
hình ảnh sắc nét, tươi sáng, sống ộng, tạo cho người chơi cảm giác hứng thú và phấn khích.
Lối chơi thú vị: Arena of Valor mang lại trải nghiệm chơi game MOBA
ầy thú vị, hấp dẫn và lôi cuốn. Người chơi sẽ ược ưa vào những trận chiến kịch
tính giữa hai ội ối ịch ể tranh giành lãnh thổ, diệt trừ ối phương.
Đa dạng các tướng và trang bị: Game có hơn 100 tướng và hàng loạt
trang bị khác nhau, mỗi tướng có một tính năng riêng biệt, vì vậy người chơi có
thể dễ dàng tìm cho mình nhân vật yêu thích và phù hợp với phong cách chơi riêng.
Hệ thống liên kết và ồng bộ: Arena of Valor cho phép người chơi kết nối
với các tài khoản mạng xã hội và ồng bộ dữ liệu game, giúp người chơi tiết
kiệm ược thời gian và có thể chơi game ở nhiều thiết bị khác nhau.
Cộng ồng ông ảo: Game có một cộng ồng ông ảo và sôi nổi, với nhiều hoạt ộng,
sự kiện hấp dẫn và cơ hội ể giao lưu, kết bạn với các game thủ khác. *Tiêu cực
Yêu cầu nhiều thời gian và tập trung: Vì ây là một game MOBA có tính
cạnh tranh cao, vì vậy người chơi cần phải dành nhiều thời gian và tập trung ể
có thể nâng cao kỹ năng và chiến thuật chơi.
Gây nghiện: Arena of Valor có tính chất gây nghiện, khiến người chơi dễ bỏ lỡ các hoạt ộng
Hệ thống tiền tệ phức tạp: Một số người chơi cảm thấy hệ thống tiền tệ
của Arena of Valor khá phức tạp và khó hiểu, ặc biệt là ối với những người chơi
mới. Điều này có thể khiến cho một số người chơi cảm thấy khó khăn và không
muốn tiếp tục chơi game.
Thời gian chờ ợi dài: Một số người chơi cũng cảm thấy rằng thời gian
chờ ợi ể tìm trận ấu khá lâu và gây khó chịu, ặc biệt là khi họ muốn chơi nhanh
và có trận ấu ngay lập tức
Tình trạng thiếu cân bằng trong game: có những tướng lỗi game
Sử dụng các tool ảnh hưởng ến người chơi khác: hack map, hack lag, hack vàng, hack skill….
Tình trạng mua bán acc, cày thuê: làm kỹ năng người chơi không phù hợp với mức rank họ có. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
1.2. Lý thuyết các giao thức mạng 1.2.1.Giao thức TCP/IP 1.2.1.1. Định nghĩa
TCP ược sử dụng trong mạng Internet và các hệ thống mạng máy tính
tương tự. Tên gọi TCP/IP xuất phát từ hai giao thức nền tảng là TCP và IP, và
các tầng trong bộ giao thức TCP/IP có thể ược coi là một tập hợp các tầng giải
quyết các vấn ề liên quan ến việc truyền dữ liệu. Các tầng trên cùng gần với
người dùng hơn và làm việc với dữ liệu trừu tượng hơn, dựa trên các giao thức
tầng cấp dưới ể biến ổi dữ liệu thành các dạng có thể truyền ược. Mô hình OSI
cũng ược ề cập, là một mô hình tương tự với 7 tầng.
1.2.1.2. Lịch sử hình thành
Bộ giao thức Internet (TCP/IP) bắt nguồn từ công việc của DARPA về
các công nghệ truyền thông dữ liệu sau khi hoàn thành mạng ARPANET ầu tiên
vào ầu những năm 1970. Robert E. Kahn ược thuê bởi DARPA vào năm 1972 ể
làm việc tại Văn phòng Công nghệ Xử lý Thông tin, chuyên xử lý mạng truyền
thông dữ liệu thông qua vệ tinh và các mạng radio ặt trên ất liền. Trong quá
trình làm việc ở ó, Kahn nhận ra giá trị của việc kết nối các mạng này với nhau.
Vào mùa xuân năm 1973, Vinton Cerf, người thiết kế giao thức NCP ược sử
dụng trong ARPANET, ược chỉ ịnh ể làm việc với Kahn về các mô hình nối
mạng kiến trúc mở ể thiết kế giao thức sắp tới cho ARPANET. Vào mùa hè năm
1973, Kahn và Cerf nhanh chóng phát triển một phương pháp cơ bản ể hợp
nhất, trong ó sự khác biệt giữa các giao thức mạng ược giấu i bởi một giao thức
mạng chung. Thay vì mạng chịu trách nhiệm về ộ tin cậy, như trong
ARPANET, các máy chủ sẽ chịu trách nhiệm về ộ tin cậy. Cerf ã ghi nhận
Hubert Zimmerman và Louis Pouzin (những nhà thiết kế của mạng
CYCLADES) là những ảnh hưởng lớn trong thiết kế này.
Với nhiệm vụ là một mạng truyền thông dữ liệu có ộ giảm tối thiểu, làm
cho tích hợp với các mạng khác gần như không thể, bất kể ặc tính của chúng,
Kahn ối mặt với vấn ề khó khăn ầu tiên của mình. Vì vậy, cụm từ "TCP/IP sẽ
chạy trên một ống bằng tôn lợp rò rỉ" ã ra ời, và thực sự ược thực hiện bằng
cách sử dụng chim công. Một máy tính ược sử dụng như là một cổng thông tin
(sau ó ược thay ổi thành một bộ ịnh tuyến ể tránh sự nhầm lẫn với các loại cổng
thông tin khác) và ược trang bị một giao diện cho mỗi mạng, truyền tải các gói dữ liệu giữa chúng.
Nhóm nghiên cứu của Cerf tại ại học Stanford ã tỉ mỉ giải thích ý tưởng
này, ặc biệt là trong giai oạn từ 1973-1974. Công việc trước ó về mạng truyền lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
dữ liệu tại Xerox PARC, ã sản xuất ra giao thức Universal Packet của PARC,
cũng có ảnh hưởng kỹ thuật áng kể trong thời gian ó.
DARPA sau ó ã thuê BBN, Stanford và Đại học College London (UCL) ể tạo ra
một số phiên bản của giao thức, sau ó ược tích hợp vào bộ giao thức TCP / IP.
1.2.1.3. Các tầng trong bộ giao thức TCP/IP
Tầng ứng dụng (Application layer): Tầng này chứa các giao thức ể hỗ trợ
ứng dụng truyền thông như email, truyền tập tin, truyền thông trò chuyện, trình duyệt web, v.v.
Tầng Transport (Transport layer): Tầng này cung cấp các dịch vụ truyền
tải dữ liệu có ộ tin cậy hoặc không áng tin cậy. Giao thức phổ biến nhất tại tầng
này là TCP (Transmission Control Protocol) cho truyền tải áng tin cậy và UDP
(User Datagram Protocol) cho truyền tải không áng tin cậy.
Tầng Network (Network layer): Tầng này làm việc với ịa chỉ IP và tạo ra
các gói dữ liệu IP cho việc truyền tải qua mạng. Giao thức phổ biến nhất tại
tầng này là IP (Internet Protocol).
Tầng Link (Data Link layer): Tầng này xác ịnh cách truyền tải dữ liệu
trên mạng vật lý, bao gồm cả phương thức truyền dẫn và truy cập ến các
phương tiện truyền dẫn. Ethernet là một trong những giao thức phổ biến nhất tại tầng này.
Tầng Physical (Physical layer): Tầng cuối cùng chịu trách nhiệm về việc
truyền tải dữ liệu qua các phương tiện vật lý như cáp, sóng vô tuyến, v.v.
1.2.1.4 Vai trò của TCP/IP trong multiplayer game
TCP/IP ảm nhận vai trò quan trọng trong game multiplayer khi nó ược sử
dụng ể kết nối các máy tính với nhau thông qua một mạng LAN hoặc internet.
Bộ giao thức này cho phép các máy tính trong mạng trao ổi dữ liệu và thông tin
với nhau, bao gồm cả dữ liệu game như vị trí của nhân vật, các ối tượng, hoạt
ộng của người chơi và các sự kiện trong trò chơi.
Vì vậy, TCP/IP có vai trò rất quan trọng trong game multiplayer bởi vì nó
cho phép các người chơi kết nối với nhau và chia sẻ thông tin game một cách
liên tục và áng tin cậy. Nếu không có TCP/IP, việc kết nối các máy tính trong
game multiplayer sẽ trở nên khó khăn hơn và dẫn ến các sự cố liên quan ến ộ
trễ, mất mát dữ liệu hoặc thiếu ồng bộ giữa các máy tính.
1.2.1.5. Khi nào sử dụng TCP/IP trong multiplayer game
TCP/IP thường ược sử dụng trong các trò chơi multiplayer có quy mô nhỏ
hoặc trung bình, chẳng hạn như các trò chơi ối kháng, các trò chơi thẻ bài, hoặc lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
các trò chơi hành ộng. Nó thường ược sử dụng khi cần truyền tải các dữ liệu
chất lượng thấp như thông tin tọa ộ của các ối tượng trong trò chơi và các sự
kiện ơn giản như bắn, di chuyển, nhảy, v.v. TCP/IP là lựa chọn phù hợp trong
các trò chơi có thời gian phản hồi (latency) không quá quan trọng và không quá
nghiêm ngặt về tính chính xác của dữ liệu. Tuy nhiên, khi quy mô của trò chơi
lớn hơn hoặc cần ảm bảo tính chính xác cao của dữ liệu, các giao thức truyền tải
dữ liệu khác như UDP thường ược sử dụng thay thế. 1.2.2.Giao thức UDP 1.2.2.1. Định nghĩa
User Datagram Protocol (UDP) là một trong hai giao thức chính trong bộ
giao thức Internet, cùng với Transmission Control Protocol (TCP). UDP ược
thiết kế ể cung cấp giao thức truyền thông dữ liệu cấp thấp và ơn giản hơn so
với TCP, giúp cho việc truyền tải dữ liệu trở nên nhanh hơn, nhưng ồng thời có
thể dẫn ến mất mát dữ liệu. 1.2.2.2. Lịch sử
UDP ược phát triển bởi David P. Reed và ội ngũ nghiên cứu của ông tại
Massachusetts Institute of Technology (MIT) vào ầu những năm 1980, và sau ó
ược ưa vào sử dụng rộng rãi trong mạng Internet.
Trong quá trình phát triển của UDP, giao thức này ã trải qua nhiều phiên
bản khác nhau. Phiên bản ầu tiên của UDP ược xác ịnh trong RFC 768 của
Internet Engineering Task Force (IETF) vào tháng 8 năm 1980. Sau ó, UDP ã
ược cải tiến và mở rộng qua nhiều phiên bản khác nhau, bao gồm cả phiên bản UDP-lite.
Hiện nay, UDP ược sử dụng rộng rãi trong các ứng dụng mạng như trò
chơi trực tuyến, phát sóng video trực tuyến và các ứng dụng chuyên dụng khác.
1.2.2.3. Vai trò chính của UDP
UDP không cung cấp các chức năng kiểm tra lỗi, ảm bảo sự nhận dữ liệu
hoàn chỉnh, hay xác nhận trạng thái kết nối như TCP. Thay vào ó, nó sử dụng
một giao thức truyền thông rút gọn ể giảm thiểu ộ trễ và tăng tốc ộ truyền tải dữ
liệu. Điều này cũng có nghĩa là nó có thể không ảm bảo dữ liệu ược gửi hoàn
chỉnh, vì nó không có cơ chế ể ảm bảo việc này.
1.2.2.4. Danh sách các cổng lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
UDP sử dụng cổng ể cho phép giao tiếp giữa các ứng dụng diễn ra. Mỗi
cổng ược ánh ịa chỉ bằng 16 bit, do ó số của cổng nằm trong khoảng từ 0 ến
65.535. Tuy nhiên, cổng 0 ược ể dành và không nên sử dụng.
Các cổng từ 1 ến 1023 ược gọi là "cổng well-known" và trên các hệ iều
hành Unix-like, việc gắn kết tới một trong những cổng này òi hỏi quyền root.
Những cổng này thường ược sử dụng cho các dịch vụ mạng phổ biến như HTTP
(cổng 80), HTTPS (cổng 443), FTP (cổng 21) và SSH (cổng 22).
Các cổng từ 1024 ến 49.151 là các cổng ã ăng ký. Những cổng này ược
cấp phát cho các ứng dụng cụ thể và không nên sử dụng cho các mục ích khác.
Các cổng từ 49.152 ến 65.535 ược gọi là các cổng tạm và thường ược sử
dụng bởi các client khi liên lạc với server. Các cổng này không ược cấp phát
cho các ứng dụng cụ thể và có thể ược sử dụng cho các mục ích khác. Tuy
nhiên, việc sử dụng các cổng này có thể gây ra xung ột nếu nhiều ứng dụng cố
gắng sử dụng cùng một cổng.
1.2.2.5.Cấu trúc gói
UDP là giao thức hướng thông iệp nhỏ nhất của tầng giao vận hiện ược
mô tả trong RFC 768 của IETF.
Trong bộ giao thức TCP/IP, UDP cung cấp một giao diện rất ơn giản giữa tầng
mạng bên dưới (thí dụ, IPv4) và tầng phiên làm việc hoặc tầng ứng dụng phía trên.
UDP không ảm bảo cho các tầng phía trên thông iệp ã ược gửi i và người
gửi cũng không có trạng thái thông iệp UDP một khi ã ược gửi (Vì lý do này ôi
khi UDP còn ược gọi là Unreliable Datagram Protocol).
UDP chỉ thêm các thông tin multiplexing và giao dịch. Các loại thông tin tin cậy
cho việc truyền dữ liệu nếu cần phải ược xây dựng ở các tầng cao hơn.
Phần header của UDP chỉ chứa 4 trường dữ liệu, trong ó có 2 trường là
tùy chọn (ô nền ỏ trong bảng).
Source port:Trường này xác ịnh cổng của người gửi thông tin và có ý
nghĩa nếu muốn nhận thông tin phản hồi từ người nhận. Nếu không dùng ến thì ặt nó bằng 0.
Destination port:Trường xác ịnh cổng nhận thông tin, và trường này là cần thiết.
Length:Trường có ộ dài 16 bit xác ịnh chiều dài của toàn bộ datagram:
phần header và dữ liệu. Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu, chỉ có header. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Checksum:Trường checksum 16 bit dùng cho việc kiểm tra lỗi của phần
header và dữ liệu. Phương pháp tính checksum ược ịnh nghĩa trong RFC 768.
Do thiếu tính tin cậy, các ứng dụng UDP nói chung phải chấp nhận mất
mát, lỗi hoặc trùng dữ liệu. Một số ứng dụng như TFTP có nhu cầu phải thêm
những kỹ thuật làm tin cậy cơ bản vào tầng ứng dụng. Hầu hết các ứng dụng
UDP không cần những kỹ thuật làm tin cậy này và ôi khi nó bị bỏ i.
Streaming media, game trực tuyến và voice over IP (VoIP) là những thí dụ cho
các ứng dụng thường dùng UDP. Nếu một ứng dụng òi hỏi mức ộ cao hơn về
tính tin cậy, những giao thức như TCP hoặc mã erasure có thể ược sử dụng ể thay thế.
Thiếu những cơ chế kiểm soát tắc nghẽn và kiểm soát luồng, các kỹ thuật
dựa trên mạng là cần thiết ể giảm nguy hiệu ứng cơ tắc nghẽn dây chuyền do
không kiểm soát, tỷ lệ tải UDP cao. Nói cách khác, vì người gởi gói UDP không
thể phát hiện tắc nghẽn, các thành phần dựa trên mạng như router dùng hàng ợi
gói (packet queueing) hoặc kỹ thuật bỏ gói như là những công cụ ể giảm tải của
UDP. Giao thức Datagram Congestion Control Protocol (DCCP) ược thiết kế
như một giải pháp cho vấn ề bằng cách thêm hành vi kiểm soát tắc nghẽn cho
thiết bị ầu cuối cho các dòng dữ liệu UDP như streaming media. Mặc dù tổng
lượng lưu thông của UDP trên mạng thường chỉ vài phần trăm, nhưng có nhiều
ứng dụng quan trọng dùng UDP, bao gồm DNS, SNMP, DHCP và RIP.
1.2.2.6. Vai trò của UDP trong game multiplayer
Trong game a người chơi, UDP ược sử dụng ể truyền dữ liệu game nhanh
chóng giữa các máy tính trong mạng. Điều này cho phép các máy tính trò chơi
tương tác với nhau một cách nhanh chóng và mượt mà. Tuy nhiên, vì UDP
không ảm bảo tính nhất quán của dữ liệu, nó có thể dẫn ến các lỗi hoặc sai sót
trong game, như việc mất dữ liệu hoặc hiện tượng " ứng hình" (freeze) trong
game. Do ó, trong một số trò chơi yêu cầu tính chính xác cao, TCP có thể ược
sử dụng ể ảm bảo tính nhất quán của dữ liệu, ngay cả khi iều này có thể làm
giảm tốc ộ truyền tải.
1.2.3.Giao thức WebSocket 1.2.3.1. Định nghĩa
WebSocket là một giao thức truyền tin hai chiều giữa trình duyệt và máy
chủ, sử dụng kết nối TCP và tuân theo tiêu chuẩn IETF là RFC 6455. WebSocket
cho phép gửi và nhận tin nhắn mà không cần gửi gói tin thăm dò ể có hồi áp.
WebSocket và HTTP là hai giao thức khác nhau, nhưng ều hoạt ộng trên các cổng
80 và 443. Giao thức chuẩn của WebSocket là ws://, secure mã hóa là wss://. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
WebSocket hỗ trợ gói tin giao tiếp dưới dạng text và binary, và ược sử dụng cho
các ứng dụng real-time như chat, bảng giá chứng khoán và biểu ồ ộng.
Giao thức WebSocket ược triển khai trên hầu hết các trình duyệt mới, bao
gồm Firefox, Safari, Google Chrome, Opera và Internet Explorer từ các phiên
bản khác nhau. Tuy nhiên, như bạn ã ề cập, trong một số trình duyệt phiên bản
cũ hơn, WebSocket có thể không ược hỗ trợ hoặc bị vô hiệu hóa do lỗ hổng bảo
mật. Do ó, khi triển khai ứng dụng sử dụng WebSocket, cần xác ịnh ược ối
tượng người dùng mà ứng dụng hướng ến và ảm bảo rằng giao thức này ược hỗ
trợ và an toàn trên các trình duyệt mà họ sử dụng.
1.2.3.2. Lịch sử hình thành
WebSocket ược ề xuất bởi Ian Hickson của Google vào năm 2008 như là
một phương tiện ể cải thiện việc tương tác giữa trình duyệt và máy chủ, giúp
giảm thiểu ộ trễ và tăng khả năng phản hồi của ứng dụng web.
Sau ó, WebSocket ã ược mô tả chi tiết trong một bản nháp tiêu chuẩn của
W3C vào tháng 7 năm 2010 và cuối cùng ược chuẩn hóa trong RFC 6455 của
IETF vào tháng 12 năm 2011. Vào tháng 5 năm 2011, Google Chrome ã hỗ trợ
ầu tiên cho WebSocket. Từ ó, WebSocket ã ược triển khai trên hầu hết các trình
duyệt web phổ biến và ã trở thành một công nghệ quan trọng cho các ứng dụng web thời gian thực.
1.2.3.3. Cách thức hoạt ộng
Client (ở ây là phiên của một người chơi) yêu cầu kết nối tới Server, qua
một URL cụ thể. Trong quá trình thiết lập kết nối ói, Client sẽ gửi một gói tin
yêu cầu lên Server, chứa thông tin về giao thức WebSocket, các thông tin bổ
sung về phiên bản của giao thức và các thông tin khác. Sau khi nhận ược yêu
cầu kết nối từ Client, Server sẽ phản hồi bằng một gói tin xác nhận kết nối (gói
tin này chứa thông tin xác nhận kết nối thành công). Sau khi thiết lập kết nối
thành công, Client và Server sẽ bắt ầu truyền tải dữ liệu giữa hai bên. Dữ liệu sẽ
ược truyền tải qua một kết nối WebSocket duy nhất. Khi Client hoặc Server
muốn kết thúc phiên làm việc, họ sẽ gửi một gói tin yêu cầu óng kết nối ến bên
còn lại. Bên nhận sẽ phản hồi bằng một gói tin xác nhận óng kết nối, sau ó óng kết nối giữa hai bên.
Trong lập trình game Unity Multiplayer, WebSocket thường ược sử dụng
ể truyền tải dữ liệu trong thời gian thực và ồng bộ hóa dữ liệu giữa Client và
Server. Với WebSocket, các ứng dụng game Unity Multiplayer có thể áp ứng
ược các yêu cầu về tốc ộ truyền tải dữ liệu, tính toàn vẹn của dữ liệu và ộ chính
xác của thời gian phản hồi. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
1.2.3.4 Vai trò của websocket trong game multiplayer
WebSocket chơi một vai trò rất quan trọng trong việc xây dựng các trò
chơi a người chơi (multiplayer game) trực tuyến. Trong các trò chơi a người
chơi, các người chơi cần phải trao ổi thông tin với nhau một cách nhanh chóng
và liên tục ể giữ cho trò chơi diễn ra liên tục và mượt mà.
Với sự hỗ trợ của WebSocket, các trò chơi a người chơi có thể trao ổi thông tin
với tốc ộ cao và ộ trễ thấp giữa các máy tính của người chơi và máy chủ game.
Nhờ vậy, người chơi có thể cập nhật trạng thái của trò chơi liên tục, ồng bộ hóa
trạng thái giữa các máy tính và tương tác với nhau một cách trực tiếp và trực quan.
Bên cạnh ó, WebSocket cũng hỗ trợ việc xử lý các sự kiện (event) trên
trình duyệt, cho phép các nhà phát triển game có thể xây dựng các trò chơi a
người chơi một cách dễ dàng và linh hoạt hơn. Ngoài ra, WebSocket cũng có
khả năng nén dữ liệu ể giảm tải băng thông và tăng tốc ộ truyền dữ liệu giữa các máy tính.
Tóm lại, WebSocket là công nghệ rất quan trọng trong việc xây dựng các
trò chơi a người chơi trực tuyến, giúp cho việc trao ổi thông tin giữa các máy
tính diễn ra nhanh chóng, ồng bộ và trực tiếp hơn, tạo ra trải nghiệm chơi game
tốt hơn cho người chơi. 1.2.4.Peer to Peer(P2P) 1.2.4.1. Định nghĩa
P2P là một loại mạng máy tính, trong ó các máy tính tham gia ược coi là
bình ẳng và không có khái niệm máy chủ và máy khách. Mạng này thường ược
sử dụng ể chia sẻ tệp tin hoặc truyền dữ liệu thời gian thực. Một số mạng như
Napster, IRC sử dụng mô hình máy chủ-máy khách cho một số tác vụ, trong khi
các mạng như Gnutella hay Freenet sử dụng mô hình ồng ẳng cho tất cả các tác
vụ. Cấu trúc mạng ồng ẳng ã ược miêu tả trong tài liệu "RFC , Host Software"
năm 1969 và ã ược sử dụng rộng rãi trong các cấu trúc chia sẻ nội dung mà
không có máy chủ trung tâm. Hiện nay, khái niệm ồng ẳng ược sử dụng trong
nhiều mục ích khác nhau, không chỉ ể trao ổi tệp tin mà còn ể trao ổi thông tin
giữa người với người.
1.2.4.2. Lịch sử hình thành
Giao thức P2P (Peer-to-Peer) ã có mặt từ những năm 1990, khi các nhà
nghiên cứu và kỹ sư bắt ầu phát triển các ứng dụng ể truyền tải dữ liệu trực tiếp
giữa các máy tính mà không cần thông qua máy chủ trung gian. Các ứng dụng lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
ầu tiên của P2P bao gồm các chương trình ể chia sẻ tập tin như BitTorrent và
các chương trình chat như IRC (Internet Relay Chat).
Trong những năm ầu của internet, các ứng dụng P2P phát triển nhanh
chóng nhờ vào sự gia tăng của băng thông và tốc ộ xử lý máy tính. Tuy nhiên,
P2P ã gặp phải những thách thức liên quan ến tính bảo mật và ạo ức, bao gồm
việc chia sẻ tập tin bất hợp pháp và việc phát tán nội dung ộc hại.
Trong những năm gần ây, P2P vẫn tiếp tục phát triển và ược áp dụng
rộng rãi trong nhiều lĩnh vực, bao gồm truyền tải video trực tuyến và trò chơi
trực tuyến. Các công nghệ P2P mới cũng ược phát triển ể giải quyết các vấn ề
liên quan ến bảo mật và ạo ức, giúp P2P trở thành một công nghệ quan trọng
trong việc truyền tải dữ liệu trực tiếp giữa các máy tính. 1.2.4.3. Phân loại
Mạng P2P (peer-to-peer) là một loại mạng mà các thành viên trong mạng
óng vai trò như những người dùng ồng bộ, chia sẻ tài nguyên và cung cấp dịch
vụ cho nhau mà không có một trung tâm iều khiển duy nhất. Mạng P2P ược
phân loại dựa trên cách thức kết nối giữa các thành viên trong mạng và cách
thức hoạt ộng của mạng ó.
Có ba loại phổ biến của mạng P2P:
Mạng P2P truyền thống (Traditional P2P): Các máy tính trong mạng P2P
này kết nối trực tiếp với nhau thông qua một kết nối ơn giản point-to-point.
Mạng P2P truyền thống không có sự iều khiển trung tâm, mà thông tin ược
truyền tải trực tiếp giữa các nút. Ví dụ cho loại mạng P2P này là BitTorrent.
Mạng P2P phân tán (Decentralized P2P): Các máy tính trong mạng P2P
phân tán kết nối với nhau thông qua nhiều kết nối point-to-point. Các nút trong
mạng P2P phân tán có thể tìm kiếm các nút khác và thiết lập kết nối ến chúng.
Các nút óng vai trò như các trung tâm iều khiển phân tán, giúp dữ liệu ược phân
tán ến các nút khác trong mạng P2P. Ví dụ cho loại mạng P2P này là Gnutella.
Mạng P2P trung tâm (Centralized P2P): Các máy tính trong mạng P2P
trung tâm kết nối với một trung tâm iều khiển duy nhất, sau ó trung tâm iều
khiển chia sẻ tài nguyên và dịch vụ ến các máy tính khác. Mạng P2P trung tâm
có thể cung cấp hiệu suất cao hơn so với mạng P2P truyền thống và mạng P2P
phân tán nhưng ồng thời cũng có khả năng chịu ảnh hưởng nhiều hơn bởi sự cố
với trung tâm iều khiển. Ví dụ cho loại mạng P2P này là Skype.
1.2.4.4. Ưu iểm và nhược iểm lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
1.2.4.4.1. Ưu iểm của mạng P2P:
Không có sự phân cấp giữa các nút trong mạng, mỗi nút có thể óng vai
trò như là client hoặc server. Do ó, mạng P2P có khả năng chịu tải và truyền tải dữ liệu rất tốt.
Khả năng mở rộng tốt: Khi có thêm nút mới kết nối vào mạng, khả năng
truy cập dữ liệu sẽ ược nâng cao.
Khả năng ảm bảo tính khả dụng: Nếu một số nút trong mạng bị ngừng
hoạt ộng hoặc bị tấn công, các nút khác vẫn có thể tiếp tục truy cập dữ liệu. Chi
phí thấp: Mạng P2P không yêu cầu các máy chủ trung tâm, iều này giúp giảm
chi phí cho việc triển khai và vận hành.
1.2.4.4.2. Nhược iểm của mạng P2P:
Khả năng kiểm soát kém: Vì không có máy chủ trung tâm ể quản lý,
mạng P2P có thể gặp phải các vấn ề liên quan ến việc kiểm soát và quản lý, ặc
biệt trong việc ngăn chặn sử dụng trái phép của dữ liệu.
Tốc ộ truy cập chậm: Vì mạng P2P phải phân tải tải trọng giữa các nút,
tốc ộ truy cập dữ liệu có thể chậm hơn so với các mạng truyền thống. Các vấn ề
về bảo mật: Do mỗi nút trong mạng P2P có thể truy cập trực tiếp vào các nút
khác, việc bảo mật thông tin trên mạng P2P trở nên phức tạp hơn so với các mạng truyền thống.
1.2.4.5. Vai trò của P2P trong game multiplayer
P2P có vai trò quan trọng trong các trò chơi a người chơi trực tuyến
(multiplayer online games) bởi vì nó cho phép các người chơi kết nối trực tiếp
với nhau mà không cần thông qua một máy chủ trung tâm. Điều này có nghĩa là
khi một người chơi tương tác với người chơi khác, các dữ liệu của họ có thể
ược truyền trực tiếp giữa những người chơi ó mà không phải thông qua một
máy chủ. Điều này giảm áng kể ộ trễ và tăng tốc ộ truyền tải dữ liệu trong trò chơi.
Một ví dụ iển hình của việc sử dụng P2P trong các trò chơi a người chơi
là các trò chơi bắn súng trực tuyến như Call of Duty hoặc Battlefield. Trong các
trò chơi này, các người chơi thường ược chia thành các ội và có thể tương tác
với nhau ể thực hiện chiến thuật. Khi các người chơi cần truyền dữ liệu cho
nhau, P2P cho phép chúng truyền dữ liệu trực tiếp giữa các máy tính của họ mà
không cần thông qua máy chủ trung tâm, giảm ộ trễ và tăng tốc ộ truyền tải dữ liệu.
1.2.5. Kỹ thuật tối ưu giao thức trong Multiplayer Game
1.2.5.1. Data Synchronization lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Data Synchronization (Đồng bộ hóa dữ liệu) là kỹ thuật ược sử dụng ể ảm
bảo rằng dữ liệu giữa các máy tính trong một trò chơi a người chơi ược ồng bộ
hóa. Điều này ảm bảo rằng tất cả các máy tính có cùng thông tin về trạng thái
trò chơi và hành ộng của người chơi, giúp giảm thiểu sự khác biệt giữa các máy
tính và ảm bảo rằng các người chơi có trải nghiệm game tương ương.
Các nhà phát triển game thường sử dụng các phương pháp ồng bộ hóa dữ
liệu ể ảm bảo rằng các máy tính trong một trò chơi a người chơi ang chơi cùng
một phiên bản của trò chơi. Để ạt ược iều này, các nhà phát triển game thường
sử dụng một trong hai phương pháp sau:
Client-Server Model (Mô hình khách - máy chủ): Trong mô hình này,
một máy tính ược chọn làm máy chủ, còn các máy tính khác ược kết nối với
máy chủ. Máy chủ sẽ giữ các thông tin liên quan ến trạng thái của trò chơi và
gửi các cập nhật liên quan ến trò chơi ến các máy tính khác. Các máy tính khác
sẽ gửi các tương tác của người chơi ến máy chủ và ợi cập nhật từ máy chủ trước
khi tiếp tục chơi. Điều này giúp ảm bảo rằng các thông tin trò chơi ược ồng bộ hóa giữa các máy tính.
Peer-to-Peer Model (Mô hình ngang hàng): Trong mô hình này, các máy
tính trong trò chơi a người chơi kết nối trực tiếp với nhau, không thông qua một
máy chủ trung gian nào. Khi một người chơi thực hiện một hành ộng, thông tin
về hành ộng ó sẽ ược gửi ến các máy tính khác ể ảm bảo rằng các thông tin trò
chơi ược ồng bộ hóa giữa các máy tính. Để ảm bảo rằng các thông tin trò chơi
ược ồng bộ hóa giữa các máy tính, các nhà phát triển game thường sử dụng các
kỹ thuật như Interpolation và Extrapolation
1.2.5.2. Sử dụng giao thức phù hợp với thiết kế
Việc sử dụng úng giao thức với thiết kế ban ầu rất quan trọng trong game
multiplayer vì có thể sẽ giảm thiếu ược kha khá ộ trễ.
1.2.5.3. Tối ưu hoá mạng
Tối ưu hóa mạng là quá trình tìm kiếm các cách tốt nhất ể sử dụng tài
nguyên mạng hiệu quả, giảm thiểu ộ trễ và tăng tốc ộ truyền dữ liệu trong mạng.
Điều này bao gồm việc thiết kế, triển khai và quản lý mạng sao cho các dịch vụ
và ứng dụng có thể hoạt ộng hiệu quả nhất.
Các kỹ thuật tối ưu hóa mạng có thể ược áp dụng ở nhiều cấp ộ khác
nhau, từ thiết bị mạng nhỏ ến mạng lớn phân tán trên nhiều vị trí ịa lý khác
nhau. Một số kỹ thuật phổ biến trong tối ưu hóa mạng bao gồm: Thiết kế
mạng: Bao gồm lựa chọn các thiết bị mạng phù hợp, phân bổ tài nguyên
mạng sao cho hợp lý, ịnh vị và tối ưu hóa các ường truyền mạng. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Cân bằng tải: Cân bằng tải giúp phân bổ tải trọng mạng ồng ều trên các
thiết bị, giảm thiểu ộ trễ và ảm bảo tốc ộ truyền dữ liệu cao.
QoS (Quality of Service): QoS giúp quản lý và iều khiển lưu lượng mạng,
ảm bảo rằng các ứng dụng quan trọng như trò chơi trực tuyến, video trực tuyến
hoặc giọng nói không bị gián oạn trong khi các ứng dụng khác như truyền tải
tệp tin, email hoặc các truy cập web không quan trọng ược xử lý sau.
Compression (nén dữ liệu): Nén dữ liệu giúp giảm lưu lượng mạng cần
thiết ể truyền dữ liệu, tăng tốc ộ truyền dữ liệu và giảm ộ trễ. Caching:
Caching là quá trình lưu trữ tạm thời các tài nguyên mạng ể giảm thiểu lưu
lượng truy cập ến máy chủ chính, giảm ộ trễ và tăng tốc ộ truyền dữ liệu.
Định tuyến thông minh: Định tuyến thông minh giúp ưa các gói dữ liệu
trên ường truyền ngắn nhất có thể, giảm thiểu ộ trễ và tăng tốc ộ truyền dữ liệu.
1.2.5.4. Sử dụng máy chủ chuyên dụng
Máy chủ chuyên dụng (Dedicated Servers) có thể giúp cải thiện hiệu suất
của game a người chơi bằng cách tập trung nguồn lực vào việc quản lý các kết
nối và giảm thiểu tải cho các máy tính của người chơi.
Traffic shaping:Traffic shaping là một kỹ thuật quản lý và iều khiển lưu
lượng mạng ể giảm thiểu ộ trễ (latency) và ảm bảo chất lượng dịch vụ (Quality
of Service - QoS) cho các ứng dụng quan trọng trên mạng. Kỹ thuật này thường
ược sử dụng ể iều khiển lưu lượng trên các mạng có nhiều người dùng hoặc
nhiều ứng dụng sử dụng ồng thời mạng.
Traffic shaping sử dụng một bộ lọc ể phân loại và ưu tiên lưu lượng mạng
dựa trên các thông tin như ịa chỉ IP, cổng giao tiếp, giao thức và loại ứng dụng.
Sau ó, nó áp dụng các giới hạn tốc ộ truy cập và ộ ưu tiên ể ảm bảo rằng các
ứng dụng quan trọng như trò chơi trực tuyến, video trực tuyến hoặc giọng nói
không bị gián oạn trong khi các ứng dụng khác như truyền tải tệp tin, email
hoặc các truy cập web không quan trọng ược xử lý sau.
Traffic shaping có thể ược thực hiện tại các iểm khác nhau trên mạng, bao
gồm các thiết bị như bộ ịnh tuyến, tường lửa hoặc cơ sở dữ liệu của nhà cung
cấp dịch vụ mạng. Nó cũng có thể ược cài ặt trên các thiết bị ầu cuối của người
dùng như router hoặc máy tính ể bàn.
1.2.6. Một số ví dụ
● League of Legends: Game này sử dụng giao thức UDP (User Datagram
Protocol) ể truyền dữ liệu trong game, bao gồm cả thông tin về vị trí và
hành ộng của người chơi, âm thanh và hình ảnh. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
● Fortnite: Game này sử dụng giao thức UDP và TCP (Transmission
Control Protocol) ể truyền dữ liệu trong game, bao gồm cả các sự kiện, âm thanh và hình ảnh.
● Counter-Strike: Global Offensive: Game này sử dụng giao thức UDP ể
truyền dữ liệu liên quan ến hành ộng của người chơi, bao gồm cả vị trí, ạn và hình ảnh.
● World of Warcraft: Game này sử dụng giao thức TCP ể truyền dữ liệu
trong game, bao gồm cả thông tin về vị trí, hành ộng và chat giữa các người chơi.
● Call of Duty: Modern Warfare: Game này sử dụng giao thức UDP ể
truyền dữ liệu liên quan ến hành ộng của người chơi, bao gồm cả vị trí, hình ảnh và âm thanh. 1.2.7. Kết luận
● Giao thức mạng trong game a người chơi tương ối quan trọng vì sẽ liên
quan mật thiết ến ộ trễ, trải nghiệm của người sử dụng ● Lựa chọn giao
thức mạng sẽ phụ thuộc vào bản thiết kế ban ầu ● Các giao thức thường
ược sử dụng nhất trong game multiplayer: Client-server, TCP,UDP, P2P
● Ứng dụng của giao thức mạng gồm ể kiểm soát ộ trễ, ảm bảo tính ồng
bộ, nhất quán, tính mở rộng và bảo mật của game 1.3. Game Design Document 1.3.1.Tổng quan GDD 1.3.1.1.Khái niệm
Game Design Document (GDD) là một tài liệu chi tiết và toàn diện nhằm
mô tả và hướng dẫn về một trò chơi. GDD bao gồm các phần thông tin về ề tài
của trò chơi, cách thức chơi, hình ảnh, âm thanh, cấu trúc và luật chơi, yêu cầu
phần cứng và phần mềm, hướng dẫn phát triển trò chơi, và các yếu tố khác liên
quan ến việc phát triển trò chơi.
GDD ược sử dụng như một tài liệu tham khảo cho ội ngũ phát triển trò
chơi. Nó giúp các nhà phát triển ưa ra các quyết ịnh quan trọng trong quá trình
phát triển, từ khâu thiết kế, sản xuất, ến kiểm tra và hoàn thiện sản phẩm. GDD
cũng ược sử dụng như một công cụ quản lý dự án ể giám sát quá trình phát triển
và ảm bảo rằng dự án ược hoàn thành úng tiến ộ.
GDD sẽ ược cập nhật và sửa ổi trong suốt quá trình phát triển ể phù hợp
với mọi thay ổi hoặc ý tưởng mới nảy sinh. Tuân theo một GDD ược thiết kế
tốt, các nhà phát triển trò chơi có thể tạo ra những trò chơi thành công áp ứng
ược kỳ vọng của ối tượng mục tiêu. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
1.3.1.2. Mục ích và vai trò của GDD
Vai trò của Game Design Document (GDD) trong quá trình phát triển trò
chơi là rất quan trọng. GDD là tài liệu quan trọng và toàn diện nhất về trò chơi,
cung cấp cho ội ngũ phát triển các thông tin cần thiết về trò chơi ể thực hiện các
công việc của họ. Mục ích chính của GDD bao gồm:
Là tài liệu hướng dẫn: GDD là tài liệu chi tiết về trò chơi, cung cấp cho
ội ngũ phát triển các thông tin cần thiết ể thực hiện công việc của họ. Nó cũng
óng vai trò như một tài liệu tham khảo ể ảm bảo rằng trò chơi ược phát triển
theo úng tiến ộ và áp ứng các yêu cầu của dự án.
Xác ịnh mục tiêu và kế hoạch phát triển game: GDD giúp ội ngũ phát
triển game hiểu rõ mục tiêu và kế hoạch phát triển game của mình. Nó cung
cấp cho các nhà phát triển game một cái nhìn tổng quan về game và giúp họ
ánh giá ược các mục tiêu chính của game.
Hỗ trợ quản lý dự án: GDD ược sử dụng như một công cụ quản lý dự án
ể theo dõi tiến ộ phát triển của trò chơi và ảm bảo rằng dự án ược hoàn thành
úng tiến ộ. Nó cũng giúp các nhà phát triển quản lý dự án và tối ưu hóa các quy trình sản xuất.
Cung cấp thông tin cho các bộ phận khác nhau: GDD cung cấp thông tin
về trò chơi cho các bộ phận khác nhau, bao gồm cả ội ngũ kỹ thuật, ội ngũ nghệ
thuật, ội ngũ âm thanh và ội ngũ sản xuất. Nó giúp các nhà phát triển hiểu rõ
mục tiêu của trò chơi và tạo ra các tính năng và yếu tố khác nhau trong trò chơi.
Tăng tính chuyên nghiệp của trò chơi: GDD giúp tăng tính chuyên nghiệp
của trò chơi bằng cách ảm bảo rằng các tính năng, cấu trúc và luật chơi ược thiết
kế úng cách. Nó cũng ảm bảo rằng trò chơi áp ứng ược các yêu cầu của người
chơi và tạo ra một trải nghiệm chơi game tốt nhất.
Giảm thiểu các rủi ro trong quá trình sản xuất game: GDD giúp ội ngũ
phát triển game dự oán và ối phó với các rủi ro trong quá trình sản xuất game.
Nó giúp giảm thiểu các lỗi thiết kế, cải thiện hiệu suất và ảm bảo chất lượng game.
Mục ích của GDD là ảm bảo rằng toàn bộ ội ngũ phát triển ều có cùng một
hiểu biết về trò chơi cần phát triển, từ ý tưởng ban ầu ến quá trình hoàn thành.
GDD cung cấp một tài liệu chi tiết, hướng dẫn các thành viên trong ội ngũ về
cách phát triển trò chơi và giúp ảm bảo rằng tất cả các phần của trò chơi ược phát
triển theo úng yêu cầu. Nó cũng là công cụ quản lý ể kiểm soát quá trình phát
triển trò chơi, ảm bảo rằng dự án ược phát triển úng hướng và úng tiến ộ. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
1.3.2.Các thành phần của GDD
1.3.2.1. Giới thiệu (Introduction)
Phần giới thiệu sẽ giới thiệu ội ngũ phát triển và mô tả về sản phẩm trò
chơi. Phần này cũng có thể ưa ra các mục tiêu và mục ích của trò chơi.
1.3.2.2. Mô tả trò chơi (Game overview)
Phần này sẽ cung cấp một cái nhìn tổng quan về trò chơi, bao gồm cốt
truyện, môi trường, nhân vật, tính năng, gameplay, hệ thống iều khiển và các
yêu cầu phần cứng và phần mềm. Phần Game Overview giúp người ọc hiểu rõ
hơn về trò chơi, giúp cho ội ngũ phát triển hiểu rõ hơn về mục tiêu và ý tưởng
của sản phẩm. Điều này giúp cho quá trình phát triển trò chơi diễn ra thuận lợi
hơn, ảm bảo sản phẩm ạt ược mục tiêu dự kiến và áp ứng nhu cầu của người chơi. 1.3.2.3. Gameplay
Thành phần Gameplay (hoặc còn gọi là Mechanics) là một phần quan
trọng và bao gồm các yếu tố chính về cách thức chơi và cách thức tương tác
giữa người chơi và trò chơi. Thông tin cơ bản về Gameplay bao gồm:
Mô tả chung: Cung cấp một mô tả chung về cách thức chơi và các yếu tố
chính của trò chơi, bao gồm cách iều khiển, các hành ộng và kỹ năng có sẵn, cơ
chế phần thưởng và hệ thống kỹ năng.
Cơ chế chơi: Mô tả cách thức chơi và cách tương tác giữa người chơi và
trò chơi, bao gồm các cơ chế iều khiển, cách thức tương tác với các ối tượng
trong trò chơi, cách thức tương tác với môi trường và các cơ chế ối ầu.
Các loại nhiệm vụ: Mô tả các loại nhiệm vụ trong trò chơi, bao gồm
nhiệm vụ chính và các nhiệm vụ phụ, cùng với các yếu tố thời gian, khó khăn và phần thưởng.
Hệ thống kỹ năng: Mô tả các kỹ năng, trang bị và công cụ có sẵn trong
trò chơi, bao gồm cách thức sử dụng, hiệu ứng và cơ chế nâng cấp. Cơ chế ối
ầu: Mô tả cơ chế ối ầu trong trò chơi, bao gồm các cơ chế chiến ấu, cơ chế ối
ầu với các ối thủ và các yếu tố liên quan ến chiến lược. Thông tin về Gameplay
giúp người phát triển có thể thiết kế cơ chế chơi và các nhiệm vụ phù hợp với
mục tiêu của trò chơi. Nó cũng giúp cho người chơi có thể hiểu rõ về các yếu
tố cơ bản của trò chơi và có thể chơi một cách hiệu quả và thú vị hơn.
1.3.2.4. Nhân vật (Characters) lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Thành phần Characters là một phần rất quan trọng, bao gồm thông tin về
các nhân vật trong trò chơi. Các thông tin cơ bản về nhân vật bao gồm:
Tên nhân vật: Đây là tên của nhân vật trong trò chơi.
Sơ lược về nhân vật: Mô tả các thông tin cơ bản về nhân vật, bao gồm ặc iểm
ngoại hình, tuổi tác, tính cách, bản chất và các thông tin khác.
Năng lực và kỹ năng: Mô tả các năng lực, kỹ năng và khả năng ặc biệt của nhân
vật, bao gồm các tính năng cơ bản và các kỹ năng ặc biệt.
Lịch sử của nhân vật: Mô tả lịch sử, quá khứ và các sự kiện quan trọng
liên quan ến nhân vật trong trò chơi.
Mối quan hệ: Mô tả các mối quan hệ giữa nhân vật với nhau, bao gồm các mối
quan hệ với nhân vật chính và các nhân vật phụ khác.
Tính năng ộc áo: Mô tả các tính năng ộc áo của nhân vật, giúp tạo ra sự
khác biệt và thu hút người chơi.
Thông tin về nhân vật giúp người ọc hiểu rõ hơn về nhân vật và cách
nhân vật tương tác với trò chơi. Các thông tin này giúp ội ngũ phát triển tạo ra
các nhân vật phù hợp với mục tiêu của trò chơi và giúp cho người chơi có trải
nghiệm tốt hơn khi tham gia vào trò chơi.
1.3.2.5. Cấp ộ (Levels)
Thành phần Game Levels là một phần quan trọng và bao gồm thông tin
về các cấp ộ, màn chơi, hoặc các vùng khác nhau trong trò chơi. Thông tin cơ
bản về Game Levels bao gồm:
Mô tả chung: Cung cấp một mô tả chung về các cấp ộ hoặc màn chơi
trong trò chơi, bao gồm cách thức chơi, mục tiêu của mỗi cấp ộ, các thách thức
và yêu cầu ể hoàn thành.
Độ khó: Mô tả mức ộ khó của từng cấp ộ, tầm vực của cấp ộ, sự phức tạp
của bản ồ và thời gian yêu cầu ể hoàn thành.
Mô tả bản ồ: Cung cấp các bản ồ hoặc mô tả cấp ộ chi tiết ể người chơi có
thể biết ược các vùng và ịa iểm khác nhau trong cấp ộ.
Yếu tố trang trí: Mô tả các yếu tố trang trí trong cấp ộ, bao gồm các ối
tượng trang trí, màu sắc, hiệu ứng ánh sáng, vật phẩm và các yếu tố khác.
Yếu tố ộng: Mô tả các yếu tố ộng trong cấp ộ, bao gồm các nhân vật và
quái vật, các tình huống xảy ra trong cấp ộ, các yếu tố di chuyển và các yếu tố khác.
Thông tin về Game Levels giúp người phát triển có thể thiết kế các cấp ộ
hoặc màn chơi phù hợp với mục tiêu của trò chơi. Nó cũng giúp cho người lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
chơi có thể hiểu rõ về các yếu tố và thách thức mà họ sẽ ối mặt trong từng cấp
ộ, giúp họ cảm thấy thú vị và hứng thú hơn khi tham gia vào trò chơi.
1.3.2.6. Thiết kế âm thanh (Sound Design)
Trong Game Design Document (GDD), thành phần Sound Design là một
phần quan trọng và bao gồm các yếu tố chính về âm thanh và nhạc nền của trò
chơi. Thông tin cơ bản về Sound Design bao gồm:
Mô tả chung: Cung cấp một mô tả chung về các yếu tố âm thanh trong trò
chơi, bao gồm nhạc nền, âm thanh hiệu ứng và giọng nói của nhân vật. Đặc iểm
âm thanh: Mô tả các ặc iểm của các âm thanh trong trò chơi, bao gồm âm lượng,
âm sắc, tần số và cường ộ. Nó cũng có thể bao gồm các yếu tố kỹ thuật như ịnh
dạng tệp âm thanh và kích thước tệp.
Hệ thống âm thanh: Mô tả cách thức các âm thanh ược sử dụng trong trò
chơi, bao gồm cách thức phát các âm thanh trong từng tình huống và cách thức
tương tác giữa các âm thanh.
Nhạc nền: Mô tả các bài hát và âm nhạc ược sử dụng trong trò chơi, bao
gồm cách thức phát nhạc nền, tần số và âm lượng của nhạc nền, cũng như cách
thức sử dụng nhạc nền trong từng tình huống.
Âm thanh hiệu ứng: Mô tả các âm thanh hiệu ứng trong trò chơi, bao gồm
các âm thanh liên quan ến hành ộng của người chơi và các ối tượng trong trò chơi.
Thông tin về Sound Design cần ược cung cấp ể giúp nhà sản xuất âm
thanh và các nhà phát triển có thể tạo ra các âm thanh và nhạc nền phù hợp với
mục tiêu của trò chơi. Nó cũng giúp cho người chơi có thể có ược trải nghiệm
âm thanh tốt nhất, giúp tăng tính tương tác và chân thật của trò chơi.
1.3.2.7. Đồ hoạ và phong cách nghệ thuật (Art design & Art style)
Thành phần Art Design là một phần rất quan trọng, bao gồm thông tin về
thiết kế nghệ thuật trong trò chơi. Các thông tin cơ bản về Art Design bao gồm:
Phong cách nghệ thuật: Mô tả phong cách nghệ thuật ược sử dụng trong
trò chơi, bao gồm cách thức thiết kế nhân vật, cảnh quan, vật phẩm, âm thanh,
ánh sáng, màu sắc và các yếu tố khác.
Đồ họa: Mô tả các yêu cầu về ồ họa trong trò chơi, bao gồm kích thước
màn hình, ộ phân giải, tốc ộ khung hình, kiểu dáng của các ối tượng, cách thức
hiển thị thông tin, các hiệu ứng hình ảnh và các yếu tố khác.
m thanh và nhạc nền: Mô tả các yêu cầu về âm thanh và nhạc nền, bao gồm các lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
yếu tố như âm lượng, chất lượng âm thanh, hiệu ứng âm thanh, nhạc nền, và các yếu tố khác.
Hiệu ứng ặc biệt: Mô tả các yêu cầu về hiệu ứng ặc biệt như hiệu ứng ánh
sáng, hiệu ứng nước, hiệu ứng gió, hiệu ứng bóng tối, hiệu ứng hình ảnh và các yếu tố khác.
Trang phục và trang trí: Mô tả các yêu cầu về trang phục và trang trí
trong trò chơi, bao gồm cách thiết kế trang phục cho các nhân vật, thiết kế cảnh
quan và các yếu tố trang trí khác.
Thông tin về Art Design cần ược chi tiết và ầy ủ, giúp ội ngũ phát triển
tạo ra các yếu tố nghệ thuật phù hợp với mục tiêu của trò chơi và giúp cho
người chơi có trải nghiệm tốt hơn khi tham gia vào trò chơi. Các thông tin này
giúp ảm bảo sự nhất quán về hình ảnh và âm thanh trong trò chơi, tạo ra một trải
nghiệm ồ họa ẹp mắt và thú vị cho người chơi..
1.3.2.8. Hệ thống (Systems)
Phần này sẽ mô tả các hệ thống trong trò chơi, bao gồm hệ thống chính,
hệ thống phụ và hệ thống tiện ích.
1.3.2.9. Tính năng (Features)
Phần này sẽ mô tả các tính năng trong trò chơi, bao gồm các tính năng chính và tính năng phụ.
1.3.2.10. Kiểm tra và ánh giá (Testing and Evaluation)
Thành phần Testing and Evaluation là một phần quan trọng và bao gồm
các yếu tố chính về quá trình kiểm tra và ánh giá trò chơi. Thông tin cơ bản về
Testing and Evaluation bao gồm:
Mô tả chung: Cung cấp một mô tả chung về quá trình kiểm tra và ánh giá
trò chơi, bao gồm các phương pháp và tiêu chuẩn ược sử dụng ể ánh giá trò chơi.
Testing Plan: Mô tả chi tiết các kế hoạch kiểm tra và ánh giá trò chơi, bao
gồm các bước cần thiết ể thực hiện quá trình kiểm tra, bao gồm việc sử dụng
các công cụ kiểm tra và phương pháp o lường hiệu quả.
User Testing: Mô tả cách thức sử dụng các người chơi thực ể kiểm tra và
ánh giá trò chơi, bao gồm cách thức lựa chọn người chơi, phương pháp thu thập
phản hồi và cách thức sử dụng các kết quả ể cải thiện trò chơi.
Performance Testing: Mô tả cách thức kiểm tra hiệu suất của trò chơi, bao
gồm tốc ộ khung hình, thời gian áp ứng và ộ phân giải, và cách thức sử dụng kết
quả ể cải thiện trò chơi. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Quality Assurance: Mô tả các tiêu chuẩn chất lượng ược sử dụng ể ảm
bảo trò chơi áp ứng các yêu cầu về chất lượng, bao gồm các tiêu chí như ộ ổn
ịnh, tính tương thích và ộ chân thật.
1.3.2.11. Kế hoạch phát triển (Development Plan)
Thông tin về Development Plan cung cấp một bản tóm tắt chi tiết về quy
trình phát triển trò chơi, giúp ảm bảo rằng quá trình phát triển ược thực hiện một
cách hiệu quả và tiết kiệm thời gian và ngân sách. Nó cũng giúp các thành viên
trong nhóm phát triển có một mục tiêu rõ ràng và sự hiểu biết ầy ủ về quá trình
phát triển, giúp tăng tính chuyên nghiệp và ộ tin cậy của dự án phát triển.
Mục tiêu phát triển: Mô tả mục tiêu chính của dự án phát triển, bao gồm
các thành phần và tính năng chính của trò chơi.
Lộ trình phát triển: Mô tả các bước phát triển trò chơi, bao gồm các giai
oạn và công việc cụ thể ược thực hiện trong từng giai oạn.
Thời gian và ngân sách: Mô tả kế hoạch thời gian và ngân sách cho từng
giai oạn của quá trình phát triển, bao gồm thời gian hoàn thành, các khoản chi
phí cần thiết và các nguồn tài chính dự kiến.
Nhân sự: Mô tả những người cần thiết ể thực hiện quá trình phát triển,
bao gồm các vai trò và trách nhiệm cụ thể của từng thành viên trong nhóm phát triển.
Công cụ và công nghệ: Mô tả các công cụ và công nghệ sẽ ược sử dụng ể
phát triển trò chơi, bao gồm các ngôn ngữ lập trình, phần mềm phát triển và các
công cụ quản lý dự án.
1.3.3. Game Pitch-Tiền ề của GDD
Game pitch là một tài liệu trình bày ý tưởng trò chơi ể giới thiệu với ối
tác hoặc các nhà phát triển game khác. Nó là một phần quan trọng của quá trình
phát triển game, ặc biệt là trong giai oạn ầu tiên của dự án.
Game Pitch Document sẽ ược bạn trình bày cho team, người quản lý dự án hoặc
bất cứ cá nhân tổ chức nào có quyền quyết ịnh việc game bạn ề xuất có nên ược
tiến hành sản xuất hay không. Vai trò của Game pitch:
Giới thiệu ý tưởng: Game pitch giúp người ọc hiểu ược tầm nhìn và ý
tưởng của trò chơi. Nó giúp truyền tải thông iệp của trò chơi một cách rõ ràng
và chi tiết ể người ọc có thể hiểu ược những iểm ặc biệt của trò chơi. Lôi cuốn
ối tác hoặc nhà ầu tư: Game pitch cũng có chức năng lôi cuốn ối tác hoặc nhà lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
ầu tư với ý tưởng trò chơi của bạn. Nó giúp thuyết phục ối tác hoặc nhà ầu tư
rằng trò chơi của bạn là áng ầu tư và có tiềm năng lớn.
Tạo ộng lực cho nhóm phát triển: Game pitch có thể truyền cảm hứng cho
nhóm phát triển ể phát triển trò chơi. Nó là một cách ể ộng viên và thúc ẩy
nhóm phát triển ể làm việc chăm chỉ hơn và tập trung vào mục tiêu.
Cập nhật ý tưởng trò chơi: Game pitch có thể giúp cập nhật ý tưởng trò
chơi và làm cho nó trở nên tốt hơn. Qua quá trình viết pitch, các ý tưởng mới có
thể ược tạo ra hoặc iều chỉnh ể tạo nên một sản phẩm tốt hơn.
1.3.4. Các giai oạn khi xây dựng GDD
1.3.4.1. Giai oạn ịnh hình
1. Khái niệm Core loop
Core loop là một khái niệm quan trọng trong game design, ược hiểu ơn
giản là chu trình chơi game cơ bản và lặp lại nhất trong toàn bộ trò chơi. Nó bao
gồm các hành ộng cơ bản mà người chơi phải thực hiện ể ạt ược mục tiêu chính
của trò chơi. Các hành ộng này có thể bao gồm việc thu thập tài nguyên, chiến
ấu với kẻ ịch, giải ố, hoặc thực hiện một loạt các nhiệm vụ nhỏ ể ạt ược mục tiêu lớn hơn.
Core loop rất quan trọng trong game design vì nó giúp ịnh hình trải nghiệm chơi
game cơ bản của người chơi. Một core loop tốt sẽ giúp cho trò chơi trở nên gây
nghiện và hấp dẫn hơn, ồng thời cung cấp cho người chơi một mục tiêu rõ ràng
ể ạt ược. Nó cũng giúp cho các nhà phát triển game có thể tối ưu hóa trò chơi và
tăng tính khả thi trong việc phát triển sản phẩm.
2. Khái niệm Game Elements và Game Mechanic
Game Elements: Là các yếu tố cơ bản và không thể thiếu trong một trò
chơi. Chúng bao gồm các thành phần như nhân vật, môi trường, âm thanh, hình
ảnh, câu chuyện, nhiệm vụ và các tính năng khác. Game Elements giúp ịnh hình
và xác ịnh trải nghiệm chơi game, tạo ra sự ộc áo cho trò chơi và giúp tăng tính hấp dẫn của trò chơi.
Game Mechanics: Là các quy tắc, cơ chế và phương pháp chơi game.
Chúng bao gồm các yếu tố như các hành ộng, sự tương tác giữa người chơi và
trò chơi, các quy luật và cách thức hoạt ộng của các yếu tố trong trò chơi. Game
Mechanics là nền tảng của trò chơi, giúp xác ịnh cách chơi, cung cấp cho người
chơi một mục tiêu và tạo ra một trải nghiệm chơi game cụ thể.
3. Khái niệm Game story lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Game story là một phần quan trọng trong game design, ó là câu chuyện
ược xây dựng xung quanh trò chơi. Game story có thể bao gồm các yếu tố như
lịch sử, thế giới, nhân vật, nhiệm vụ và cốt truyện.
Một câu chuyện tốt có thể giúp người chơi tìm hiểu và hiểu rõ hơn về thế
giới và nhân vật của trò chơi. Nó cũng có thể tạo ra sự kết nối giữa người chơi
và trò chơi, ưa họ vào một thế giới ảo và làm cho họ cảm thấy như mình ang là
một phần của câu chuyện.
Game story có thể ược kể qua các cảnh cắt, phần diễn ạt của nhân vật,
hoặc thông qua các tài liệu trong trò chơi như trang bị, tài liệu tìm thấy hoặc tin
tức. Nó có thể giúp tạo ra một trải nghiệm chơi game ầy thú vị và gây ấn tượng cho người chơi.
4. Định nghĩa Art Style trong game
Art style trong game bao gồm tất cả các yếu tố tạo hình nhân vật, môi
trường, giao diện và tất cả các yếu tố liên quan ến hình ảnh trong trò chơi. Đây
là một phần quan trọng trong game design, bởi vì nó có thể ảnh hưởng ến trải
nghiệm chơi game của người chơi.
Art style có thể ược xác ịnh bằng nhiều yếu tố khác nhau, bao gồm ồ họa,
màu sắc, hình dáng, kích thước, ộ phức tạp và cảm xúc. Một số game sử dụng
art style thực tế, trong khi các game khác sử dụng art style cartoon hoặc anime.
Một số game sử dụng art style a dạng ể tạo ra nhiều thế giới và môi trường khác
nhau trong cùng một trò chơi.
Art style cũng có thể tác ộng ến nhận diện thương hiệu của game. Khi
người chơi nhìn thấy một hình ảnh từ game, họ có thể nhận ra ược ngay game ó
là của ai dựa trên art style của nó. Do ó, art style là một phần quan trọng của
game design và phải ược xác ịnh và phát triển một cách cẩn thận ể tạo ra một
trải nghiệm chơi game tốt.
5. Khái niệm Game Flow
Game Flow là quá trình diễn ra của trò chơi, bao gồm các giai oạn và hoạt
ộng mà người chơi phải trải qua ể hoàn thành trò chơi.
Game flow trong GDD bao gồm mô tả về cách các cấp ộ ược liên kết với
nhau, những nhiệm vụ cần phải hoàn thành ể tiếp tục chơi trò chơi, những kỹ
năng và khả năng cần thiết của nhân vật ể hoàn thành các nhiệm vụ và tiến ộ hoàn thành trò chơi.
Game flow trong GDD cũng mô tả về những iểm dừng, những sự kiện
quan trọng và các thách thức mà người chơi phải ối mặt trong suốt quá trình lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
chơi game. Nó cũng phải ược thiết kế ể ảm bảo tính cân ối trong trò chơi và tạo
ra một trải nghiệm chơi game tuyệt vời cho người chơi.
1.3.4.2. Giai oạn phát triển ● Level design ● Sound design ● Trigger
1.3.4.3. Giai oạn vận hành
Giai oạn vận hành trong GDD là giai oạn cuối cùng của quá trình phát
triển trò chơi, nơi mà sản phẩm cuối cùng ược hoàn thiện và triển khai cho
người dùng cuối. Trong giai oạn này, các hoạt ộng chính bao gồm:
Sử dụng GDD ể hỗ trợ việc triển khai và vận hành trò chơi: Trong giai
oạn này, GDD ược sử dụng như một công cụ hỗ trợ cho các nhân viên
phát triển, ể ảm bảo rằng các yêu cầu, tính năng và cấu trúc của trò chơi
ược triển khai và vận hành úng cách.
Cập nhật GDD khi cần thiết: cập nhật GDD khi cần thiết ể ảm bảo rằng
tất cả các thông tin ược ồng bộ và chính xác. Điều này giúp ảm bảo tính khả thi
và hiệu quả của quá trình phát triển trò chơi
1.4. Smartfox và Photon Engine 1.4.1. Smartfox 1.4.1.1. Khái niệm
Smartfox là một hệ thống máy chủ game a người chơi thời gian thực,
cung cấp các dịch vụ mạnh mẽ ể phát triển và triển khai các ứng dụng game a
người chơi trên các nền tảng khác nhau. Nền tảng này hỗ trợ việc tạo và quản lý
các phòng chơi, giao tiếp thời gian thực giữa các người chơi, quản lý tài khoản
và xử lý dữ liệu trong game.
1.4.1.2. Lịch sử ra ời
Năm 2004: SmartFoxServer ra mắt lần ầu với mục tiêu cung cấp một giải
pháp máy chủ game a người chơi thời gian thực mạnh mẽ và linh hoạt. Phiên
bản ầu tiên của SmartFoxServer ã mang lại những tính năng cơ bản ể tạo và
quản lý một môi trường game a người chơi trên nền tảng web.
Năm 2006: SmartFoxServer 1.6 ược ra mắt, ưa ra các cải tiến và bổ sung
tính năng mới, bao gồm hỗ trợ Flash MX 2004 và ActionScript 2. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Năm 2008: SmartFoxServer 1.6.6 ược giới thiệu với việc cung cấp hỗ trợ
ầy ủ cho ActionScript 3, cho phép nhà phát triển sử dụng ngôn ngữ lập trình
mạnh mẽ này ể phát triển ứng dụng game a người chơi.
Năm 2010: SmartFoxServer 2.0 ược ra mắt, ây là phiên bản áng chú ý với
nhiều cải tiến áng kể về hiệu suất, bảo mật và khả năng mở rộng. Phiên bản này
cung cấp một kiến trúc mới và mạnh mẽ hơn ể áp ứng nhu cầu ngày càng tăng
của các ứng dụng game a người chơi thời gian thực.
Kể từ ó, SmartFoxServer ã tiếp tục phát triển và ra mắt các phiên bản mới
với nhiều cải tiến và bổ sung tính năng ể áp ứng các yêu cầu và xu hướng mới
trong lĩnh vực game a người chơi thời gian thực. 1.4.1.3. Kiến trúc
Smartfox sử dụng kiến trúc client-server, trong ó máy chủ Smartfox
Server là trung tâm iều khiển và quản lý các kết nối từ các client game. Máy chủ
xử lý việc kết nối, giao tiếp và ồng bộ hóa dữ liệu giữa các client. Các client
game sử dụng SDK của Smartfox ể kết nối và gửi yêu cầu ến máy chủ.
Client-Server Model: Smartfox tuân theo mô hình Client-Server, trong ó
máy chủ (server) chịu trách nhiệm xử lý logic game và duy trì trạng thái của các
phiên chơi, còn các máy khách (clients) kết nối với máy chủ ể gửi và nhận dữ liệu.
Cơ sở hạ tầng phân tán: Smartfox cho phép xây dựng hệ thống máy chủ
phân tán, trong ó có thể có nhiều máy chủ game chạy song song và chia sẻ tải
công việc. Điều này giúp tối ưu hiệu suất và ộ mở rộng của hệ thống, cho phép
xử lý số lượng lớn người chơi cùng một lúc.
Giao thức truyền dữ liệu: Smartfox sử dụng giao thức truyền dữ liệu
TCP/IP ể giao tiếp giữa máy chủ và máy khách. Điều này ảm bảo tính tin cậy và
ộ chính xác trong việc truyền dữ liệu game a người chơi.
API và SDK: Smartfox cung cấp các API và SDK phong phú cho nhiều
ngôn ngữ lập trình khác nhau, bao gồm ActionScript, JavaScript, Java, C#, và
Unity. Điều này giúp nhà phát triển dễ dàng tích hợp và phát triển ứng dụng
game trên nền tảng Smartfox.
1.4.1.4. Các thành phần của Smartfox
Smartfox Server: Đây là thành phần chính của hệ thống Smartfox, chịu
trách nhiệm xử lý các yêu cầu từ các máy khách và quản lý trạng thái của phiên
chơi. Smartfox Server cung cấp các tính năng cơ bản như kết nối, xử lý sự kiện,
truyền dữ liệu và quản lý người dùng. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Extensions: Smartfox cho phép phát triển các tiện ích mở rộng
(extensions) ể tùy chỉnh và mở rộng chức năng của máy chủ. Extensions ược
viết bằng ngôn ngữ lập trình Java và có thể ược tích hợp ể xử lý logic game
phức tạp, xây dựng giao diện người dùng tùy chỉnh và thực hiện các chức năng ặc biệt khác.
Smartfox Client API: Smartfox cung cấp một API (Application
Programming Interface) ể phát triển các ứng dụng máy khách (clients) ể kết nối
và tương tác với máy chủ Smartfox. API này có sẵn cho nhiều ngôn ngữ lập
trình khác nhau, bao gồm Java, C#, JavaScript, ActionScript và Objective-C.
Trình quản lý Room (Room Manager): Smartfox cung cấp trình quản lý Room
ể quản lý và iều phối các phiên chơi.
Trình quản lý Room cho phép tạo, xóa, tham gia và rời khỏi các phòng
chơi, và hỗ trợ các chức năng liên quan ến quản lý người chơi và trạng thái của các phòng.
1.4.1.5. Đặc iểm tính chất
Hỗ trợ a nền tảng: Smartfox hỗ trợ phát triển game trên nhiều nền tảng,
bao gồm web, di ộng và desktop.
Tương tác thời gian thực: Smartfox hỗ trợ truyền và ồng bộ dữ liệu thời
gian thực giữa các người chơi. Điều này cho phép trò chơi có khả năng tương
tác và phản hồi nhanh chóng.
Mô hình Client-Server: Smartfox sử dụng mô hình Client-Server ể tạo ra
sự tương tác giữa các máy khách trong trò chơi a người chơi. Máy khách kết nối
và gửi yêu cầu ến máy chủ thông qua giao thức TCP hoặc UDP.
Tích hợp phong phú: Smartfox cung cấp một loạt các API và công cụ ể
phát triển trò chơi a người chơi. Nó hỗ trợ các ngôn ngữ lập trình phổ biến như
Java, C#, ActionScript và Unity.
Quản lý phòng chơi: Smartfox cung cấp tính năng phòng chơi cho phép
tạo và quản lý nhiều phòng chơi trong game.
Bảo mật: Smartfox cung cấp các tính năng bảo mật như xác thực người
dùng, kiểm soát quyền truy cập và mã hóa dữ liệu truyền qua mạng.
Giao tiếp và ồng bộ hóa: Smartfox cung cấp các công cụ và API ể giao
tiếp và ồng bộ hóa dữ liệu giữa các client game.
Quản lý người chơi và tài khoản: Smartfox hỗ trợ quản lý người chơi,
ăng ký tài khoản và xác thực người dùng.
Tính năng mạnh mẽ: Smartfox cung cấp nhiều tính năng mạnh mẽ ể hỗ
trợ việc xây dựng các ứng dụng game a người chơi, bao gồm hỗ trợ kết nối và lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
ồng bộ hóa người chơi, quản lý phòng chơi, gửi tin nhắn và sự kiện trong game,
kiểm soát truy cập và bảo mật, và nhiều tính năng khác.
Mở rộng và tối ưu: Smartfox hỗ trợ tính mở rộng cao, cho phép mở rộng
số lượng người chơi ồng thời (CCU - Concurrent User) và tối ưu hiệu suất ể xử
lý lưu lượng truy cập lớn.
Cộng ồng và hỗ trợ: Smartfox có một cộng ồng sôi ộng và hỗ trợ a dạng
từ những người dùng và nhà phát triển khác. Có nhiều tài liệu, ví dụ mã và diễn
àn ể hỗ trợ trong quá trình phát triển trò chơi.
1.4.1.6. Yêu cầu kỹ thuật
Hệ iều hành: Smartfox hỗ trợ các hệ iều hành phổ biến như Windows,
macOS, iOS và Android. Hệ thống phải áp ứng yêu cầu kỹ thuật của các hệ iều
hành này ể chạy Smartfox.
Ngôn ngữ lập trình: Smartfox hỗ trợ nhiều ngôn ngữ lập trình như Java,
C#, ActionScript và JavaScript. Ngôn ngữ lập trình ược sử dụng phụ thuộc vào
nền tảng và công nghệ bạn ang phát triển.
Kết nối mạng: Để sử dụng Smartfox, máy tính hoặc thiết bị phải có kết
nối mạng ủ ổn ịnh ể truyền dữ liệu giữa máy khách và máy chủ của Smartfox.
Băng thông: Sử dụng Smartfox có thể tiêu tốn băng thông mạng. Yêu cầu
về băng thông phụ thuộc vào loại ứng dụng của bạn, kích thước dữ liệu truyền i
và số lượng người dùng ồng thời. Đảm bảo rằng máy chủ và mạng của bạn có ủ
băng thông ể hỗ trợ các hoạt ộng liên quan ến Smartfox.
Cấu hình máy chủ: Nếu bạn chạy máy chủ riêng cho Smartfox, cần ảm
bảo rằng máy chủ áp ứng các yêu cầu kỹ thuật như hiệu suất xử lý, bộ nhớ và kết nối mạng.
Công nghệ hỗ trợ: Smartfox sử dụng công nghệ như TCP, UDP và
WebSocket. Cần kiểm tra xem thiết bị và hệ thống mục tiêu có hỗ trợ các công
nghệ này ể ảm bảo tính tương thích.
SDK và Plugin: Yêu cầu cài ặt và tích hợp SDK và plugin cụ thể của
Smartfox vào dự án phát triển của bạn. Quá trình tích hợp phụ thuộc vào nền
tảng và công nghệ bạn ang sử dụng.
1.4.1.7. Cách cài ặt Smartfox
Tải Smartfox Server: Truy cập trang web chính thức của Smartfox Server
(https://www.smartfoxserver.com/) và tải xuống phiên bản phù hợp với hệ iều
hành của bạn. Smartfox Server có sẵn cho Windows, macOS và Linux. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Cài ặt Smartfox Server: Sau khi tải xuống, tiến hành cài ặt Smartfox
Server bằng cách chạy tệp cài ặt ã tải xuống và làm theo hướng dẫn trên màn hình.
Cấu hình Smartfox Server: Sau khi cài ặt xong, bạn cần cấu hình
Smartfox Server ể áp ứng các yêu cầu của dự án. Cấu hình bao gồm cung cấp
các thông số như cổng kết nối, cấu hình bảo mật, cài ặt cơ sở dữ liệu, v.v.
Thông tin chi tiết về cấu hình có thể ược tìm thấy trong tài liệu hướng dẫn của Smartfox Server.
Tích hợp Smartfox SDK: Sau khi cấu hình xong Smartfox Server, bạn
cần tích hợp SDK của Smartfox vào dự án của mình. Tùy thuộc vào nền tảng
phát triển mà bạn sử dụng, có thể có các bước tích hợp khác nhau.
Unity: Trong Unity, bạn có thể mở dự án của mình và import các tệp
SDK Smartfox vào bằng cách nhấp chuột phải vào thư mục "Assets" trong
Project Window và chọn "Import Package" -> "Custom Package". Chọn tệp
SDK ã tải xuống và ồng ý các thiết lập mặc ịnh ể tích hợp SDK vào dự án của bạn.
Unreal Engine: Trong Unreal Engine, bạn có thể mở dự án của mình và
import các tệp SDK Smartfox vào bằng cách nhấp chuột phải vào thư mục
"Content" trong Content Browser và chọn "Import". Chọn tệp SDK ã tải xuống
và ồng ý các thiết lập mặc ịnh ể tích hợp SDK vào dự án của bạn.
C++: Nếu bạn ang phát triển trò chơi bằng C++, bạn cần thêm các tệp và
thư mục SDK vào dự án của mình và cấu hình các thông số cần thiết ể sử dụng
Smartfox trong mã nguồn của bạn.
Xây dựng và chạy dự án: Sau khi tích hợp SDK Smartfox vào dự án của
bạn, bạn có thể xây dựng và chạy dự án ể kiểm tra tích hợp Smartfox.
1.4.1.8. Ưu, nhược iểm của Smartfox Ưu iểm Nhược iểm
Tính a nền tảng Giá thành
Smartfox hỗ trợ nhiều nền tảng khác Smartfox không miễn phí và yêu cầu
nhau như Java, C++, .NET, iOS và
người dùng phải trả phí ể sử dụng Android. nền tảng này. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Dễ dàng tích hợp
Smartfox cung cấp các API dễ sử
Hạn chế về khả năng mở rộng
dụng và tài liệu hướng dẫn chi tiết
giúp cho việc tích hợp vào các ứng
Mặc dù Smartfox có khả năng xử lý
dụng trò chơi trở nên ơn giản.
hàng ngàn kết nối cùng lúc, nhưng
việc mở rộng quy mô game là hạn
chế và yêu cầu người dùng phải có
kinh nghiệm về quản lý cơ sở dữ liệu và mạng.
Thời gian hỗ trợ có giới hạn
Tính năng phong phú
Smartfox không cung cấp hỗ trợ 24/7
và chỉ hỗ trợ qua email hoặc ticket.
Smartfox hỗ trợ nhiều tính năng như
chat, room, lobby, tạo profile, các
loại ối tượng trong game, tạo game
server, hỗ trợ custom plugin ể tùy
biến các tính năng cần thiết cho game. 1.4.2. Photon Engine 1.4.2.1. Khái niệm
Photon Engine là một nền tảng phát triển trò chơi a người chơi thời gian
thực. Nó cung cấp các công cụ và dịch vụ cho việc tạo ra các trò chơi a người
chơi trực tuyến với khả năng kết nối và ồng bộ hóa dữ liệu giữa các người chơi.
1.4.2.2. Lịch sử ra ời
Năm 2009: Exit Games, một công ty phát triển phần mềm game có trụ sở
tại Đức, thành lập Photon Engine. Ban ầu, Photon Engine ược phát triển ể cung
cấp giải pháp phòng chơi trực tuyến (online multiplayer) cho các trò chơi iện tử.
Năm 2011: Exit Games phát hành Photon Cloud, một dịch vụ ám mây
cho phép các nhà phát triển game triển khai và quản lý máy chủ game a người chơi.
Năm 2012: Photon Server SDK ược ra mắt, cho phép nhà phát triển tự
triển khai và quản lý máy chủ game của riêng mình. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Năm 2013: Photon Realtime SDK ược phát hành, giúp các nhà phát triển
game xây dựng các ứng dụng game a người chơi thời gian thực trên nền tảng
nhiều ngôn ngữ và nền tảng khác nhau.
Năm 2015: Photon Unity Networking (PUN) ược phát hành, ây là một
plugin cho Unity Engine, giúp dễ dàng tích hợp và phát triển game a người chơi trên Unity.
Trong những năm tiếp theo, Photon Engine tiếp tục phát triển và nâng cao
tính năng của nền tảng, bao gồm việc cải tiến hiệu suất, hỗ trợ cho các nền tảng
di ộng, mở rộng các tính năng bảo mật và quản lý người chơi. 1.4.2.3. Kiến trúc
Photon Engine sử dụng mô hình Client-Server, trong ó có một máy chủ
trung tâm quản lý việc kết nối và truyền thông giữa các người chơi. Các người
chơi sẽ kết nối với máy chủ thông qua các phiên bản client của Photon Engine.
Client-Server Model: Photon Engine tuân theo mô hình Client-Server,
trong ó máy chủ (server) chịu trách nhiệm xử lý logic game và duy trì trạng thái
của các phiên chơi, còn các máy khách (clients) kết nối với máy chủ ể gửi và nhận dữ liệu.
Cơ sở hạ tầng phân tán: Photon Engine cho phép xây dựng hệ thống máy
chủ phân tán, trong ó có thể có nhiều máy chủ game chạy song song và chia sẻ
tải công việc. Điều này giúp tối ưu hiệu suất và ộ mở rộng của hệ thống, cho
phép xử lý số lượng lớn người chơi cùng một lúc.
Giao thức truyền dữ liệu: Photon Engine sử dụng giao thức truyền dữ liệu
UDP ể giao tiếp giữa máy chủ và máy khách. Giao thức UDP cho phép truyền
dữ liệu nhanh chóng và hiệu quả, phù hợp với trò chơi a người chơi yêu cầu
tương tác thời gian thực.
API và SDK: Photon Engine cung cấp các API và SDK cho nhiều ngôn
ngữ lập trình khác nhau, bao gồm C#, Java, JavaScript, Objective-C, Swift và
Unity. Điều này giúp nhà phát triển dễ dàng tích hợp và phát triển ứng dụng
game trên nền tảng Photon Engine.
1.4.2.4. Các thành phần của Photon Engine
Photon Cloud: Đây là dịch vụ ám mây do Photon cung cấp, cho phép phát
triển và triển khai game a người chơi trên nền tảng ám mây. Có hai loại dịch vụ trong Photon Cloud:
Photon Realtime: Được sử dụng cho các game a người chơi thời gian thực
với việc tương tác trực tiếp giữa các người chơi. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Photon Turn-based: Được sử dụng cho các game a người chơi dựa trên
lượt chơi, trong ó các người chơi lần lượt thực hiện hành ộng.
Photon Server: Đây là phần mềm máy chủ do Photon cung cấp ể triển
khai và vận hành game a người chơi trên các máy chủ riêng. Điều này cho phép
các nhà phát triển có sự kiểm soát cao hơn về môi trường máy chủ và tùy chỉnh theo nhu cầu của họ.
Photon Client: Phần mềm Client của Photon Engine, ồng bộ hóa dữ liệu giữa Client và Server.
Photon Realtime: Là một dịch vụ cloud ược cung cấp bởi Photon Engine,
hỗ trợ truyền và ồng bộ hóa dữ liệu thời gian thực giữa các máy khách. Photon
Realtime cho phép các trò chơi a người chơi kết nối và tương tác với nhau thông qua mô hình Client-Server.
Photon Load Balancing: Cung cấp tính năng phân phối tải trọng giữa các
máy chủ ể ảm bảo rằng người chơi ược kết nối với máy chủ tốt nhất và áp ứng nhanh nhất.
Photon SDK: Bộ công cụ phát triển phần mềm (SDK) giúp người phát
triển trò chơi tích hợp Photon Engine vào ứng dụng của họ. Photon SDK hỗ trợ
nhiều nền tảng và ngôn ngữ lập trình, bao gồm Unity, Unreal Engine, C#, C++, Java và JavaScript.
Photon Chat: Là một dịch vụ chat a người chơi ược cung cấp bởi Photon
Engine. Photon Chat cho phép người chơi gửi và nhận tin nhắn chat trong trò
chơi, tạo ra các cuộc trò chuyện cá nhân hoặc nhóm và tùy chỉnh giao diện chat.
Photon Bolt: Đây là một sản phẩm của Photon dùng ể phát triển game a
người chơi thời gian thực. Nó cung cấp các công cụ và tính năng ể xây dựng
game với ộ trễ thấp, ồng bộ cao và khả năng tương tác giữa các người chơi.
Photon Voice: Đây là một phần mềm cho phép tích hợp tính năng thoại
trực tiếp trong game a người chơi. Nó hỗ trợ truyền và nhận âm thanh chất
lượng cao giữa các người chơi trong thời gian thực.
Photon PUN (Photon Unity Networking): Là một plugin dành cho Unity,
cho phép phát triển trò chơi a người chơi trên nền tảng Unity dễ dàng hơn.
Photon PUN cung cấp các API và chức năng cho việc kết nối, tương tác và ồng
bộ hóa dữ liệu giữa các máy khách Unity.
1.4.2.5. Đặc iểm tính chất
Đồng bộ hóa dữ liệu: Photon Engine cho phép ồng bộ hóa dữ liệu giữa
các người chơi trong trò chơi a người chơi thời gian thực. Các thay ổi trong
trạng thái trò chơi như vị trí, hành ộng, và trạng thái của ối tượng sẽ ược gửi và
cập nhật ến tất cả người chơi khác trong cùng một phiên chơi. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Hỗ trợ a nền tảng: Photon Engine hỗ trợ a nền tảng, bao gồm cả di ộng
và máy tính ể bàn, giúp bạn có thể xây dựng một trò chơi a người chơi dễ dàng
trên nhiều nền tảng. Nó cũng cung cấp các API và SDK cho các nền tảng phổ
biến như Unity, Unreal Engine, Cocos2d-x, và nhiều hơn nữa.
Hiệu suất cao và thời gian phản hồi thấp: Photon Engine có hiệu suất cao
và thời gian phản hồi thấp, ảm bảo rằng trò chơi của bạn sẽ hoạt ộng một cách
mượt mà và áp ứng úng lúc các hành ộng của người chơi. Điều này cũng giúp
tăng trải nghiệm của người chơi và làm tăng tính cạnh tranh của trò chơi.
Quản lý kết nối mạng: Photon Engine xử lý việc kết nối và quản lý mạng
giữa các người chơi. Nó hỗ trợ việc thiết lập và duy trì kết nối mạng ổn ịnh giữa
các máy chủ và người chơi, ảm bảo truyền thông dữ liệu mượt mà và ổn ịnh.
Số lượng kết nối tối a lớn: Photon Engine cho phép xử lý hàng triệu kết
nối ồng thời, ảm bảo rằng trò chơi của bạn có thể xử lý ồng thời các kết nối ến
từ hàng trăm hoặc thậm chí hàng ngàn người chơi.
Thư viện hỗ trợ phong phú: Photon Engine cung cấp các thư viện hỗ trợ
phong phú, giúp bạn xây dựng trò chơi a người chơi một cách nhanh chóng và dễ dàng.
Xử lý tương tác thời gian thực: Photon Engine cung cấp cơ chế xử lý
tương tác thời gian thực, cho phép các người chơi tương tác với nhau trong trò
chơi a người chơi một cách mượt mà và chính xác. Các hành ộng của người
chơi ược truyền và xử lý ngay lập tức ể áp ứng nhu cầu trò chơi thời gian thực.
Tính linh hoạt và tùy chỉnh cao: Photon Engine cung cấp các API mạnh
mẽ và các công cụ ể tùy chỉnh trò chơi của bạn. Điều này cho phép bạn thực
hiện các tính năng ặc biệt hoặc iều chỉnh trò chơi của bạn ể áp ứng các yêu cầu
cụ thể của người chơi.
Hỗ trợ xã hội: Photon Engine cung cấp các tính năng hỗ trợ xã hội như hệ
thống bạn bè, xếp hạng và chat trong trò chơi. Điều này giúp tạo ra một trải
nghiệm a người chơi tương tác và gắn kết giữa các người chơi.
1.4.2.6. Yêu cầu kỹ thuật
Hệ iều hành: Photon Engine hỗ trợ các hệ iều hành phổ biến như
Windows, macOS, iOS và Android. Do ó, hệ thống phải áp ứng yêu cầu kỹ
thuật của các hệ iều hành này.
Ngôn ngữ lập trình: Photon Engine hỗ trợ nhiều ngôn ngữ lập trình như
C#, Java, Objective-C và Swift. Ngôn ngữ lập trình ược sử dụng phụ thuộc vào
nền tảng và công nghệ bạn ang phát triển. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Kết nối mạng: Để sử dụng Photon Engine, máy tính hoặc thiết bị phải có
kết nối mạng ủ ổn ịnh ể truyền dữ liệu giữa máy khách và máy chủ của Photon Engine.
Thông tin về CCU (Concurrent User): CCU là số người dùng ồng thời kết
nối ến máy chủ của Photon Engine. Yêu cầu kỹ thuật về CCU phụ thuộc vào số
lượng người dùng dự kiến sử dụng ứng dụng của bạn. Photon Engine cung cấp
các gói dịch vụ với CCU khác nhau, vì vậy bạn cần chọn gói phù hợp với nhu cầu của bạn.
Băng thông: Sử dụng Photon Engine có thể tiêu tốn băng thông mạng.
Yêu cầu về băng thông phụ thuộc vào loại ứng dụng của bạn, kích thước dữ liệu
truyền i và số lượng người dùng ồng thời. Đảm bảo rằng máy chủ và mạng của
bạn có ủ băng thông ể hỗ trợ các hoạt ộng liên quan ến Photon Engine.
Cấu hình máy chủ: Nếu bạn chạy máy chủ riêng cho Photon Engine, cần
ảm bảo rằng máy chủ áp ứng các yêu cầu kỹ thuật như hiệu suất xử lý, bộ nhớ và kết nối mạng.
Công nghệ hỗ trợ: Photon Engine sử dụng công nghệ như TCP, UDP và
WebSocket. Cần kiểm tra xem thiết bị và hệ thống mục tiêu có hỗ trợ các công
nghệ này ể ảm bảo tính tương thích.
SDK và Plugin: Yêu cầu cài ặt và tích hợp SDK và plugin cụ thể của
Photon Engine vào dự án phát triển của bạn. Quá trình tích hợp phụ thuộc vào
nền tảng và công nghệ bạn ang sử dụng.
1.4.2.7. Cách cài ặt Photon Engine
Tải SDK Photon Engine:Truy cập trang web chính thức của Photon
Engine (https://www.photonengine.com/) và tải về phiên bản SDK phù hợp với
nền tảng phát triển của bạn (Unity, Unreal Engine, C++, etc.). Đảm bảo tải
phiên bản mới nhất ể có ược các tính năng và cải tiến mới nhất.
Giải nén SDK:Sau khi tải xuống, giải nén tập tin SDK vào thư mục dự án của bạn.
Tích hợp SDK vào dự án:Tùy thuộc vào nền tảng phát triển mà bạn sử
dụng, bạn sẽ có các bước tích hợp khác nhau.
Unity: Trong Unity, bạn có thể mở dự án của mình và import các tệp
SDK Photon Engine vào bằng cách nhấp chuột phải vào thư mục "Assets" trong
Project Window và chọn "Import Package" -> "Custom Package". Chọn tệp
SDK ã tải xuống và ồng ý các thiết lập mặc ịnh ể tích hợp SDK vào dự án của bạn.
Unreal Engine: Trong Unreal Engine, bạn có thể mở dự án của mình và
import các tệp SDK Photon Engine vào bằng cách nhấp chuột phải vào thư mục lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
"Content" trong Content Browser và chọn "Import". Chọn tệp SDK ã tải xuống
và ồng ý các thiết lập mặc ịnh ể tích hợp SDK vào dự án của bạn.
C++: Nếu bạn ang phát triển trò chơi bằng C++, bạn cần thêm các tệp và
thư mục SDK vào dự án của mình và cấu hình các thông số cần thiết ể sử dụng
Photon Engine trong mã nguồn của bạn.
Cấu hình kết nối: Sau khi tích hợp SDK vào dự án của bạn, bạn cần cấu
hình kết nối với Photon Server hoặc Photon Cloud. Điều này bao gồm việc cung
cấp các thông tin như AppID và các thiết lập kết nối khác trong mã nguồn của bạn.
Xây dựng và chạy dự án: Khi cài ặt và cấu hình ã hoàn tất, bạn có thể xây
dựng và chạy dự án của mình ể kiểm tra tích hợp Photon Engine.
1.4.2.8. Ưu, nhược iểm của Photon Engine Ưu iểm Nhược iểm
Tốc ộ xử lý nhanh Giá thành
Photon Engine cho phép xử lý hàng
Để sử dụng Photon Engine, bạn phải
nghìn người chơi cùng lúc, giúp trải
trả phí theo mức sử dụng hàng tháng,
nghiệm trò chơi trở nên mượt mà và và phí này có thể khá ắt ỏ ối với các không bị giật lag. game indie nhỏ.
Dễ dàng tích hợp
Photon Engine cung cấp các API và
SDK dễ dàng tích hợp với các nền
Giới hạn về mức ộ tùy chỉnh
tảng phát triển game phổ biến như
Photon Engine có một số giới hạn về
Unity, Unreal Engine, Cocos2d, ...
mức ộ tùy chỉnh trong quá trình phát
triển, do ó không thể tùy ý tạo ra các
tính năng riêng cho game của mình. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Độ tin cậy cao
Photon Engine có hệ thống máy chủ
Tính linh hoạt thấp
phân tán và tự ộng chuyển ổi sang
máy chủ khác khi cần, giúp giảm
Mặc dù Photon Engine cho phép mở
thiểu sự gián oạn trong trò chơi.
rộng linh hoạt, nhưng ôi khi nó
không ủ linh hoạt ể áp ứng các yêu
cầu cụ thể của các trò chơi ặc biệt.
Các tính năng tùy chỉnh có thể hạn
chế, ặc biệt là khi so sánh với các nền tảng ám mây khác.
Yêu cầu trực tuyến
Khả năng mở rộng
Photon Engine là một nền tảng phát
triển game òi hỏi kết nối internet, do
Photon Engine có thể mở rộng linh
ó không thể sử dụng trong các trò
hoạt ể áp ứng các yêu cầu quy mô chơi offline.
của các trò chơi, từ các trò chơi nhỏ
ến các trò chơi lớn với hàng nghìn
người chơi cùng lúc. Nó cung cấp
tính năng mở rộng tự ộng, cho phép
tăng số lượng máy chủ ể xử lý lượng dữ liệu truyền tải
Khả năng áp ứng
Với số lượng người chơi tăng lên,
Tính a nền tảng
Photon Engine có thể gặp khó khăn
trong việc áp ứng với lượng truy cập
Photon Engine hỗ trợ a nền tảng, cho ồng thời. Điều này có thể gây ra các
phép triển khai trò chơi trên nhiều
sự cố về kết nối và giảm trải nghiệm
thiết bị khác nhau bao gồm PC, iện
chơi game của người dùng.
thoại di ộng, máy tính bảng, các thiết
bị game console và nhiều hơn nữa.
Điều này giúp tăng khả năng tiếp cận
của trò chơi ến nhiều người chơi hơn.
1.4.3. So sánh Photon Engine với Smartfox lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Photon Engine Smartfox
Ngôn ngữ lập Photon Engine sử dụng ngôn trình
ngữ lập trình bằng C#, sử
dụng IDE visual studio ể Smartfox sử dụng ngôn ngữ
lập trình Java, sử dụng IDE develop, build và debug.
Eclipse ể develop, build và
debug. Ngoài ra còn có thể sử dụng python. Client SDK Trong Smartfox, Client SDK
Client SDK của Photon ược hỗ trợ trên nhiều ngôn
Engine hỗ trợ nhiều ngôn ngữ lập trình như Java, C#,
ngữ lập trình như C++, C#, C++, ActionScript và JavaScript. Client SDK của
Java, Objective-C, Swift, Smartfox hỗ trợ các nền tảng JavaScript và Unreal Engine.
Client SDK của Photon phát triển game như Unity, Unreal, Cocos2dx, native…
Engine hỗ trợ các nền tảng
phát triển game như Unity, Unreal, Cocos2dx, native… lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Deploy server
Đối với Smartfox, người
dùng có thể tải các file cài ặt
từ trang web chính thức và cài
Đối với Photon Engine, ặt trên máy chủ của mình
người dùng có thể tải các file hoặc sử dụng dịch vụ ám mây
cài ặt từ trang web chính thức của họ (Smartfox
và cài ặt trên máy chủ của Server vCloud). Smartfox có
mình hoặc sử dụng dịch vụ thể deploy server trên Linux,
ám mây của họ (Photon Window và Mac. Cloud). Photon Engine cũng
cung cấp các hình ảnh máy
ảo ể dễ dàng triển khai trên
các dịch vụ ám mây hàng ầu.
Photon Engine có thể deploy server trên Linux, Window
(Mac thì chưa có thông tin chính xác).
Cloud server Photon Engine hỗ trợ sử
dụng các dịch vụ cloud Smartfox hỗ trợ sử dụng các server như Amazon Web dịch vụ cloud server như
Services, Microsoft Azure, Amazon EC2, Microsoft
Google Cloud Platform và Azure, Google Cloud IBM Cloud. Platform, DigitalOcean,
Linode, Vultr và nhiều dịch vụ cloud server khác. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Load
Trong Smartfox, bạn có thể balancing
triển khai một cụm máy chủ
Photon Engine cung cấp một với một máy chủ chính và
dịch vụ load balancing trực nhiều máy chủ phụ. Khi có
tuyến, ược gọi là Photon người chơi kết nối ến, hệ
Cloud. Với Photon Cloud, thống sẽ tự ộng phân phối các
bạn không cần phải quản lý kết nối ó ến các máy chủ phụ
các máy chủ của riêng mình. khác nhau. Điều này giúp
Thay vào ó, bạn có thể thuê tăng tính sẵn sàng và khả
tài nguyên máy chủ của năng mở rộng của hệ thống.
Photon và dễ dàng mở rộng
hệ thống của mình khi có nhu
cầu. Photon Cloud cũng hỗ
trợ các tính năng như ịnh tuyến thông minh và phát
hiện và khắc phục sự cố tự ộng Chế ộ free Trong Smartfox, phiên bản develop
miễn phí là Smartfox Server
Trong Photon Engine, phiên Basic, cho phép tối a 100
bản miễn phí là Photon người dùng ồng thời và dung
Server Free, cho phép tối a lượng bộ nhớ tối a là 512 MB.
100 người dùng ồng thời và Các phiên bản cao cấp hơn
dung lượng bộ nhớ tối a là như Smartfox Server Pro
100 MB. Các phiên bản cao hoặc Smartfox Server Expert
cấp hơn như Photon Server sẽ có các tính năng mở rộng
hoặc Photon Cloud sẽ có các và giới hạn người
tính năng mở rộng và giới hạn người dùng và dung lượng server cao hơn.
dùng và dung lượng server cao hơn. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Chi phí Photon Engine cung cấp các
publish game gói dịch vụ trả phí với các
tính năng và mức ộ hỗ trợ Trong trường hợp của
khác nhau. Các gói trả phí Smartfox, chi phí publish
game sẽ tùy thuộc vào lựa
của Photon Engine bắt ầu từ chọn gói dịch vụ, trong ó có
95 USD/tháng và có thể lên các gói miễn phí và các gói ến hàng trăm
trả phí với các tính năng và
USD/tháng tùy thuộc vào mức ộ hỗ trợ khác nhau.
quy mô và yêu cầu của khách
Các gói trả phí của Smartfox hàng.
bắt ầu từ 500 USD/năm và có thể lên ến hàng nghìn
USD/năm tùy thuộc vào các
yêu cầu của khách hàng. API Trong Smartfox, API ược
cung cấp thông qua các thư
viện lập trình khác nhau cho Trong Photon Engine, API
ược cung cấp thông qua các các ngôn ngữ lập trình phổ
thư viện lập trình cho các biến như Java, C#,
ngôn ngữ phổ biến như C++, ActionScript và JavaScript. C#, Java,
JavaScript, Các API này cung cấp các
Objective-C, Swift, Python phương thức ể tạo và quản lý
và Unreal Engine. Các API kết nối với server, xử lý các
này cung cấp các phương sự kiện, gửi và nhận dữ liệu,
thức ể tạo và quản lý kết nối quản lý phòng chơi, người
với server, xử lý các sự kiện, chơi và nhiều tính năng khác.
gửi và nhận dữ liệu, quản lý
phòng chơi, người chơi và
nhiều tính năng khác. Photon Engine cũng cung cấp một
API Web cho phép lập trình
viên sử dụng các ngôn ngữ
lập trình web như JavaScript
và PHP ể tương tác với server. 1.4.4. Photon PUN 1.4.4.1. Khái niệm lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Photon PUN (Photon Unity Networking) là một plugin cung cấp khả năng
kết nối và tương tác mạng trong trò chơi Unity. Nó cho phép phát triển trò chơi a
người chơi trên nền tảng ám mây, giúp tạo ra các trải nghiệm trò chơi chia sẻ thời
gian thực và ồng bộ hóa dữ liệu giữa các người chơi.
1.4.4.2. Đặc iểm tính chất
Đa nền tảng: Photon PUN hỗ trợ nhiều nền tảng như Windows, macOS,
iOS, Android, Xbox, PlayStation và Web.
Tích hợp dễ dàng: Nó tích hợp dễ dàng vào dự án Unity, cho phép phát
triển viên tập trung vào việc xây dựng trải nghiệm trò chơi mà không cần lo lắng
về việc quản lý kết nối mạng.
Đồng bộ hóa dữ liệu: Photon PUN cung cấp các cơ chế ồng bộ hóa dữ liệu
cho việc chia sẻ thông tin giữa các người chơi, bao gồm vị trí, hành ộng, trạng
thái, và các ối tượng trong trò chơi.
Phân chia phòng chơi: Nó cho phép tạo và quản lý các phòng chơi riêng
biệt, giúp người chơi tương tác với nhau trong các môi trường riêng biệt.
1.4.4.3. Cấu trúc gói PUN
Cấu trúc này cho phép bạn tạo ra một môi trường a người chơi trong game
của mình, nơi người chơi có thể kết nối, tương tác và chia sẻ dữ liệu với nhau
thông qua Photon servers. PUN code và các tệp DLL cung cấp khả năng giao tiếp
mạnh mẽ và ồng bộ giữa các người chơi, ồng thời hỗ trợ việc quản lý phòng chơi,
truyền tải dữ liệu và xử lý các sự kiện trong game.
PUN Code: Đây là các mã nguồn (code) liên quan ến việc sử dụng và tích
hợp Photon PUN vào game của bạn. PUN code bao gồm các lớp, hàm và phương
thức cần thiết ể xử lý việc kết nối, ồng bộ hóa dữ liệu và tương tác với Photon
servers. PUN code thường ược viết bằng ngôn ngữ lập trình C# và ược tích hợp
vào game thông qua mô hình lập trình hướng ối tượng.
Logic ể hoạt ộng Photon servers: Để sử dụng Photon PUN, bạn cần cấu
hình và quản lý các máy chủ Photon servers. Logic này bao gồm việc xác ịnh các
thông số kết nối như IP address, port, và protocol, cũng như việc ịnh nghĩa các
phòng (rooms) và kênh (channels) ể người chơi có thể giao tiếp và tương tác với
nhau. Logic này cần ược triển khai trên cả phía máy chủ (server-side) và phía
client (client-side) ể ảm bảo tính ồng bộ và tương tác trực tiếp giữa game và Photon servers.
Tệp DLL (Dynamic Link Library): Photon PUN cung cấp các tệp DLL
(hoặc tệp thư viện ộng) ể hỗ trợ tích hợp và sử dụng Photon trong game của bạn.
Các tệp DLL này chứa mã nguồn và tài nguyên cần thiết ể giao tiếp với Photon lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
servers và xử lý các chức năng của Photon PUN. Tệp DLL cần ược liên kết (link)
hoặc nhập (import) vào dự án của bạn ể có thể sử dụng ược các chức năng của Photon PUN.
1.4.4.4. Các thể loại game ược hỗ trợ bởi Photon PUN
Game ua xe: Photon PUN cho phép ồng bộ hóa thông tin về vị trí, tốc ộ
và hành vi của các xe trong game ua xe a người chơi.
Game nhập vai (RPG): Với Photon PUN, bạn có thể tạo ra các game nhập
vai a người chơi, cho phép người chơi tương tác, trò chuyện và thực hiện các hành
ộng trong một thế giới ảo chung.
Game bắn súng (FPS): Photon PUN hỗ trợ việc ồng bộ hóa vị trí, hướng
nhìn và hành ộng của người chơi trong game bắn súng a người chơi, tạo ra trải
nghiệm chiến ấu thời gian thực và phản ứng nhanh.
Game chiến lược (Strategy): Photon PUN cung cấp khả năng ồng bộ hóa
thông tin về tình trạng và hành vi của các ơn vị trong game chiến lược a người
chơi, cho phép người chơi xây dựng và quản lý căn cứ, thực hiện chiến thuật và tương tác với nhau.
Game thẻ bài (Card game): Photon PUN hỗ trợ việc ồng bộ hóa thông tin
về việc chia bài, di chuyển và tương tác với các quân bài trong game thẻ bài a
người chơi, tạo ra trải nghiệm chơi game trực tuyến và giao tiếp với người chơi khác. 1.5. Công cụ Unity 1.5.1. Tổng quan về Unity
1.5.1.1. Khái niệm Unity
Unity là một công cụ phát triển phần mềm a nền tảng và môi trường phát
triển trò chơi (game development environment) phổ biến. Nó ược sử dụng rộng
rãi trong ngành công nghiệp trò chơi, thực tế ảo, thực tế tăng cường và ứng dụng tương tác 3D.
Một số nội dung quan trọng về Unity:
Ngôn ngữ lập trình: Unity hỗ trợ nhiều ngôn ngữ lập trình, bao gồm C#,
JavaScript và Boo. Tuy nhiên, C# là ngôn ngữ phổ biến nhất ược sử dụng ể phát
triển trò chơi trong Unity.
Cấu trúc và thành phần: Unity sử dụng cấu trúc dựa trên thành phần
(component-based structure), trong ó các ối tượng (game objects) ược tạo thành
từ các thành phần (components) như hình dạng (shape), ánh sáng (lighting), vật lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
lý (physics) và kịch bản (script). Việc kết hợp các thành phần này giúp xây
dựng các trò chơi phong phú và tương tác.
Bộ công cụ phát triển: Unity cung cấp một bộ công cụ phát triển mạnh
mẽ gồm Unity Editor, một giao diện ồ họa dễ sử dụng ể xây dựng trò chơi và
thiết lập các thuộc tính của các ối tượng. Nó cũng i kèm với một bộ công cụ cho
việc lập trình và gỡ lỗi (debugging).
Tương thích a nền tảng: Unity cho phép phát triển trò chơi và ứng dụng
cho nhiều nền tảng khác nhau như Windows, macOS, iOS, Android,
PlayStation, Xbox và nhiều hơn nữa. Điều này giúp nhà phát triển tiết kiệm thời
gian và công sức trong việc ưa sản phẩm của họ lên nhiều nền tảng.
Cộng ồng và tài liệu học tập: Unity có một cộng ồng rộng lớn, với rất
nhiều nguồn tài liệu và diễn àn trực tuyến. Người dùng Unity có thể tìm kiếm
hướng dẫn, tài liệu, ví dụ mã nguồn và thảo luận ể giúp họ học và giải quyết các
vấn ề trong quá trình phát triển.
Đồ họa và âm thanh: Unity hỗ trợ a dạng công nghệ ồ họa và âm thanh,
cho phép bạn tạo ra các hiệu ứng hình ảnh, ồ họa 2D và 3D chất lượng cao. Nó
cũng hỗ trợ việc tích hợp âm thanh và cung cấp các công cụ cho việc iều khiển
và xử lý âm thanh trong trò chơi.
Các tính năng mở rộng: Unity có thể ược mở rộng thông qua việc sử
dụng các gói (packages) và plugin của bên thứ ba. Các gói này cung cấp các
tính năng bổ sung như hệ thống vật lý phức tạp, trí tuệ nhân tạo, hệ thống quảng
cáo, tích hợp mạng xã hội và nhiều hơn nữa.
Unity là một công cụ mạnh mẽ và linh hoạt cho phát triển trò chơi và ứng
dụng 3D. Với sự phổ biến của nó và nguồn tài nguyên học tập phong phú, Unity
là một lựa chọn tốt cho những người muốn bắt ầu hoặc tiếp tục phát triển sự
nghiệp trong lĩnh vực này.
1.5.1.2. Lịch sử phát triển Unity
Unity ược phát triển bởi công ty Unity Technologies và ược giới thiệu lần
ầu tiên vào năm 2005. Unity 2.0 ra mắt năm 2007 với khoảng 50 tính năng mới.
Bản phát hành bao gồm một công cụ ịa hình ược tối ưu hóa cho môi trường 3D,
real-time dynamic shadows, directional lights và spotlights, phát lại video và
các tính năng khác. Bản phát hành cũng bổ sung các tính năng nhờ ó các nhà
phát triển có thể cộng tác dễ dàng hơn.
Ban ầu, Unity chỉ ược phát triển ể tạo ra các trò chơi trên máy tính, nhưng
sau ó ã mở rộng sang các nền tảng di ộng và console. Tuy nhiên, thành công
thực sự của Unity là khi nó trở thành một công cụ phát triển game a nền tảng
vào năm 2012. Với tính năng này, Unity cho phép nhà phát triển tạo ra một lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
phiên bản trò chơi và triển khai nó trên nhiều nền tảng khác nhau, bao gồm PC,
iện thoại di ộng, máy tính bảng và console. Điều này giúp cho việc phát triển và
triển khai trò chơi trở nên ơn giản và tiết kiệm thời gian hơn.
Từ ó, Unity ã trở thành một trong những công cụ phát triển game phổ
biến nhất trên thị trường, với hơn 5 triệu người dùng trên toàn thế giới và ược sử
dụng ể tạo ra các trò chơi nổi tiếng như Pokemon Go, Hearthstone, Monument
Valley, Ori and the Blind Forest và nhiều trò chơi khác. Ngoài ra,
Unity cũng ã mở rộng chức năng của mình ể hỗ trợ các công nghệ mới như AR
và VR, giúp cho những trò chơi ược tạo ra bởi Unity trở nên a dạng và hấp dẫn hơn.
1.5.1.3. Ưu nhược iểm của Unity Ưu iểm của Unity
Đa nền tảng: Unity hỗ trợ phát triển trò chơi trên nhiều nền tảng khác
nhau như Windows, macOS, iOS, Android, Xbox, PlayStation và nhiều hơn
nữa. Điều này cho phép bạn phát triển một phiên bản duy nhất của trò chơi và
triển khai nó trên nhiều thiết bị và hệ iều hành khác nhau một cách dễ dàng.
Cộng ồng và tài liệu học tập: Unity có một cộng ồng rất lớn và sôi ộng,
cung cấp nhiều tài liệu, hướng dẫn, diễn àn và nguồn học tập trực tuyến. Bạn
có thể tìm kiếm thông tin, hỏi áp và nhận sự hỗ trợ từ cộng ồng này ể giúp bạn
học và sử dụng Unity hiệu quả.
Dễ học và sử dụng: Unity ược thiết kế ể dễ học và sử dụng, ặc biệt là ối
với những người mới bắt ầu trong lĩnh vực phát triển trò chơi. Nó cung cấp một
giao diện người dùng trực quan và trực quan, và hỗ trợ nhiều ngôn ngữ lập trình như C#, JavaScript và Boo.
Tích hợp: Unity tích hợp tốt với các công cụ và phần mềm phổ biến khác
như Photoshop, Blender và Maya. Điều này giúp cho việc làm việc với các tài
nguyên nội dung như hình ảnh, âm thanh và mô hình 3D trở nên dễ dàng và hiệu quả.
Tính linh hoạt và mở rộng: Unity cho phép bạn mở rộng và tùy chỉnh
chức năng của nó thông qua việc sử dụng các plugins và assets từ cộng ồng
hoặc tạo ra các công cụ tùy chỉnh riêng. Bạn cũng có thể phát triển các công cụ
và trình mở rộng riêng ể tương thích với dự án cụ thể của bạn.
Nhược iểm của Unity lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Hiệu suất: Mặc dù Unity có hiệu suất tốt, nhưng nếu không ược tối ưu
hóa úng cách, trò chơi có thể gặp vấn ề về hiệu suất và tốc ộ. Điều này ặc biệt
quan trọng khi phát triển trò chơi có ồ họa phức tạp và yêu cầu xử lý nặng.
Kích thước file: Trò chơi ược phát triển bằng Unity có xu hướng có kích
thước lớn hơn so với các công nghệ khác. Điều này có thể gây khó khăn khi
phân phối và tải xuống trò chơi, ặc biệt trên các nền tảng di ộng.
Giấy phép: Unity có mô hình giấy phép phức tạp, ặc biệt là khi phát triển
và phân phối trò chơi thương mại. Việc chọn giấy phép phù hợp và hiểu rõ các
iều khoản của Unity là rất quan trọng ể ảm bảo tuân thủ và tránh rủi ro pháp lý.
Cấu trúc dự án: Một số người dùng cho rằng cấu trúc dự án của Unity
không linh hoạt ủ và có thể gây khó khăn khi làm việc với dự án lớn hoặc khi
phải làm việc với nhiều người phát triển cùng một lúc.
1.5.2.Tổng quan Unity Engine
1.5.2.1.Các thành phần trong Unity Editor
Hình ảnh khi mở Unity 1. Cửa sổ Sences
Phần này phần hiển thị các ối tượng trong scenes một cách trực quan, có
thể lựa chọn các ối tượng, kéo thả, phóng to, thu nhỏ, xoay các ối tượng ... Phần
này có ể thiết lập một số thông số như hiển thị ánh sáng, âm anh, cách nhìn 2D
hay 3D ... -Khung nhìn Scene là nơi bố trí các Game Object như cây cối, cảnh lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
quan, enemy, player, camera, … trong game. Sự bố trí hoạt cảnh là một trong
những chức năng quan trọng nhất của Unity.
2. Cửa sổ Hierarchy
Tab hierarchy là nơi hiển thị các Game Object trong Sences hiện hành.
Khi các ối tượng ược thêm hoặc xóa trong Sences, tương ứng với các ối tượng ó trong cửa sổ Hierarchy.
Tương tự trong tab Project, Hierarchy cũng có một thanh tìm kiếm giúp quản lý
và thao tác với các Game Object hiệu quả hơn ặc biệt là với các dự án lớn. 3. Cửa sổ Game
Đây là màn hình demo Game, là góc nhìn từ camera trong game. Thanh
công cụ trong cửa sổ game cung cấp các tùy chỉnh về ộ phân giải man hình,
thông số (stats), gizmos, tùy chọn bật tắt các component… 4. Cửa sổ Project
Đây là cửa sổ explorer của Unity, hiển thị thông tin của tất cả các tài
nguyên (Assets) trong game của bạn.
Cột bên trái hiển thị assets và các mục yêu thích dưới dạng cây thư mục
tương tự như Windows Explorer. Khi click vào một nhánh trên cây thư mục thì
toàn bộ nội dung của nhánh ó sẽ ược hiển thị ở khung bên phải. Ta có thể tạo ra
các thư mục mới bằng cách Right click -> Create -> Folder hoặc nhấn vào nút
Create ở góc trên bên trái cửa sổ Project và chọn Folder. Các tài nguyên trong
game cũng có thể ược tạo ra bằng cách này.
Phía trên cây thư mục là mục Favorites, giúp chúng ta truy cập nhanh vào
những tài nguyên thường sử dụng. Chúng ta có thể ưa các tài nguyên vào
Favorites bằng thao tác kéo thả.
Đường dẫn của thư mục tài nguyên hiện tại. Chúng ta có thể dễ dàng tiếp
cận các thư mục con hoặc thư mục gốc bằng cách click chuột vào mũi tên hoặc tên thư mục.
5. Cửa sổ Inspector
Cửa sổ Inspector hiển thị chi tiết các thông tin về Game Object ang làm
việc, kể cả những component ược ính kèm và thuộc tính của nó. Bạn có thể iều
chỉnh, thiết lập mọi thông số và chức năng của Game Object thông qua cửa sổ Inspector. lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Mọi thuộc tính thể hiện trong Inspector ều có thể dễ dàng tuỳ chỉnh trực
tiếp mà không cần thông qua một kịch bản ịnh trước. Tuy nhiên Scripting API
cung cấp một số lượng nhiều và ầy ủ hơn do giao diện Inspector là có giới hạn.
Các thiết lập của từng component ược ặt trong menu. Các bạn có thể
click chuột phải, hoặc chọn icon hình bánh răng nhỏ ể xuất hiện menu. Ngoài
ra Inspector cũng thể hiện mọi thông số Import Setting của asset ang làm việc
như hiển thị mã nguồn của Script, các thông số animation, …
1.5.2.2. Các khái niệm cơ bản trong Unity 1. GameObject
Một ối tượng cụ thể trong game gọi là một game object, có thể là nhân
vật, ồ vật nào ó. Ví dụ: cây cối, xe cộ, nhà cửa, người... 2. Component
Một GameObject sẽ có nhiều thành phần cấu tạo nên nó như là hình ảnh
(sprite render), tập hợp các hành ộng (animator), thành phần xử lý va chạm
(collision), tính toán vật lý (physical), mã iều khiển (script), các thành phần
khác... mỗi thứ như vậy gọi là một component của GameObject. 3. Sprite
Là một hình ảnh 2D của một gameobject có thể là hình ảnh ầy ủ, hoặc có
thể là một bộ phận nào ó. 4. Animation
Là tập một hình ảnh ộng dựa trên sự thay ổi liên tục của nhiều sprite khác nhau. 5. Keyframe
Key Frame hay Frame là một trạng thái của một animation. Có thể ược
tạo nên từ 1 sprite hay nhiều sprite khác nhau. 6. Prefabs
Là một khái niệm trong Unity, dùng ể sử dụng lại các ối tượng giống
nhau có trong game mà chỉ cần khởi tạo lại các giá trị vị trí, tỉ lệ biến dạng và
góc quay từ một ối tượng ban ầu. Ví dụ: Các ối tượng là ồng tiền trong game
Mario ều có xử lý giống nhau, nên ta chỉ việc tạo ra một ối tượng ban ầu, các
ồng tiền còn lại sẽ sử dụng prefabs. Hoặc khi ta lát gạch cho một cái nền nhà,
các viên gạch cũng ược sử dụng là prefabs. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 7. Sounds Âm thanh trong game. 8. Script
Script là tập tin chứa các oạn mã nguồn, dùng ể khởi tạo và xử lý các ối
tượng trong game. Trong Unity có thể dùng C#, Javascript, BOO ể lập trình Script. 9. Scenes
Quản lý tất cả các ối tượng trong một màn chơi của game. 10. Assets
Bao gồm tất cả những gì phục vụ cho dự án game như sprite, animation, sound, script, scenes… 11. Camera
Là một gameobject ặc biệt trong scene, dùng ể xác ịnh tầm nhìn, quan sát
các ối tượng khác trong game. 12. Transform
Là 3 phép biến ổi tịnh tiến, quay theo các trục, và phóng to thu nhỏ một ối tượng lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Chương 2: Phân tích thiết kế thống
2.1. Lý do chọn ề tài
2.1.1. Sự ộc áo và sáng tạo
Lý do chính cho việc chọn ề tài của Golden Ray là sự ộc áo và sáng tạo
của cơ chế gameplay dựa trên việc nối hai nhân vật bằng một tia laser. Ý tưởng
này mang tính mới mẻ và ộc áo, tạo ra một trải nghiệm chơi game ộc nhất vô
nhị mà người chơi chưa từng trải qua trước ây. Sự kết hợp giữa việc di chuyển
nhân vật và iều khiển tia laser sẽ mang ến những thử thách và câu ố thú vị, ồng
thời tạo nên sự phối hợp và tương tác giữa các người chơi.
2.1.2. Tiềm năng cho sự sáng tạo và sự phát triển
Đề tài của Golden Ray cung cấp một nền tảng ộc áo cho việc thử nghiệm
và sáng tạo trong việc phát triển game. Với tính năng nối nhân vật bằng tia
laser, có rất nhiều khả năng ể thiết kế các màn chơi, câu ố và thử thách a dạng.
Điều này cho phép nhà phát triển tạo ra nhiều mô hình gameplay khác nhau và
ưa ra những trải nghiệm mới lạ, giữ cho người chơi luôn ược hứng thú và tò mò.
2.1.3. Sự kết hợp giữa hành ộng và logic
Đề tài của Golden Ray kết hợp hai yếu tố quan trọng trong trò chơi - hành
ộng và logic. Trong khi người chơi phải di chuyển nhân vật và tiêu diệt quái vật,
họ cũng phải suy nghĩ và áp dụng logic ể tìm ra cách tối ưu ể sử dụng tia laser
và vượt qua các câu ố. Sự kết hợp này tạo ra một trải nghiệm a chiều, kích thích
cả các khía cạnh hành ộng và tư duy của người chơi.
2.1.4. Sự phối hợp và tương tác giữa người chơi
Việc nối hai nhân vật bằng tia laser trong Golden Ray tạo ra sự phối hợp
và tương tác giữa người chơi. Để tiêu diệt các quái vật và vượt qua các thử
thách, người chơi cần phối hợp và làm việc nhóm. Điều này khuyến khích
người chơi phải thực hiện các chiến thuật và kế hoạch cùng nhau ể ạt ược mục
tiêu chung. Sự phối hợp và tương tác giữa người chơi tạo ra một môi trường
chơi game xã hội, nơi mà việc giao tiếp, ồng cảm và hỗ trợ lẫn nhau là rất quan trọng.
2.1.5. Tạo ra trải nghiệm mới và sự thách thức
Golden Ray em lại trải nghiệm mới và sự thách thức cho người chơi. Với
tính năng nối nhân vật bằng tia laser, người chơi sẽ phải ối mặt với các câu ố và
thử thách ộc áo. Họ phải tư duy sáng tạo và tìm ra các cách ể tận dụng tối a tính
năng này ể vượt qua các màn chơi. Sự thách thức trong việc phối hợp và tương lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
tác giữa người chơi ồng thời mang lại sự hứng thú và khám phá liên tục trong quá trình chơi game. 2.1.6. Tổng kết
Việc chọn ề tài cho Golden Ray dựa trên sự ộc áo và sáng tạo của tính
năng nối hai nhân vật bằng tia laser. Đề tài này mang lại tiềm năng cho sự sáng
tạo và phát triển, kết hợp giữa hành ộng và logic, tạo ra sự phối hợp và tương
tác giữa người chơi, cũng như mang ến trải nghiệm mới và sự thách thức. Tất cả
những yếu tố này óng góp vào việc tạo nên một trò chơi ộc áo và hấp dẫn cho người chơi. 2.2. Ý tưởng
Ý tưởng của Golden Ray xoay quanh việc nối hai nhân vật bằng tia laser
và tiêu diệt quái vật. Từ ó, game mang ến những câu ố, thử thách và sự phối hợp
giữa người chơi. Với trải nghiệm ồ họa và âm thanh hấp dẫn, chế ộ chơi a
người, hệ thống tiến cấp và tùy chỉnh, cùng với tính tương thích a nền tảng,
Golden Ray hứa hẹn mang ến cho người chơi một trò chơi ộc áo và thú vị.
2.2.1. Tia laser nối hai nhân vật
Trong Golden Ray, người chơi sẽ iều khiển hai nhân vật ược nối với nhau
bằng một tia laser. Tia laser này sẽ di chuyển và thay ổi hướng theo sự di
chuyển của hai nhân vật. Ý tưởng này tạo ra một liên kết ặc biệt giữa hai nhân
vật và òi hỏi sự phối hợp giữa người chơi ể iều khiển và tận dụng tối a tính năng này.
2.2.2. Tiêu diệt quái vật bằng tia laser
Các con quái vật trong game sẽ bị tiêu diệt nếu chúng chạm vào tia laser
nối hai nhân vật. Điều này tạo ra một thách thức cho người chơi, khi họ cần phải
di chuyển và iều khiển tia laser một cách thông minh ể tiêu diệt các quái vật và
bảo vệ hai nhân vật. Sự phối hợp và tương tác giữa người chơi là yếu tố quan
trọng ể thành công trong việc tiêu diệt quái vật và ạt ược iểm cao.
2.2.3. Thử thách a dạng
Golden Ray sẽ cung cấp các thử thách a dạng cho người chơi. Người chơi
sẽ phải tìm cách sử dụng tia laser và tận dụng tính năng nối nhân vật ể vượt qua
các chướng ngại vật, giải quyết các câu ố logic và ạt ược mục tiêu trong mỗi màn chơi. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
2.2.4. Trải nghiệm ồ họa và âm thanh hấp dẫn
Golden Ray sẽ ược thiết kế với ồ họa ẹp mắt và hiệu ứng hấp dẫn, tạo ra
một thế giới game tươi sáng và mê hoặc. Âm thanh cũng sẽ ược chú trọng ể tạo
ra một trải nghiệm âm nhạc và âm thanh phù hợp với các tình huống trong game 2.2.5. Chế ộ chơi
Golden Ray sẽ hỗ trợ chế ộ chơi a người, cho phép người chơi tham gia
vào các trận ấu kết hợp với ồng ội ể tiêu diệt các quái vật và ạt iểm cao. Chế ộ
chơi a người sẽ tạo ra một môi trường cạnh tranh và thú vị, nơi người chơi có
thể thể hiện kỹ năng của mình trong việc iều khiển nhân vật và tia laser, và phối
hợp với nhau ể ạt ược iểm số cao nhất.
2.2.6. Hệ thống tiến cấp và tùy chỉnh
Golden Ray sẽ có một hệ thống tiến cấp và tùy chỉnh, cho phép quái vật
tự ộng xuất hiện và di chuyển tiến ến tấn công người chơi gần nhất và tăng số
lượng theo thời gian. Người chơi phải di chuyển thật nhanh ể tránh sự tấn công
của quái vật. Số lượng quái vật theo thời gian sẽ nhiều và di chuyển nhanh. Khi
bị quái vật ụng trúng thì máu của bạn và ồng ội ều bị trừ. Khi trừ hết máu có nghĩa game over.
2.3. Công nghệ và công cụ
Công nghệ và công cụ: Photon Engine, Unity . Đây là những công nghệ
và công cụ ược sử dụng rộng rãi ể phát triển game trên thị trường hiện nay. 2.3.1. Unity
Unity là một công cụ phát triển phần mềm a nền tảng và môi trường phát
triển trò chơi (game development environment) phổ biến. Nó ược sử dụng rộng
rãi trong ngành công nghiệp trò chơi, thực tế ảo, thực tế tăng cường và ứng dụng tương tác 3D.
Một số nội dung quan trọng về Unity:
Ngôn ngữ lập trình: Unity hỗ trợ nhiều ngôn ngữ lập trình, bao gồm C#,
JavaScript và Boo. Tuy nhiên, C# là ngôn ngữ phổ biến nhất ược sử dụng ể phát
triển trò chơi trong Unity.
Cấu trúc và thành phần: Unity sử dụng cấu trúc dựa trên thành phần
(component-based structure), trong ó các ối tượng (game objects) ược tạo thành
từ các thành phần (components) như hình dạng (shape), ánh sáng (lighting), vật lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
lý (physics) và kịch bản (script). Việc kết hợp các thành phần này giúp xây
dựng các trò chơi phong phú và tương tác.
Bộ công cụ phát triển: Unity cung cấp một bộ công cụ phát triển mạnh mẽ
gồm Unity Editor, một giao diện ồ họa dễ sử dụng ể xây dựng trò chơi và thiết
lập các thuộc tính của các ối tượng. Nó cũng i kèm với một bộ công cụ cho việc
lập trình và gỡ lỗi (debugging).
Tương thích a nền tảng: Unity cho phép phát triển trò chơi và ứng dụng
cho nhiều nền tảng khác nhau như Windows, macOS, iOS, Android,
PlayStation, Xbox và nhiều hơn nữa. Điều này giúp nhà phát triển tiết kiệm thời
gian và công sức trong việc ưa sản phẩm của họ lên nhiều nền tảng.
Cộng ồng và tài liệu học tập: Unity có một cộng ồng rộng lớn, với rất
nhiều nguồn tài liệu và diễn àn trực tuyến. Người dùng Unity có thể tìm kiếm
hướng dẫn, tài liệu, ví dụ mã nguồn và thảo luận ể giúp họ học và giải quyết các
vấn ề trong quá trình phát triển.
Đồ họa và âm thanh: Unity hỗ trợ a dạng công nghệ ồ họa và âm thanh,
cho phép bạn tạo ra các hiệu ứng hình ảnh, ồ họa 2D và 3D chất lượng cao. Nó
cũng hỗ trợ việc tích hợp âm thanh và cung cấp các công cụ cho việc iều khiển
và xử lý âm thanh trong trò chơi.
Các tính năng mở rộng: Unity có thể ược mở rộng thông qua việc sử dụng
các gói (packages) và plugin của bên thứ ba. Các gói này cung cấp các tính năng
bổ sung như hệ thống vật lý phức tạp, trí tuệ nhân tạo, hệ thống quảng cáo, tích
hợp mạng xã hội và nhiều hơn nữa.
Unity là một công cụ mạnh mẽ và linh hoạt cho phát triển trò chơi và ứng
dụng 3D. Với sự phổ biến của nó và nguồn tài nguyên học tập phong phú, Unity
là một lựa chọn tốt cho những người muốn bắt ầu hoặc tiếp tục phát triển sự
nghiệp trong lĩnh vực này. 2.3.2. Photon Engine
Photon Engine là một nền tảng mạng chuyên dụng cho việc phát triển trò
chơi a người chơi (multiplayer games). Nền tảng này ược phát triển bởi Exit
Games và cung cấp các công cụ và dịch vụ ể xây dựng và quản lý các trò chơi trực tuyến.
Một số nội dung quan trọng về Photon Engine:
Kiến trúc mạng: Photon Engine sử dụng kiến trúc client-server cho việc
kết nối và giao tiếp giữa các người chơi. Mô hình này bao gồm một máy chủ lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
(server) và các máy khách (clients). Máy chủ chịu trách nhiệm quản lý trạng
thái trò chơi và xử lý các sự kiện từ người chơi. Các máy khách kết nối ến máy
chủ ể gửi và nhận dữ liệu trong trò chơi.
Real-time và ồng bộ hóa: Photon Engine hỗ trợ việc xây dựng các trò
chơi a người chơi có tính chất real-time (thời gian thực), cho phép các người
chơi tương tác và thấy sự thay ổi ngay lập tức. Nền tảng này cung cấp các cơ
chế ồng bộ hóa dữ liệu như gửi và nhận thông tin ồng bộ, ồng bộ hóa trạng thái
trò chơi và ồng bộ hóa hành ộng giữa các máy khách.
Tích hợp dễ dàng: Photon Engine cung cấp các API và SDK cho nhiều
nền tảng và ngôn ngữ lập trình phổ biến như C#, C++, JavaScript và Java. Điều
này giúp việc tích hợp và phát triển trò chơi trên các nền tảng khác nhau trở nên dễ dàng.
Scalability và performance: Photon Engine ược tối ưu hóa ể xử lý số
lượng lớn người chơi và môi trường trò chơi phức tạp. Nền tảng này hỗ trợ việc
mở rộng (scalability) bằng cách cho phép tạo ra các máy chủ (server) phụ ể
phân tải tải và duy trì trạng thái trò chơi. Ngoài ra, Photon Engine sử dụng các
thuật toán và giao thức tối ưu ể ảm bảo hiệu suất cao và ộ trễ thấp trong trò chơi a người chơi.
Các tính năng và dịch vụ: Photon Engine cung cấp các tính năng và dịch
vụ hỗ trợ cho phát triển trò chơi a người chơi. Điều này bao gồm hệ thống
matchmaking (tìm kiếm người chơi phù hợp), phòng chơi (rooms) ể quản lý và
phân chia người chơi, và giao thức bảo mật ể ảm bảo an toàn và chống gian lận trong trò chơi.
Cộng ồng và tài liệu học tập: Photon Engine có một cộng ồng lớn với
nhiều tài liệu, ví dụ và diễn àn trực tuyến. Người dùng Photon Engine có thể tìm
kiếm thông tin và tài liệu học tập ể giúp họ hiểu và sử dụng tốt nền tảng này.
Photon Engine là một nền tảng mạng mạnh mẽ và linh hoạt cho phát triển
trò chơi a người chơi. Với các tính năng và dịch vụ của nó, nền tảng này giúp
nhà phát triển xây dựng trò chơi trực tuyến chất lượng cao và tương tác giữa
người chơi một cách dễ dàng và hiệu quả.
2.3.3. Lý do chọn công nghệ Photon Engine
Lý do chọn công nghệ Photon Engine thay vì SmartFox
Điểm qua giống và khác nhau: Đặc iểm Photon Engine Smartfox Kiến trúc Client-server architecture Client-server architecture lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Hỗ trợ nền tảng Đa nền tảng Đa nền tảng Hiệu suất Cao Cao Thời gian phản hồi Thấp Thấp
Số lượng kết nối tối a Lớn Lớn Độ tin cậy Cao Cao Giá cả Đắt Đắt Thư viện hỗ trợ Phong phú Đầy ủ Cộng ồng Lớn Nhỏ
Một số lý do mà bạn có thể chọn Photon Engine thay vì SmartFox:
Hiệu suất cao: Photon Engine ược tối ưu hóa ể ạt hiệu suất cao và áp ứng
tốt với số lượng lớn người chơi. Nền tảng này sử dụng các thuật toán và giao thức
tối ưu ể ảm bảo trải nghiệm chơi game mượt mà và ồng bộ hóa tốt trong trò chơi a người chơi.
Hỗ trợ a nền tảng: Photon Engine hỗ trợ nhiều nền tảng khác nhau như
Windows, macOS, iOS, Android và cả các nền tảng game console như
PlayStation và Xbox. Điều này cho phép bạn phát triển trò chơi a người chơi và
triển khai chúng trên nhiều thiết bị và hệ iều hành khác nhau một cách dễ dàng.
Các tính năng và dịch vụ hỗ trợ: Photon Engine cung cấp các tính năng và
dịch vụ hỗ trợ cho việc phát triển trò chơi a người chơi, bao gồm hệ thống
matchmaking, phòng chơi, giao thức bảo mật và nhiều hơn nữa. Điều này giúp
bạn xây dựng trò chơi a người chơi có tính năng và trải nghiệm tốt.
Tích hợp dễ dàng: Photon Engine cung cấp các API và SDK cho nhiều nền
tảng và ngôn ngữ lập trình phổ biến như C#, C++, JavaScript và Java. Điều này
giúp tích hợp vào dự án trò chơi một cách dễ dàng và linh hoạt.
Cộng ồng và tài liệu học tập: Photon Engine có một cộng ồng lớn với nhiều
tài liệu, ví dụ và diễn àn trực tuyến. Bạn có thể tìm kiếm thông tin, tài liệu học tập
và nhận hỗ trợ từ cộng ồng này ể giúp bạn hiểu và sử dụng tốt công nghệ Photon Engine. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
2.4. GDD Golden Ray (1 trang)
2.4.1. Nhận dạng trò chơi
Golden Ray - Một cuộc phiêu lưu năng ộng và hành ộng ầy sức mạnh với
gameplay tập trung vào tia laser.
2.4.2. Cột mốc thiết kế
Sống ộng: GamePlay hấp dẫn và nhanh chóng, giữ cho người chơi luôn phải cảnh giác
Kịch tích: tạo ra trải nghiệm hứng thú và hồi hộp
Đơn giản: Tập trung sự tối giản, tiếp cận ơn giản
2.4.3. Thể loại/ Cốt truyện/ Cơ chế tổng quan
Trò chơi này sử dụng cơ chế ặc biệt về sử dụng tia laser ể kể một câu chuyện
về sự mạnh mẽ của nhân vật RayKiller và cuộc chiến chống lại quái vật ể bảo vệ thế giới ... 2.4.4. Tính năng
Hành ộng a dạng: Điều khiển nhân vật và sử dụng tia GoldenRay ể tiêu diệt quái vật.
Chế ộ chơi: Chế ộ chơi trực tuyến òi hỏi sự ăn ý giữa các người chơi với nhau. 2.4.5. Giao diện
Người chơi sẽ iều khiển nhân vật RayKiller bằng cách sử dụng các phím
iều hướng hoặc các phím (W, A, S, D) trên bàn phím ể tương tác với nhân vật
sao cho tia GoldenRay có ộ dài ngắn phù hợp.
Giao diện sẽ bao gồm số lượng iểm ã tiêu diệt yêu quái, số mạng chơi còn lại, tên phòng và ping.
2.4.6. Phong cách nghệ thuật
Lấy cảm hứng từ các game 2D retro 1900 2.4.7. Âm thanh
Trải nghiệm âm thanh ặc sắc, tăng sự phấn khích cho người chơi
2.4.8. Lộ trình phát triển
Platform: Windows/Macos/IOS/Android
Audience: 8+/nam - nữ/Thích sự hợp tác
2.5. GDD Golden Ray ( 10 trang )
2.5.1. Giới thiệu tựa game Golden Ray -
Tên game: Golden Ray - lấy cảm hứng từ tia Laser -
Vào năm 2169 khi thế giới trải qua khủng hoảng tài nguyên và ô
nhiễm khí hậu. Các nhà khoa học ã tạo ra một cánh cổng thời gian, cho phép
thực hiện bước nhảy không gian, tạm hiểu là dịch chuyển tức thời. Bạn có thể lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
du hành giữa các hành tinh trong thời gian ngắn thay vì mất thời gian hàng ngàn
năm ánh sáng (khái niệm năm ánh sáng: Năm ánh sáng ược hiểu là quãng ường
ánh sáng di chuyển trong một năm tốc ộ ánh sáng là 3x10^8 m/s). -
Câu chuyện trong Golden Ray xoay quanh cuộc phiêu lưu của hai
nhân vật chính, họ là những nhà thám hiểm ang tìm kiếm kho báu trên hành tinh
xa xôi. Trong quá trình tìm kiếm, họ phát hiện ra rằng một nhóm người ngoài
hành tinh ang âm mưu chiếm oạt kho báu ó ể sử dụng vào một mục ích xấu xa.
Nhân vật chính cùng nhau ối mặt với các thử thách, ánh bại các quái vật và vượt
qua các trở ngại ể giành ược kho báu và ngăn chặn kế hoạch của nhóm người ngoài hành tinh. -
Golden Ray có một kết thúc tuyệt vời với việc nhân vật chính
giành ược kho báu và ngăn chặn kế hoạch của nhóm người ngoài hành tinh. Sau
khi chiến thắng, người chơi sẽ ược trải nghiệm một cảnh tượng ầy phấn khích
với hiệu ứng nổ vàng tràn ầy màn hình, cùng với âm nhạc vui nhộn -
Các nhân vật chính sẽ vui mừng cùng nhau vì ã hoàn thành sứ
mệnh của mình. Kết thúc game sẽ giữ lại ấn tượng tốt cho người chơi và tạo sự
hứng thú ể chơi lại lần sau. -
Golden Ray là một tựa game multiplayer trực tuyến, nơi người
chơi sẽ ược nhập vai vào các nhân vật ược nối với nhau bằng các tia laser và
chiến ấu chống lại các con quái vật ể bảo vệ thế giới của họ. -
Golden Ray ược thiết kế với một khái niệm nghệ thuật Cartoon ộc
áo, từ ồ họa cho ến cách thức di chuyển và sử dụng tia laser. Màu sắc và hình
ảnh của game ược thiết kế với tông màu sáng và nổi bật, kết hợp với ường nét
mềm mại, tạo nên một thế giới game tươi sáng và hấp dẫn. -
Cách thức di chuyển và sử dụng tia laser cũng mang tính nghệ
thuật cao, khi người chơi phải tập trung và có kỹ năng ể iều khiển cả hai nhân
vật di chuyển ồng thời, ồng thời sử dụng tia laser ể tiêu diệt các con quái vật
một cách chính xác. Tất cả các yếu tố này tạo nên một trải nghiệm chơi game ầy
tinh tế và nghệ thuật cho người chơi.
2.5.2.Mục tiêu và cốt lõi trò chơi
2.5.2.1: Mục tiêu trò chơi -
Mục tiêu của người chơi là tiêu diệt tất cả các con quái vật xuất
hiện trên ường i ể giữ cho thế giới của họ an toàn. -
Trong quá trình di chuyển, người chơi cần phải tránh các chướng
ngại vật và ồng thời sử dụng tia laser ể tiêu diệt các con quái vật. -
Nếu các con quái vật chạm vào tia laser, chúng sẽ bị tiêu diệt và
người chơi sẽ ược cộng iểm. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
2.5.2.2: Cốt lõi trò chơi -
Vào game bạn sẽ chọn nhân vật và ược bắt ầu tại một vị trí nào ó trong game. -
Bạn sẽ phải di chuyển nhân vật của bạn sao cho tương tác với ồng
ội ể né tránh quái vật tấn công. -
Khi tiếp cận ồng ội một khoảng cách nhất ịnh thì sẽ tạo một tia laser giữa 2 người. -
Bạn cần di chuyển sao cho tia laser này chạm vào quái vật, khi ó
quái vật sẽ bị tiêu diệt. -
Nếu bạn bị quái vật ụng phải thì bạn sẽ bị hạ gục. -
Bạn sẽ phải ợi cho ến khi ồng ội của bạn bị hạ hết và game over, ể
bạn có thể tiếp tục chơi cùng bạn. Không thì bạn có thể tạo phòng mới. 2.5.2.3: Cách chơi -
Người chơi sử dụng các phím trên bàn phím ể di chuyển nhân vật
của mình tránh các con quái tiến ến tương ứng với:
+ Tiến lên ( W, mũi tên lên )
+ Lùi lại ( S, mũi tên lùi)
+ Sang trái ( A, mũi tên trái )
+ Sang phải ( D, mũi tên phải ) 2.5.3.Nhân vật 2.5.3.1: RayKiller -
Trong Golden Ray, có tối a 2 RayKiller ại diện cho 2 người chơi
cùng nhau di chuyển và chống lại ám quái vật
Hình ảnh về RayKiller 2.5.3.2: Monster -
Các con quái vật trong Golden Ray ược thiết kế với ộ khó tăng dần
và các kỹ năng a dạng. Từ các con quái vật nhỏ và dễ tiêu diệt, cho ến các con
quái vật lớn và ầy sức mạnh. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 -
Các con quái vật này sẽ có khả năng tấn công và phòng thủ, và
người chơi sẽ phải sử dụng tia laser của mình ể tiêu diệt chúng.
Hình ảnh về Monster
2.5.4.Các yếu tố trong trò chơi 2.5.4.1: Golden Ray -
Tia laser trong Golden Ray có nhiều thuộc tính khác nhau, bao
gồm tốc ộ di chuyển, sức mạnh và phạm vi. -
Golden Ray sử dụng các yếu tố vật lý ể tạo ra một trải nghiệm chơi
game thú vị cho người chơi. 2.5.4.2: Star -
Star tượng trưng cho số iểm tăng theo số lượt quái vật mà người chơi ã tiêu diệt Hình ảnh về Star 2.5.4.3: Heart -
Heart tượng trưng cho số mạng chơi còn lại giảm dần theo số lượt
một trong hai người chơi bị quái vật chạm phải lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Hình ảnh về Heart
2.5.4.4: Tính vật lý -
Golden Ray sử dụng các yếu tố vật lý ể tạo ra một trải nghiệm chơi
game thú vị cho người chơi. -
Các ối tượng trong trò chơi ều ược xử lý theo vật lý học, với các
tính năng như ộ trượt, quán tính và sức mạnh. -
Các thuật toán thống kê ược tích hợp trong trò chơi ể tạo ra các cơ
hội và thách thức cho người chơi, ảm bảo tính ngẫu nhiên và sự cân bằng trong trò chơi.
2.5.4.5: Trí tuệ nhân tạo - Artificial Intelligence -
Golden Ray sử dụng trí tuệ nhân tạo ể iều chỉnh ộ khó của trò chơi
và tạo ra các kịch bản chơi ộc áo. -
Hệ thống trí tuệ nhân tạo của trò chơi sẽ học từ hành vi của người
chơi và iều chỉnh các yếu tố trong trò chơi ể tạo ra một trải nghiệm chơi game
tốt nhất cho người chơi. -
Hệ thống sẽ tự ộng sinh ra vị trí của quái vật
2.5.5 Âm thanh và nhạc nền
2.5.5.1: Mục tiêu tổng thể
Mục tiêu tổng thể của âm thanh và nhạc nền trong Golden Ray là tạo ra
một trải nghiệm âm nhạc phù hợp với tình huống và cảm xúc của người chơi.
Nhạc nền sẽ ược tạo ra bởi những bản nhạc ộc quyền ược sản xuất bởi các
nhà sản xuất chuyên nghiệp.
Các bản nhạc này sẽ ược phối hợp với hoạt ộng trong trò chơi ể tạo ra
một trải nghiệm âm thanh ầy ủ và thú vị.
2.5.5.2: Hiệu ứng âm thanh và nhạc nền
Trong khi ó, hiệu ứng âm thanh sẽ ược sử dụng ể tăng tính tương tác của
người chơi với trò chơi. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Khi nhân vật va chạm với các vật thể, hoặc khi tia laser bắn hạ một con
quái vật, âm thanh sẽ ược phát ra ể cung cấp cho người chơi một trải nghiệm âm thanh tuyệt vời.
Các hiệu ứng âm thanh cũng sẽ ược sử dụng ể thể hiện các yếu tố khác
như trạng thái sức khỏe của nhân vật hay báo hiệu một mối e dọa ang tới gần.
Ngoài ra, ội ngũ âm thanh còn sử dụng công nghệ âm thanh 3D ể tạo ra
không gian âm thanh ộc áo và chân thực.
Như vậy, người chơi có thể có ược trải nghiệm âm thanh sống ộng hơn,
giúp họ ắm mình vào trò chơi hơn.
2.5.6: Phong cách ồ hoạ
Golden Ray sở hữu phong cách ồ hoạ khuynh hướng 2D Retro - lối giao
diện ã hình thành từ rất lâu trở về những năm 1900 , thân thiện, dễ thích nghi
với người chơi mọi ộ tuổi
2.6.Đối tượng sử dụng
2.6.1.Người chơi trẻ tuổi và thanh thiếu niên
Golden Ray có tiềm năng thu hút ối tượng người chơi trẻ tuổi và thanh
thiếu niên. Đối với những người chơi trong nhóm tuổi này, trò chơi sẽ mang lại
một trải nghiệm giải trí mới mẻ và thú vị. Họ có thể tận hưởng tính năng ộc áo
của việc nối hai nhân vật bằng tia laser và thử thách bản thân trong việc tiêu diệt
quái vật, và phối hợp với bạn bè ể ạt ược kết quả tốt nhất.
2.6.2.Người chơi yêu thích trò chơi a người
Đối tượng nghiên cứu của Golden Ray cũng bao gồm những người chơi
yêu thích trò chơi a người. Với tính năng nối hai nhân vật và tương tác giữa
người chơi, trò chơi này tạo ra một môi trường chơi game xã hội.
2.6.3.Người chơi mong muốn trải nghiệm mới lạ
Trò chơi Golden Ray cũng hướng ến những người chơi mong muốn trải
nghiệm mới lạ và ộc áo. Với cơ chế gameplay ộc áo, sự phối hợp giữa hành ộng
và logic, và tính năng nối nhân vật bằng tia laser, trò chơi này em lại những trải
nghiệm mới mẻ và khác biệt so với các tựa game khác trên thị trường. lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Chương 3: Cài ặt và xây dựng game
3.1. Cài ặt môi trường
Giao diện tạo Server trên Photon cloud
Sau khi tạo Server, Photon cloud cho chúng ta một cái appId ể sử dụng cho SDK trong Unity
App Id PUN là AppId lấy trên Photon Cloud
3.2. Xây dựng giao diện
Tiến hành tìm kiếm assets có sẵn trên internet kết hợp tự xây dựng các
button, tên game và background bằng phần mềm Photoshop lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
Các assets trong folder images
Từ các assets nhân vật thu thập ược tiến hành tạo các animation trạng thái
cho nhân vật và quái vật (idle, run,...)
Animator cho nhân vật
Xây dựng các scene trong trò chơi. Một số hình ảnh trong game: lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Splash screen Main menu screen lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 Lobby screen 3.3. Xây dựng Scripts
3.3.1. Script ConnectToServer.cs
Script ConnectToServer giúp khởi tạo kết nối tới Photon Server và tiến hành load Scene Main Menu lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
3.3.2. Script MainMenu.cs
Script MainMenu xử lý logic liên quan ến danh sách phòng, tạo phòng,
tham gia phòng, tạo tên người chơi,... lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
3.3.3. Script Spawner.cs
Script Spawner xử lý việc tạo ra quái vật tại các iểm neo (Anchor point)
ược tạo xung quanh map màn chơi lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
3.3.4. Script PlayerController.cs
Script PlayerController xử lý các logic liên quan tới nhân vật người chơi
iều khiển, các trạng thái animation, va chạm,... lOMoARcPSD| 36067889
Lập trình Game nâng cao - Nhóm 4 lOMoAR cPSD| 36067889
Lập trình Game nâng cao - Nhóm 4
3.3.5. Các script còn lại
Ngoài các script kể trên, còn có các script khác ể xử lý các logic khác của
game. Ví dụ như Health.cs xử lý giá trị HP của người chơi, Score.cs xử lý iểm,
GoldenRay.cs xử lý vị trí tia,...
3.4. Đánh giá và kết luận
Trong quá trình phát triển tựa game này, chúng em ã ạt ược nhiều thành
tựu áng kể. Tuy nhiên, chúng em cũng gặp phải một số thách thức và thiếu sót
trong quá trình thiết kế và phát triển.
Chúng em ã thành công trong việc tích hợp tính năng a người chơi vào
game của chúng tôi. Người chơi có thể kết nối và tương tác với nhau trong cùng
một thế giới ảo, tạo ra trải nghiệm chơi game a người chơi hấp dẫn và tương tác.
Ngoài ra việc ồng bộ hóa dữ liệu giữa các người chơi chạy một cách ổn ịnh và
hiệu quả. Người chơi có thể nhìn thấy và tương tác với nhau trong thời gian thực,
tạo ra sự liên kết và tương tác xung quanh các hoạt ộng trong game.
Tuy nhiên, chúng em cũng gặp phải một số thách thức và thiếu sót trong
quá trình thiết kế và phát triển. Một trong những thách thức chính là việc tối ưu
hóa hiệu suất của trò chơi trên nhiều thiết bị và kết nối mạng khác nhau. Trong
khi chúng em ã cố gắng tối ưu hóa trò chơi, nhưng vẫn còn một số trường hợp mà
hiệu suất của trò chơi không ạt ược yêu cầu tối ưu.
Thiếu sót khác của chúng em là mặc dù game hoạt ộng ổn ịnh, nhưng vẫn
còn khả năng cải thiện hiệu suất và tối ưu hóa ể ảm bảo trải nghiệm chơi game
mượt mà hơn, ặc biệt khi có nhiều người chơi cùng tham gia. Việc quản lý mạng
và xử lý các trường hợp mất kết nối hoặc lag vẫn còn chưa ược xử lý triệt ể. Chúng
em cần cải thiện khả năng xử lý các tình huống không ổn ịnh trong mạng ể ảm
bảo tính ổn ịnh và liên tục của trò chơi.
Một rút kinh nghiệm quan trọng mà chúng em thu ược sau khi phát triển
tựa game này là cần phải ảm bảo tính ồng bộ giữa máy chủ và máy khách. Việc
ồng bộ hóa dữ liệu và tính toán ồng bộ là rất quan trọng ể ảm bảo tính ổn ịnh và
ồng bộ hóa trong trò chơi. chúng em cũng nên thực hiện kiểm tra và thử nghiệm
trò chơi trên nhiều thiết bị và mạng khác nhau ể ảm bảo tính tương thích và hiệu
suất ổn ịnh trên mọi nền tảng.
Tổng thể, tựa game này ã mang ến cho chúng em nhiều kinh nghiệm quý
báu và cả những thử thách trong quá trình phát triển. chúng em rất hài lòng với
kết quả cuối cùng của trò chơi và tin rằng nó sẽ mang lại trải nghiệm chơi game
thú vị và tương tác cho người chơi. chúng em sẽ tiếp tục phát triển và cải thiện
trò chơi trong tương lai, ể em lại cho người chơi những trải nghiệm chơi game tốt nhất.