Вопрос по реализации таймеров в геймдеве.

Возьмем какую-нибудь мультиплеерную (это важно) "ферму" или травиан-like стратегию. В ней игроки строят/изучают. Каким образом это реализовано на сервере?

6

Можно пойти другим путем и на каждое задание спавнить тред, в котором будет реализован таймер ожидания. Избавляемся от проблем с периодичностью запуска планировщика, но упираемся в ресурсы. 2-10к тредов с таймерами непонятно во что выльются и скорее всего только рестарт такого монстра будет занимать недопустимое времяХреновая идея.

А так подхода два - либо дергаем по таймеру, как ты описал (индексы помогут сделать это быстро, 2к игроков не проблема). Либо проверяем даты как только игрок что-то делает. Например, зашел в игру - проверились даты окончания, успешные здания "построились" в тот же момент. Либо решил напасть на игрока - и как только запускается атака, проверяем и обновляем статус зданий

1
Ответить

Какой подход выбрать? Я за первый, так как он проще. Плюс добавить мониторинг времени, которое уходит на это. ЕСЛИ вылезем за разумное время, то переделываем часть (наиболее медленную) на второй

Ответить