MỤC LỤC DANH MỤC ẢNH -----------------------------------------------------------------1DANH MỤC TỪ VIẾT TẮT----------------------------------------------------1MỞ ĐẦU -----------------------------------------------------------------------------11. Lý do chọn đề tài ----------------------------------------------------------------22. Phạm vi đề tài-------------------------------------------------------------------33. Phương pháp nghiên cứu -----------------------------------------------------54. Bố cục báo cáo -------------------------------------------------------------------7GIỚI THIỆU VÊ ĐƠN VỊ THỰC TẬP ---------------------------------------8Chương 1. TỔNG QUAN VÊ XÂY DỰNG DỨNGDỤNG---------------91.1. Tổng quan về công nghệ sử dụng -----------------------------------------91.1.1. Tổng quan về Unity ---------------------------------------------------------91.1.2. Tổng quan về Nodejs------------------------------------------------------101.1.3. Tổng quan về PostgreSQL -----------------------------------------------121.1.4. Tổng quan về Photon Engine -------------------------------------------161.1.5. Tổng quan về JavaScript -------------------------------------------------201.1.6. Tổng quan về C# -----------------------------------------------------------22CHƯƠNG 2: THIẾT KẾ HỆ THỐNG ỨNG DỤNGGAMETHEHANDLESS -----------------------------------------------------------------------252.1. Yêu cầu hệ thống ------------------------------------------------------------252.1.1. Yêu cầu chức năng --------------------------------------------------------252.1.2. Yêu cầu phi chức năng ---------------------------------------------------262.2. Yêu cầu hệ thống ------------------------------------------------------------272.2.1. Phần cứng ------------------------------------------------------------------272.2.2. Phần mềm ------------------------------------------------------------------282.2.3. Kết nối mạng và bảo mật -------------------------------------------------282.3. Thiết kế kiến trúc hệ thống -----------------------------------------------292.3.1. Kiến trúc tổng thể.---------------------------------------------------------292.3.2. Mô hình ERD cơ sở dữ liệu.---------------------------------------------302.4. Thiết kế chi tiết --------------------------------------------------------------372.4.1. Thiết kế giao diện người dùng.------------------------------------------372.4.2. Thiết kế các giao diện game.-------------------------------------------- 37CHƯƠNG 3: PHÁT TRIỂN GAME THE HANDLESS -----------------403.1. Phát triển cốt truyện và cơ chế game -----------------------------------403.1.2. Cốt truyện Tutorial trong Game ----------------------------------------403.1.3. Cơ chế Gameplay của The Handless-----------------------------------403.2. Thiết kế luật quy luật chơi ------------------------------------------------403.2.1. Di Chuyển:-----------------------------------------------------------------403.2.2. Tấn Công:------------------------------------------------------------------41 3.2.3. Màn Chơi:------------------------------------------------------------------413.2.4. Điểm:------------------------------------------------------------------------413.2.5. Máu:-------------------------------------------------------------------------413.3. Lập trình và triển khai game với Unity --------------------------------413.3.1. Cấu hình Unity, Microsoft Visual Studio. -----------------------------413.3.2. Lập trình các tính năng cơ bản.----------------------------------------413.4. Phát triển server với Node.js---------------------------------------------433.4.1. Cài đặt và cấu hình Node.js.---------------------------------------------433.4.2. Xây dựng các API cho game server.-----------------------------------433.4.3. Quản lý kết nối real-time giữa client và server.----------------------453.5. Tích hợp Photon cho game multiplayer --------------------------------453.5.1. Cài đặt và cấu hình Photon.---------------------------------------------453.5.2. Kết nối Photon với Unity.------------------------------------------------453.6. Triển khai server database PostgreSQL-------------------------------47CHƯƠNG 4: THỬ NGHIỆM -------------------------------------------------484.1. Mô hình kiểm thử -----------------------------------------------------------484.1.1. Kiểm thử đơn vị (Unit Testing)------------------------------------------484.1.2. Kiểm thử tích hợp (Integration Testing)-------------------------------494.1.3. Kiểm thử hệ thống (System Testing)-----------------------------------504.2. Triển khai hệ thống ---------------------------------------------------------514.4.1. Triển khai server.----------------------------------------------------------514.4.2. Triển khai game trên các nền tảng khác nhau. ----------------------514.4.3. Đánh giá hiệu suất và khả năng mở rộng.----------------------------51KẾT LUẬN ------------------------------------------------------------------------52HƯỚNG PHÁT TRIỂN --------------------------------------------------------52TAI LIỆU THAM KHẢO ------------------------------------------------------5
Trang 1BÁO CÁO THỰC TẬP TỐT NGHIỆP
TÊN ĐÊ TAI NGHIÊN CỨU VA PHÁT TRIỂN ỨNG DỤNG GAME ONLINE ỨNG DỤNG UNITY, NODEJS, POSTGRESQL
VA PHOTON CLOUD
Giang viên hướng dẫn: ĐINH HOANG GIA
Sinh viên thực hiện: NGUYỄN VĂN TOẢN
MSSV: 2108110019 Lớp: K15DCPM01 Khóa: K15
BỘ GIÁO DỤC VA ĐAO TẠOTRƯỜNG ĐẠI HỌC GIA ĐỊNH KHOA CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN
Để hoàn thành được báo cáo thực tập môn Kĩ thuật phần mềm với đề tài
"Nghiên cứu và phát triển ứng dụng game online sử dụng Unity, Nodejs,PostgreSQL và Photon cloud", em xin gửi lời cảm ơn chân thành nhất đếnnhững người đã giúp đỡ và hỗ trợ em trong suốt quá trình thực hiện
Trước tiên, em xin bày tỏ lòng biết ơn sâu sắc đến thầy Đinh Hoàng Gia,người đã tận tình hướng dẫn, truyền đạt kiến thức, kinh nghiệm và dànhnhiều thời gian quý báu để góp ý, chỉnh sửa, giúp em hoàn thiện báo cáonày Những chỉ dẫn và động viên từ thầy là nguồn động lực lớn để em vượtqua những khó khăn trong quá trình thực hiện đề tài
Em cũng xin gửi lời cảm ơn đến Ban Giám hiệu nhà trường, các thầy côtrong Khoa Công nghệ Thông tin đã tạo điều kiện và cung cấp môi trườnghọc tập thuận lợi, giúp em tiếp thu kiến thức chuyên ngành một cách hiệuquả nhất
Ngoài ra, em xin chân thành cảm ơn các bạn bè, đồng nghiệp đã luôn bêncạnh, hỗ trợ, chia sẻ những kinh nghiệm quý báu và cùng nhau vượt quanhững thử thách trong quá trình phát triển game Sự động viên và giúp đỡ
từ các bạn là động lực để em không ngừng cố gắng và hoàn thiện côngviệc
Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến công ty B.O.B đã tạo điều kiệnthuận lợi cho em thực tập và học hỏi Sự hỗ trợ và tạo điều kiện từ phíacông ty đã giúp em có được những trải nghiệm thực tế, áp dụng kiến thứcvào thực tiễn và hoàn thành tốt đề tài nghiên cứu này
Cuối cùng, em xin gửi lời biết ơn đến gia đình, người thân đã luôn là điểmtựa tinh thần, cổ vũ và tạo mọi điều kiện thuận lợi để em có thể tập trungvào học tập và hoàn thành tốt báo cáo này
Một lần nữa, em xin chân thành cảm ơn tất cả mọi người
Trang 3ĐÁNH GIÁ CỦA ĐƠN VỊ THỰC TẬP
1 Thái độ tác phong trong thời gian thực tập:
2 Kiến thức chuyên môn:
3 Nhận thức thực tế:
4 Đánh giá khác:
5 Đánh giá chung kết qua thực tập:
………, ngày ……… tháng ……… năm …………
TM Đơn vị thực tập
(Ký tên, đóng dấu)
Trang 4ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN
1 Thái độ tác phong trong thời gian thực tập:
2 Kiến thức chuyên môn:
3 Nhận thức thực tế:
4 Đánh giá khác:
5 Đánh giá chung kết qua thực tập:
………, ngày ……… tháng ……… năm …………
Giang viên hướng dẫn
(Ký tên, ghi rõ họ tên)
Trang 5BÁO CÁO THỰC TẬP TỐT NGHIỆP HANG TUẦN
Họ và tên SV: Nguyễn Văn Toản MSSV:2108110019
Lớp: K15DCPM01
Giảng viên hướng dẫn: Đinh Hoàng Gia
Tên doanh nghiệp (đơn vị) đến thực tập: CÔNG TY TNHH B.O.B
TRƯỜNG ĐẠI HỌC GIA ĐỊNH
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
Trang 6Stt Tuần thứ
Nội dung CV thực tập trong tuần
Nhận xét của CB hướng
dẫn tại DN (Ký tên và ghi rõ họ tên)
Nhận xét của giảng viên
hướng dẫn (Ký tên và ghi rõ họ tên)
Sinh viên tích cực và chủ động trong việc tìm hiểu yêu cầu và lập kế hoạch chi tiết cho dự án Hoàn thành tốt nhiệm vụ được giao
Tiếp tục duy trì tinh thần làm việc nghiêm túc Đã có
sự cải thiện trong việc lập
kế hoạch chi tiết và phân tích yêu cầu
Sinh viên có khả năng thiết
kế giao diện và cấu trúc Game một cách sáng tạo và hợp lý Đáp ứng tốt các yêu cầu đề ra
Trang 7Tiếp tục hoàn thiện thiết kế giao diện và cấu trúc Game Sinh viên làm việc chăm chỉ và có trách nhiệm
Sinh viên đã phát triển được các chức năng chính của Game Hiệu quả công việc tốt và đúng tiến độ
Tiếp tục phát triển các chức năng chính của Game Sinh viên đã hoàn thành tốt các nhiệm vụ được giao
Trang 8Sinh viên thực hiện kiểm thử chức năng và hiệu năng của Game một cách nghiêm túc Kết quả kiểm thử đạt yêu cầu
Hoàn thiện các chức năng
và giao diện của Game Sinh viên có sự cải thiện rõ rệt trong kỹ năng lập trình
Triển khai Game lên các nền tảng mục tiêu thành công Sinh viên đã làm việc hiệu quả và có trách nhiệm cao
Trang 9Sinh viên đã đánh giá và báo cáo kết quả thực tập một cách chi tiết và đầy đủ Kết quả đạt được vượt mong đợi
Trang 10MỤC LỤC
DANH MỤC ẢNH -1
DANH MỤC TỪ VIẾT TẮT - 1
MỞ ĐẦU -1
1 Lý do chọn đề tài -2
2 Phạm vi đề tài - 3
3 Phương pháp nghiên cứu - 5
4 Bố cục báo cáo -7
GIỚI THIỆU VÊ ĐƠN VỊ THỰC TẬP -8
Chương 1 TỔNG QUAN VÊ XÂY DỰNG DỨNG DỤNG -9
1.1 Tổng quan về công nghệ sử dụng - 9
1.1.1 Tổng quan về Unity -9
1.1.2 Tổng quan về Nodejs -10
1.1.3 Tổng quan về PostgreSQL - 12
1.1.4 Tổng quan về Photon Engine - 16
1.1.5 Tổng quan về JavaScript -20
1.1.6 Tổng quan về C# -22
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG ỨNG DỤNG GAME THE HANDLESS - 25
2.1 Yêu cầu hệ thống -25
2.1.1 Yêu cầu chức năng -25
2.1.2 Yêu cầu phi chức năng - 26
2.2 Yêu cầu hệ thống - 27
2.2.1 Phần cứng - 27
2.2.2 Phần mềm - 28
2.2.3 Kết nối mạng và bảo mật -28
2.3 Thiết kế kiến trúc hệ thống - 29
2.3.1 Kiến trúc tổng thể. -29
2.3.2 Mô hình ERD cơ sở dữ liệu. -30
2.4 Thiết kế chi tiết - 37
2.4.1 Thiết kế giao diện người dùng. -37
2.4.2 Thiết kế các giao diện game. - 37
CHƯƠNG 3: PHÁT TRIỂN GAME THE HANDLESS -40
3.1 Phát triển cốt truyện và cơ chế game - 40
3.1.2 Cốt truyện Tutorial trong Game - 40
3.1.3 Cơ chế Gameplay của The Handless -40
3.2 Thiết kế luật quy luật chơi - 40
3.2.1 Di Chuyển: - 40
3.2.2 Tấn Công: - 41
Trang 113.2.3 Màn Chơi: - 41
3.2.4 Điểm: - 41
3.2.5 Máu: - 41
3.3 Lập trình và triển khai game với Unity - 41
3.3.1 Cấu hình Unity, Microsoft Visual Studio. -41
3.3.2 Lập trình các tính năng cơ bản. - 41
3.4 Phát triển server với Node.js - 43
3.4.1 Cài đặt và cấu hình Node.js. -43
3.4.2 Xây dựng các API cho game server. - 43
3.4.3 Quản lý kết nối real-time giữa client và server. - 45
3.5 Tích hợp Photon cho game multiplayer - 45
3.5.1 Cài đặt và cấu hình Photon. - 45
3.5.2 Kết nối Photon với Unity. - 45
3.6 Triển khai server database PostgreSQL - 47
CHƯƠNG 4: THỬ NGHIỆM - 48
4.1 Mô hình kiểm thử -48
4.1.1 Kiểm thử đơn vị (Unit Testing) -48
4.1.2 Kiểm thử tích hợp (Integration Testing) -49
4.1.3 Kiểm thử hệ thống (System Testing) - 50
4.2 Triển khai hệ thống -51
4.4.1 Triển khai server. -51
4.4.2 Triển khai game trên các nền tảng khác nhau. - 51
4.4.3 Đánh giá hiệu suất và khả năng mở rộng. -51
KẾT LUẬN -52
HƯỚNG PHÁT TRIỂN - 52
TAI LIỆU THAM KHẢO - 54
Trang 12DANH MỤC ẢNH
Hình 1 Mô hình hệ thống -29
Hình 2 Sơ đồ ERD - 30
Hình 3 Giao diện sảnh chính game -37
Hình 4 Giao diện đăng nhập - 37
Hình 5 Giao diện đăng ký - 38
Hình 6 Giao diện cài đặt thông tin trò chơi - 38
Hình 7 Giao diện loading -39
Hình 8 Giao diện sảnh chờ vào trận -39
Trang 13DANH MỤC TỪ VIẾT TẮT
SQL Injection SQL Injection
Một kỹ thuật tấn côngbảo mật nơi kẻ tấn côngchèn mã SQL độc hạivào các truy vấn SQLcủa ứng dụng
Language
SQL (Structured QueryLanguage) là ngôn ngữchính dùng để tương tácvới cơ sở dữ liệu quanhệ
Lỗ hổng bảo mật chophép kẻ tấn công chèn
mã độc vào trang web,ảnh hưởng đến ngườidùng khác
Ubuntu Server 20.04
LTS
Ubuntu Server 20.04LTS
Một phiên bản hệ điềuhành máy chủ dựa trênLinux, được hỗ trợ dài
Support)
Đơn vị xử lý trung tâm,
là bộ não của máy tínhthực hiện các lệnh tínhtoán
Trang 14RAM Random Access Memory
Bộ nhớ truy cập ngẫunhiên, nơi lưu trữ dữ liệutạm thời khi máy tínhhoạt động
Ổ đĩa thể rắn, một loạithiết bị lưu trữ nhanhhơn và bền hơn so với ổcứng truyền thống(HDD)
SSL/TLS Secure Sockets Layer /
Transport Layer Security
Giao thức bảo mật chotruyền thông trêninternet, đảm bảo dữ liệuđược mã hóa và an toàn
Network
Mạng phân phối nộidung, hệ thống các máychủ phân tán giúp cảithiện tốc độ tải trangweb
Photon Server SDK Photon Server Software
Development Kit
Bộ công cụ phát triểnphần mềm cho phép tạo
và quản lý các ứng dụngmạng
Trình quản lý gói choJavaScript, giúp cài đặt
và quản lý các thư viện
và module
Trang 15IDE Integrated Development
Environment
Môi trường phát triểntích hợp, cung cấp cáccông cụ để viết, kiểm tra
và gỡ lỗi mã nguồn
Diagram
Sơ đồ thực thể - mốiquan hệ, một công cụtrực quan để mô tả cấutrúc cơ sở dữ liệu
Trang 16MỞ ĐẦU
Trong những năm gần đây, ngành công nghiệp game đã và đang phát triểnmạnh mẽ, trở thành một trong những lĩnh vực giải trí hàng đầu thu hút hàngtriệu người tham gia trên toàn thế giới Sự phát triển không ngừng của côngnghệ và thiết bị di động đã mở ra nhiều cơ hội mới cho việc phát triểngame, đặc biệt là các trò chơi online Với sự phổ biến của internet và nhucầu giải trí ngày càng cao, game online đã trở thành một phần không thểthiếu trong cuộc sống hàng ngày của nhiều người
Unity là một trong những công cụ phát triển game hàng đầu hiện nay, được
ưa chuộng bởi tính linh hoạt, mạnh mẽ và khả năng hỗ trợ đa nền tảng.Việc sử dụng Unity để phát triển game online không chỉ giúp tối ưu hóaquá trình phát triển mà còn mang lại nhiều trải nghiệm phong phú và đadạng cho người chơi
Đề tài "Nghiên cứu và phát triển ứng dụng game online sử dụng Unity,Nodejs, PostgreSQL và Photon cloud" ra đời nhằm mục đích nghiên cứu vàứng dụng các công nghệ, kỹ thuật hiện đại trong việc xây dựng và pháttriển một trò chơi online Thông qua đề tài này, chúng em mong muốnkhông chỉ nâng cao kiến thức chuyên môn mà còn có cơ hội thực hành, trảinghiệm thực tế quy trình phát triển game từ ý tưởng đến sản phẩm hoànchỉnh
Báo cáo thực tập này sẽ trình bày chi tiết về quá trình nghiên cứu, pháttriển và triển khai một trò chơi online sử dụng Unity Nội dung báo cáo baogồm: giới thiệu về Unity và các công cụ hỗ trợ phát triển game, quy trìnhthiết kế và phát triển game, các thách thức và giải pháp gặp phải trong quátrình thực hiện, cùng với đó là những bài học kinh nghiệm rút ra từ dự án
Trang 17Chúng em hy vọng rằng báo cáo này sẽ cung cấp những thông tin hữu ích
và góp phần vào sự phát triển của ngành công nghiệp game, cũng như mở
ra những hướng nghiên cứu mới trong lĩnh vực này
1 Lý do chọn đề tài
Ngành công nghiệp game đang phát triển mạnh mẽ, đặc biệt là các trò chơionline, đã trở thành một phần quan trọng trong đời sống giải trí của nhiềungười trên toàn thế giới Sự phát triển của công nghệ và các thiết bị di động
đã mở ra nhiều cơ hội mới cho việc phát triển game online Trước bối cảnhnày, việc nghiên cứu và phát triển các tựa game online trở thành một xuhướng tất yếu và mang lại nhiều tiềm năng phát triển
Đề tài "Nghiên cứu và phát triển ứng dụng game online sử dụng Unity,Nodejs, PostgreSQL và Photon cloud" được lựa chọn không chỉ xuất phát
từ đam mê với ngành công nghiệp game mà còn vì những lý do sau:
- Nhu cầu thị trường: Game online ngày càng phổ biến và nhu cầu vềnhững trò chơi mới mẻ, hấp dẫn luôn cao Sự cạnh tranh trong thị trườnggame online đòi hỏi các nhà phát triển phải không ngừng sáng tạo và cảitiến
- Tiềm năng công nghệ: Unity là một nền tảng phát triển game mạnh mẽ vàlinh hoạt, cho phép phát triển game trên nhiều nền tảng khác nhau Node.js
là một môi trường chạy JavaScript phía server mạnh mẽ, lý tưởng cho việcxây dựng các ứng dụng real-time như game online PostgreSQL là một hệquản trị cơ sở dữ liệu mạnh mẽ và đáng tin cậy, hỗ trợ tốt cho việc quản lý
dữ liệu phức tạp của game
- Phát triển kỹ năng: Đề tài này yêu cầu sự kết hợp của nhiều kỹ năng khácnhau như lập trình game (Unity), phát triển server (Node.js) và quản lý cơ
sở dữ liệu (PostgreSQL) Qua quá trình nghiên cứu và thực hiện đề tài, em
Trang 18có thể nâng cao kiến thức chuyên môn và phát triển các kỹ năng cần thiếtcho công việc sau này.
- Thực tiễn và ứng dụng: Sử dụng Unity, Node.js và PostgreSQL trong việcphát triển game online không chỉ giúp tối ưu hóa quá trình phát triển màcòn mang lại trải nghiệm phong phú và đa dạng cho người chơi Việc tíchhợp những công nghệ này sẽ giúp tạo ra một hệ thống game online hoànchỉnh, từ phần front-end đến back-end
- Đóng góp cho cộng đồng: Việc phát triển một trò chơi online không chỉmang lại niềm vui cho người chơi mà còn góp phần vào sự phát triển củacộng đồng game Một trò chơi thành công có thể kết nối hàng triệu ngườichơi, tạo ra những trải nghiệm đáng nhớ và xây dựng một cộng đồng lớnmạnh
Từ những lý do trên, em đã quyết định chọn đề tài "Nghiên cứu và pháttriển ứng dụng game online sử dụng Unity, Nodejs, PostgreSQL và Photoncloud" cho báo cáo thực tập của mình Em tin rằng đây là một đề tài thú vị,đầy thử thách và sẽ mang lại nhiều kiến thức bổ ích cho hành trình học tập
và phát triển sự nghiệp trong tương lai
2 Phạm vi đề tài
Đề tài "Nghiên cứu và phát triển ứng dụng game online sử dụng Unity,Nodejs, PostgreSQL và Photon cloud" tập trung vào việc nghiên cứu vàtriển khai các công nghệ tiên tiến để xây dựng một trò chơi trực tuyến hoànchỉnh Phạm vi của đề tài bao gồm các nội dung chính sau:
a Nghiên cứu và lựa chọn công nghệ
Unity: Nền tảng phát triển game mạnh mẽ, cho phép tạo ra các trò chơi với
đồ họa đẹp mắt và khả năng chạy trên nhiều nền tảng khác nhau Phạm vi
Trang 19nghiên cứu bao gồm việc học cách sử dụng Unity, xây dựng các thành phầngame cơ bản, và tích hợp các tính năng nâng cao.
Node.js: Sử dụng Node.js để phát triển server cho game, đảm bảo khả năng
xử lý yêu cầu từ nhiều người chơi một cách hiệu quả Phạm vi nghiên cứubao gồm việc cài đặt và cấu hình Node.js, xây dựng API cho game server,
và quản lý các kết nối real-time
PostgreSQL: Hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ, được sử dụng đểlưu trữ và quản lý dữ liệu của game Phạm vi nghiên cứu bao gồm việcthiết kế cơ sở dữ liệu, tối ưu hóa truy vấn, và tích hợp PostgreSQL vớiNode.js
b Xây dựng và phát triển game
Thiết kế và lập trình game: Tạo ra một trò chơi trực tuyến hoàn chỉnh, từviệc thiết kế giao diện người dùng, lập trình các tính năng gameplay, đếnviệc quản lý logic game
Tích hợp các công nghệ: Kết hợp Unity, Node.js và PostgreSQL để tạo ramột hệ thống game hoạt động trơn tru Điều này bao gồm việc thiết lậpserver, kết nối client-server, và đồng bộ hóa dữ liệu game
c Triển khai và kiểm thử
Triển khai server: Đưa server game lên môi trường thực tế, đảm bảo khảnăng truy cập và hoạt động ổn định
Kiểm thử game: Thực hiện các bước kiểm thử để đảm bảo trò chơi hoạtđộng đúng như mong đợi, bao gồm kiểm thử tính năng, kiểm thử tải, vàkiểm thử bảo mật
d Tối ưu hóa và bảo trì
Trang 20Tối ưu hóa hiệu suất: Cải thiện hiệu suất của game và server, đảm bảo trảinghiệm người chơi mượt mà ngay cả khi có nhiều người chơi cùng thamgia.
Bảo trì và cập nhật: Thực hiện các công việc bảo trì định kỳ, cập nhật gamevới các tính năng mới và sửa lỗi phát sinh
e Tài liệu hóa và báo cáo
Tài liệu hóa quá trình phát triển: Ghi chép chi tiết về các bước phát triểngame, từ việc nghiên cứu công nghệ, thiết kế, lập trình, triển khai đến kiểmthử
Báo cáo kết quả: Trình bày kết quả đạt được trong quá trình thực hiện đềtài, đánh giá những khó khăn gặp phải và bài học kinh nghiệm rút ra
3 Phương pháp nghiên cứu
Để thực hiện đề tài "Nghiên cứu và phát triển ứng dụng game online sửdụng Unity, Nodejs, PostgreSQL và Photon cloud" một cách hiệu quả, cácphương pháp nghiên cứu sau đây đã được áp dụng:
a Phương pháp thu thập tài liệu
Nghiên cứu tài liệu: Thu thập và nghiên cứu các tài liệu, sách, bài báo khoahọc, và hướng dẫn từ các nguồn uy tín liên quan đến Unity, Node.js, vàPostgreSQL Việc này giúp nắm vững lý thuyết cơ bản và các kỹ thuật tiêntiến trong phát triển game và quản lý cơ sở dữ liệu
Học tập từ các khóa học trực tuyến: Tham gia các khóa học trực tuyến từcác nền tảng học tập như Coursera, Udemy, và các khóa học chính thức củaUnity, Node.js để củng cố kiến thức và kỹ năng
Trang 21b Phương pháp thực nghiệm
Lập trình và thử nghiệm: Thực hiện các thử nghiệm lập trình nhỏ để kiểmchứng lý thuyết và hiểu rõ hơn về cách hoạt động của Unity, Node.js, vàPostgreSQL Qua đó, rút ra các bài học kinh nghiệm và áp dụng vào việcphát triển game
Xây dựng prototype: Phát triển các nguyên mẫu (prototype) của trò chơi đểkiểm tra tính khả thi của các ý tưởng và công nghệ sử dụng Dựa trên kếtquả thử nghiệm, điều chỉnh và hoàn thiện thiết kế
Phương pháp thiết kế và phát triển:
Thiết kế hệ thống: Lập kế hoạch chi tiết cho việc phát triển game, bao gồmthiết kế kiến trúc hệ thống, các thành phần game, cơ sở dữ liệu và luồng dữliệu giữa client và server
Phát triển game: Tiến hành phát triển game theo từng giai đoạn, từ việc lậptrình các tính năng cơ bản đến nâng cao, và tích hợp các công nghệ đã chọn(Unity, Node.js, PostgreSQL)
c Phương pháp kiểm thử và đánh giá
Kiểm thử đơn vị (Unit Testing): Kiểm tra từng thành phần nhỏ của game đểđảm bảo chúng hoạt động đúng chức năng
Kiểm thử tích hợp (Integration Testing): Kiểm tra sự tương tác giữa cácthành phần của hệ thống, đảm bảo chúng hoạt động mượt mà khi tích hợplại với nhau
Kiểm thử hệ thống (System Testing): Kiểm tra toàn bộ hệ thống game trênmôi trường triển khai, bao gồm kiểm thử hiệu suất, tải và bảo mật
Đánh giá và phản hồi: Thu thập phản hồi từ người dùng thử nghiệm, phântích và cải thiện dựa trên những phản hồi này để nâng cao chất lượng vàtrải nghiệm người chơi
Trang 22Ghi chép quá trình phát triển: Ghi chép chi tiết về các bước thực hiện, cácquyết định thiết kế, các vấn đề gặp phải và cách giải quyết.
Báo cáo kết quả: Soạn thảo báo cáo kết quả nghiên cứu, bao gồm các phầnnhư giới thiệu, lý do chọn đề tài, phương pháp nghiên cứu, kết quả đạtđược, và bài học kinh nghiệm
Việc áp dụng các phương pháp nghiên cứu trên sẽ đảm bảo rằng đề tài
"Nghiên cứu và phát triển ứng dụng game online sử dụng Unity, Nodejs,PostgreSQL và Photon cloud" được thực hiện một cách khoa học, logic vàhiệu quả
4 Bố cục báo cáo
Bố cục báo cáo gồm 5 chương:
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG
- Phần này chủ yếu tập chung giới thiệu về các công nghệ sử dụng pháttriển game trong đề tài
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
- Phần này phân tích thiết kế hệ thống bao gồm yêu cầu hệ thống, kiến trúc
hệ thống, nêu nên các sơ đồ của hệ thống, sơ đồ thiết kế database
CHƯƠNG 3: PHÁT TRIỂN GAME ONLINE
- Phần này nêu lện quá trình lập trình và phát triển game và server chogame
CHƯƠNG 4: KIỂM THỬ VÀ TRIỂN KHAI HỆ THỐNG
- Phần này nêu lên quá trình kiểm thử và triển khai game và sever
CHƯƠNG 5: KẾT QUẢ VÀ ĐÁNH GIÁ
- Phần này nêu lên kết quả đánh giá kết quả
Trang 23GIỚI THIỆU VÊ ĐƠN VỊ THỰC TẬP
Trong quá trình thực tập tại B.O.B Studio, em đã có cơ hội trải nghiệm vàhọc hỏi tại một trong những studio phát triển game hàng đầu tại Việt Nam.B.O.B Studio đặt mục tiêu trở thành đơn vị tiên phong trong ngành côngnghiệp game, luôn nỗ lực đổi mới để mang đến trải nghiệm tốt nhất chongười chơi Sứ mệnh của studio là tạo ra những sản phẩm giải trí không chỉhấp dẫn mà còn có giá trị giáo dục và văn hóa, góp phần xây dựng cộngđồng game lành mạnh và phát triển
Môi trường làm việc tại B.O.B Studio chuyên nghiệp, thân thiện và sángtạo, khuyến khích nhân viên phát triển tối đa khả năng của mình Studiocung cấp đầy đủ các điều kiện và trang thiết bị hiện đại, tạo điều kiện thuậnlợi nhất cho các hoạt động nghiên cứu và phát triển game Đội ngũ nhânviên tại đây bao gồm những chuyên gia giàu kinh nghiệm và những nhântài trẻ đầy nhiệt huyết, luôn sẵn sàng đón nhận và vượt qua mọi thách thức
để đạt được những thành tựu mới
Việc thực tập tại B.O.B Studio đã giúp em nắm bắt kiến thức thực tế vềphát triển game và học hỏi nhiều kinh nghiệm quý báu Em đã có cơ hộitham gia vào các dự án thực tế, từ giai đoạn ý tưởng đến triển khai sảnphẩm hoàn chỉnh, góp phần nâng cao kỹ năng chuyên môn và hiểu biết sâusắc hơn về ngành công nghiệp game
Em rất biết ơn B.O.B Studio đã tạo điều kiện cho em có một môi trườngthực tập lý tưởng, và đây sẽ là nền tảng vững chắc để em tiếp tục phát triển
sự nghiệp trong lĩnh vực công nghệ thông tin và phát triển game
Trang 24Chương 1 TỔNG QUAN VÊ XÂY DỰNG DỨNG DỤNG
Unity là một công cụ phát triển game 3D/2D và môi trường phát triển tíchhợp (IDE) Nó cung cấp một loạt các công cụ và tính năng cần thiết để tạo
ra các trò chơi và trải nghiệm tương tác Unity không chỉ hỗ trợ phát triểngame mà còn được sử dụng trong nhiều lĩnh vực khác như thực tế ảo (VR),thực tế tăng cường (AR), và các ứng dụng mô phỏng
- Tính năng nổi bật của Unity:
Đa nền tảng: Unity cho phép phát triển game trên nhiều nền tảng khác nhau,bao gồm iOS, Android, Windows, macOS, Linux, và các hệ máy chơigame như PlayStation, Xbox, Nintendo Switch Điều này giúp các nhà pháttriển tiếp cận được lượng lớn người dùng trên nhiều thiết bị khác nhau.Asset Store: Unity Asset Store là nơi các nhà phát triển có thể mua và báncác tài sản game như mô hình 3D, âm thanh, mã nguồn và nhiều thứ khác.Điều này giúp tiết kiệm thời gian và công sức khi phát triển game
Công cụ mạnh mẽ: Unity cung cấp nhiều công cụ mạnh mẽ như hệ thốngvật lý, hệ thống ánh sáng, công cụ chỉnh sửa hình ảnh, và công cụ hoạt hình.Những công cụ này giúp nhà phát triển tạo ra những trải nghiệm game sốngđộng và chân thực
Giao diện thân thiện: Unity có giao diện trực quan và dễ sử dụng, cho phépcác nhà phát triển kéo và thả các yếu tố vào cảnh và tùy chỉnh chúng một
Trang 25Hỗ trợ cộng đồng: Unity có một cộng đồng người dùng lớn và năng động,cung cấp hàng ngàn tài liệu hướng dẫn, khóa học, và diễn đàn hỗ trợ.
Unity sử dụng ngôn ngữ lập trình C#, một ngôn ngữ thân thiện với ngườimới bắt đầu và được sử dụng rộng rãi trong ngành công nghiệp phần mềm.Việc học C# không chỉ giúp bạn phát triển game với Unity mà còn mở ranhiều cơ hội khác trong lĩnh vực lập trình
Unity được sử dụng để phát triển nhiều tựa game nổi tiếng như "Ori and theBlind Forest", "Monument Valley", "Temple Run", "Angry Birds", và
"Subnautica" Ngoài ra, Unity cũng được sử dụng trong các ứng dụngVR/AR, mô phỏng kỹ thuật, giáo dục, và nhiều lĩnh vực khác
Linh hoạt và đa năng: Unity phù hợp cho cả dự án nhỏ lẫn lớn, từ game diđộng đơn giản đến các tựa game AAA phức tạp
Hỗ trợ phát triển nhanh chóng: Các công cụ và tài sản sẵn có giúp rút ngắnthời gian phát triển, cho phép các nhà phát triển tập trung vào việc sáng tạonội dung
Cộng đồng hỗ trợ mạnh mẽ: Với một cộng đồng lớn, bạn luôn có thể tìmthấy sự hỗ trợ và tài nguyên hữu ích để giải quyết các vấn đề kỹ thuật
1.1.2 Tổng quan về Nodejs
Được phát hành vào năm 2009, NodeJS, hay còn được biết với tên gọichính thức là Node.js, là môi trường thời gian chạy (runtime environment)JavaScript đa nền tảng và mã nguồn mở NodeJS cho phép các lập trìnhviên tạo cả ứng dụng front-end và back-end bằng JavaScript
Node.js là một nền tảng mã nguồn mở, đa nền tảng, cho phép phát triển cácứng dụng mạng và máy chủ hiệu năng cao Ra mắt lần đầu vào năm 2009,Node.js đã nhanh chóng trở thành một công cụ mạnh mẽ và phổ biến trongcộng đồng phát triển web nhờ vào khả năng xử lý sự kiện phi đồng bộ và
Trang 26sử dụng ngôn ngữ JavaScript, vốn đã rất quen thuộc với nhiều lập trìnhviên.
Node.js là một môi trường chạy JavaScript phía máy chủ dựa trên công cụJavaScript V8 của Google Chrome Node.js cho phép các nhà phát triển sửdụng JavaScript để viết các ứng dụng máy chủ có khả năng mở rộng cao và
xử lý đồng thời nhiều kết nối mà không gặp phải các vấn đề về hiệu suất
Xử lý phi đồng bộ và không chặn (Asynchronous and Non-blocking):Node.js sử dụng mô hình I/O phi đồng bộ và không chặn, giúp xử lý nhiềuyêu cầu cùng lúc mà không làm nghẽn tài nguyên Điều này đặc biệt hữuích cho các ứng dụng yêu cầu tốc độ cao và khả năng mở rộng tốt
Đơn luồng nhưng mạnh mẽ (Single-threaded but powerful): Mặc dùNode.js chạy trên một luồng duy nhất, nó sử dụng một vòng lặp sự kiện(event loop) để quản lý các tác vụ I/O, giúp tối ưu hóa hiệu suất và khảnăng đáp ứng của ứng dụng
Cộng đồng lớn và NPM (Node Package Manager): Node.js có một cộngđồng người dùng và nhà phát triển rất lớn NPM, trình quản lý gói củaNode.js, cung cấp hàng triệu gói phần mềm giúp giải quyết nhiều vấn đềkhác nhau trong quá trình phát triển ứng dụng
Sử dụng JavaScript: Node.js cho phép sử dụng JavaScript cả trên phía máychủ và phía khách hàng, giúp giảm thiểu sự khác biệt về ngôn ngữ và côngnghệ trong quá trình phát triển ứng dụng web
Web Server và API: Node.js thường được sử dụng để xây dựng các máychủ web và API RESTful nhờ vào khả năng xử lý nhanh và hiệu quả
Ứng dụng thời gian thực: Node.js là lựa chọn lý tưởng cho các ứng dụngthời gian thực như trò chuyện trực tuyến (chat), thông báo (notifications),
và trò chơi trực tuyến (online gaming) do khả năng xử lý đồng thời nhiều
Trang 27Microservices: Kiến trúc microservices sử dụng Node.js để phát triển cácdịch vụ nhỏ, độc lập, có thể giao tiếp với nhau, giúp cải thiện tính linh hoạt
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở mạnh
mẽ và linh hoạt, nổi bật với khả năng xử lý dữ liệu đa dạng và tính toàn vẹncao Được phát triển từ những năm 1980 tại Đại học California, Berkeley,dưới tên gọi "Ingres," và sau đó đổi tên thành "Postgres" trước khi trởthành PostgreSQL vào năm 1996, hệ quản trị cơ sở dữ liệu này đã khôngngừng phát triển và trở thành một trong những lựa chọn hàng đầu cho cácdoanh nghiệp, tổ chức và nhà phát triển trên toàn thế giới
Nguồn Gốc và Phát Triển Ban Đầu: Dự án PostgreSQL bắt đầu từ nhữngnăm 1980 dưới sự lãnh đạo của giáo sư Michael Stonebraker tại Đại họcCalifornia, Berkeley Ban đầu, dự án được gọi là "Ingres" (INteractiveGraphics and Retrieval System), một hệ quản trị cơ sở dữ liệu mang tínhđột phá vào thời điểm đó
Trang 28Từ Postgres đến PostgreSQL: Sau khi rời Đại học Berkeley, giáo sưStonebraker tiếp tục phát triển một dự án mới gọi là "Postgres" (PostIngres) Mục tiêu của dự án này là thêm các tính năng mới và cải tiến hệquản trị cơ sở dữ liệu Vào năm 1996, tên gọi PostgreSQL được giới thiệu
để phản ánh sự hỗ trợ của hệ quản trị cơ sở dữ liệu này đối với SQL
Phát Hành Chính Thức: PostgreSQL 6.0, phiên bản đầu tiên được pháthành công khai, ra mắt vào năm 1996 Kể từ đó, PostgreSQL đã trải quanhiều bản cập nhật và cải tiến, với mỗi phiên bản mới đều bổ sung các tínhnăng và tối ưu hóa hiệu suất
Sự Phát Triển và Ủng Hộ của Cộng Đồng: Một trong những yếu tố quantrọng góp phần vào sự thành công của PostgreSQL là sự ủng hộ mạnh mẽ
từ cộng đồng mã nguồn mở Cộng đồng PostgreSQL không ngừng đónggóp mã nguồn, báo cáo lỗi, và phát triển các tiện ích mở rộng, giúp hệ quảntrị cơ sở dữ liệu này ngày càng hoàn thiện
‒ PostgreSQL 7.x: Giới thiệu các tính năng như lưu trữ và xử lý dữ liệuXML, hỗ trợ các hàm PL/pgSQL và cải tiến hiệu suất
‒ PostgreSQL 8.x: Bổ sung tính năng Point-in-Time Recovery (PITR), hỗtrợ các kiểu dữ liệu mới như bytea và text, cũng như cải tiến về hiệusuất và khả năng mở rộng
‒ PostgreSQL 9.x: Giới thiệu replication streaming, JSON data type, vàcác tính năng liên quan đến quản lý và bảo mật dữ liệu
‒ PostgreSQL 10.x: Thêm tính năng table partitioning, logical replication,
và cải tiến hiệu suất xử lý dữ liệu lớn
‒ PostgreSQL 11.x và 12.x: Cải tiến về parallel query, partitioning, vànhiều tính năng liên quan đến bảo mật và quản lý dữ liệu
Trang 29‒ PostgreSQL 13.x và 14.x: Tập trung vào tối ưu hóa hiệu suất, hỗ trợSQL/JSON, và các tính năng mới để cải thiện khả năng mở rộng vàquản lý dữ liệu.
Tuân Thủ Chuẩn SQL: PostgreSQL tuân thủ hầu hết các chuẩn SQL, baogồm các câu lệnh cơ bản như SELECT, INSERT, UPDATE, DELETE,cũng như các tính năng phức tạp như join, subqueries, và các phép toánphức hợp Điều này đảm bảo rằng các nhà phát triển có thể dễ dàng ápdụng các kiến thức SQL hiện có vào PostgreSQL mà không gặp nhiều trởngại
Khả Năng Mở Rộng: PostgreSQL cung cấp khả năng mở rộng vượt trội,cho phép người dùng định nghĩa các kiểu dữ liệu mới, các hàm tùy chỉnh,
và ngôn ngữ lập trình mở rộng như PL/pgSQL, PL/Python, và PL/Java.Điều này giúp các nhà phát triển tùy chỉnh cơ sở dữ liệu theo nhu cầu cụthể của từng dự án
Hỗ Trợ Dữ Liệu Đa Dạng: PostgreSQL hỗ trợ nhiều kiểu dữ liệu bao gồmJSON, XML, hstore, và các kiểu dữ liệu địa lý thông qua phần mở rộngPostGIS Điều này cho phép lưu trữ và truy vấn dữ liệu bán cấu trúc và phicấu trúc một cách hiệu quả, đáp ứng nhu cầu ngày càng đa dạng của cácứng dụng hiện đại
Khả Năng Xử Lý Giao Dịch: PostgreSQL hỗ trợ các tính năng giao dịchnâng cao theo chuẩn ACID (Atomicity, Consistency, Isolation, Durability),đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu ngay cả trong các ứng dụngquan trọng nhất
Quản Lý Dữ Liệu Lớn: Với các cơ chế như phân vùng bảng, chỉ mục, vàkhả năng tối ưu hóa truy vấn, PostgreSQL có thể quản lý và truy vấn các bộ
dữ liệu lớn với hiệu suất cao Điều này giúp PostgreSQL trở thành lựa chọn
Trang 30Khả Năng Tương Thích Cao: PostgreSQL có thể chạy trên hầu hết các hệđiều hành phổ biến như Windows, macOS, và Linux, giúp đảm bảo tínhtương thích và linh hoạt trong việc triển khai ứng dụng.
‒ Ứng Dụng Web và Di Động: Các ứng dụng web và di động sử dụngPostgreSQL để lưu trữ và quản lý dữ liệu người dùng, cung cấp các tínhnăng như xác thực, lưu trữ nội dung và phân tích dữ liệu Với khả năng
xử lý đồng thời nhiều kết nối, PostgreSQL đảm bảo hiệu suất cao chocác ứng dụng yêu cầu tốc độ và độ tin cậy
‒ Phân Tích Dữ Liệu và Business Intelligence: PostgreSQL hỗ trợ cáccông cụ phân tích dữ liệu và BI, cho phép doanh nghiệp phân tích dữliệu lớn và đưa ra các quyết định dựa trên dữ liệu Các tính năng nhưchỉ mục, phân vùng bảng và tối ưu hóa truy vấn giúp tăng tốc độ xử lý
và truy vấn dữ liệu
‒ Hệ Thống GIS: PostgreSQL với phần mở rộng PostGIS cung cấp khảnăng lưu trữ và truy vấn dữ liệu không gian, được sử dụng rộng rãitrong các hệ thống thông tin địa lý (GIS) Điều này cho phép quản lý vàphân tích dữ liệu địa lý một cách chính xác và hiệu quả
‒ Ứng Dụng IoT: PostgreSQL được sử dụng trong các ứng dụng Internet
of Things (IoT) nhờ vào khả năng xử lý dữ liệu lớn và xử lý sự kiệnnhanh chóng Khả năng mở rộng và tính linh hoạt của PostgreSQL giúp
Trang 31Lợi Ích Khi của PostgreSQL:
‒ Mã Nguồn Mở và Miễn Phí: PostgreSQL là phần mềm mã nguồn mở
và miễn phí, giúp giảm chi phí cho các doanh nghiệp và cung cấp sựlinh hoạt trong việc tùy chỉnh và mở rộng hệ thống Sự phát triển vàbảo trì của PostgreSQL được hỗ trợ bởi một cộng đồng rộng lớn, đảmbảo rằng nó luôn cập nhật và đáp ứng các nhu cầu mới nhất
‒ Cộng Đồng Hỗ Trợ Mạnh Mẽ: PostgreSQL có một cộng đồng ngườidùng và phát triển lớn mạnh, cung cấp tài liệu phong phú, các diễn đàn
hỗ trợ và các bản cập nhật thường xuyên Sự hỗ trợ từ cộng đồng giúpcác nhà phát triển giải quyết các vấn đề kỹ thuật và học hỏi từ kinhnghiệm của những người khác
‒ Bảo Mật Cao: PostgreSQL cung cấp các tính năng bảo mật mạnh mẽnhư xác thực người dùng, mã hóa dữ liệu và kiểm soát truy cập, giúpbảo vệ dữ liệu quan trọng của doanh nghiệp Các tính năng bảo mật củaPostgreSQL được thiết kế để đáp ứng các tiêu chuẩn cao nhất và bảo vệ
dữ liệu khỏi các mối đe dọa tiềm ẩn
‒ Khả Năng Mở Rộng và Tùy Chỉnh: Khả năng mở rộng và tùy chỉnh củaPostgreSQL cho phép các nhà phát triển tạo ra các giải pháp cơ sở dữliệu phù hợp với nhu cầu cụ thể của từng dự án Điều này bao gồm việcthêm các kiểu dữ liệu tùy chỉnh, hàm và ngôn ngữ lập trình, cũng nhưtích hợp với các công cụ và dịch
1.1.4 Tổng quan về Photon Engine
Photon Engine là một giải pháp mạng mạnh mẽ và linh hoạt, được thiết kế
Trang 32Được phát triển bởi Exit Games, Photon Engine cung cấp các công cụ vàdịch vụ tiên tiến giúp nhà phát triển dễ dàng tạo ra các trải nghiệm đa ngườichơi mượt mà và hiệu quả trên nhiều nền tảng Exit Games được thành lậpvào năm 2003 bởi Christoph M Wegmann và các đồng sáng lập khác Banđầu, công ty tập trung vào việc phát triển công nghệ mạng cho các trò chơi
và ứng dụng di động Đến năm 2008, họ giới thiệu Photon Engine, một nềntảng mạng mạnh mẽ được thiết kế để hỗ trợ các ứng dụng và trò chơi trựctuyến thời gian thực Với sự phát triển nhanh chóng của thị trường trò chơitrực tuyến, Photon Engine đã không ngừng cải tiến và mở rộng các tínhnăng của mình Công ty đã giới thiệu nhiều sản phẩm như Photon Realtime,Photon PUN (Photon Unity Networking), Photon BOLT và PhotonQuantum, mỗi sản phẩm đều hướng đến các nhu cầu cụ thể của nhà pháttriển Exit Games đã xây dựng một cộng đồng nhà phát triển lớn mạnh,cung cấp hỗ trợ kỹ thuật và tài liệu phong phú Cộng đồng này giúp nhàphát triển tận dụng tối đa các tính năng của Photon Engine và giải quyếtcác vấn đề kỹ thuật gặp phải trong quá trình phát triển
Photon Engine hỗ trợ nhiều nền tảng khác nhau, bao gồm Unity, UnrealEngine, HTML5, iOS, Android và nhiều nền tảng khác Điều này giúp nhàphát triển dễ dàng triển khai trò chơi và ứng dụng của mình trên nhiều thiết
bị và hệ điều hành khác nhau Photon Engine cung cấp các giải pháp mạngthời gian thực với độ trễ thấp, đảm bảo rằng các tương tác giữa người chơidiễn ra mượt mà và không bị gián đoạn Các dịch vụ của Photon Engineđược thiết kế để xử lý hàng triệu người dùng đồng thời mà không ảnhhưởng đến hiệu suất Với các SDK và API phong phú, Photon Engine giúpnhà phát triển dễ dàng tích hợp các tính năng mạng vào trò chơi và ứngdụng của mình Các công cụ và tài liệu hướng dẫn chi tiết giúp giảm thờigian phát triển và đẩy nhanh quá trình ra mắt sản phẩm Photon Engine
Trang 33mạng theo nhu cầu cụ thể của từng dự án Nhà phát triển có thể dễ dàng tạo
ra các hệ thống trò chơi phức tạp với các quy tắc và logic riêng biệt PhotonEngine chú trọng đến bảo mật và độ tin cậy của các dịch vụ mạng Các dữliệu được truyền tải và lưu trữ một cách an toàn, đảm bảo rằng thông tincủa người chơi luôn được bảo vệ
Các sản phẩm chính của Photon Engine:
‒ Photon Realtime: Đây là nền tảng cốt lõi của Photon Engine, cung cấpcác dịch vụ mạng thời gian thực cho các trò chơi và ứng dụng PhotonRealtime hỗ trợ các tính năng như matchmaking, chat, và quản lýphòng chơi
‒ Photon PUN (Photon Unity Networking): Được thiết kế đặc biệt choUnity, Photon PUN cung cấp các công cụ mạnh mẽ giúp nhà phát triển
dễ dàng tạo ra các trò chơi đa người chơi trên nền tảng Unity PUN hỗtrợ đồng bộ hóa trạng thái, RPCs (Remote Procedure Calls) và nhiềutính năng khác
‒ Photon BOLT: Được thiết kế cho các trò chơi hành động và bắn súnggóc nhìn thứ nhất, Photon BOLT cung cấp các công cụ để tạo ra các tròchơi với độ trễ thấp và hiệu suất cao BOLT hỗ trợ các tính năng nhưprediction, interpolation và nhiều tính năng mạng nâng cao khác
‒ Photon Quantum: Đây là một nền tảng mạng mới, được thiết kế để hỗtrợ các trò chơi yêu cầu đồng bộ hóa trạng thái và logic trò chơi chínhxác Photon Quantum phù hợp cho các trò chơi chiến thuật thời gianthực và các trò chơi có yêu cầu mạng phức tạp
Trang 34Một số Ứng Dụng Thực Tế của Photon Engine: Photon Engine là lựa chọn
hàng đầu cho việc phát triển các trò chơi đa người chơi trực tuyến, bao gồmcác thể loại như bắn súng, chiến thuật, đua xe, và nhập vai Các tính năngmạng mạnh mẽ của Photon giúp đảm bảo trải nghiệm chơi mượt mà vàkhông gián đoạn Photon Engine cũng được sử dụng rộng rãi trong các ứngdụng xã hội và cộng đồng, hỗ trợ các tính năng như chat, video call, vàtương tác trực tuyến Các dịch vụ mạng của Photon giúp kết nối ngườidùng một cách hiệu quả và bảo mật Với sự phát triển của công nghệ thực
tế ảo (VR) và thực tế tăng cường (AR), Photon Engine cung cấp các giảipháp mạng mạnh mẽ để hỗ trợ các ứng dụng và trò chơi VR/AR Điều nàygiúp tạo ra các trải nghiệm tương tác thời gian thực, nâng cao tính chânthực và hấp dẫn của sản phẩm Photon Engine cũng được ứng dụng trongcác lĩnh vực công nghiệp như giáo dục, y tế và huấn luyện Các tính năngmạng của Photon giúp tạo ra các mô phỏng và hệ thống đào tạo trực tuyếnhiệu quả, tăng cường khả năng học tập và làm việc từ xa
Lợi Ích Khi Sử Dụng Photon Engine: Photon Engine cung cấp các công cụ
và dịch vụ sẵn có, giúp nhà phát triển tiết kiệm thời gian và chi phí trongquá trình phát triển Thay vì phải xây dựng từ đầu, nhà phát triển có thể tậptrung vào việc thiết kế và cải tiến trải nghiệm người dùng Với cơ sở hạtầng mạnh mẽ và các dịch vụ mạng tối ưu, Photon Engine đảm bảo hiệusuất cao và độ tin cậy cho các trò chơi và ứng dụng Điều này giúp duy trì
sự hài lòng của người dùng và tăng cường tính cạnh tranh của sản phẩm.Photon Engine cung cấp tài liệu phong phú, các diễn đàn hỗ trợ và dịch vụ
kỹ thuật chuyên nghiệp, giúp nhà phát triển giải quyết các vấn đề kỹ thuật
và tối ưu hóa sản phẩm Sự hỗ trợ toàn diện từ cộng đồng và đội ngũ pháttriển giúp đảm bảo rằng các dự án luôn được tiến hành một cách suôn sẻ
Trang 35biến, cho phép nhà phát triển tạo ra các giải pháp mạng phù hợp với nhucầu cụ thể của từng dự án Điều này bao gồm khả năng mở rộng, tùy chỉnhcác tính năng mạng và tích hợp với các công nghệ khác.
1.1.5 Tổng quan về JavaScript
JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất trên thếgiới, được sử dụng rộng rãi trong việc phát triển các trang web tương tác vàứng dụng web động Kể từ khi ra đời, JavaScript đã trở thành một công cụkhông thể thiếu trong lập trình web và ngày càng được ứng dụng trongnhiều lĩnh vực khác
JavaScript được phát triển bởi Brendan Eich vào năm 1995 trong khi ônglàm việc tại Netscape Communications Corporation Ban đầu, ngôn ngữnày được gọi là Mocha, sau đó đổi thành LiveScript và cuối cùng làJavaScript Mục tiêu ban đầu của JavaScript là giúp các nhà phát triển thêmcác yếu tố tương tác vào trang web Để đảm bảo tính tương thích và tiêuchuẩn hóa, vào năm 1997, JavaScript được chuẩn hóa dưới cái tênECMAScript bởi tổ chức Ecma International Kể từ đó, nhiều phiên bảncủa ECMAScript đã được phát hành, mỗi phiên bản mang lại các tính năng
và cải tiến mới cho JavaScript Trong những năm 2000, với sự ra đời củaAJAX (Asynchronous JavaScript and XML) và các thư viện JavaScriptmạnh mẽ như jQuery, Prototype, JavaScript đã trở thành một phần khôngthể thiếu trong việc phát triển web hiện đại Sự phát triển của các trìnhduyệt web như Google Chrome cũng đóng góp vào việc tối ưu hóa và nângcao hiệu suất của JavaScript
JavaScript là một ngôn ngữ kịch bản động, cho phép các nhà phát triểnthêm các chức năng tương tác vào trang web một cách linh hoạt và nhanh