Использование Parse.com для игры iOS

Я использую платформу Parse для создания функциональности учетной записи игрока в игре для iOS, чтобы данные были доступны на любом устройстве. Тем не менее, я не уверен, как лучше всего «синхронизировать» эти данные, чтобы свести к минимуму количество запросов API, но при этом сделать так, чтобы все всегда синхронизировалось. В настоящее время я обновляю данные при запуске, поступающие из фона и после каждой игры. Однако это уже создает много запросов! Я думал разместить кнопку «синхронизация» в меню, чтобы только тогда данные синхронизировались и обычно сохранялись только локально, но это действительно последнее средство.

Схема игры:

  • Игроки регистрируются или входят в систему, используя свою учетную запись или данные Facebook.
  • Игрок выбирает аватар
  • Выбор сохраняется в их учетной записи
  • Они играют в «игру» и в конце концов проигрывают
  • Отображается итоговый экран, добавляются очки, рассчитывается и сохраняется новый уровень игрока.
  • Игрок может покупать подсказки и помощников через покупку в приложении (расходные материалы).
  • Количество подсказок и помощников сохраняется на их счету
  • Игра универсальна, поэтому должна быть синхронизирована с устройствами.

Как лучше всего использовать Parse в онлайн-ИГРЕ с большим количеством игроков?

Редактировать:

Я решил проблему, создав NSObject, совместимый с NSCoding, который затем архивирую и сохраняю в Parse. Это означает, что все данные сохраняются и загружаются сразу, и мне нужно обновлять их только при запуске и после важных событий.


person Lukas    schedule 03.07.2013    source источник


Ответы (1)


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

Вы можете реорганизовать свою базу данных, например: у вас есть два объекта User and Image пользователя, которые имеют отношение один ко многим к изображению, когда вы извлекаете данные пользователя для получения изображения, вам нужно получить все изображений, связанных с этим пользователем, это приведет к большому количеству запросов к Parse, другой способ — сохранить в Image objectId объекта User и получить изображения для этого пользователя objectId и не сохраняя никакие связи с Image в объекте User, таким образом резко уменьшится количество запросов к Parse

person Ivan Lisovyi    schedule 03.07.2013
comment
Однако является ли общепринятым подходом размещать кнопку «синхронизации» в игре? - person Lukas; 03.07.2013
comment
для ММО игр - НЕТ, но для вашего случая это может быть решением вашей проблемы с большим количеством запросов, отправляемых на сервер. Чтобы предоставить лучшее решение, нам нужно больше информации о том, что пользователи могут делать в вашей игре и о ее типе (боевик, ролевая игра, стратегия в реальном времени и т. д.). - person Ivan Lisovyi; 03.07.2013
comment
Я добавил больше подробностей о том, как работает игра, спасибо за решения. - person Lukas; 03.07.2013
comment
Это хороший совет. Я обновлю этот вопрос с помощью последнего метода. Спасибо за помощь. - person Lukas; 05.07.2013