| | 18.04.2007, 10:56
Закончена реализация спаун-системы. Начата работа над генеральным заселением.
Спаун - точка в мире. На спауне может спауниться один или несколько объектов разных типов (юнит, гейм объект, динамик объект). Один и тот же объект может быть прилинкован к множеству спаунов одновременно. Так же на одном спауне может быть прилинковано несколько разных объектов (к примеру кобольд, волк, медвед, зайчег и дефиас какой-нибудь).
Подсистема spawn-locking позволяет ограничить число отспауненных объектов определенного типа. Например, существуют НПЦ, которые могут быть в нескольких разных местах локации или вообще локациях, но только в одной из них в один момент времени. Таким образом, lock объекта позволяет выполнять настоящий рандом спауна, который будет зависеть исключительно от игровой ситуации, а не от генератора псевдорандома на компьютере. На каком спауне высвободилось место для спауна залоченного объекта, там он и появится.
Подсистема spawn-evade контролирует возможность спауна объекта. Если тип данного объекта заблокирован spawn-locking, и не существует другого типа объекта для спауна (тоже, к примеру, залочено) - запускается таймер spawn-evade.
Подсистема spawn-commands позволяет задавать объектам (преимущественно юнитам) набор команд, которые будут последовательно выполняться. Таким образом формируются патрули, различные аниматоры (дровосеки, строители и т.п.). Существует возможность реверса команд - грубо говоря есть набор команд: сначала выполняются они, затем они же, но в обратном порядке.
Подсистема spawn-commands-interrupts позволяет контролировать командные объекты, которые были прерваны по разным причинам. Например патрулирующий торговец будет стоять на прерванном месте до тех пор, пока с ним разговаривают. Или патрулирующий гуард, побежавший на помощь плееру (или нападающий на врага) будет находиться в прерванном состоянии до тех пор, пока эти прерывания поступают (каждый удар врага есть одно из прерываний). Когда прерывания заканчиваются, командный объект продолжает выполнение скриптового сценария с прерванной и не завершенной команды.
Нет комментариев.
|
| |