Полезное

Мы Вконтакте

Discord канал

#
Пред.
12
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 4069
icms я видел твое видео на ютубе где два персонажа бегают в уровне с помощью геймспаркс, скажи это было выполнено с помощью двух клиентов?, тоесть это была игра на выделенном сервере?
Аватара пользователя
Пользователь
Сообщения: 469
GameSparks это удалённая база данных и событийный сервер (JavaScript) в UE4 используется модель выделенного сервера на котором есть UE4 серверное приложение. Т.е. у спарка нет серверного приложения, есть скрипты которые обрабатывают переданную информацию, а так же возможность прямой передачи данных нужному клиенту минуя сервера спарк(реалтайм сессия). В моей демке два клиента обменивались данными как раз напрямую. У спарка при реалтайм сесси нет такого жёсткого ограничения по количеству подключённых игроков. И нет необходимости держать свои сервера. Спарк не может со своей стороны просчитывать физику, или движение.
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 4069
тоесть сервер был расположен у тебя на дома, а не в облаке GameSparks?

и возможно ли вообще разместить сервер в облаке геймспарка?
Аватара пользователя
Пользователь
Сообщения: 469
Наоборот, у спарка сервера только их. Но повторюсь - там нет клиента игры!
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 469
Цитата:
GameSparks

Общее описание

GameSparks — это сервис, который выступает в роли backend-сервера для игр. Он позволяет хранить данные, запускать скрипты, имеет встроенные механизмы матчмейкинга, ачивок, лидербордов и много другое.

Интеграция

GameSparks интегрируется в Unity3D - UE4 с помощью официального плагина. Все работает отлично.

Реализация

Все скрипты пишутся на JavaScript. Поэтому первое что я сделал, это настроил окружение так, чтобы писать на нормальном строго типизированном языке. Я использовал TypeScript.

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

В принципе, GameSparks позволяет вам реализовать сколь угодно сложный матчмейкинг. Можно, например, сделать комнаты как в стиме. Но я решил не заморачиваться, а воспользоваться встроенным механизмом матчмейкинга.

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

Для real-time мультиплеера есть возможность создавать отдельные комнаты. В этой комнате может быть запущен скрипт, который постоянно крутится на стороне сервера. Но я не использовал этот функционал. Для передачи сообщений между игроками я использовал обычный скрипт, который просто ретранслировал сообщение нужному игроку.

Плюсы

Есть возможность хранить данные игрока на сервере
Удалось избавиться от костылей, которые использовались в Game Center и Steam. Сервер всегда знает, кто онлайн, кто нет, и всегда можно достоверно определить, кто покинул игру.

Минусы

Немного сумбурная документация.
Обещали, что для инди-разработчиков можно запустить игру бесплатно. На деле, пришлось заплатить.

https://habr.com/ru/post/316706/ страница автора статьи.
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 4069
спасибо, я наталкивался на эту статью, вообщем я имею представление зачем это нужно, но пока это очень мутно.
Аватара пользователя
Пользователь
Сообщения: 469
Если тема интересна попробуй восстановить повторить ту мою демку, я подмогну. Людям в доступ отдадим пусть разбираются.
https://support.gamesparks.net/support/discussions/topics/1000081793
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 4069
icms писал(а):
Если тема интересна попробуй восстановить повторить ту мою демку, я подмогну. Людям в доступ отдадим пусть разбираются.
https://support.gamesparks.net/support/discussions/topics/1000081793


Очень интересное видео - https://docs.gamesparks.com/getting-sta ... g/ur/7.gif, добавил тему в закладки посвященные этому, правда у меня сейчас множество других задач, я еще не определился что именно будет использоваться для дополнительных сетевых задач.
Ознакамливаюсь с вариантами. Вообще для всех основных действий, приоритетом является встроенные сети UE4.

Вообщем облачные сервера, стоит расматривать как базу данных, а не место где расчитывается основная физика и логика игры?
Хотя из твоего видео, видно что можно использовать их и для этого, тоесть репликацию ты сделал через облако, судя по скринам кода, но не думаю что это целесообразно(здесь не уверен, вероятно зависит от конкретной задачи).

Очень вероятно я использовал не совсем нужные слова, ввиду своей неопытности, надеюсь ты меня поймешь.
Аватара пользователя
Пользователь
Сообщения: 469
В гифке реализация сохранения позиции на сервере спарка, совсем не сложное дело.
Там не совсем репликация. Я спавнил персов с немного переделанным плеер контроллером, в нём не было стандартных инпутов с устройств ввода, а были только сетевые эвенты. А в своём основном контроллере параллельно данным с инпутов вызываю обмен в реалтайм сессии спарка. Что бы не слать постоянный поток данных с клавиатуры отправляю только в момент изменения состояния клавиатуры (нажато отпущено). Ну и так же в эти моменты отсылаю координаты. Обьём данных при таком подходе совсем небольшой.

Цитата:
Вообщем облачные сервера, стоит расматривать как базу данных, а не место где расчитывается основная физика и логика игры

а насчёт этого всё очень зависит от типа игры. Вот например игру типа WOT удобней делать на сетевухе анриаловской или starConflict также на уешке. А вот типа доты или игрушек стратегического плана, да и наверное от третьего лица большинства - будет вполне достаточно спарка. Да и не в том дело что достаточно, сервер UE4 насколько я знаю (неточно) макс способен держать 64 клиента. А у спарка нет таких ограничений.
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 4069
да, 64 игрока, но вот тут пишут что это можно поменять в исходнике, да и вообще еще есть несколько полезных советов - http://ue4daily.com/blog/mmo-unreal-engine.html

p.s. я ММО не расматриваю в виду своей криворукости и тупизны, будет чудесно если 64 игрока смогут играть без лагов.
здесь вот пишут что встроенная сеть UE4 подходит для таких игр как МОBA - https://answers.unrealengine.com/questi ... in-mp.html


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница