Демонстрационные проекты и ресурсы
Примеры проектов и ресурсы
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.