Неделя 27 (апрель 2): Сервер и прочие страдания.

Последние пару месяцев я почему-то был уверен в том, что в году 54 недели, а не 52. В общем, оказывается, я пропустил полугодовой юбилей осмысленной работы над проектом. Немного обидно.

Впрочем, вся прошедшая неделя — сплошное разочарование.

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

В качестве источника информации о серверных сервисах у меня припасена довольно древняя статья на vc.ru посвященная альтернативам закрывавшегося в тот момент сервиса Parse. Этот сервис интересен прежде всего тем, что вообще не понятно с чего это он закрылся. Мне по крайней мере, я ж не читаю новостей. Ну и еще на Юнитевом форуме нашлась смешная тема Playfab vs Gamesparks vs Firebase, где посетители форума обсудили какой Gamesparks замечательный.

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

Позже, у меня был довольно смешной опыт использования сервиса moback, который я так же по глупости по началу принял за аналитический. По-дружбе, я сделал небольшое приложение для сбора статистики в одном научном исследовании. А moback просто позволял выгружать сырые данные, что собственно и было нужно моему «заказчику».

***

Если коротко, то самая большая проблема всех сервисов — это неочевидность. Понятно что скорей всего им нафиг не нужны всякие безумные индики, которые могут своей криворукостью засрать все доступное пространство, но с этим есть вполне нормальные технические средства борьбы. Да иной индик вот-вот возьмет и заработает себе миллиард денег, начнет ездить по конференциям, рассказывая о том, как вера в себя и фичеринг помогли ему добиться успеха, и поделится частью заработанного с дружелюбным сервисом. Хлебом не корми — дай деньгами поделиться.

Понятно что каждому разработчику интересно что-то свое, но такое впечатление что разработкой этих сервисов, в названии которых иногда даже присуствует какое-нибудь «play» или «game«, игры не делали никогда. Понятно что сервис украшают всякие крутые штуки типа механизма формирования соревнований или отправки сообщений — это реально нужные вещи. Причем вещи нужные только разработчикам игр — далеко не все сервисы вообще нацелены на разработчиков игр.

Но когда разработчик приходит изучать сервис у него есть два вопроса: куда залить конфиги и как обрабатывать запросы от клиента. Фсе. По дороге разработчик узнает что сервис имеет кучу хитромудрых ограничений или работает только с мобилками и даже тестировать его через Юнитевый эдитор не получится. Но к этому моменту разработчик потратит не слишком много времени и со спокойной душой пойдет смотреть на следующий сервис.

***

В итоге я остановился на сервисе Gamesparks. И то только потому что:

  • Во-первых, он немного бесплатнее чем все остальные сервисы. Но чтобы получить возможность запустить релизный сервер (там есть контроль версий и разграничение на девелоп и релиз) нужно пройти собеседование… к черту автоматизацию! Ее и так слишком много.
  • Во-вторых, он умеет работать не только с мобилками. Из-за этого ограничения отпал, например, в значительной степени бесплатный гугловый Firebase, который ладно еще не умеет работать с XBox, но он не умеет работать и с браузером, а это критично.
  • В-третьих, у него есть несколько хранилищ данных, которые похожи на то, что нужно чтобы хранить конфиги. Спустя неделю изучения документации я таки нашел прямую рекомендацию использовать одно из этих хранилищ (и так и не нашел зачем нужны другие). Более того, доступ к хранилищу возможен не только для чтения, но и для записи, а значит я могу например через свой юнитевый эдитор напрямую перегружать конфиги из гуглодоков, на сервер.

Gamesparks

  • Позволяет создавать ивенты, к которым можно обращаться из кода клиента. Дело в том, что большинство других сервисов позволяют только присасываться к уже прописанным событиям, например, передачи данных. На самом деле их должно быть вполне достаточно… но все же мне кажется что удобнее посылать отдельные команды для каждого события чем одним событием разные команды.
  • Имеет довольно перспективные с моей точки зрения механизмы тех самых соревнований и сообщений, которые втюхиваются разработчику в первую очередь.
  • Соревнования — это даже не просто сбор команд и рейтинги, а паразит, автоматически присасывающийся к ивентам. Отправляешь ты событие «построить дом с айдишником таким-то» а система автоматически увеличивает счетчик построенных домов. Заодно генерирует тебе событие полученной ачивки.
  • Сервис не имеет интерфейсов администрирования самой игры, по сути он является просто средством разработки. Все остальное высечено топором на камне. Но при этом есть средство разработки этих самых интерфейсов… что по-хорошему афигенно. Сделать что-то отвечающее твоим требованиям всегда лучше сношений с неудобным интерфейсом, придуманным человеком, имеющим посредственное представления о том, что нужно разработчику игр. Плюс к тому, это оборачивается тем, что сделать какую-то админку вне системы, в общем, должно быть не сильно сложнее. Ну и в конце концов это позволяет сделать любую, самую безумную аналитику даже без выгрузки сырых данных.

Ну и еще говорят что если сервис купил Амазон, значит сервис не закроется завтра. Фигня только в том, что судя по работе с комьюнити, сервис закрылся около года назад. Они не обновляют новые комменты в Дискасе — сервисе комментариев (я им тоже пользуюсь в бложике, если кто не заметил) — форум у них совершенно убитый.

***

Собственно из проблем с документацией Геймспаркса и идут все мои расстройства этой недели. Я не сделал для игры НИ-ЧЕ-ГО. Огромная плохо поданная документация вызывает у меня приступы гнева и дислексии… Очень тяжело идет.

Оглавление