Принцип Unity сети:
Игрок создает сервер на своей машине и к нему подключаются остальные. Он должен иметь белый IP.
Если используется мастерсервер, то на нем регистрируется один из игроков как сервер который создает игру (комнату), все к нему подключаются. Функционал матсерсервера был по моему только в списке комнат и количестве игроков в них. Все подключаются к игроку серверу, если позволяет NAT. Часто с в такой ситуации не все могут стать сервером для игры.
Мастер сервер либо тот который предлагает Unity либо свой (надо отдельно ставить). Я уже и не помню где его скачать можно.
Все пакеты идут через игрока, создавшего сервер.
Принцип работы облака:
Используется Photon Unity Networking (PUN)
Все клиенты подключаюся сначала к лодбалансеру (мастерсервер с точки зрения Unity сети). Когда создается комната, то лодбалансер выбирает сервер, на котором есть свободные ресурсы и на нем создает комнату, все клиенты подключаются к этому серверу к этой комнате. Никому не надо иметь белый IP и нет проблем с NAT.
Сервер для комнаты пересылает все пакеты через себя.
Логика выполняется тоже на клиенте, который называется мастерклиентом
Плюсы облака и PUN по сравнению с Unity сетью:- Лодбалансер может для комнат содержать дополнительные параметры, по которым можно их фильтровать. Может показывать кто из друзей онлайн, если передать ему список id друзей (для этого надо реализовать авторизацию).
- Игроки уже имеют параметры, которые пересылаются автоматически всем подключенным к комнате игрокам
- Есть автоматический контроль за инстансингом сетевых объектов
- Нет проблем с NAT и белыми IP т.к. все подключаются к серверу
- при выходе из комнаты мастерклиента всех не выбрасывает, мастерклиентом становится кто-то из оставшихся игроков
Вероятно я еще что-то забыл