Получите нашу новую техническую электронную книгу о Multiplayer networking для Unity-разработчиков

Вы опытный разработчик однопользовательских игр, который планирует создать свой первый Multiplayer-проект в Unity? Тогда не забудьте ознакомиться с нашей новой технической электронной книгой для Multiplayer networking, которая теперь доступна для загрузки.
Мы разработали новое руководство с двойной целью: Во-первых, чтобы предоставить вам фундаментальное, подробное объяснение ключевых понятий в сетевом сетевом интерфейсе Multiplayer. Во-вторых, расскажет вам, как использовать сетевые функции Unity и Multiplayer, рассмотрев пример проекта Multiplayer на основе Netcode for GameObjects.
Если вы только начинаете свой путь разработчика Multiplayer игр, то вам будут полезны советы о том, каких распространенных Multiplayer камней следует избегать и как выбрать наилучшие решения для вашего проекта. Кроме того, вы получите полезный обзор множества примеров сетевых функций Unity для изучения в качестве дальнейших действий. В конечном итоге мы хотим, чтобы вы могли максимально эффективно приступить к прототипированию и разработке собственных функций Multiplayer.
В этом руководстве вы предполагаете, что знакомы с Unity и C#, но только начинаете или только начинаете работу с сетевыми функциями.

Может показаться сложным начать разработку Multiplayer, но это становится проще, если вы поймете ключевые понятия сетевого взаимодействия.
Руководство начинается с объяснения простейших элементов сетевой архитектуры, таких как роль клиентов и серверов, а также то, как они взаимодействуют друг с другом, обмениваясь пакетами данных с помощью стандартных интернет-протоколов, таких как UDP (Протокол пользовательской датаграммы). Вы узнаете о том, что такое тикеты, обновления и задержки. Здесь представлен обзор методов сетевой синхронизации, включая синхронизацию состояний, удаленные вызовы процедур (RPC) и управление пропускной способностью.
Вы найдете пояснения к различным моделям сетевой топологии, которые определяют, как устройства объединяются и взаимодействуют в окружении Multiplayer. Топологии могут влиять на архитектуру, производительность и общий игровой процесс. Выбор игры зависит от ее типа, желаемого уровня контроля над состоянием и ресурсов, доступных для серверной инфраструктуры. Таким образом, руководство поможет вам понять, какие факторы следует учитывать, чтобы вы могли сделать правильный выбор.
В руководстве вы можете ознакомиться с рабочим процессом для сетевых проектов, который посвящен локальному тестированию, моделированию сетевых условий, управлению клиентским подключением, отладке инструментов и использованию помощника командной строки.
Мы также рассмотрим причины, по которым сетевая синхронизация необходима для поддержания стабильного и справедливого игрового процесса для всех игроков. Вы узнаете, как настроить взаимодействие клиента и сервера для игровых действий, где игрок может взаимодействовать с частью игрового окружения. Это включает реализацию сетевых состояний игры и отправку вызовов удаленных процедур на сервер и обратно. В руководстве рассматриваются следующие дополнительные понятия:
- Сравнение RPC и сетевыхпеременных
- Дизайн для Multiplayer игр
- Задержка и производительность в сети
- Моделирование задержки
- Симулятор Unity Transport
- Интерполяция на стороне клиента
- Прогнозирование и прогнозирование на стороне клиента
- Почему серверные полномочия
- Как работает прогнозирование на стороне клиента
- Выверка и откат
- Ожидание клиента в Netcode for GameObjects
- Физика детерминизма
- Прогнозирование на стороне клиента в Netcode for Entities
В заключение мы представляем вам инструменты и решения Unity для разработки Multiplayer: Фреймворки Netcode for GameObjects и Netcode for Entities, сервисы Game Server Hosting (Multiplay), Relay и Vivox для голосового и текстового чатов и многое другое. Сюда же относится введение в функции Unity 6 для Multiplayer, которые делают интеграцию, итерации и развертывание как никогда надежными и быстрыми.

Мы реализовали теорию в электронной книге, предоставив практический пример настройки и создания первого проекта Unity Netcode for GameObjects. Пример — простой пример проекта, использующий ассеты из пакета Starter Assets – ThirdPerson. Это имитирует 3D-игровой процесс с человекоподобным персонажем с помощью Universal Render Pipeline (URP). Он включает в себя небольшую сцену тестовой площадки и настраиваемый контроллер от третьего лица. Приведя пример, вы познакомитесь с такими понятиями, как:
- Установка Netcode for GameObjects
- Добавление NetworkManager
- Сетевые объекты
- Player NetworkObject
- Создание сетевого объекта игрока
- Режим Multiplayer игры
- Создание собственных кнопок запуска интерфейса
- Добавление NetworkBehaviour
- Авторитет и собственность
- Синхронизация с помощью NetworkTransform и NetworkAnimator
- Применение полномочий клиента
- Авторитетные компоненты режима владельца
- Синхронизация с сервером
- Схема дизайна Singleton
Помимо электронной книги вы также можете посмотреть это новое руководство, в котором рассматриваются ключевые этапы настройки Multiplayer игры с помощью Netcode for GameObjects:

Электронная книга завершается подробным обзором новейших примеров проектов Unity, с которыми вы можете ознакомиться на следующем этапе обучения. Примеры созданы для того, чтобы помочь вам начать работу с Netcode for GameObjects и Netcode for Entities. Сюда относятся новый шаблон VR Multiplayer, обновленные обучающие материалы, репозиторий Bitesize Samples, семплы Netcode ECS и пример Megacity Metro.
Надеемся, что новая электронная книга Multiplayer и дополнительные примеры ресурсов помогут вам эффективно приступить к разработке Multiplayer в Unity 6. Если у вас остались вопросы или комментарии, опубликуйте их в этой статье. И наконец, ознакомьтесь с новейшими ресурсами Unity на странице unity.com/how-to.