1

Фон«Лучший» способ реализации в приложении валют на разных устройствах

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

Я бы хотел пойти самый легкий вариант, который, по крайней мере для меня, означает использование какого-либо доступного API, предоставляемого, скажем, Google, а не использования моего собственного сервера. Я пришел через следующие возможности:

  1. Google AppState API (теперь устаревшее)
  2. Google Сохраненные игры API
  3. Google Drive API
  4. Google Cloud Platform.

(1) теперь устарел, и разработчикам предлагается использовать API сохраненных игр.

(2) На самом деле это отличное решение, потому что оно имеет дело с играми «Достижения», «Лидерборды» и хранение пользовательских данных (например, в валюте приложения). Однако я вижу проблему с этим в том, что в приложении Play Games есть опция удалить профиль игрока, который также удалит валюту в игре! Таким образом, хотя (2) кажется большим, существует вероятность того, что данные о валюте могут быть потенциально удалены. Возможно, это можно было бы положить в T & C, что-то вроде «если вы удалите свой профиль, вы потеряете какую-либо неизрасходованную валюту и любые купленные предметы» ...

(3) Использование API Drive представляется как опция, но то после чтения в Интернете, похоже, много проблем, таких как дубликаты имен файлов, возможности для пользователя удалять файлы и т. д.

(4) Я не уверен в этом, но, похоже, мне, возможно, придется заплатить ?

Существует также, кажется, these deprecation schedules на некоторых API.

Мой вопрос

Так сталкиваются с этими (и, возможно, других, не перечисленных) вариантов, что является хорошим решением для достижения облака на основе в приложении валюты? Я пытаюсь избежать использования моего собственного сервера, который регистрирует валюту/данные каждого пользователя, но, может быть, это единственное хорошее решение? Я хочу попытаться уменьшить способность обманывать систему.

Дополнительные мысли

Я мог бы использовать Google Сохраненные игры API и Сохраненные Preferences (сохраненные на устройстве) подхода. Я бы обновил обе сохраненные настройки и сохраненные игры Google. Я мог бы синхронизировать оба метода хранения данных, и если данные сохраненных игр не соответствовали сохраненным настройкам, затем объедините сохраненные префы с данными сохраненных игр (например, установите для сохраненных игр и сохраненных префиксов максимальную валюту). Это позволит мне сохранить резервную копию валюты на устройстве, если пользователь когда-либо удалит свой профиль «Сохраненные игры». Однако это не удастся, если пользователь удалит свой профиль сохраненных игр и удалит приложение со всех устройств ... так много параметров ...

Сопутствующий/Интересные сообщения

Ricket's answer here is interesting.

Возможное компромиссное решение

Из-за ограничений, налагаемых IAB системами и API, доступный, я думаю, что я собираюсь обосноваться для этого: используйте управляемые элементы для постоянных покупок, например различные темы уровня, получение новых персонажей и т. д. Таким образом, они всегда будут доступны независимо от того, что произойдет. Как только они будут куплены, они будут куплены навсегда, то есть я никогда не буду использовать эти предметы. Имейте отдельную систему виртуальных денег (драгоценных камней) с максимальным количеством 100 драгоценных камней, которые я отслеживаю с помощью сохраненных игр. Таким образом, я получаю лидеров и достижения. Если игрок удаляет свой профиль, это их проблема, но по крайней мере основные управляемые элементы будут сохраняться. Надеюсь, T & C будет покрывать потенциальную потерю драгоценного камня, и максимум 100 драгоценных камней, мы надеемся, помогут уменьшить падение.

+0

Неудивительно, что вам нужно заплатить за то, чтобы ваш сервер работал в облаке, доступный по всему миру с почти идеальным временем безотказной работы и вообще не заботясь о оборудовании и центрах обработки данных? –

+0

Сказав, что есть какая-то причина, по которой вы, похоже, не хотите внедрить бэкэнд в свою игру?Я не совсем уверен, как ваша игра может работать без нее, и если у вас ее уже есть, то почему бы не сохранить свою игровую валюту и предметы там? –

+0

Нет, это не удивительно. – Antinous

ответ

0

Возможно, вы захотите попробовать Implementing In-app Billing. Как упоминалось в документации:

Платеж в приложении Google Play обеспечивает простой и простой интерфейс для отправки запросов на получение платежей в приложениях и управления транзакциями в приложениях с помощью Google Play.

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

  • В приложении биллинг полагается на Google Play приложение, который обрабатывает все связи между приложением и Google Play сервера. Вам просто нужно, чтобы ваше приложение запросило правильное разрешение на использование приложения Google Play.
  • API-интерфейс In-app Billing версии 3 позволяет отслеживать право собственности на приобретенные продукты в приложении Google Play.
  • У вас даже есть возможность защитить ваше приложение, поскольку Google Play подписывает строку JSON, содержащую данные ответа для заказа на поставку, чтобы обеспечить целостность информации о транзакции, отправленной в ваше приложение.

Теперь, если вы так решите использовать выставление счетов в приложении, я могу предложить вам ознакомиться с данной документацией и принять к сведению важные замечания, предостережения/предупреждения и рекомендации. Я также предлагаю вам прочитать In-app Billing Overview, чтобы ознакомиться с концепциями, которые облегчат вам внедрение In-app Billing.

Наконец, вы также можете добавить Security and Design в качестве одной из ваших ссылок для получения дополнительной информации о лучших методах безопасности и дизайна. Предложение в этом SO post также может помочь.

+0

Привет, Тейм, спасибо за ответ. Я уже реализовал биллинг в приложении. Однако, как только игрок приобрел валюту (10, 50, 100 драгоценных камней и т. Д.), Я должен иметь возможность отслеживать валюту, как она проводится в игре. Это то, чего я пытаюсь достичь, и, вероятно, для этого мне нужен сервер. Система IAB Google в настоящее время не позволяет отслеживать, сколько драгоценных камней осталось после того, как была сделана управляемая покупка 100 драгоценных камней. Учитывая комментарии Xavier, я вчера написал веб-службу RESTful PHP, которая работает, что должно помочь мне достичь моей цели. – Antinous

1

Возможно, вы захотите заказать firebase. Одна из его функций - база данных в режиме реального времени.

+0

Я не могу идти в ногу с Google. Как только они отвергают API и просят вас использовать другое, они создают совершенно новый способ сделать то, что вы хотите! : -D Это все хорошо. – Antinous

 Смежные вопросы

  • Нет связанных вопросов^_^