faraday
06.03.2015, 20:46
Здравствуйте, появилась идея попробовать использовать фоновую синхронизацию клиента и сервера в игре.
На клиенте и сервере общая игровая модель. Клиент вызывает метод сервера например addGold, сервер проверяет возможность совершения действия, и в случае успеха изменяет модель, и отправляет ответ клиенту goldAdded, дальше клиент изменяет свою модель и рассылает событие.
Идея состоит в том, чтобы синхронизировать модели в фоновом режиме Клиент отправляет так же addGold, дальше вызывается метод изменения модели, например с такой сигнатурой changeModel(target,method,value)
changeModel('player.balance.gold','+=',100);
Cервер изменяет моделm, и отправляет эту же команду на клиент. Клиент так же присваивает значение и рассылает событие. Теперь все view кто подписан слушать player.balance.gold, получают уведомления и выполняют им прtдписанные действия.
Интересно услышать какие подводные камни, и есть ли готовые решения такого подхода. Слышал что похожу штуку реализует backBone.js, но ничего не слышал про использовании на флеш. Сервер node.js, связь сокет.
На клиенте и сервере общая игровая модель. Клиент вызывает метод сервера например addGold, сервер проверяет возможность совершения действия, и в случае успеха изменяет модель, и отправляет ответ клиенту goldAdded, дальше клиент изменяет свою модель и рассылает событие.
Идея состоит в том, чтобы синхронизировать модели в фоновом режиме Клиент отправляет так же addGold, дальше вызывается метод изменения модели, например с такой сигнатурой changeModel(target,method,value)
changeModel('player.balance.gold','+=',100);
Cервер изменяет моделm, и отправляет эту же команду на клиент. Клиент так же присваивает значение и рассылает событие. Теперь все view кто подписан слушать player.balance.gold, получают уведомления и выполняют им прtдписанные действия.
Интересно услышать какие подводные камни, и есть ли готовые решения такого подхода. Слышал что похожу штуку реализует backBone.js, но ничего не слышал про использовании на флеш. Сервер node.js, связь сокет.