@nskaskyou

Как лучше реализовать игровой цикл в nodejs?

Доброго времени суток.

Помогите принять решение. Есть апи и клиент(допустим веб на реакте) в которой нужно реализовать игровую логику:
Бэк:
У пользователя есть ресурс и уровень.
Ресурс увеличивается каждую секунду. Скорость зависит от уровня.
Для увеличения уровня нужны определенные значения ресурса. Увеличение уровня занимает время

Фронт:
Отображать количество ресурсов, текущий уровень и прогресс увеличения уровня каждую секунду.

Стандартная задача, как например в Викингах или любой другой мобильной стратегии.

Вопрос как лучше это реализовать чтобы при нагрузке в несколько сотен онлайна и нескольких тысячах оффлайна это все работало.
Обновлять каждую секунду базу или что то держать в памяти на бэке или вообще отдать секундомер на фронт а на бэке как то это проверять?
Ну и второстепенный вопрос: вебсокеты норм для этого дела или они намного сильнее нагрузят все чем нттп?

В общем любые мысли по этому поводу :)
Спасибо
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@oleg_ods
ИМХО, Я бы смотрел в сторону того, чтобы на бэке хранить данные вида (timestamp)start_mining и (double)mining_rate.

Запрос по api: /api/resource{id_player} -> рассчитывает текущее значение ресурса игрока.

Можно отдавать на фронт еще и mining_rate и крутить счетчики на в браузере переодически синхронизируясь с сервером.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы