Топографический кретинизм у ИИ
Перейти к навигации
Перейти к поиску
Бойцы, слушай мою команду! Шагом марш в пункт В, координаты такие-то. Вперёд!
Эй, вы куда! Кратчайший путь — вон же, вы почему по этой дороге пошли?!
Так, ну и какого хрена вы устроили затор в этом узком проходе?! Проходите по очереди, не толпитесь здесь!
Стой, куда пошёл?! Этот недоумок, пока остальные столпились в узком проходе, решил обойти его стороной… прямо через позиции врага!
Так, проход преодолели… а где остальные? Вас же должно было быть больше? Что значит отстали в пути?
Знакомьтесь: топографический кретинизм у ИИ, частный случай искусственного идиота, следствие проблем с алгоритмом поиска пути, головная боль повелителей зелёной рамки. Чаще всего появляется в стратегиях в реальном времени, но встречается и в других жанрах.
Примеры[править]
- Аллоды — первые, в меньшей степени вторые. Зачастую, если указать союзникам точку, в которую нужно двигаться, они выбирают не самый оптимальный маршрут. А то и вовсе уткнутся в какое-нибудь препятствие и будут топтаться на месте, несмотря на очевидные возможности это препятствие обойти.
- Act of War: Direct Action: юниты обожают срезать дорогу через вражескую базу, а ремонтный Хамер ТГК легко давит союзною пехоту.
- Серия игр «В тылу врага», и прочие игры на GEM Engine: солдаты не различают воду от трясины, и пытаются всё время переплыть вплавь. По Воде солдат поплывёт, в трясине — тут же погибнет: её пересечь кроме как в обход можно только при помощи авиации или морского транспорта. Техника же может утопиться под водой или насмерть застрять где-нибудь.
- Mummy Maze — для победы нужно пользоваться топографическим кретинизмом у врагов и заманивать их в ловушку. Причем разные враги используют разные алгоритмы передвижения (либо сначала диагональ либо вертикаль) К тому же враги при столкновениях дерутся, чем упрощают прохождение.
- Классическая игра «Chase» образца 1976 года: здесь это не бага, а фича. Роботы-противники всегда идут в направлении игрока, и единственный способ с ними справиться — сделать так, чтобы они сталкивались друг с другом. Игра выдержала множество переработок, в процессе называлась «Escape!», «Robot Minefield», «Daleks», «robots», «Tobor», и много как ещё.
- Общий случай для многих боевиков: любые перепады высоты являются для компьютерных противников непреодолимым препятствием, они не могут ни спрыгнуть вниз, ни залезть наверх. Если противники снабжены дистанционной атакой, они будут блуждать туда-сюда на возвышении, где они находятся, или под возвышением, где стоит игрок, время от времени стреляя в него, но если они умеют атаковать только в ближнем бою, они могут лишь бесцельно бегать туда-сюда, пока игрок не поднимется/спустится к ним сам.
- Игры типа Lode Runner — там это багофича, позволяющая заманивать чертей в «медвежьи углы». И многие уровни были бы практически непроходимыми, добавь разработчики ботам немножко ума, поэтому багофичу нигде не трогают.
- Из них игра «Клад» для компьютера «Корвет» обладала особым кретинизмом: враги наводились сначала влево-вправо, потом вверх-вниз. Врагам есть куда идти, но они стоят и тупят. Если в настоящем Lode Runner можно было хоть пробегать по упавшему в яму чёрту, здесь простреленная стена становилась проходимой для всех, и всё, что можно сделать — заманить его куда-то.
- В игре Rockman для ZX-Spectrum и её порте «Тролль» для «Корвета» были разные принципы поведения вампиров (на ZX наводились влево-вправо, потом вверх-вниз, на «Корвете» наоборот). Многие уровни проходились совершенно по-разному (а один на «Корвете» проходился чистым везением).
- И вообще в клонах старых аркадных игр ИИ используется древний и тупой, ещё с 80-начала 90 годов. Ведь такие игры как правило казуальные, штампованые, и допиливать ИИ до вменяемого состояния разрабы не хотят, «денег нету», к тому же аудитория при хорошем ИИ получать удовольствие не сможет (когда на самом деле наоборот: она раскатывает врагов по полу, скучает и уходит).
- Первые Command&Conquer и Red Alert — проблема мостов. При их пересечении техника часто создавала затор, в результате которого другие юниты (особенно автоматические харвестеры) считали мост непроходимым и направлялись в объезд через полкарты… в том числе через вражескую базу.
- Warhammer 40,000: Dawn of War — та же фигня. Если большой отряд пехоты разделится на части чтобы пропустить по узкому проходу технику, это всё может намертво застрять, потому что отошедшие слишком далеко друг от друга пехотинцы будут отказываться продолжать движение к цели пока не соберутся в кучу, а мешающий это сделать танк не сможет никуда уехать потому что ему с обеих сторон мешают пехотинцы. Автор правки особенно часто сталкивался с этим при игре за Имперскую Гвардию, у которой армия состоит из 100500 гвардейцев и десятка юнитов техники. Даже если выехать с базы можно благодаря БТРам, то проблема может настигнуть при штурме вражеской базы, когда хочешь не хочешь, а войска придётся развернуть. Особенно весело получалось если пробку создавал огромный «Бейнблейд». А вот у орков конкретно с техникой проблем меньше, зато размеры их пехотных отрядов позволяют без неё обойтись при создании пробки.
- Starcraft — драгунам и голиафам достались алгоритмы поиска пути от гидралисков, не учитывающие, что эти юниты вообще-то крупнее, — в результате при любой попытке пройти через узкий проход или подняться на лестнице они устраивают затор. Да и морпехи, если их слишком много, толпятся, устраивают затор и крутятся как слепые котята.
- Age of Empires — в целом поиск пути там стандартно-тупой на уровне среднестатистической RTS 90-х, если не считать того факта, что юниты умеют цепляться за объекты на карте вроде деревьев. И надёжно застревать вплоть до вмешательства игрока.
- Игры серии Golden Axe — противники не умеют учитывать пропасти. Если на пути между ними и протагонистом находится пропасть, они без тени сомнения будут идти к нему по кратчайшему пути, шагая в бездну. Игроки этим беззастенчиво пользуются.
- Alien Shooter — монстры умеют двигаться и стрелять только по прямой, ведущей к игроку. Если на их пути находится угол стены, они упрутся в него, бодая его головой и перебирая лапами, пока игрок сам не выйдет им навстречу, или они медленно-медленно не выйдут из-за угла, протирая головой стену. Стреляющие монстры при этом будут стрелять в направлении игрока даже в том случае, если между ними и игроком стены и толпа других монстров, чем хитрый игрок и пользуется для сокращения их поголовья.
- Stellaris — Обычно этот троп здесь не появляется, но когда игрок заказывает подкрепления флоту, с автодолетом до него, или же сбор на определенной точке, ИИ не учитывает опасности по пути, и легко можно влезть в систему с враждебными нейтралами, левиафаном, или противниками, и поодиночке гробить суда, пока игрок не заметит косяк.
- Лечится «костылём» в виде запрета на влёт в ту или иную систему.
- Космические рейнджеры 2 — Встречается в планетарных битвах, когда приказываешь толпе роботов подойти куда-либо на близкое расстояние (к примеру командуя ими в бою), они начинают добираться до него дикими зигзагами, и заезжая хрен знает куда, через все турели и врагов. Иногда еще троп встречается у противников, когда они двигаясь по воде, возле камней или разбитых баз, застревают в них намертво.
- Spore — в «Космических приключениях» NPC охотнее пересечёт реку вплавь, чем перейдёт по мосту, и вообще довольно сильно глючит при взаимодействии с постройками.
- Cities: Skylines — водители в игре очень любят игнорировать наиболее удобные дороги. Вывозить из города экспортную нефть, используя для этого чудесную эстакаду, которая напрямую соединяет район нефтяных вышек с шоссе? Нет, это не путь настоящего
джедаядальнобойщика! Поедем через весь город, по узким и вечно забитым улочкам, где нельзя гнать быстрее сорока километров в час, и где грузовик утонет в бездорожье!- Отчасти лечится соответствующей политикой, запрещающей грузовикам проезжать через район. Есть и более радикальная, запрещающая движение любого транспорта, не принадлежащего местным жителям. А в моде Transport Manager можно настроить, какой вид транспорта какой дорогой может пользоваться.
- Galactic Civilizations — корабли здесь иногда могут лететь не напрямую, а каким-то странным крюком — сначала параллельно одной из сторон карты, и только потом поворачивать на цель.
- Warframe — педаль в асфальт: мобы могут тыкаться в стекло и кружиться на месте, а роботы Корпуса иногда сбрасываются в пропасть, перепрыгивая при этом специально поставленный заборчик.
- Supreme Commander — если бы существовал приз за самых тупых юнитов, он определённо достался бы этой игре:
- Из-за физики всего и вся иногда юниты застревают на каком-нибудь крутом склоне и не могут никуда уехать. Больше всего этим страдают кибранские «богомолы» и «цари обезьян».
- Да в общем-то кто угодно может игнорировать приказы двигаться и на ровном месте. Чтобы вылечить таких, приходится терять время на многократное закликивание в разные точки рядом, чтобы он с каждой командой понемногу поворачивал и, наконец, пошёл нормально.
- А бывает что так может заклинить наоборот почти всю армию если приказать ей разместиться среди построек.
- Корабли иногда натурально садятся на мель, если место в строю заставляет их встать слишком близко к берегу. Был задокументирован эпизод с линкором, который в попытках выйти с верфи выбросился на сушу (и разработчики даже предвидели эту возможность!). Кибраснкие «Иерусалимы» в этом случае выпускают ноги или вообще выходят достаточно далеко на берег, и когда флот начинает движение, они от него отстают из-за низкой скорости шага и необходимости вернуться в морской режим.
- Если приказать рабочему строить или утилизировать что-то за пределами дальности его инженерного модуля, он подойдёт к месту в упор даже если не хватает совсем чуть-чуть. А если здание строится толпой инженеров, то по мере её увеличения растёт шанс того, что следующий затупит и будет без толку кататься вокруг, пока не прикажешь повторно — тогда он начнёт строить прямо с того места, даже если ему всё равно не хватает дальности, причём в два-три раза.
- БМК и АКБП не умеют разворачиваться на месте, поэтому иногда описывают немалые крюки, и не всегда в нужную сторону.
- В норме бомбардировщики разворачиваются далеко от цели, описывая большой крюк, естественно, через всю базу с турелями. Но если пытаться искусственно этот крюк сократить путём спама приказами лететь в точку совсем рядом, то при получении команды атаковать самолёт может попытаться выйти на привычный путь, чем сделает всё ещё хуже.
- Истребители тоже тупят при некоторых манёврах и выполняют их с опозданием. А приказ на атаку летающей тарелки «Царь» заставляет их пролетать прямо сквозь лазер в её центре и дохнуть пачками.
- По не вполне понятной причине если приказать армии длинный марш-бросок, юниты не просто разделятся в зависимости от своей скорости, а вытянутся вдоль пути в несколько линий. Если они так идут в атаку, будут подходить по два-три и умирать от превосходящих сил без всякой пользы. А иногда они наоборот смертельно тормозят, пытаясь сначала собраться в кучку и потом куда-то идти вместо того чтобы каждому двигаться кратчайшим путём.
- Проблемы с движением наземных юнитов связаны с тем что они хотят в итоге выстроиться в красивые прямоугольные боевые порядки, но пути для этого выбирают соотносясь с положением остальных юнитов и начинают друг другу адово мешать. Всё лечится модом который раздаёт каждому отдельному юниту приказ двигаться к цели самостоятельно. С ним танки не упираются друг в друга и не вытягиваются в линию, а уверенно прут более-менее кучей.
- Транспорта имеют склонность высаживать юнитов довольно далеко от указанных точек.
- «Механоиды» — в обеих частях есть баг, из-за которого боты зависали на месте носом вниз и вращались вокруг своей оси. Одна из возможных причин — попытка достать что-то под мостом с этого самого моста. Во второй также появились довольно частые случаи тыканья в слишком крутые подъёмы вместо поиска обходного пути, особенно если наверху есть лут или враг. Также это проблема набивших полный трюм, из-за которого подвижность глайдера снижается, и умение забираться наверх особенно. Похоже, ИИ это не учитывает.
- World of Warships — «Система избегания столкновений» В теории, помогает нубам не врезаться в сушу/сокомандников увлекшись стрельбой. На практике — часто срабатывает там где не надо, а при 2 и более препятствиях с разных сторон, ведет себя совершенно непредсказуемо, практически гарантируя это самое столкновение.
- Серия Total War печально знаменита тропом:
- В Attila армии ИИ почему-то боятся разрушенных (ничьих) регионов и часто идут до врага в обход. В особо тяжёлых кампаниях это приводило к созданию игроками «великих стен» из уничтоженных поселений у своих границ.
- В Medieval 2 попытка поплыть из Британии или Скандинавии в крестовый поход на Иерусалим разбивалась о массовое дезертирство — обход Пиренейского полуострова малограмотные крестоносцы принимали за позорное отклонение от цели похода, после чего убегали прямо с кораблей.
- Там же дико бесит вся кавалерия, кроме стрелковой. Тяжёлая — тем, что рыцари не могут применить таранный натиск, если не выстроятся в ровный строй / враг маневрирует / враг отступает. Только если стоит на месте пнём, а рыцари атакуют его, как по линеечке! Лёгкая же, преследуя убегающего противника, имеет отвратительную привычку в самый последний момент вместо того, чтобы промчаться врассыпную через бегущую толпу, рубя несопротивляющихся… останавливаться, собираться в строй и только потом продолжать погоню! Стоит ли говорить, скольким отрядам врага удаётся благополучно удрать благодаря этому? В общем, по иронии судьбы — в предыдущей части серии, посвящённой Античности, кавалерия неизмеримо грознее…
- Также алгоритм поиска пути отрицает возможность маршрута, включающего 2 и более спуска на воду/выхода на сушу, поэтому если просто отправить отряд на другой берег залива, отряд пойдёт в обход залива, каким бы узким и глубоким он не был. По счастью, если сначала указать конечной точкой воду, а потом сушу, то алгоритм будет работать нормально.
- Бойцы отказываются бросать своих, и если удалось связать сколько-нибудь значительную часть отряда ближним боем (например, одну колесницу из девяти), остальные тоже полезут в драку, игнорируя ваши приказы, и, скорее всего, бесславно погибнут все. Впрочем, если приказ повторить (раз десять для верности), солдаты поймут, что от них требуют отступить. Сами же отстающие вместо того чтобы обогнуть вражеский отряд пока это возможно, начинают протискиваться сквозь него, и развернутся только получив приказ бежать в обратную сторону… что вернёт в лапы врагов основную массу.
- В Rome также построение требовало присутствия на месте абсолютно всех живых бойцов из отряда, так что ваши копейщики отказывались строиться в фалангу пока не дождутся одного отставшего в ходе, скажем, перелезания через стену.
- Лучники каким-то образом умудряются выписывать зигзаги. В одних случаях они радостно палят сквозь союзников, деревья, стены и башни, теряя об них половину стрел, в других — воображают себя орками и вместо того, чтобы стрелять поверх тех самых стен, лезут в упор по осадным башням или в ворота. А ещё они всегда, всегда перестраиваются перед атакой по приказу. В некоторых патчах можно было увидеть поистине эпичное зрелище: лобовую атаку ИИ-армии конных лучников медленным шагом в идеально ровном строю.
- В Warhammer крепостные ворота работают только автоматически, открываясь при приближении хозяйских юнитов и закрываясь за ними. Поэтому если поставить кого-то в дверях, ИИ на это начнёт реагировать неадекватно. То ли у него в принципе разрыв шаблона от того, что их не надо выбивать лично, то ли подозревает какой-то хитрый план, но в любом случае все, кто не может перелезть или перелететь стены, остаются тупить под ними.
- При не вполне выясненных обстоятельствах героическое самопожертвование собственного гарнизона города снаружи стен с целью выиграть время на построение пришедшей подкреплением армии привело к тому, что ИИ стал топтаться у ворот основной массой войск и был методично расстрелян по паре отрядов за раз.
- Там же при попытке перестроиться ИИ может сбить все войска в одну большую толпу, которая поляжет от одного заклинания. Чаще всего он так реагирует на летунов, крутящихся над головой, и начинать стрелять немедленно при выходе на дистанцию тоже любит.
- The Guild 2 — тут уже в дело вступают баги, из-за которых юниты могут начать на ровном месте крутить хороводы или делать крюки вокруг города, вместо того, чтобы пройти прямо. Всё это решается переконтролем, но попробуй за всеми уследи.
- Terraria — мобы наводятся на цель исключительно по прямой, без поиска пути. Соответственно любая стена, которую ходячие враги не могут сразу перепрыгнуть, любая стена на пути для летающих, и достаточного размера зазор для призраков с гарантией их остановят, даже если рядом есть лестница/свободный путь/достаточно блоков чтобы долететь до цели сквозь них. Но некоторые враги умеют телепортироваться и/или бить сквозь стены.
- Старая (2001 года) стратегия Fate of the Dragon — педаль как минимум до Австралии. Каждый юнит по пути заглядывает во все шахты, здания (если в городе), если юнитов несколько — неизбежна давка. На пути поворот? Столпятся перед ним так как «по прямой нельзя»! Нужно обойти препятствие? Подходит, упирается, отходит в сторону… у него в графической голове видимо появляется мысль «я же отклонился от пути!», и он возвращается к препятствию, видит, что нельзя пройти, отходит в сторону… и все по кругу до тех пор пока не погибнет, или игрок лично
за рукумышкой не отведет куда нужно. Одно радует: юниты противника творят тоже самое, так что сражение превращается в броуновское движение. - Dark Souls — мобы в большинстве случаев неплохо лавируют среди препятствий и пропастей, но есть у них, во всех играх серии, ахиллесова пята: если игрок в зоне досягаемости удара, моб шагнёт вперёд и нанесёт этот удар… даже если их разделяет пропасть или хотя бы её уголок. Стражи картины в первой части резво бегают по узеньким потолочным балкам и доставляют проблем, но, добежав, прыгают и укамикадзываются об игрока, неподвижно стоящего с поднятым щитом в паре шагов за поворотом. Во второй части так можно утопить аж целого босса — Драконьего всадника (впрочем, он и без этого трюка лох порядочный), а в третьей «убедить» разбежавшись, прыгнуть со скалы можно
бомжа с катаноймастера меча, который может навешать люлей на раннем этапе не хуже босса.- Некоторые мобы также любят отпрыгивать назад от удара… не удостоверившись, что там есть куда отпрыгивать. Среди страдающих в первой части — вышеупомянутые стражи картины и опять же, ранний босс — Демон-телец, способный покинуть хвостом вперёд крепостную стену, где идёт бой с ним, через подходящий по размеру пролом в зубцах.
- Чумной город — вонючий ад не только для игрока, но и для самих его обитателей, которые почём зря наворачиваются с хаотически нагромождённых шатких мостков без посторонней помощи. Иногда, на радость игрокам, так делают не возрождающиеся дохляки с духовыми трубками, плюющиеся дротиками с особо смертоносным ядом.
- Союзные фантомы не отличаются умом и многие могут утонуть не дойдя до босса (хотя в переизданиях мозгов им докинули). У Солера это похоже не баг, а фича.
- Deep Rock Galactic — инверсия и, по заявлениям разработчиков, не баг, а фича: получив команду эвакуации, М. У. Л. исправно чешет кратчайшим путём до дроппода и даже оставляет за собой след из светящихся меток, но забывает, что шахтёры, в отличие от него, ходить по стенам и потолку не умеют. Дело в том, что груз забрать надо обязательно, а персонал — нет (что оный и подсвечивает в том числе желанием набить морду тому, кто написал такого топографического гения).