Цитата:
GameSparks
Общее описание
GameSparks — это сервис, который выступает в роли backend-сервера для игр. Он позволяет хранить данные, запускать скрипты, имеет встроенные механизмы матчмейкинга, ачивок, лидербордов и много другое.
Интеграция
GameSparks интегрируется в Unity3D - UE4 с помощью официального плагина. Все работает отлично.
Реализация
Все скрипты пишутся на JavaScript. Поэтому первое что я сделал, это настроил окружение так, чтобы писать на нормальном строго типизированном языке. Я использовал TypeScript.
Взаимодействие с сервером очень простое. Мы посылаем на сервер сообщение. На сервере срабатывает скрипт, соответствующий этому сообщению. Скрипт считывает информацию из базы данных, вносит изменения, и возвращает нам результат. Так же скрипт может послать сообщение любому другому пользователю. Все очень просто и логично.
В принципе, GameSparks позволяет вам реализовать сколь угодно сложный матчмейкинг. Можно, например, сделать комнаты как в стиме. Но я решил не заморачиваться, а воспользоваться встроенным механизмом матчмейкинга.
При запуске матчмейкинга нужно передать силу игрока (числовой параметр). После чего GameSparks вернет противников, сила которых отличается от переданной на определенное значение (в абсолютных или относительных значениях).
Для real-time мультиплеера есть возможность создавать отдельные комнаты. В этой комнате может быть запущен скрипт, который постоянно крутится на стороне сервера. Но я не использовал этот функционал. Для передачи сообщений между игроками я использовал обычный скрипт, который просто ретранслировал сообщение нужному игроку.
Плюсы
Есть возможность хранить данные игрока на сервере
Удалось избавиться от костылей, которые использовались в Game Center и Steam. Сервер всегда знает, кто онлайн, кто нет, и всегда можно достоверно определить, кто покинул игру.
Минусы
Немного сумбурная документация.
Обещали, что для инди-разработчиков можно запустить игру бесплатно. На деле, пришлось заплатить.
https://habr.com/ru/post/316706/ страница автора статьи.
_________________
Project SKIT