Состояние пользовательского интерфейса на стороне сервера и на стороне клиента для многопользовательской игры
Я работаю над многопользовательской стратегической игрой, и у меня есть следующий сценарий:
- Серверов много, это объясняет, что происходит на одном из них.
- Игрок завершает задачу, и в конце появится всплывающее окно
- Это всплывающее окно необходимо будет сохранить, даже если клиент обновит страницу.
Альтернатива А:
- Экономьте на стороне сервера
Проблемы:
- Помедленнее
- Труднее управлять
- Крайний случай: игрок подключается на рабочем столе, но затем возобновляет работу на мобильном устройстве. На данный момент все всплывающие окна на рабочем столе совместимы с мобильными... но, возможно, не навсегда.
- Все всплывающие состояния будут переданы другим игрокам (там некоторая потеря пропускной способности...)
- Некоторые всплывающие окна не зависят от сервера, например, открываются или нет главное меню / регистрация / всплывающее окно входа.
Альтернатива B:
- Сохранить в местном хранилище или аналогичном
Проблемы:
- 1 игрок может иметь 2 страницы на одном сервере, что сложнее синхронизировать
- Сервер не может знать, действительно ли у вас открыто всплывающее окно, и делать что-то на его основе
Что, вы парни, думаете? Мне действительно неудобно размещать всплывающие окна для каждого пользователя на стороне сервера...
popups:{
user1: ['pop1', 'pop2']
}
Так будет выглядеть состояние ui на стороне сервера.