Создайте готовую к производству многопользовательскую игру с помощью Netcode for GameObjects

Вы создаете кооперативную многопользовательскую игру с помощью Unity? У нас есть для вас идеальный ресурс по запросу: Серия вебинаров из четырех частей от команды Multiplayer теперь доступна на YouTube. В этой серии мы погрузимся в Boss Room чтобы узнать, как можно создать готовую к производству многопользовательскую игру с помощью Unity и Netcode for GameObjects.
Создание многопользовательских игр - это не только использование правильных API. В первом эпизоде серии рассказывается о лучших практиках и даются советы по внедрению такой хаотичной технологии, как интернет, между игроками при разработке многопользовательской игры.
В первом эпизоде мы расскажем о том, как:
- Что такое Netcode for GameObjects (NGO) и Unity Gaming Services (UGS)?
- Сетевые переменные против RPC и причины выбора для каждой функции
- Авторитет и почему мы выбрали серверный авторитет для большей части нашего геймплея
- Движения и альтернативные модели, такие как Client Authority для борьбы с отставанием, а также трюки оптимизации для движений на основе поиска пути
- Базовая реализация игры и то, как мы использовали State (netvar, network list) и RPC
Во втором эпизоде рассказывается о реализации способностей персонажей в Boss Room и о том, как подходить к реализации способностей в своей игре.
Мы погружаемся в:
- Общий порядок реализации управляемых сервером способностей
- Надежность и что значит ненадежность RPC
- Атаки ближнего боя и предвидение проблем с анимацией
- Функциональность танкового щита и взаимодействие с окружающей средой
- Выстрелы из лука и область действия (AOE), которые требуют отслеживания входов в течение времени только на стороне клиента
- Маг огня и использование пропускной способности
- Общая архитектура нашей системы способностей
Мы также рассматриваем:
- Динамически порождаемые объекты
- Порождение статичных объектов, размещенных в сцене
- Порождение разрушаемых объектов в сцене
- Уроки, связанные с зомби-импами при позднем вступлении
- Пользовательская логика спавна, например, бассейны, и как интегрировать их с NGO
На третьем занятии мы рассмотрим еще несколько деталей реализации игры, а затем погрузимся в процесс создания многопользовательской игры, которая будет удобна для игроков.
Мы исследуем:
- Взаимодействие с физикой, объекты и воспитание детей, сцены и управление сценами
- Использование Relay и Lobby для выхода в онлайн и почему нельзя использовать NGO для присоединения игроков
- Синхронизация экрана выбора персонажа между игроками с помощью НГО и пользовательской сериализации
- Обеспечение устойчивости игры к приходу и уходу игроков, потоки повторных подключений, поддержка поздних подключений, отключений и тайм-аутов
- Обработка условий гонки и различные тесты для выполнения
В четвертом и последнем занятии цикла мы рассмотрим лучшие практики разработки игр для многопользовательских игр.
В этом эпизоде рассказывается:
- Оптимизация полосы пропускания и инструменты для профилирования, оптимизация NetworkTransforms и другие советы
- Инструменты отладки, такие как симуляторы состояния сети, мониторинг статистики и пользовательские потоки отладки
- Архитектура проекта (система действий, архитектура игроков и т.д.)
- Будущее Boss Room
Смотреть сериал? Поделитесь своими отзывами, чтобы в будущем мы могли планировать еще более качественные занятия.
Если вы готовы приступить к реализации своего следующего многопользовательского проекта с помощью Unity и Netcode for GameObjects, вот несколько полезных ресурсов, которые помогут вам начать:
- Подробнее о Netcode for GameObjects
- Изучите наши образцы: 3D Boss Room, 2D Galactic Kittens, Bitesize Samples
- Прочитайте документацию
У вас есть вопросы или отзывы о разработке многопользовательских игр в Unity? Не стесняйтесь присоединиться к обсуждению в Discord или на форумах.