Состояние пользовательского интерфейса на стороне сервера и на стороне клиента для многопользовательской игры

Я работаю над многопользовательской стратегической игрой, и у меня есть следующий сценарий:

  • Серверов много, это объясняет, что происходит на одном из них.
  • Игрок завершает задачу, и в конце появится всплывающее окно
  • Это всплывающее окно необходимо будет сохранить, даже если клиент обновит страницу.

Альтернатива А:

  • Экономьте на стороне сервера

Проблемы:

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

Альтернатива B:

  • Сохранить в местном хранилище или аналогичном

Проблемы:

  • 1 игрок может иметь 2 страницы на одном сервере, что сложнее синхронизировать
  • Сервер не может знать, действительно ли у вас открыто всплывающее окно, и делать что-то на его основе

Что, вы парни, думаете? Мне действительно неудобно размещать всплывающие окна для каждого пользователя на стороне сервера...


 popups:{
   user1: ['pop1', 'pop2']
 }

Так будет выглядеть состояние ui на стороне сервера.

0 ответов

Другие вопросы по тегам