Меню
|
Компонент для улучшения работы искусственного интеллекта при управлении поездами
Введение.
Данный компонент позволяет частично изменить поведение искусственного
интеллекта (AI) симулятора при автоматическом управлении составами.
К сожалению, симуляторы Auran (и 2004 и 2006) обладают довольно существенным недостатком - в том случае, если на карте находится два или более поездов управляемых с помощью AI этот AI начинает управлять ими, мягко говоря, некорректно. Особенно эти недостатки проявляются на трамвайных линиях, на которых, как правило, отсутствует полноценная система сигнализации. Все замечания можно свести к следующим:
-
иногда поезда самовольно проезжают остановки (на которых они должны
остановиться) без видимых на то причин, а затем могут часами разъезжать
по карте, пока снова вернутся к требуемой остановке;
-
иногда, особенно часто это проявляется сразу после отправления с
очередного пункта маршрута, AI как бы "отпускает" поезд. Т.е. вагон не
начинает движения, доступны органы управления, и в то же время считается,
что AI управляет поездом (доступна команда "Остановить поезд"). В таком
"отпущенном" состоянии поезд может находится и 10 секунд и 20 минут;
-
иногда без каких-либо существенных причин поезда "пристыковываются" друг к
другу, т.е. задний поезд вместо того, чтобы притормозить врезается в
следующий перед ним поезд, хотя он бы должен был притормозить.
Особенно эти недостатки проявляются на больших картах, где одновременно
задействовано большое число поездов. Причем, чем больше карта и чем больше
поездов, тем "хуже" себя ведет AI. Данный компонент предназначен для
устранения трех приведенных недостатков. К сожалению, невозможно "залезть"
в код AI (это уже хакерство), но возможно ему немного "помочь".
Компонент делает примерно следующее:
-
Защита от столкновения. Каждую секунду просматриваются состояния всех
поездов управляемых AI и проверяется, не находится ли впереди данных
поездов (до 40 метров) какой-либо другой поезд или вагон и если таковые
имеются, поезд управляемый AI останавливается.
-
Защита от "Отсоединения". Примерно один раз в 5..7 секунд просматриваются
состояния всех поездов на карте, и если имеются поезда, которые находятся
в состоянии, описанном в п.2 (т.е. "отпущенные" AI), их снова "подсоединют"
к AI.
-
Защита от "проезда цели". Каждую секунду просматриваются состояния всех
поездов управляемых AI и проверяется не находятся ли какой-либо из
поездов в состоянии "Ожидает освобождения пути" и при этом его скорость
больше нуля, а до цели его "автопилота" остается меньше 40 метров. Если
это так, то поезд принудительно останавливается. К сожалению, компонент
распознает только две оригинальные (от Auran) команды "автопилота":
"следовать к станции" и "следовать к маркеру".
К сожалению, использование данного компонента приводит к появлению ряда
побочных эффектов:
-
Из-за того, что опрос состояния поездов выполняется очень часто,
компонент приводит к замедлению работы TrainZ, но, к сожалению, уменьшить
количество опросов нельзя т.к. иначе смысла в объекте нет - он будет
пропускать некоторые "проблемные" ситуации. Т.е. использовать его нужно
только на очень быстрых машинах. Кроме того, чем больше поездов, тем
больше "замедление", причем эти замедления носят не регулярный, а
эпизодический характер.
-
Компонент не контролирует положение стрелок, по этому возможны ситуации,
когда поезда управляемые AI будут ехать "не туда". Особенно часто такие
ситуации возникают в местах "пробок". При свободном пути, как правило,
такие проблемы не возникают.
-
Иногда возможна "борьба" поездов управляемых AI на стрелках, когда
одновременно два поезда с разных направлений пытаются выехать на общий
путь. Как правило, в такой ситуации побеждает поезд, который первым
подъехал к стрелке, но иногда возможны и проблемы. Самое худшее, что
может произойти - поезда "пристыкуются" друг к другу.
Кроме этого, в игре есть еще один недостаток - симулятор очень сильно
тормозит при высадке/посадке пассажиров на станциях (независимо от того,
где высаживаются пассажиры). Данный недостаток проявляется не только на моих
остановках, но и на встроенных в симулятор.
Установка
Для установки вам необходимо переписать на свой компьютер архив (архиватор
WinRar 3.50) с установочным пакетом. После того, как вы перепишите архив
распакуйте его содержимое и установите полученный пакет.
Компонент предназначен для симуляторов TRS2006 SP1. Версия alpha 0,
дата публикации 31.10.2006.
В состав пакета включен один компонент - KT AI helper.
Краткое описание
Компонент выполнен в виде "промышленного объекта", который нужно установить
на карте. Более одного объекта на карту ставить бессмысленно - только
замедлите работу системы. Подсоединять его к основным путям можно, а можно
этого и не делать.
Пока внешнее оформление отсутствует, но в дальнейшем я
планирую сделать что-то вроде сарая, щелкнув по которому можно будет
вызвать окно (именно по этому, я не стал делать объект в виде "правила"),
в котором будет отображаться информация о текущем состоянии поездов,
возможно, там же можно будет давать некоторые команды.
|