Требования:
Нужен человек для разработки авторитарного сервера для существующей игры про рыбалку.
Переход на сервер планируется осуществить в несколько этапов:
Логин (используя ID устройства, или логин пароль с привязкой почты).
Сохранение передается на сервер в неизменном формате (сейчас сохранение хранится в JSON).
Сохранение имеющееся на сервере передается на клиент после логина.
Конвертирование сохранений в серверный вариант.
Сохранения с клиента больше не конвертируются и хранятся только на сервере.
Передача статических данных с сервера на клиент (цены, информация о наборах в магазине, таблицы с множителями цен за продажу рыбы)
Постепенный перевод игры на авторитарный сервер:
Добавление и удаление предметов инвентаря происходит на сервере.
Покупки во внутриигровом магазине.
Продажа во внутриигровом магазине.
Рыба при поимке добавляется в инвентарь на сервере.
Переделать существующий сервер покупок через Юкассу для покупок на сервере, а не на клиенте.
Добавить на сервер покупку через Google.
Добавить админку:
Возможность давать и отбирать предметы и деньги у конкретного игрока.
Возможность давать и отбирать предметы и деньги у у всех игроков.
Добавить систему одноразового показа сообщений конкретному игроку.
Добавить систему одноразового показа сообщений всем игрокам.
Взаимодействие в сервером HTTP запросы.
При изменении данных при запросе, в ответе присылаются только изменившиеся данные и статус проверки.
Хайлевел описание методов:
Loogin
In: id устройства пользователя, сохранение в старом формате
out: статус, сохранение.
Если пользователь посылает сохранение и его ещё нет на сервере, и не закончен период конвертации сохранений, то сохранение конвертируется на сервере.
BuyShopItem
in: id набора
out: статус, вещи добавленные при покупке.
Находит набор и добавляет n предметов, если у пользователя хватает денег.
SellFishes
in: лист с InstanceId продаваемых рыб
out: статус, новое количество денег, лист с InstanceId уничтоженных предметов
Удаляет рыб из инвентаря и добавляет количество денег посчитанных из статических настроек и веса рыбы
DisposeItems
in: InstanceId уничтожаемых предметов
out: статус, лист InstanceId уничтоженных предметов
Уничтожает объекты в инвентаре по InstanceId
BuyIAPItem
in: id товара, код стора
out: статус, дата окончания премиума, количество денег
Выполняет покупку через ЮКассу или гугл, активирует премиум или добавляет деньги, в зависимости от покупки.
OnCatchFish
in: id рыбы, масса рыбы
out: статус, объект рыбы добавленный в инвентарь, новое количества опыта игрока, новое количество опыта скила, Id скила.
Добавляет пойманную рыбу в инвентарь, добавляет опыт игрока и опыт скила, и возвращает новые значения на клиент.