Анонс UNET – новая технология для сетевого взаимодействия от Unity

Unity Networking
Примечание от автора:
Это вольный перевод статьи с блога Unity от 12 мая 2014 года.

Несколько недель назад на конференции Unite Asia мы рассказали, что работаем над новым инструментом и сервисами для создания сетевых игр для Unity разработчиков. Рабочее название проекта — UNET, что означает Unity Networking. Мы стремимся к демократизации сетевых игр и хотим дать всем разработчикам возможность создавать сетевые игры любого типа и любой сложности.

Члены нашей команды по разработке сети работали над такими проектами, как Ultima Online, Lord of the Rings Online, Dungeons and Dragons Online, Marvel Heroes, Need for Speed Online и World of Warcraft до того, как присоединиться к команде Unity.

У нас есть большой багаж знаний и опыта в создании мультиплеерных игр, технологиях и архитектуре. Мы смотрели, к чему стремится Unity и нам это нравилось. Поэтому когда нам предложили поработать с чем-то действительно великим как мультиплеер для Unity, сложно было отказаться.

И так, мы покинули наши прежние рабочие места и присоединились к Unity для осуществления их планов. В данный момент мы усердно работаем над инструментами, сервисами и технологиями, чтобы каждый смог воплотить свою мечту создать сетевую игру.

Мы создавали подобные вещи уже много раз. Весь процесс разработки разбит по этапам. Когда запускается первый этап, мы собираем отзывы, обрабатываем их и применяем в работе, чтобы следующие этапы были лучше. И этот цикл повторяется снова.

Для UNET, первый этап был называн — Multiplayer Foundation(далее подробнее). Второй этап основывается на первом и включает в себя авторитарный игровой сервер, названный Simulation Server(сервер симуляции), о котором напишем в следующих статьях. На последнем, третьем этапе мы хотим представить вам Master Simulation Server — сервер, который позволит координировать несколько серверов симуляции. Пока точных дат привести не можем, однако предполагаем, что первый этап будет реализован вместе с новой версией Unity в ветке 5.x.

Что же мы имеет ввиду под Multiplayer Foundation? Основные возможности:
  • Высокопроизводительный протокол передачи данных, основанный на UDP для реализации любого типа игр;
  • Low Level API (LLAPI) — низкоуровневый API, который предоставит полный контроль над сетью;
  • High Level API (HLAPI) — высокоуровневый API предоставим простую и безопасную сетевую модель для клиент-серверного взаимодействия;
  • Matchmaker Service — сервис предоставляет базовый набор методов для управления комнатами, поиска игроков;
  • Relay Server — данный сервер помогает решить проблему соединения игроков друг с другом, избегая проблем с NAT.

У нас были некоторые ограничения в нашей устаревшей системе и поэтому для достижения поставленных целей пришлось начать с нуля.

Так как мы планируем поддерживать все типы игр и любое количество подключений, начало было положено с создания высокопроизводительного протокола передачи данных над UDP. Конечно, много игр хорошо работают и с TCP, но для игр с очень динамичным геймплеем лучше подходит UDP.

Над этим протоколом мы построили два API. Первый, High Level API (HLAPI) нужен для тех, кто не является сетевым инженером и хочет быстро и просто создать сетевую клиент-серверную игру.

Для тех, кто любит работать с низким уровнем и хочет выжать максимум, мы сделали Low Level API (LLAPI), который предоставляет интерфейс, похожий на сокеты, для работы с протоколом.

Matchmaker service — данный сервис служит для управления комнатами и позволяет игрокам найти друг друга. И, наконец, Relay Server позволит убедиться вам, что игроки смогут связаться друг с другом.

По предыдущему опыту мы знаем, что создание сетевой игры несет много головной боли. Поэтому Multiplayer Foundation несет в себе набор инструментов и сервисов, чтобы избежать ее. Чтобы начать делать сетевую игру, вам потребуется минимальный запас знаний о сети и протоколах.

В прошлом, Вам скорее всего приходилось нанимать специального человека, чтобы он работал с сетью. Дальше вы сталкивались с проблемами поиска игроков. После этого обнаруживали проблемы с их соединением из-за NAT. И когда наконец вы решили все проблемы и запустили проект, вам приходилось заботиться о масштабировании вашей системы.

Первый этап как раз и решает все эти проблемы. HLAPI позволяет работать с сетью без глубоких знаний. В тоже время, LLAPI дает возможность человеку «в теме» сделать так, как он хочет с сетью. Matchmaker решаем проблему с поиском игроков, а Relay Server позволяет связаться игрокам друг с другом. И мы решим проблему с динамическим масштабированием вашей системы! Matchmaker и Relay Server запущены в облаке Unity. Хорошо масштабируются не только физические сервера, но и процессы!

Скоро будут еще статьи о UNET! Удачи!

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.