Мультиплеер В Unreal Engine: Подключение И Хостинг



Введение Привет Хабр! В этой серии статей я планирую раскрыть механику мультиплеера в UE 4 и 5. Начать хочу с подключения, а дальше буду отталкиваться от ваших желаний и вашей поддержки.

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

Я хочу привлечь 2 ключевые фигуры: IOnlineSubsystem - взаимодействовать с сервисами будущей игры и AGameSession — ключевой класс, который напрямую обрабатывает соединение.



Главная часть



1. Описание

IOnlineSubsystem — это одноэлементный объект, представляющий собой набор интерфейсов для взаимодействия с каким-либо сервисом (Steam, Origin, магазин PS и т. д.).

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

В текущем руководстве мы будем использовать ОнлайнПодсистемаSteam .

Как я уже говорил, IOnlineПодсистема — это прежде всего набор интерфейсов, причем очень высокоуровневых.

Чтобы вашу игру не пришлось переписывать под разные платформы, взаимодействие с этими сервисами значительно упрощено (выгода для разработчиков).

Чтобы полностью понять картину, прошу вас самостоятельно зайти к первоисточнику ОнлайнПодсистемаSteam .

Руководство не будет включать настройку OnlineSubsystemSteam, так как на эту тему существует множество руководств.



Мультиплеер в Unreal Engine: подключение и хостинг

Рис.

1. Расположение OnlineSubsystemSteam AGameSession — это объект, который существует исключительно на сервере.

Он отвечает за подключение плеера к сеансу и действует как оболочка над интерфейсом.

Очень рекомендую прочитать шапку GameSession .

час по адресу GameFramework/GameSession.h для полного понимания механизмов работы этого класса.



Мультиплеер в Unreal Engine: подключение и хостинг

Рис.

2. Методы класса AGameSession для присоединения игрока.

В результате эти два класса должны работать совместно, чтобы получить качественный продукт.

2. Подключитесь к серверу

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

Под сервером мы будем подразумевать как еще один клиент, так и выделенный сервер.

  1. Найдите сеанс.

  2. Присоединение к сеансу.

  3. Выйдите из сеанса.

Теперь о каждом пункте подробно:
  1. Поиск.

    Все найденные сессии нужно где-то хранить и как-то искать.

    Давайте создадим поле в нашем пользовательском классе и функцию поиска:

   

#pragma once #include "CPP_GameSession.generated.h" UCLASS(config = Game) class ACPP_GameSession : public AGameSession {

Теги: #C++ #unreal engine #мультиплеер
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.