Khóa Luận Tốt Nghiệp: Xây Dựng Trò Chơi Trực Tuyến Nhiều Người Chơi Bằng Unity3D

Khóa luận tốt nghiệp công nghệ phần mềm về xây dựng trò chơi trực tuyến nhiều người chơi bằng công nghệ Unity3D, khám phá tiềm năng sáng tạo.

Chuyên ngành

Công nghệ phần mềm

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2024

60
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1. Lý do chọn đề tài

1.2. Đối tượng và phạm vi đề tài

1.3. Mục tiêu đề tài

1.4. Đối tượng của đề tài

1.5. Phạm vi đề tài

2. CHƯƠNG 2: TỔNG QUAN VỀ ĐỀ TÀI

2.1. Sơ lược về cách hoạt động của Unity

2.2. Vòng đời của một lớp kế thừa MonoBehaviour

2.3. Sơ lược về cách hoạt động của Netcode for GameObjects

2.4. Sơ lược về cách hoạt động của Unity Lobby

2.5. Thiết kế hệ thống

2.5.1. Phòng chơi (Lobby)

2.5.2. Màn chơi (Level)

2.6. Thiết kế của game và cách chơi

2.6.1. Chế độ chơi giải đố

2.6.2. Chế độ chơi đấu đơn

2.6.3. Chế độ chơi sinh tồn

3. CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

3.1. Use Case Diagram Người chơi

3.2. Danh sách Actor

3.3. Danh sách các Use Case

3.4. Đặc tả các Use Case

3.4.1. Use Case Tạo Lobby

3.4.2. Use Case Tùy chỉnh Lobby

4. CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

4.1. Kết quả đạt được

4.2. Hạn chế

4.3. Hướng phát triển

DANH MỤC HÌNH

DANH MỤC BẢNG

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

Tóm tắt

I. Tổng Quan Về Xây Dựng Trò Chơi Trực Tuyến Nhiều Người Chơi Bằng Unity3D

Xây dựng trò chơi trực tuyến nhiều người chơi bằng Unity3D đang trở thành xu hướng phổ biến trong ngành công nghiệp game. Unity3D là một game engine mạnh mẽ, cho phép các lập trình viên phát triển các trò chơi đa dạng từ đơn giản đến phức tạp. Việc sử dụng Unity3D không chỉ giúp tiết kiệm thời gian mà còn mang lại hiệu quả cao trong việc phát triển game. Bài viết này sẽ cung cấp cái nhìn tổng quan về quy trình xây dựng trò chơi trực tuyến nhiều người chơi, từ việc lập kế hoạch đến triển khai.

1.1. Lý Do Chọn Unity3D Để Phát Triển Game Nhiều Người Chơi

Unity3D được ưa chuộng nhờ vào tính linh hoạt và khả năng hỗ trợ đa nền tảng. Nó cho phép phát triển game cho nhiều thiết bị khác nhau, từ PC đến di động. Hơn nữa, Unity3D có một cộng đồng lớn và nhiều tài nguyên hỗ trợ, giúp lập trình viên dễ dàng tìm kiếm giải pháp cho các vấn đề gặp phải.

1.2. Các Tính Năng Nổi Bật Của Unity3D Trong Phát Triển Game

Unity3D cung cấp nhiều tính năng hữu ích như Netcode for GameObjects, cho phép lập trình viên dễ dàng xây dựng các trò chơi nhiều người chơi. Ngoài ra, Unity Lobby Service giúp người chơi tìm kiếm và kết nối với nhau một cách nhanh chóng và hiệu quả.

II. Thách Thức Trong Việc Xây Dựng Trò Chơi Trực Tuyến Nhiều Người Chơi

Mặc dù Unity3D mang lại nhiều lợi ích, việc phát triển trò chơi trực tuyến nhiều người chơi cũng gặp không ít thách thức. Các vấn đề như đồng bộ hóa dữ liệu, quản lý kết nối và xử lý độ trễ là những yếu tố quan trọng cần được xem xét. Để tạo ra một trải nghiệm chơi game mượt mà, lập trình viên cần phải có kiến thức vững về mạng và lập trình game.

2.1. Vấn Đề Đồng Bộ Hóa Dữ Liệu Giữa Các Người Chơi

Đồng bộ hóa dữ liệu là một trong những thách thức lớn nhất trong phát triển game nhiều người chơi. Các lập trình viên cần đảm bảo rằng tất cả người chơi đều nhận được thông tin chính xác và kịp thời, tránh tình trạng lag hay mất kết nối.

2.2. Quản Lý Kết Nối Và Tương Tác Giữa Người Chơi

Quản lý kết nối giữa các người chơi là rất quan trọng để đảm bảo trải nghiệm chơi game không bị gián đoạn. Việc sử dụng Netcode for GameObjects giúp đơn giản hóa quá trình này, nhưng vẫn cần phải có các biện pháp xử lý lỗi và khôi phục kết nối khi cần thiết.

III. Phương Pháp Xây Dựng Trò Chơi Trực Tuyến Nhiều Người Chơi Bằng Unity3D

Để xây dựng một trò chơi trực tuyến nhiều người chơi thành công, lập trình viên cần tuân theo một quy trình rõ ràng. Quy trình này bao gồm việc thiết kế hệ thống, lập trình các tính năng và kiểm tra hiệu suất của trò chơi. Việc áp dụng các phương pháp lập trình tốt sẽ giúp tối ưu hóa hiệu suất và trải nghiệm người chơi.

3.1. Thiết Kế Hệ Thống Trò Chơi

Thiết kế hệ thống là bước đầu tiên và quan trọng trong việc phát triển game. Lập trình viên cần xác định các thành phần chính của trò chơi, bao gồm lobby, màn chơi và các tính năng tương tác giữa người chơi.

3.2. Lập Trình Các Tính Năng Chính Của Game

Lập trình các tính năng chính như tạo lobby, tham gia game và quản lý người chơi là rất quan trọng. Sử dụng Unity Lobby Service giúp đơn giản hóa quá trình này, cho phép người chơi dễ dàng tìm kiếm và kết nối với nhau.

IV. Ứng Dụng Thực Tiễn Của Trò Chơi Trực Tuyến Nhiều Người Chơi

Trò chơi trực tuyến nhiều người chơi không chỉ mang lại trải nghiệm giải trí mà còn có thể được ứng dụng trong nhiều lĩnh vực khác nhau. Từ giáo dục đến huấn luyện, các trò chơi này có thể giúp người dùng phát triển kỹ năng và kiến thức một cách hiệu quả.

4.1. Trò Chơi Trong Giáo Dục

Trò chơi trực tuyến có thể được sử dụng như một công cụ giáo dục, giúp học sinh học tập một cách thú vị và hiệu quả hơn. Các trò chơi này có thể giúp cải thiện kỹ năng tư duy và giải quyết vấn đề.

4.2. Trò Chơi Trong Huấn Luyện Kỹ Năng

Nhiều công ty đã bắt đầu sử dụng trò chơi trực tuyến để huấn luyện nhân viên. Các trò chơi này giúp người chơi rèn luyện kỹ năng làm việc nhóm và quản lý thời gian trong môi trường ảo.

V. Kết Luận Và Tương Lai Của Trò Chơi Trực Tuyến Nhiều Người Chơi

Trò chơi trực tuyến nhiều người chơi bằng Unity3D đang mở ra nhiều cơ hội mới cho các lập trình viên và người chơi. Với sự phát triển không ngừng của công nghệ, tương lai của ngành game hứa hẹn sẽ còn nhiều điều thú vị. Việc nắm bắt các xu hướng mới và cải tiến kỹ năng lập trình sẽ giúp các lập trình viên tạo ra những sản phẩm chất lượng hơn.

5.1. Xu Hướng Phát Triển Game Trong Tương Lai

Ngành công nghiệp game đang chứng kiến sự phát triển mạnh mẽ với sự xuất hiện của công nghệ mới như thực tế ảo (VR) và thực tế tăng cường (AR). Những công nghệ này sẽ mở ra nhiều khả năng mới cho trò chơi trực tuyến nhiều người chơi.

5.2. Cơ Hội Cho Các Lập Trình Viên Game

Với sự phát triển của ngành game, nhu cầu về lập trình viên game cũng ngày càng tăng. Các lập trình viên có thể tìm thấy nhiều cơ hội việc làm trong các studio game hoặc tự phát triển sản phẩm của riêng mình.

10/07/2025
Khóa luận tốt nghiệp công nghệ phần mềm xây dựng trò chơi trực tuyến nhiều người chơi bằng công nghệ unity3d

Trích đoạn nội dung tài liệu

Chương 1: Tổng quan về đề tài 1. Lý do chọn đề tài. Năm 2022 và 2023 được đánh giá là giai đoạn mà ngành game phát triển vượt bậc nhất. Theo số liệu từ NewzooŸ, cuối năm 2022, thế giới có gần 3,2 tỷ người chơi game, tong doanh thu toàn ngành đạt tới con số lớn nhất từ trước tới nay là 182,9 tỷ USD.

Năm 2023, doanh thu ước tính sẽ chạm mốc mới là 187,7 tỷ USD. Trong đó, riêng game di động đã đóng góp hơn 92,6 tỷ USD. Tuy thị trường game Việt Nam đang có các bước tiến rõ rệt, đại đa số các tựa game phổ biến tại thị trường nước ta hiện nay là game nước ngoài, với các studio Việt đang gặp rất nhiều khó khăn trong việc cạnh tranh với các studio triệu đô của các cường quốc ngành giải trí như Mỹ và Trung Quốc, đặc biệt là trong khoản phát triển các tựa game nhiều người chơi. Mục tiêu của khóa luận này là tìm hiểu cơ bản về phương pháp lập trình game nhiều người chơi và lập trình một sản phẩm hoàn chỉnh nhằm trải nghiệm những khó khăn và thách thức trong quá trình sản xuất trò chơi điện tử, cũng như cải thiện và thách thức khả năng của chính bản thân em với tư cách là một game developer.

Đối tượng và phạm vi đề tài 1. Mục tiêu đề tài Đề tài nhắm đến nghiên cứu cách thức lập trình, xây dựng một hệ thống framework game nhiều người choi cơ bản cũng như tạo ra một prototype đơn giản nham trình bày những gì đã nghiên cứu thành công. Đối tượng của đề tài Phương pháp và cách thức lập trình một tựa game nhiều người chơi.com/resources/blog/the-games-market-in-2022-the-year-in-numbers 1. Phạm vi đề tài Phạm vi môi trường: Máy tính từ hệ điều hành Windows 10 trở lên.

Phạm vi tính năng: e Game chơi trong môi trường 3D, góc nhìn thứ 3. e Người chơi chơi chung với nhau trong môi trường mạng nội bộ. CHƯƠNG 2: TONG QUAN VE DE TÀI 2. So lược về cách hoạt động của Unity Khóa luận sử dụng công nghệ Unity làm nền tảng nghiên cứư và ứng dụng , vốn là một game engine đa nền tảng được phát triển bởi Unity Technologies và hiện tại đang là một trong những game engine thông dụng nhất hiện nay, sử dụng rộng rãi trong khắp các studio trên toản thê giới và cũng là engine của nhiêu tựa game thành công như Hollow Knight, Genshin Impact, BattleBit,.

Một tựa game truyền thống lập trình trong Unity sẽ bao gồm nhiều cHinh 3D riêng biệt (Scene) nối chung lại với nhau thành một game hoàn chỉnh, trong các Scene này sẽ bao gồm các vật thê (GameObject) có thể chứa hoặc không chứa các thành phần (Component) khác nhau, chứa một hoặc nhiều script kế thừa từ lớp MonoBehaviour. Vòng đời của một lớp kế thừa MonoBehaviour đơn giản hóa lại là như sau: Tên Function Điều kiện kích hoạt | Chức năng AwakeQ Chạy một lần duy Khởi tạo các biến, hàm số trong nhất khi Scene lần đầu | Component một cách riêng biệt. OnEnable() Chay mỗi lần Trong trường hợp Object được bật từ GameObject được bat | trạng thái tắt từ trạng thái tắt. StartQ Chạy một lần duy Nối ghép các component với nhau nhất scene lần đầu sau khi đã khởi tạo.

được nạp sau khi Awake chạy xong. Update() Chạy một lần duy Kiểm tra và chạy các game logic nhất mỗi khung hình. | như di chuyển nhân vật, cập nhật UI,. LateUpdateQ Chạy một lần duy Chạy các game logic yêu cầu biến, nhất mỗi khung hình | hằng số và logic từ Update cũng như sau khi Update chạy chuẩn bị hằng số và logic cho lần xong.

Update tiếp theo. OnApplicationQuit() | Chạy một lần duy Chuan bị logic dé thoát game. OnDisable() Chay mỗi lần Trong trường hợp Object được tắt từ GameObject được tắt trạng thái bật. từ trạng thái bật.

OnDestroy() Chạy một lần duy Trong trường hợp GameObject bị nhất khi GameObject | xóa (Viên đạn trúng đích, người chơi bị xóa khỏi scene chét,.) hoặc scene bi Unload.2: Vong đời của một lớp kế thừa MonoBehaviour 2. Sơ lược về cách hoạt động của Netcode for GameObjects Netcode for GameObjects là một thư viện Networking cho Unity nhằm cho phép các lập trình viên tạo ra một tựa game multiplayer dựa trên framework đã có sẵn của Unity. Netcode for GameObject bao gồm các thành phan chính sau đây: Tên Mở rộng Chức năng NetworkObJect Mở rộng của Mở rộng một GameObJect thông GameObJect thường cho phép tương tác với hệ thống Netcode NetworkBehaviour | Mở rộng cua Mở rộng một MonoBehaviour với MonoBehaviour nhiều khái niệm và function đề hỗ trợ việc chạy trên network như quyền sở hữu (Ownership), OnNetworkSpawn(), OnNetworkDespawn(). Hệ thống RPC Mở rộng các Cho phép việc gọi hàm thông qua (remote procedure | fuction thông network.

call) thường. NetworkVariable Mở rộng của các Cho phép việc đồng bộ các biến thông biến thông thường | qua network. Cho phép người Host, Tạo hoặc Gia nhập Server cũng như tùy biến server đó, đồng thời đảm nhận trọng trách đồng bộ các Scene và tạo các NetworkObject dé GameLogic sử dụng.2: Các thành phân chính của Netcode forGameObjects Qua trình hoạt động của một tựa game sử dụng Netcode là như sau: e Đầu tiên, trò chơi sử dụng NetworkManager dé tao Client Host hoặc Server dé những người choi khác kết nói. e_ Khi những người chơi khác kết nối, NetworkManager sẽ đồng bộ các NetworkObJect và NetworkBehaviour trong Scene thông qua việc khởi tạo và xóa đi các bản sao của chúng trên máy của người chơi, đồng thời đồng bộ các biến NetworkVariable đã được định sẵn từ trước.

e Trong quá trình chơi, các logic game được chọn sẽ được chạy và đồng bộ trên máy của tất cả người chơi thông qua các NetworkVariable và hệ thống Rpc. Sơ lược về cách hoạt động của Unity Lobby Dịch vụ Lobby cung cấp cách đề người chơi khám phá và kết nối với nhau nhằm thực hiện nhiều kịch bản chơi game nhiều người khác nhau: e Duyệt danh sách các phiên trò chơi có sẵn và cho phép người choi chọn và tham gia một phiên. e Chia sẻ mã tham gia với bạn bè dé họ có thé kết nối trực tiếp vào phiên trò chơi của bạn. e Sử dụng Quick Join dé tìm bat kỳ trận đấu nào có sẵn và tham gia ngay.

e_ Tạo một lobby riêng tư và gửi lời mời đến danh sách bạn bè trong trò choi của bạn. e©_ Tạo một lobby từ máy chủ trò chơi và sử dụng nó dé quản lý và giới hạn quyền truy cập vào phiên máy chủ. e_ Truy van các lobbies phù hợp với một tập hợp yêu cầu cụ thể (ví dụ: chế độ chơi, loại bản đồ). Lobby có thê tồn tại trong suốt thời gian của phiên trò chơi dé cung cấp cơ chế cho người dùng tái tham gia một phiên trò chơi hiện có hoặc hỗ trợ việc di chuyên chủ nhà sau khi bị ngắt kết nối không mong muốn.

Thiết kế hệ thống Trò chơi bao gồm 2 thành phan chính: phòng chơi va màn chơi 2. Phòng chơi (Lobby) Đề đơn giản hóa quá trình tìm Server đề chơi và gia nhập màn chơi thì sản phẩm game sử dụng một hệ thống lobby đơn giản. Người chơi có thể tìm các Lobby đang mở thông qua một Lobby Browser hoặc tự tạo một Lobby cho riêng mình. Người chơi có thé tự Lobby này bắt đầu Host server và các người chơi khác có thé gia nhập Server từ đây.

Dữ liệu của một phòng chơi bao gồm: e Id của phòng. e Tên của phòng. e Trạng thái của phòng. e Địa chỉ IP cua Server.

e_ Chế độ chơi của Game. Dữ liệu của người chơi trong phòng chơi bao gồm: e Id của người chơi. e Tén người chơi. e Trạng thái của người chơi.

Khi tạo một Lobby, người chơi sẽ tự động được đặt thành chủ Lobby. Chủ Lobby có quyên thay đổi thông tin Lobby như tên và tinh public, cũng như sẽ đảm nhận quá trình Host Server. Khi chu Lobby rời phòng thì vi tri này sẽ được nhường cho người chơi khác. Nếu Lobby không còn người chơi thì sẽ bị xóa.

Màn chơi (Level) Màn chơi sẽ được chạy trên cả máy chủ và máy tính của người chơi. Trong đó: e Màn chơi cua máy chu sé đảm nhiệm vi trí xử lý logic màn chơi cũng như quan lý các vật thể, biến, hàm số liên quan,. dé đảm bảo tính bảo mật cũng như tính đồng nhất, do chỉ có duy nhất Server chạy các logic này. e Màn chơi trên máy người chơi sẽ đảm nhận trách nhiệm truyền tải, đồng bộ và xử lý dữ liệu từ màn chơi của máy chủ gửi về.

Duy chỉ có script điều khiển nhân vật không hoạt động theo logic này do van đề về độ trễ Input. Trong trường hop này, script chạy trên máy của người choi sở hữu script sẽ đảm nhiệm phần xử lý logic. e Khi chuyền sang màn hình màn chơi, màn choi sẽ dựa trên thông tin phòng dé khởi tạo màn chơi như sau: e Với mỗi người chơi trong phòng, tạo một NetworkObject dé lưu trữ và đại diện cho người chơi đó trong màn chơi. Sau đó, màn chơi sẽ dựa trên chế độ chơi đã chọn từ màn hình thông tin dé nap logic màn choi và bắt đầu trò choi.

Một màn chơi sẽ có ba trạng thái đơn giản: e_ Chờ người chơi: Màn chơi sẽ chưa bắt đầu cho đến khi đủ số lượng người chơi gia nhập Level. Trong lúc đó thì người chơi có thể tùy ý duy chuyển xung quanh khám phá man choi. e Bắt đầu trò chơi: Màn chơi sẽ bắt đầu khi đủ số lượng người chơi gia nhập. Tat cả các người choi sẽ được đưa về một điểm xuất phát ngẫu nhiên và được cấp cho một vũ khí và một số lượng mạng nhất định.

Nếu còn mạng thì khi chết người chơi sẽ được hồi sinh từ một điểm hồi sinh ngẫu nhiên. Khi hết mạng thi người choi sẽ không thé hồi sinh được nữa. e Kết thúc trò chơi: Khi chỉ còn duy nhất một người chơi còn sống và còn mạng thì trò chơi kết thúc và tuyên bố người chơi này thắng cuộc. Sau một thời gian ngắn thì trò chơi kết thúc, server sẽ tự hủy và mọi người chơi sẽ trở về màn hình chính ban đầu.

Thiết kế của game và cách chơi. Hiện tại, trò chơi bao gồm ba chế độ chơi là Giải đó, Dau đơn và Sinh tồn. Khi chủ phòng chơi chọn một trong ba chế độ này, người đó cũng đồng chơi được quyền thay đổi màn chơi theo ý họ muốn, miễn sao là màn chơi đó hỗ trợ chế độ chơi đã chọn. Các chế độ chơi giải đó.

Là chế độ chơi chính của game, Giải dé là chế độ chơi dạng hợp sức (Co-op) mà trong đó tất cả các người chơi phải hợp tác để cùng nhau đến được điểm cuối của màn chơi. Hiện tại, chế độ chơi giải đố chỉ có duy nhất một màn chơi và yêu cầu tối thiểu 2 người dé bắt đầu.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ