Как реализуются очереди в онлайн-играх?
Как-то потребовалось создать модуль для браузерной игры, отвечающий за восстановления уровня жизни персонажа. Задача решилась денормализацией БД — добавил поле hp_last_update. Значение данного поля обновлялось при каждом обращении к объекту пользователя, вне зависимости от того есть он в сети или нет. А дальше уже дело техники — у нас есть текущее значение уровня жизни и максимально допустимое, а также скорость ее восстановления. С помощью несложной формулы мы, при следующем обновлении, можем подсчитать на сколько должен был восстановиться уровень жизни с момента предыдущего обновления и меняем данный параметр. Подобный метод применим и к другим игровым объектам.
Страшное слово такое: крон.