Здравствуйте, Ferma, Вы писали:
F>Вот взять к примеру известную игру Запорожье. Вы там сажаете растения, которые начинают сразу расти, но которые через N часов засохнут, кормите животных, которые проголодаются через M дней, строите всякие амбары и сараи, с которых можно снять прибыль через P часов. Как происходит синхронное управление множеством таких событий?
когда какому-то объекту выставляется задание, то объект переводится в другое состояние(это ещё нужно для того, чтобы выбрать нужную картинку/анимацию), и ему выставляется время, когда задание завершится. даже в случае многоэтапных заданий всё делается по той же схеме.
время считает не сервер, его считает клиент. он собирает все объекты с установленным временем, сортирует, и на ближайшее по времени событие выставляет таймер. когда таймер сработал, то выполняется действие, связанное с заданием(например, выдача дропа). можно сразу отправлять действие на сервер, можно накапливать их и отправлять пачками.
серверу остаётся только проверить, что действие можно выполнить в указанное время, и сохранить новое состояние.