Непредсказуемый, но адекватный бот в играх

Рассказ пойдет о 2D играх от третьего лица (вид сверху). В основном это шутеры, но и стратегия будет тоже затронута. Для простоты сравнения и понимания мы возьмем наших любимых «котяток». Да, да, именно коты нам хорошо в этом помогут.





Итак, каким же мы видим обычное поведение ботов в играх? Для наглядности будем рассматривать пару примеров (Рис. 1).



Рис. 1 Слева — SAS Zombie Assault 3 и справа Ninjago.

Плюсы и минусы


Плюсы:
1. За пару раундов траектория ботов становиться предсказуемой. Победа становиться легкой.
2. Можно «кружить» ботов и всегда оставаться невредимым. У геймеров даже есть такое понятие как «Кружение вальса».
Минусы:
1. За пару раундов становиться не интересно играть именно с ботами. Продолжаешь играть ради очков и наград, бот перестает быть противником.

Не стану размусоливать все достоинства или недостатки, думаю всем понятно, такой бот — не противник. Да, можно усложнить уровень добавив 1000 таких ботов и уменьшить патронов. Или посадить в замкнутое пространство, где особо не побегаешь. Но суть не меняется. Разработчики усложняют условия, но ни как не противника. С точки зрения разработки — это проще и легче.

Давай те разберем тактику таких ботов на пальцах.


Рис. 2 Рисунок разделен на 4 кадра.

1. На первом кадре мы видим бота и игрока стоящие на против друг друга. Для уточнения: игроком управляем мы, ботом — программный код.
2. На втором кадре бот не видя препятствий начинает стрельбу в игрока.
3. На третьем кадре перед ботом стоит препятствие и ему приходиться обходить его, поскольку через препятствие стрелять он не может.
4. Ну и наконец четвертый кадр, суть та же, только препятствий множество и боту приходиться постоянно менять траекторию для достижения цели. Оранжевым цветом не зря подсвечена «видимость» бота. Поскольку не имея интеллекта у бота, разработчик сразу указывает ему его задачу. Подзадачей же является в нашем случае передвижение до объекта.

Вот и разобрались. Основная задача — дойти долететь, доползти, допрыгать до цели, дополнительная же выбрать оптимальный путь. Этими принципами действуют многие в природе, но я решил выбрать для сравнения более идеального на мой взгляд объекта — КОТ. Хотя кот намного превосходит бота, принципы у них одинаковы.

Характеристика объекта «Кот»



Рис. 3 Рандомные движения

Незапланированные цели, рандомные, но в тоже время точные движения и наконец, тактическое мышление.

Из жизненных наблюдений, кот никогда не пойдет по луже или попытается запрыгнуть на предмет который выше 4 этажа. Видит кот хорошо днем и в темноте, но никак «сквозь» его любимых коробок. Прячется когда опасность Наступает во время охоты или от безвыходности.

Теперь, мы можем это применить к нашему боту, тем самым улучшив его характеристики и изменить предсказуемость, а значит и сложность!

Думаю гонять такого бота, даже в замкнутом помещении станет намного интересней.


Улучшаем характеристики



Зона видимости — бот не должен изначально видеть своего врага, видимость должна ограничиваться не только «туманом войны», но и объектами которые его окружают. Рис. 4. Мало того, на первом кадре бот сразу видит игрока даже сквозь предметы, на любом расстоянии. На втором же кадре, его обзор ограничен и бот пытается взглядом «прощупать» на поиск цели. Боту приходится выполнять подзадачи для того что найти игрока.


Рис. 4 Зона видимости

Зона комфорта — бот будет идти на пролом любой ценой пока не убьет или не будет убитым. Так быть не должно. Если бот будет понимать что жизнь его подходит (подойдет) к концу, то он должен прятаться. Или силы к примеру не равные, опять же должен найти укрытие. Рис. 5. На первом кадре бот классически думает что он «Рэмбо», на втором кадре бот пытается увеличить свои шансы на выживание.

Коты очень любят зону комфорта, по этому всегда уходят от столкновений с инородными движущимися непонятными телами.


Рис. 5. Зона комфорта

Зона поражения — попадание пули (ножа, гранаты), одна из интересных задач игроков и ботов. Допустим в Battlefield 3 сделали такой классный эффект как подавление, траектория пули и сила урона. Тем самым с одного и того же оружия нельзя убить на разном расстоянии при разном режиме стрельбы. В Counter Strike этого нет, разве что разброс пуль…


Рис. 6 Слева Battlefield 3 и справа Counter Strike

Но это уже более сильные игры по сравнению с теми о которых мы говорим. Но тем не менее, можно же взять хотя бы элементарные примеры. Зона поражения должна ограничиваться. Например предметами и объектами и самое главное дальностью. Ниже рисунок демонстрирует то, чем дальше противник, тем меньше пуль в него попадет. Понимаю что все зависит от оружия, но это уже тонкости игры.

Как я говорил выше, кот не прыгнет выше того на что он способен, даже если он уверен что допрыгнет. Исключение: коты с количеством жизней >6


Рис. 7 Шкала поражения противника.

Зона ожидания — ну тут все просто, боты как правило как обезглавленные носятся дабы найти цель, этим самым игроку просто остается сидеть и ждать. Предсказуемо. А вот в той же «Контре» боты отсиживаются! А ведь бот «кемпер» уже неожиданность для игрока.

Кот 90% своей жизни находиться в режиме загрузки и ожидания. Возможно это его и спасает от рандомных поступков.

Траектория передвижения — если представить ситуацию, что у бота есть возможность обойти предмет, то почему у него нет возможности перепрыгнуть его? Здесь вопрос уже к тонкостям игры… а вот альтернативу прохода никто не исключал. Смотрим рисунок ниже. В первом кадре показан классический выбор бота верхнего прохода, потому что он ближе. На втором кадре наш бот выбирает именно нижний, поскольку, в третьем кадре бот понимает, что ширина прохода шире, а значит больше возможностей для маневров.


Рис. 8 Траектория передвижения

К сожалению траекторию котов вычислить может только Чак Норрис

Можно продолжать выдумать все больше и больше способов, но вывод один. Бот служит в играх, заменой реального человека, как правило слабого противника. Тем самым мы всегда будем хотеть играть с более серьезным противником. А может даже напарником, который «не тупит».

Тактические маневры


Разведка — классический прием, увидев врага, бот открывает огонь, не подозревая что рядом может быть еще один враг. Или есть возможность обойти с тыла. Каким же образом? Смотрим рисунок ниже… Конечно, это сложный прием, учитывая что он запоминает расположение стоящего противника №1, после чего проходит дальше и запоминает расположение противника №2. Но быть такому приему, никто не запрещал.

Кот всегда на стреме, даже когда спит, даже когда он думает что он спит.


Рис. 8 Тактические маневры

Боевой дух — был бы он у бота, он бы говорил так: — «я один, мне страшно, нас много, мы всех победим. Я один и у меня пулемет, я Джон Джей Рэмбо!».

Коллективный режим — всегда было интересно, почему стреляя в реального игрока, его напарник бежит на помощь, а бот нет? Да потому что они автономны друг от друга. Почему бы не сделать их коллективными? Не обязательно ходить всей бражкой, можно например так, одинокий бот встретив такого же бота, начинает к нему держаться по ближе. Ежели одинокий бот встречает компанию своих товарищей, значит все, команда собрана. А значит бегать всей толпой нет смысла. Отсюда и вывод, что этот самый бот будет обходить с тыла, пока его команда производит атаку на врага с фронта. Думаю тут все понятно.
Опять же в коллективном режиме повышается Боевой дух, и они могут реально идти на пролом, нежели по одиночке.


Рис. 9 Приманка

Кот как Джеймс Бонд, всегда один, иногда с кисками.

Приманка — даже если нет коллективного режима, приманкой бот может «заморачивать» игрока. Принцип таков, пострелял -> получил ранение -> отошел назад (в сторону). В случае если есть коллективный режим, рядом могут быть товарищи бота, которые будет ждать его или просто находиться рядом. Игрок последовавший за ботом попадется на приманку. Если напарников рядом нет, то бот — просто ТРОЛОЛО.

Задачи и подзадачи.


И напоследок, у классических ботов всего два режима — задача основная (идти к цели), задача дополнительная (обходить препятствия). Я не беру в расчет стрельбу. Поскольку эта не задача, а метод.
Если расширить задачи и подзадачи, то бот перестанет быть таким предсказуемым, перестанет быть ботом ;)

P.S.: Реализация всех приведенных примеров в код, это другой вопрос.
P.S 2.: Надеюсь моя методика объяснений всем понятна.
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 72

    +47
    Gamedev, коты, интересная тема — без вариантов. :)
      +13
      Подача материала понравилась, как и само содержание)
        +6
        Спасибо, старался.
        0
        Если пропадёт эффект штурмовика, то как же игрок почувствует себя супер-героем?
          +1
          А здесь главное не перестараться с ботом.
            0
            А то получится хитрый бот, сидит в засаде, валит снайперским выстрелом всех кто пытается перемещаться… :)
            0
            Сделать параметры конфигурируемыми. Использовать ген. алгоритм для подбора наиболее схожего к уровню игрока бота. Игрок стал чаще убивать бота? ищем бота помощнее.
              0
              Приятно найти единомышленников, продолжу мысль…
              Было бы круто если бы бот имел такой же профиль как и у игрока. С каждым боем он его прокачивал. В зависимости от уровня игрока, выходил на поле боя соответствующий бот. Отсюда и баланс игры.
                0
                Если такое будет в Dark Souls II то пройти игру будет не возможно наверное.
          • UFO just landed and posted this here
              +1
              Каждая игра находит своих игроков…
              И не было еще игр которые невозможно пройти, только потому, что бот умнее тебя.
              В любом случае, к любому боту можно приспособиться.
                +5
                Шахматы. Шашки. Если вы сядете играть в шахматы против deep blue, шансы у вас нулевые.
                  +1
                  Соглашусь что шансов у простого шахматиста нулевые, да и у Каспарова, Карчного, Батвиника и Спаского шансы не велики (последних трех мне отец подсказал).
                    +15
                    Последние три все неправильно написаны: Корчного, Ботвинника и Спасского.
                    Сорри, задели ранимую шахматную душу)
                      +2
                      Ну уж извините и вы, за безграмотность, поленился проверить.
                +1
                Ответил выше, но опять же. В статье указан бот не только в качестве противника, но и напарника. Используйте нейронные сети для создания хорошего бота в качестве союзника, а не только врага.
                  0
                  Тоже вариант, не интересно-же всегда использовать ботов только как пушечное мясо
                    +3
                    Как мясо, да! Но что есть мясо, которое тупо стоит? Интересней создавать фарш когда мясо еще копытами дергает.
                      0
                      > Интересней создавать фарш когда мясо еще копытами дергает.
                      Да вы садист
              +2
              Шикарные картинки и кот
                +1
                Frozen Synapse напомнило.
                0
                Тут мне вспомнился Jedi Outcast, в котором штурмовики (в честь которых кстати и назван был эффект штурмовика… для Outcast он несправедлив))) не только бегают и прячутся, но и заходят в тыл…

                P.S. Чак обидится за написание его фамилии с одной «р».
                  0
                  Почему не справедливо? Игры нас учат, учат элементарно размышлять… Стояли бы как мишени, было бы интересно?
                  P.S. Чак дописывает постскриптум этого сообщения.
                    0
                    Вики:
                    Эффе́кт штурмовика́, или «синдром штурмовика» (англ. Stormtrooper effect) — кинематографическое либо литературное клише, заключающееся в том, что второстепенные герои («пушечное мясо») в голливудских блокбастерах, развлекательной литературе и комиксах неадекватно слабы в бою с главными героями.

                    Так вот, в ауткасте это совсем не так :). Даже обычный штурмовик может нехило поранить, а стоят они обычно толпами. А ещё бегают, так что по ним сложнее попасть.
                    0
                    Спасибо. Исправим.
                    +3
                    Еще бы научить их не выходить из-за угла, где до этого таким же образом умерло еще 5 ботов… Или, скажем, бросать гранаты, не появляясь в зоне видимости =) А вообще вышеописанное поведение черезчур драматично — нынешние боты все же не настолько тупы, впрочем, отдельные моменты встречаются в любой игре. В half-life 2, к примеру, штурмовики действуют не по-одиночку, а отрядами. В Tomb Raider 2013 — бросают взрывчатку, чтобы заставить сменить укрытие. Hitman: absolution — бегут за подмогой. Насчет засад — каковы ваши шансы выжить в хорошей засаде, или если противник зайдет сзади? Если отключить вышеупомянутый эффект штурмовика — крайне низкие. Боюсь именно поэтому боты их и не устраивают.
                      +5
                      image по-одиночку
                      image по одиночке
                      image в одиночку
                      0
                      Не буду спорить ибо это уже более сложные игры, нежели те о которых я попытался рассказать. У ботов в ваших играх «интеллект» гораздо выше…
                        +2
                        >>Мало того, на первом кадре бот сразу видит игрока даже сквозь предметы, на любом расстоянии. На втором же кадре, его обзор ограничен и бот пытается взглядом «прощупать» на поиск цели. Боту приходится выполнять подзадачи для того что найти игрока.
                        Всё бы ничего, но «прощупывание» стоит ресурсов! Если каждый бот на уровне будет делать рейкасты по окружению то придётся либо уменьшать количество ботов либо отказываться от такого прощупывания, иначе игра превратится в слайд-шоу. Бот в любом случае должен знать позицию игрока чтобы не совершать лишних операций. Другое дело если бот знает где находится игрок, но не производит явный поиск пути непосредственно к игроку, если игрок находится за препятствием.
                          –1
                          А вот тут я не соглашусь… допусти если реализовать это на Flash-е, можно так. Создаем слой, делаем его прозрачным, пишем код на «пересичение объектов» — соответственно при соприкосновении с этим слоем объектов, происходит вывод, тут стенка, тут враг. Попробую на пальцах если не понятно…

                            +1
                            Не думаю что и в других языках (как AS2, AS3) с таким подходом будут проблемы. Если создать несколько таких слоев, то можно получить сразу несколько «сенсоров прощупывания».
                              +1
                              Ага. А пересечение «кружочков со стенками» работает на святом духе?
                                +1
                                Если я вас правильно понял…
                                пишем код на « пересечении объектов» — соответственно при соприкосновении с этим слоем объектов, происходит вывод
                                — это и есть святой дух…
                                  0
                                  Кстати, эта схема идентична рейкастам по уровню, только тут ещё хуже — тут пересечение сплайнов.
                                    +1
                                    Ну что так усложнять? Первое что в голову пришло: hitTestObject, сделать можно на Flash-e. Вот к примеру как это выглядит -> здесь.
                                      0
                                      Цимес в том, что на сплайнах построен весь флеш, ибо это векторный формат. Да, растровые элементы тоже доступны, но именно «рисование» там именно на сплайнах. В случае с кружочком — да, можно свести просто к проверке дистанции, да и то только для случаев, в которых нужно проверить только факт самого пересечения, а не точки пересечения окружности и граней/сплайнов. Мысль о том, чтобы ИИ искал игрока проверяя видимость, приходит чуть ли не каждому, кто пытается этим заниматься. И отбрасывает её каждый раз, когда реализует её на большем масштабе, чем просто на паре кружочков во флеше.
                                      Потому-что это ресурсоёмко и не редкостью будет ситуация, когда ИИ просто подолгу не сможет найти игрока.
                                    +1
                                    Имелось в виду, что это жрёт кучу ресурсов.
                                0
                                А почему в первом случае происходит обнаружение при пересечении зон видимости, а не когда сам игрок находится на расстоянии видимости от бота?
                                  0
                                  Кружечек маловат у бота… а суть я думаю понятна.
                                  0
                                  Во-первых, рисовать кружки — это убить процессор на месте. В любом случае всегда будет делаться рейкаст до игрока, и проверятся на коллизии с миром. Во-вторых — ваш пример не работает, и бот все равно будет видеть сквозь стенки, кружок нарисовать здесь просто не выйдет. Вот справа, там где стенка — увеличьте радиус кружка, и поместите игрока за стенку. Игрок будет находится в кружке. Так что 6opoDuJIo вам совершенно правильно все сказал. Рейкаст до игроков != бот видит. Рейкаст тут делается с целью определить список игроков, которых бот видит.

                                  Другое дело, что вы не поняли его, и дали в пример крайне убогий вариант реализации, который еще ко всему прочему не работает.

                                  p.s. Статья в целом верная, вы описали как надо делать. Но между как надо, и сделать — огромная пропасть, а реализовать все как вы сказали — отнюдь не просто.
                                    –1
                                    Да когда дело дошло до реализации, я осознал… что не все так просто… но и не так все супер-глобально сложно!
                                      0
                                      Кружечки :) и ничего сложного…
                                        0
                                        Вы уверены что «кружочки» несут ещё какую-либо нагрузку, помимо информирования игрока о радиусе действия орудия?
                                          –1
                                          Уверен, и уже пробовал так 100500 раз.
                                          Мы просто видим по разному реализацию. Я узнал о чем вы говорите, «погуглил», вы правы в некоторых моментах, но моя реализация имеет право на жизнь. Пусть и скупая, пусть возможно нерациональная, но все же она работает. Возможно опыта в разработки более серьезных приложений не было, вот и предлогаю «альтернативу».
                                            0
                                            Так это Ваша игра?
                                              0
                                              100500 раз?
                                              Тогда почему в статье ничего, кроме домыслов?
                                  0
                                  Отличный пост. Текст хорош и картинки в тему, но я думаю вам нужно написать такого бота, иначе информация имеет мало смысла
                                    0
                                    Бот бы и был написан, только для чего, а точнее… Нужно писать конкретный бот под конкретную игру, а тут и игру надо написать, а заодно ее и придумать… а отговорки покажутся банальными: нет времени, один не справлюсь и т.п… По этому, я решил ограничится только теоретическим проектированием. Пускай смысл, пусть и маленький, останется для тех кто уже этим занимается или планирует занятся.
                                    0
                                    2д игры с видом сверху — это как правило простенькие инди игры, вкладыват кучу денег, сил и ресурсов в умных ботов смысла нет, игрок чаще забрасывает или проходит игру быстрее чем разбирается как там противник себя ведет. Если говорить о 3д, то там уже куча других проблем, которые так просто не решить.
                                      –2
                                      Да и вообще статья в духе обяснений младшему брату как играть в игру, Если, на пример, для человека «выполнить разведку» это достаточно понятная процедура, то на уровне алгоритмов это ад адский.
                                        0
                                        Постом выше, я превратил «адский» алгоритм в простое решение. Надо просто не усложнять…

                                        А если говорить про «инди» игры, то мы до сих пор играем в них, они совершенствуются с каждой новой созданной игрой, а значит и мой пост для младших подрастающих братьев будет полезен. Если эти игры будут актуальны еще через 5 лет, что тогда, вы предлагаете оставить «интеллект» ботов на том же уровне?
                                          0
                                          Выше вам объяснили почему ваше решение не может использоваться на практике. Проблема ИИ в играх не то, что разработчики не знают как себя должные вести боты (ведь не считаете же вы, что идея сделать бота который умеет прятаться и оценивать ситуацию пришла в голову только вам), проблема ИИ именно в создании алгоритмов выполнения всего того что вы написали и вычислительных ресурсах необходимых для всего этого.
                                      +2
                                      Возможно, это самоубийственный комментарий, но… прочтите tsya.ru от начала и до конца. Пожалуйста!
                                        +1
                                        Угадали! Кто то уже поставил минус, считая это нормой.
                                          0
                                          Минус поставили справедливо, ибо о грамматических ошибках сообщают В ЛИЧКУ. В каждом после с грамматическими ошибками появляется такой вот заминусованый коммент.
                                            –1
                                            А я не сообщал о грамматических ошибках. Я дал ссылку на ресурс, который поможет как автору поста, так и читателям самостоятельно научиться не допускать ошибок одного определённого, назойливого типа. Я могу тратить время на рассылку этой ссылки каждому автору, который путает "-ться" и "-тся", могу даже потратить время, чтобы написать скрипт, который будет делать это за меня — а могу оставить тут ссылку один раз и рассчитывать, что множество людей прочтёт её и, вероятно, распространит дальше — так же, как однажды её нашёл и теперь распространяю я.

                                            У нас же здесь World Wide Web, а не электронная почта.
                                        +2
                                        Непредсказуемый, но адекватный кот в играх
                                          +3
                                          Зона комфорта — бот будет идти на пролом любой ценой пока не убьет или не будет убитым. Так быть не должно. Если бот будет понимать что жизнь его подходит (подойдет) к концу, то он должен прятаться.
                                          Вспомнил Unreal, где скаарджи могли убегать и притворяться мёртвыми.
                                            +10
                                            Странная статья. Она «Game», но не очень «development». «Вот бы было хорошо, если бы сделали такие плюшки». Но написано с котами и приятно, красиво подано — очень позитивно. Тяжело читать из-за кучи ошибок, но, возможно, это не родной язык автора.
                                            Всё описанное более-менее очевидно, но вот реализация на уровне алгоритмов уже не так проста. Боту нельзя сказать «Если враг за углом, прыгай боком». Watson, думаю, понял бы, но сколько его учили и из чего собрали? Все условия и границы применения различных паттернов поведения надо жестко формализовать, как и сами паттерны, а в этих «мелких деталях» и сидит дьявол. Как с простейшим регулятором — «Если превышаем заданное значение — уменьшить воздействие, если не достигли — увеличить» — всё просто со стороны. Однако ТАР почему-то не очень простая наука, а вроде-бы настроенные регуляторы идут в разнос при, казалось бы, малых изменениях условий. А «самообучение и рост рейтинга» — это вообще отдельная наука, в прямом смысле этого слова.
                                            «Просто сделать бота умнее» — это далеко не так просто, как кажется на первый взгляд.
                                              0
                                              Вот мы и услышали мнение самих котов. :)
                                                0

                                                С родным языком — в точку. (пару писем лежит в ящике по грамматике от «хабр-дображелателей»).

                                                По поводу «Если враг за углом, прыгай боком» — это уже вопрос к реализации. Я вижу простые игры и предлагаю более простые решения. Возможно проблема тех, кто понимает что это статья про «ИИ» и пытаются оспорить энергозатраты и ресурсы. НО нет, на ИИ я один раз обжегся, для меня эта тема «сладкая», но непосильная.
                                                +1
                                                Про котов и высоту не совсем правильно написано. Коты глупенькие, у них часто рефлексы и инстинкт хищника пересиливают здравый смысл. Бывает что они прыгают из окон за птичками :(
                                                  0
                                                  В шуточной форме я написал про исключения, поскольку понимаю что есть такие безумцы.
                                                  У меня было 2 кота и не один не вываливался ни разу из балкона или форточки.
                                                    +1
                                                    Автору респект — таких ботов нам в шутерах и не хватает.
                                                    Я делал подобную штуку для игры питон и в ASCII графике :)

                                                    У меня был алгоритм, где бот оценивал расстояние до каждого яблока (яблок было несколько) и вероятность того, что другой его может схватить. Если другой это тоже бот, то вероятность 100% и он выбирает другое более дальнее яблоко, получается он не пытается постоянно опаздывать и быть голодным.

                                                    А другой вариант, если это человек, то тут каждый бот ведет статистику, сколько шагов было до яблока и за сколько он реально сьел. Получается, что бот обучается и составляет вероятность того, что вы сьедите яблоко или часто промахиваетесь. На основании этого бот даже будучи дальше от вас может принять решение побороться с вами за яблоко :)

                                                    Методика просчета минимального расстояния в любой сложности лабиринте была нагрузочной для процессора и игра больше чем с двумя ботами реально тормозила, но результат был здоровский — если игрок не опытный, то бот начинает реально следить за тобой и есть твои яблоки :)

                                                    PS: Кому интересен алгоритм, могу описать в личку.
                                                      0
                                                      Вы же понимаете, что итогом разработки будет бот, который всегда выигрывает и никто в такую игру играть не будет.
                                                        –1
                                                        В шахматы против компов до сих пор играют и парой выигрывают…
                                                          0
                                                          Подскажите, когда последний раз человек побеждал против лучших шахматных программ?
                                                        0
                                                        Вот одного не могу понять, вы намеренно игнорируете заголовок, вступительное предложение? Я не в коем случае не пытался создать идеальный ИИ или беспроигрышного бота. Я все го лишь хотел улучшить менее способных… Мы говорим о простых играх, но «изюминки» для улучшения берем из сложных.
                                                          +1
                                                          Прикольно, но хотелось бы результатов — то есть реализации подобной библиотеки AI хотя бы на начальном этапе.
                                                          Хотя бы на том же флеше. А теоретизировать на эту тему можно бесконечно.
                                                          Тема очень интересная — нашлось бы кому поддержать и возможно довести до работоспособного состояния.

                                                          У меня есть зачинание стрелялки, если реализация такой штуки интересна не только на уровне разговора — можем скооперироваться, пишите в личку.
                                                            0
                                                            Я только за! Одному ну никак не начинается.
                                                            0
                                                            Что то не пойму как это может усложнить игру? O_o

                                                            Раненый бот начинает прятаться? И чего? Это разве, что он лечится умеет.
                                                            Экономит патроны, не стреляя далеко? Что то не припомню игр в этом жанре что бы у ботов патроны кончались.
                                                            Не видит противника сквозь стены? Это как раз упрощает жизнь игроку.

                                                            Всё это добавляет «реализма», но однозначно не делает игру сложнее, а даже наоборот…

                                                            P.S. А по поводу интеллекта в играх, помню читал интервью какого то чела, вроде из разработчиков Цивилки (но не уверен). Так он прямым текстом сказал, что нет смысла сильно заморачиваться AI, лучше это время и деньги вложить в более продвинутую графику или склепать на пару уровней больше — потребителям это важнее.

                                                            Only users with full accounts can post comments. Log in, please.