|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Кто-нибудь делал синхронизацию игр на нескольких девайсах?
Вся особенность в том, что заказчик хочет оффлайн-режим.
Допустим, пользователь открыл приложение на одном дейвайсе, скачал с сервера профиль: у перса 10-й уровень. Пользователь отключился от Интернета и играет себе. Доиграл перса до 15-го уровня. Бросил. Открыл приложение на втором девайсе, скачал с сервера тот же профиль (10-й уровень перса), поиграл без отключения от Интернета, прокачал перса до 20-го уровня, после каждого получения нового уровня перса, этот новый уровень фиксировался на сервере. Закрыл игру. Возобновил игру на первом девайсе, подключился к Интернету, получил 16-й уровень у перса, приложение лезет на сервер и происходит конфликт - оно хочет записать свои данные (16-й уровень), но там сохранка другой копии игры (20-й уровень). Как разрулить? ЗЫ. Применение правил вроде "записывать более старший уровень" не предлагать - там данных много больше, уровень просто для иллюстрации. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
мы делали так: при конфликте выскакивает диалог:
Существует более актуальный стейт.Подгрузить?/остаться при своих. Добавлено через 3 минуты хотя если нельзя однозначно сказать какой из профилей актуальнее, все конечно сложнее. Добавлено через 7 минут хотя можно в деталях описывать юзеру оба стейта с намеком, что два стейта быть не может и пусть сам решает. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
У нас описать сложно. Пользователь покупает юнитов, экипирует их, зарабатывает очки.
Но видимо придется все-таки делать так. Пусть пользователь решает какой из стейтов делать актуальным для игры. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
у нас пока iOS
да, видимо дату стейта и будем показывать |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Возник чисто технический вопрос.
1. Игра сохранена с устройства-1, допустим, игровые данные версии 123, после чего игра на устройстве-1 закрыта 2. Игра открывается на устройстве-2, в нее загружаются игровые данные версии 123 3. Через некоторое время игра пытается сохраниться с устройства-2, игровые данные версии 124 Вот здесь вроде как конфликт, поскольку игровые данные версии 124 с устройства-2 перезаписывают игровые данные версии 123 с устройства-1, но для пользователя данный конфликт будет выглядеть странно, поскольку он же не играл в это время на устройстве-1. Если по уму, то конфликта и нет. Иначе говоря, если пользователь попеременно играет в игру на двух устройствах, закрывая на одном и открывая на другом, то конфликта быть не должно, хотя по формальным правилам он как бы есть. Кто как это разруливает? |
|
|||||
Что-то я никак не уловлю в чем проблема с определением актуальности. Если у тебя на локалке уровень игрока 20, а на сервере 16, то грузи с локалки на сервер, если необорот, то с сервера на локалку. Проверка даты создания - это совершенно ненадежный способ. Он может по ошибке не ту дату выставил, и данные записались.
Или вообще сделай наличие интернета обязательным условием |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Так и не понял в чем конфликт.Что юзер продолжает на девайсе-2 играть с того места, где он остановился на девайсе-1 и потом девайс-1 подцепляет новый стейт - так это никакой не конфликт т.к. учетка то одна.Можно конечно для каждого девайса делать форк, но тут велик шанс закопаться
Добавлено через 1 минуту Цитата:
Цитата:
Цитата:
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Заказчик настаивает на возможности запуска игры пользователем в оффлайне, т.е., Интернет будет недоступен.
А проблема в том, что это не линейная игра, где можно привязаться к прохождению уровня. Для упрощения можно считать, что там несколько мини-игр, в каждой из которых можно выиграть игровую валюту и ли призы. Соответственно, на устройстве-1 пользователь поиграл в мини-игры 1 и 3 и выиграл 100 тугриков и плюшевого медведя, а на устройстве-2 пользователь поиграл в мини-игру 2 и выиграл 50 тугриков и зайца. Понятное дело, постоянный доступ к Интернету решил бы все проблемы вообще, но Заказчик стоит насмерть, как пуговица. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
А ну да, забыл по инет.Можешь в своей предыдущий пример добавить информацию где у юзера был инет, а где его нет?
|
Часовой пояс GMT +4, время: 14:20. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|