C++/C# Сэмпл Photon Integration
Photon - это сетевой движок и многопользовательская платформа, которые могут обрабатывать все запросы на своих собственных серверах. Таким образом, для создания многопользовательского сетевого решения вы реализуете логику приложения (геймплея) и функции в проекте UNIGINE, а сетевая часть выполняется с помощью Photon. Этот небольшой пример демонстрирует, как интегрировать движок Photon в ваш проект UNIGINE, чтобы превратить его в многопользовательское приложение.
Два продукта Photon интегрированы в сэмпл Photon Integration:
- Photon Realtime организует взаимодействие нескольких игроков по сети. Его можно использовать для создания многопользовательских шутеров, гоночных игр и других приложений реального времени.
- Photon Chat позволяет пользователям обмениваться письменными сообщениями как публично, так и конфиденциально.
Сэмпл содержит следующие элементы:
- Упрощенное окно авторизации для ввода псевдонима пользователя, которое может быть использовано в качестве основы для более сложного окна авторизации с паролем и так далее
- Окно лобби для создания комнаты и проверки списка созданных комнат, доступных для подключения
- Мир, содержащий реальные объекты, которыми можно манипулировать, и окно чата для обмена сообщениями
Передача данных по сети#
Сэмпл Photon содержит Utils, которые демонстрируют, как передавать исходные типы данных через Photon.
Невозможно напрямую передавать данные UNIGINE по сети с использованием Photon - они должны быть сериализованы перед отправкой, а затем десериализованы при получении другой стороной. Photon способен сериализовать и десериализовать наборы данных, перечисленные здесь (нажмите на Common-cpp - data types and utilities). Эта же информация по типам данных доступна в виде PDF файла для вашего удобства.
Другие специфические типы данных, такие как матрицы преобразования, должны быть зарегистрированы определенным образом, показанным в нашем примере, для правильного процесса сериализации/десериализации.
Ознакомьтесь с этим сэмплом и создайте свои собственные приложения, интегрирующие другие сетевые решения, разработанные Photon.
Запуск сэмпла#
Чтобы использовать продукты Photon, зарегистрируйтесь на веб-сайте Photon (www.photonengine.com) и выполните следующие действия:
-
Загрузите необходимые SDK.
Перейдите в SDKs (вкладка в правом верхнем углу).
Для запуска этого примера вам понадобятся SDK для двух продуктов Photon:
- REALTIME - Windows/Linux для C++ или .NET для C#
- CHAT - Windows/Linux для C++ или .NET для C#
-
Добавьте двоичные файлы.
В папке с сэмплами Photon, найдите папку под названием PhotonSDK. Скопируйте все двоичные файлы в эту папку в соответствии со структурой, приведенной в файле Readme.txt, который также находится в этой папке.
Пример для проекта Windows C++, двоичные файлы Chat SDKПример для проекта Windows C#, двоичные файлы Chat SDK -
Создайте идентификаторы приложений.
Перейдите к Dashboards (вкладка в правом верхнем углу).
В разделе Dashboards нажмите CREATE A NEW APP.
Вам нужно создать два приложения для Photon sample: одно с использованием Realtime Photon SDK, а другое - Chat Photon SDK.
Создание приложения Photon в реальном времениСоздание приложения для фотонного чатаТеперь у вас есть два приложения, и вы можете использовать их идентификаторы в примере. Для каждого экземпляра используется один и тот же идентификатор (т.е. другим участникам не нужно создавать свои собственные приложения).
-
Добавьте идентификаторы приложений в пример проекта.
В папке проекта найдите data/application_params.json и вставьте идентификаторы в соответствующие строки.
{ "realtime_application_id": "______________", "realtime_application_version": "1.0", "chat_application_id": "_________________", "chat_application_version": "1.0" }
Готово! Теперь запустите приложение и попросите своего друга сделать то же самое.
Если вы проводите индивидуальное тестирование, запустите еще один или два экземпляра на своем компьютере и переключайтесь между окнами, чтобы получить представление.
Использование сэмпла#
После запуска сэмпла, вы увидите базовую форму авторизации. Введите свой ник и нажмите Join Lobby.
Следующим будет отображено окно Lobby. Если вы первый и в списке нет номеров, нажмите Create Room, и номер будет создан.
Все пользователи, использующие одинаковые идентификаторы Photon в data/application_params.json, увидят комнату, названную в честь псевдонима, если они присоединятся после создания этой комнаты.
Дважды щелкните по названию комнаты, чтобы присоединиться к этой комнате.
Как только мир откроется, вы сможете перемещать свой материальный шар, используя кнопки WASD, вращать его, используя QE, и стрелять в других игроков, нажимая левую кнопку мыши.
Вы можете вводить сообщения, чтобы отправлять их всем пользователям, или отправлять сообщения, начинающиеся с @username, чтобы обмениваться личными сообщениями с этим пользователем. (Конечно, для этого вы должны знать имя пользователя, у приложения нет какого-либо конкретного интерфейса, который позволил бы вам узнать это.)
Поскольку индикатор выполнения жизненного цикла пуст, на экране отображается кнопка "Оставить". Нажмите на нее, чтобы вернуться в лобби.