Pull to refresh

Comments 29

Как работает алгоритм, если между узлами А и Б пути не существует?
Ещё из описания непонятно — это поиск в ширину, или в глубину.

В условиях нашего проекта узлы будут существовать всегда

Телепортов нет? Односторонних дверей нет? Точки входа местами не меняются?
(могу еще придумать)

Нет. Да и под телепорты можно настроить. Просто связывает узлы около одного портала и у другого. Односторонних дверей не планировалось, но и это можно исправить щепоткой кода. Но вопрос "зачем нам это?"

Прикольно, у меня есть подобная наработка AI, только более продвинутая (NPC лазит, спрыгивает, запрыгивает, земля любой геометрии из SpriteShapes, на движущихся платформах даже почти ездит (малость доделать надо :)), лестницы вот только вертикальные обычные). Тоже есть эммоции (обычный, агрессивный, паника, ...) и есть список потребностей (жажда, голод, нужда в деньгах и тп) и точек интереса (есть, пить, в туалет, работать, ...), в зависимости от этого перс принимает решение, идет в нужное место и делает что надо. Сейчас правда тоже подзабросил. Может гифку запосчу позже.

Чем не устроил A*? Отлично подходит для такого решения, простой и эффективный, не понял почему начали свой велосипед изобретать.

Хотелось сделать что-то своё, прикольное… да и мы не нашли способа интегрировать А* в 2Д платформер. Это же больше для рогаликов..(новички, что с нас взять?)

Велосипед оказался частным случаем A* :)

А и есть. Я свою реализацию писал, чтобы генерировать дороги на поле, с учётом уже проложенных (чтобы объединялась новая со старыми). Так-то А — всего лишь алгоритм, который каждый реализует со своими особенностями.

UFO just landed and posted this here
Поясните пожалуйста, в чём проявление термина ИИ в данном контесте? Почему не бот? В чём интеллектуальность то? Прост для хайпу?
A* — это уже достаточно интеллектуально :)
В контексте игр бот и есть ИИ.
Интеллектуальность ИИ в играх заключается в том, чтобы с ботами было интересно играть — и это достаточно сложная задача. Например для ботов не сложно идеально перемещаться и стрелять без промаха. Бот может всегда видеть и слышать игрока, но при этом должен вести себя так, чтобы игроку было интересно его побеждать.

ИИ, который всегда обыгрывает человека в шахматы — достижение чисто научное.
В контексте же развлекательных игр — бот, который попадает в голову игроку в движении из пистолета с 500 метров — это провал. Задача победить человека любой ценой там не стоит — она давно решена классическими методами. В играх задачи ИИ идут гораздо дальше чем просто победить :)
A* это не интеллект. Не подменяйте понятия, пожалуйста.
мне казалось что ИИ как минимум подразумевает обучаемость, адаптивность, иттеративность. В статье же ещё один банальный алгоритм без какой бы то ни было изящности.

Это уже продвинутый ИИ, нейросети, машинное обучение и много других страшных слов. ИИ — понятие широкое

Увы, «интеллектуальность» зависит лишь от полученных результатов по сравнению с человеческими. В случае поставленной задачи нахождения пути — результат близок к человеческому, естественному. Да, можно сказать что сама задача не особо интеллектуальная, однако:
— алгоритм отмечает обработанные узлы (обучается)
— алгоритм работает на разных связных графах (адаптивность)
— итерации поиска по смежным узлам продолжаются до успеха (итеративность)

P.S. На нейросети тоже можно сказать «банальный алгоритм без какой-либо изящности» :)
На правах сарказма:
Т.е. если взять алгоритм сортировки чисел, и результат будет близок к человеческому, то это тоже будет «интеллектуальность»? :)
Да! Вы можете предложить более интеллектуальный результат сортировки чисел? :)
Конкретно в игровом ИИ в результате сортировки ингда были бы ещё и ошибки для пущей «человечности» :)
Эт-то вы еще не видели как светофоры, где время горения зеленого зависит от времени суток, называли интелектуальными.
Видать мода такая, хорошо хоть SQL скрипты пока не принято называть интеллектуальными.
В контексте игр симуляция работы светофора тоже исторически относится к ИИ — это же конечный автомат всё-таки :)
Интеллектуально это или нет — можно легко определить просто поставив человека (как эталон интеллектуальности) в те же самые условия что и ИИ — и сравнить результат.
Такая разновидность теста Тьюринга — посадить человека в изолированную коробку-светофор и дать ему часы. Сравнить результаты. :)
Вот если кроме часов в светофоре ещё стоит камера или какие-то дополнительные датчики — то в таких условиях ИИ соревноваться с человеком сложнее.

P.S. Если SQL скрипт играет в шахматы/шашки/крестики-нолики не хуже среднестатистического обывателя, почему бы не назвать его интеллектуальным? :)
Просто подмена понятий, произошедшая со времен, когда под «ИИ» как раз и подразумевалось поведение компьютерного соперника/напарника. Это сейчас в этот термин вложили «обучаемость, адаптивность, итеративность» :)

Поиск пути — это часть ИИ, причём, зачастую, бОльшая часть этого ИИ. Другой вопрос, что конкретно здесь — это, как уже выразились — частный случай обычного А* ))

Как хорошо, что в геймдеве кусочек кода из 3 вложенных цикла, 10 if-then-ов и пару хешей можно назвать Искусственным Интеллектом. А если об этом не знают лохи, которые читают заголовки статей, а потом тупят над статьей в поиске этого Искусственного Интеллекта, то на это они и лохи? Так ведь?

Для таких придумали Тэги

Да, чтобы называться Искусственным Интеллектом безусловно нужно больше циклов, условий и хешей :)
Первая статья по-моему хорошо получилась, с картинками. Поздравления автору!

Ок, спасибо, учту на будущее!

Sign up to leave a comment.

Articles