For the complete documentation index, see llms.txt. This page is also available as Markdown.

Mirror WebGL

Это руководство поможет вам использовать Mirrorего Websocket Transport и создать выделенный сервер на Edgegap для проекта Unity.

В этом руководстве будет использоваться проект с открытым исходным кодом Tanks, доступный в примере Mirror в Assets/Mirror/Examples/Tanks.

Вы можете найти финальную версию этого примера на нашем GitHub

Образец Billiards

Если вы предпочитаете следовать пошаговому видеоуроку, используя образец Billiard, смотрите здесь:

Переключите транспорт

Сначала нам нужно внести некоторые изменения в базовую сцену, прежде чем мы будем готовы собрать игровой сервер.

  • Откройте Scene.unity расположенный в Assets/Mirror/Examples/Tanks/Scenes;

  • В NetworkManager игровом объекте удалите скрипт KcpTransport и замените его на SimpleWebTransport расположенный в Assets/Mirror/Transports/SimpleWeb, также обязательно обновите поле Transport в NetworkManager компоненте скрипта, указав этот новый транспорт. Убедитесь, что Auto Start Server Build тоже выбрана.

  • В зависимости от вашей версии Mirror, вам может потребоваться изменить/обновить NetworkManagerHUD чтобы он работал с транспортами, отличными от KCP, а также чтобы вы могли вводить значение порта в HUD перед подключением к серверу.

Обратите внимание на порт, используемый для сетевой связи, обозначаемый как [GAME PORT]. В данном случае используется порт 7778.

Сборка игрового сервера и контейнеризация

Чтобы упростить процесс контейнеризации и развёртывания, можно использовать последнюю версию плагина Edgegap Unity на нашем GitHub чтобы автоматизировать процесс. Для получения дополнительной информации о том, как использовать этот плагин, вы можете ознакомиться с нашей документацией.

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

Когда игра будет готова, перейдите на экран сборки в Unity Editor, в File -> Build Settings в верхнем меню. Обязательно выберите правильные пресеты в зависимости от вашей версии Unity.

  • До версии 2021.2:

    • Установите Target Platform в Linux;

    • Установите Architecture в x86_64;

    • Отметьте опцию Server Build .

  • Иначе:

    • Установите Платформа в Dedicated Server;

    • Установите Target Platform в Linux.

Затем нажмите build и выберите новую пустую папку с именем linux_server в качестве места назначения файла. Перенесите папку linux_server во вторую пустую папку, которая в этом документе будет обозначаться как [SERVER BUILD] папка. Добавьте следующие Dockerfile и boot.sh файл в [SERVER BUILD] папку:

Dockerfile

boot.sh

Убедитесь, что вы заменили [YOUR GAME] заполнители на имя сгенерированного файла

Затем откройте командную строку в [SERVER BUILD] папке; выполните следующие команды Docker, чтобы создать образ вашей сборки и отправить его в приватный реестр:

Используя Linux

Используя cmd

Используя PowerShell

Развёртывание сервера на Edgegap

После входа в панель управления Edgegap перейдите на страницу Applications & Games . Нажмите кнопку Create New в правом верхнем углу, чтобы открыть форму приложения. Ниже перечислены поля и как правильно их заполнить:

  • Application name : Может быть любым заметным именем, которое вы хотите использовать, чтобы легко распознавать ваше приложение среди других.

  • Image : Может быть любым конкретным образом, который вы хотите использовать, чтобы легко распознавать ваше приложение среди других.

  • Version name : Вы можете использовать имя версии, чтобы описать область развёртываемой версии. Примеры: “demo”, “production”, “v1”, “v2”

  • Container :

    • Registry : “[URL]”, где [URL] — это значение из учётных данных, которое можно просмотреть на странице Container Repository.

    • Image repository : “[PROJECT]/[YOUR GAME]”, где [PROJECT] и [YOUR GAME] — это значения, которые вы использовали ранее при отправке docker-образа.

    • Tag : “[TAG]”, где [TAG] — это значение, которое вы использовали ранее при отправке docker-образа.

    • Отметьте “Using a private repository”

    • Private registry username : “[USERNAME]”, где [USERNAME] — это значение из ваших учётных данных.

    • Private registry token : “[TOKEN]”, где [TOKEN] — это значение из ваших учётных данных.

    • Requirements : Оставьте без изменений.

    • Ports : Нажмите + Add port ссылку, чтобы добавить новый порт, и добавьте следующие записи :

      • 7778 - WS - enable TLS Upgrade (Beta)

Когда ваше приложение будет создано, вы можете нажать кнопку Deploy чтобы продолжить развёртывание игрового сервера. Когда последний статус вашего развёртывания станет Ready, вы сможете подключиться к серверу с клиентской версией игры. Обратите внимание на Host url и, на вкладке Port Mapping вашего развёртывания, на внешний порт который доступен публично.

Тестирование клиента

В редакторе

Вернувшись в Unity Editor в сцене танков, выберите NetworkManager игровой объект и измените следующие настройки:

  • В Network Manager компонента:

    • Установите Network Address на url развёртывания сервера; Host url;

    • Снимите флажок с Auto Start Server Build .

  • В Simple Web Transport компонента:

    • Установите Port на значение порта развёртывания Edgegap внешний порт например: 32821;

    • Убедитесь, что опция Client Use WSS включена.

После этого нажмите Play в редакторе, затем нажмите кнопку Client ; вы подключитесь к серверу и сможете играть через короткое время.

На Itch.io

Чтобы разместить клиент игры на Itch, вам нужно будет сделать клиентскую сборку; для этого потребуется установить модуль WebGL Build Support для вашей версии Unity. После этого вернитесь к экран сборки в Unity Editor, в File -> Build Settings, и выберите следующие параметры:

  • Установите Платформа в WebGL;

  • Откройте Player Settings. В разделе Player -> Publishing Settings, установите Compression Format в Gzip и убедитесь, что Decompression Fallback опция выбрана. Сохраните эти настройки и закройте окно.

Затем нажмите build и выберите новую пустую папку с именем сборка в качестве места назначения файла. Перенесите папку сборка во вторую пустую папку, которая в этом документе будет обозначаться как [CLIENT BUILD] папка в этом документе.

После завершения сборки игры сожмите файлы этой сборка папки в zip-архив, убедившись, что они находятся в его корне. Затем вам нужно просто загрузить zip-архив в ваш проект на Itch и убедиться, что выбрана опция запуска файла в браузере. После запуска игры вам нужно лишь убедиться, что значения сетевого адреса и порта правильно заданы в HUD, затем нажать кнопку Client чтобы играть.

Размещение клиента на Edgegap

Возможно даже разместить клиент вашей игры на Edgegap! Для этого добавьте следующий Dockerfile и nginx.conf файл в [CLIENT BUILD] папку:

Dockerfile

nginx.conf

Продолжите, используя те же команды Docker, что и раньше для сборки и отправки образа вашего клиентского приложения в приватный репозиторий, но из окна команд, открытого в [CLIENT BUILD] папке. Убедитесь, что используете другое имя образа, чем для вашего сервера.

Затем создайте новое приложение для вашего клиента в панели Edgegap со следующими настройками:

  • Application name : Может быть любым заметным именем, которое вы хотите использовать, чтобы легко распознавать ваше приложение среди других.

  • Image : Может быть любым конкретным образом, который вы хотите использовать, чтобы легко распознавать ваше приложение среди других.

  • Version name : Вы можете использовать имя версии, чтобы описать область развёртываемой версии. Примеры: “demo”, “production”, “v1”, “v2”

  • Container :

    • Registry : “[URL]”, где [URL] — это значение из учётных данных, которое можно просмотреть на странице Container Repository.

    • Image repository : “[PROJECT]/[YOUR GAME]”, где [PROJECT] и [YOUR GAME] — это значения, которые вы использовали ранее при отправке docker-образа.

    • Tag : “[TAG]”, где [TAG] — это значение, которое вы использовали ранее при отправке docker-образа.

    • Отметьте “Using a private repository”

    • Private registry username : “[USERNAME]”, где [USERNAME] — это значение из ваших учётных данных.

    • Private registry token : “[TOKEN]”, где [TOKEN] — это значение из ваших учётных данных.

    • Requirements : Оставьте без изменений.

    • Ports : Нажмите + Add port ссылку, чтобы добавить новый порт, и добавьте следующие записи :

      • 80 - HTTPS

Когда ваше приложение будет создано, вы можете нажать кнопку Deploy кнопку, чтобы продолжить развёртывание вашего клиентского приложения. Когда и сервер, и клиент будут развёрнуты и иметь статус Ready, откройте Host url клиентского приложения по указанному внешний порт в вашем браузере, и вы сможете играть в игру после того, как зададите правильные значения в HUD игры!

Если вам нужна дополнительная информация об интеграции Mirror и websocket, вы можете обратиться к их документацией.

Последнее обновление

Это было полезно?