Unity 6.3
0 онлайн 55 гостей 3 в системе
Вход
Введение в сетевое взаимодействие многопользовательских игр Глава 10 из 11 Оригинал, стр. 81

Демонстрационные проекты и ресурсы

Примеры проектов и ресурсы

Unity предлагает примеры проектов, которые помогают освоить Netcode for GameObjects и Netcode for Entities. В них на практике показано, как реализовать сетевое взаимодействие в собственных многопользовательских приложениях.

Ресурсы по Netcode for GameObjects Unity Learn: начало работы с Netcode for GameObjects Этот курс Unity Learn пошагово объясняет, как создать и протестировать простую многопользовательскую игру в Unity, использовать и проверять удаленные вызовы процедур (RPC) и NetworkVariable. Вы также создадите простой интерфейс для режимов Host, Client и Server и добавите базовое управление перемещением в каждом режиме.

Снимок экрана из курса Unity Learn по Netcode for GameObjects

Bitesize Samples Репозиторий Bitesize Samples содержит набор модульных примеров кода, которые можно применять в своих играх и использовать для изучения Netcode for GameObjects. В репозиторий входят:

- 2D Space Shooter Sample: физическое перемещение, эффекты состояния, NetworkVariable и пулы объектов.

2D Space Shooter из набора Bitesize Samples

- Distributed Authority Social Hub: настройка топологии, в которой управление состоянием игры распределено между несколькими клиентами, что снижает нагрузку на сервер. - Multiplayer Use Cases Overview: типичные действия в многопользовательской среде, которые следует учитывать при проектировании игровых возможностей.

- Client Driven Sample: клиентское управление перемещением, сетевая физика, создаваемые и статически размещенные объекты, а также смена родительского объекта.

- Dynamic Addressables Network Prefabs: динамическая система префабов, позволяющая добавлять во время выполнения новые префабы, доступные для создания.

Boss Room Boss Room - пример казуальной трехмерной кооперативной игры на базе Netcode for GameObjects. Проект помогает изучить основные концепции и шаблоны многопользовательского игрового цикла.

Boss Room представляет собой законченный фрагмент полнофункциональной кооперативной игры.

Boss Room - одновременно рабочий пример и учебный проект для разработчиков сетевых многопользовательских игр. Это самый зрелый готовый к выпуску пример Unity на базе рабочих процессов Netcode for GameObjects. Он содержит код промышленного уровня и интегрирован с сервисами Lobby и Relay.

Boss Room демонстрирует сетевые игровые механики: способности персонажей и особые атаки, сетевую физику и отслеживание состояния разрушаемых объектов, переключателей и дверей. Эти приемы показывают, как скрыть задержку и сохранить плавность игры даже в неблагоприятных сетевых условиях. Рассмотрим проект подробнее. Игровой цикл и управление состоянием: Boss Room содержит практическую реализацию состояния как в лобби, так и во время игры. Проект показывает обработку подключений, загрузку и выгрузку сетевых сцен и корректное отключение игроков. Интеграция с UGS: в Boss Room используются Relay, Lobby, Authentication и другие возможности UGS. Вспомогательные скрипты и инструменты: репозиторий содержит решения, которые можно адаптировать для других проектов, включая примеры клиентской авторитетности, утилиты управления сценами и сетевые пулы объектов.

Клиент-серверная модель: в Boss Room один игрок выступает хостом (сервером), а остальные - клиентами. Централизация игровой логики снижает риск мошенничества и обеспечивает согласованное состояние игры у всех клиентов.

Стартовое меню примера Boss Room

Для подробного знакомства с проектом прочитайте публикацию в блоге и посмотрите четырехчастный вебинар на YouTube «Создание готовой к выпуску многопользовательской игры с Netcode for GameObjects». В серии рассматриваются базовые игровые механики и серверная авторитетность, реализация сетевого игрового процесса и создание объектов. Также показано, как повысить устойчивость игры к действиям игроков и эффективнее использовать пропускную способность. Материалы дают практические рекомендации на примере полноценного многопользовательского проекта.

Шаблон Small Scale Competitive Multiplayer Доступный в Unity Hub шаблон служит отправной точкой для создания и выпуска многопользовательского проекта с Netcode for GameObjects и UGS. В шаблон входит инструмент Bootstrapper для тестирования различных сетевых режимов (Host, Client и Server) и динамических конфигураций.

Чтобы начать, откройте проект и выполните инструкции в приветственном окне. Пройдите встроенные руководства или исследуйте проект самостоятельно, загрузив стартовую сцену через меню Multiplayer > Bootstrapper. Настройте поля Bootstrapper в соответствии с тестовым сценарием и перейдите в режим Play.

Настройте параметры Bootstrapper.

Учебные материалы и полезные ресурсы доступны в любое время через меню Tutorials > Show Tutorials.

Шаблон VR Multiplayer

Откройте шаблон VR Multiplayer в Unity Hub.

Шаблон VR Multiplayer предназначен для новых проектов под устройства OpenXR. Он содержит все необходимое для сетевых взаимодействий, голосового чата, лобби и других функций. Шаблон использует Unity Gaming Services, Netcode for GameObjects и XR Interaction Toolkit и оптимизирован для Meta Quest и других совместимых с OpenXR устройств. Основные возможности:

- Сетевые взаимодействия на базе XRI Interaction Toolkit и Netcode for GameObjects

- Голосовая связь через Vivox - Подключение игроков из любой точки мира с помощью Relay и Lobby - Сетевые аватары и руки - Кроссплатформенная работа через OpenXR Загрузите шаблон Unity VR Multiplayer для Unity 2022 LTS и Unity 6 Preview через Unity Hub и ознакомьтесь с кратким руководством.

Ресурсы по Netcode for Entities Начало работы с Netcode for Entities Этот вебинар по запросу подробно рассматривает Megacity Metro - крупномасштабный кроссплатформенный пример многопользовательской игры Unity, созданный с Netcode for Entities и Unity Gaming Services. Материал рассчитан на пользователей, уже знакомых с DOTS и готовых создавать технически сложные многопользовательские игры.

Примеры ECS Netcode Примеры демонстрируют множество базовых и расширенных возможностей: синхронизацию, сценарии подключения, интеграцию с Unity Physics и многое другое. Начните с руководства Networked Cube, где рассматриваются:

- Установление соединения с сервером - Обмен данными с сервером - Создание синхронизированных сущностей на сервере

- Создание автономных сборок сервера и клиента - Запуск сервера и клиента в режиме Play внутри редактора

Руководство Networked Cube: запуск в редакторе и в автономной сборке

ECS Network Racing Этот пример многопользовательской гоночной игры демонстрирует рекомендуемые приемы работы с Unity Netcode for Entities. В нем реализована клиент-серверная архитектура с прогнозированием на стороне клиента, интерполяцией и компенсацией задержки.

ECS Racing демонстрирует расширенные многопользовательские возможности.

Megacity Metro Megacity Metro для Unity 6 и Unity 2022 LTS - масштабируемая кроссплатформенная демонстрация новейших технологий Unity, включая пакет Netcode for Entities. Этот многопользовательский экшен от третьего лица поддерживает более 128 игроков одновременно. Пример подойдет тем, кто хочет освоить игровой процесс с авторитетным сервером и применение UGS на всех этапах создания многопользовательской игры.

Демоверсия Unity Megacity Metro поддерживает более 128 игроков.

Узнайте больше о создании масштабных игр с ECS for Unity и многопользовательскими решениями Unity. ECS дает опытным разработчикам дополнительный контроль и детерминизм, необходимые для более амбициозных проектов. Megacity Metro демонстрирует интерполяцию, прогнозирование на стороне клиента и компенсацию задержки. Загрузите проект, чтобы изучить Multiplay Hosting, Matchmaker, Vivox Voice Chat и другие сервисы.

Megacity Metro демонстрирует применение Netcode for Entities в многопользовательском экшене.

Экспериментальный пакет Multiplayer Services Для многопользовательской игры необходимо объединить несколько продуктов и сервисов. Новый пакет Multiplayer Services (com.unity.services.multiplayer) упрощает их интеграцию, управление зависимостями и взаимодействие с продуктами.

Multiplayer Services - единое решение для добавления сетевого многопользовательского режима. Пакет работает на базе UGS и объединяет возможности Relay, Lobby и других сервисов в новой системе Sessions, которая упрощает соединение групп игроков. Multiplayer Services позволяет создавать P2P-сеансы и предлагает несколько способов присоединения: по коду, через список активных сеансов или с помощью Quick Join.