AI или электронные мозги

Темы, связанные с проектированием и программированием roguelike-игр

Модераторы: Sanja, Максим Кич

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 13 мар 2007, 01:33

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

ADB

Сообщение ADB » 13 мар 2007, 10:10

Вот и я про то же :)
Не очень эффективные заклинания не найдут применения, скорее излишние надсмешки над разработчиком.
Сложность такого заклинания в том, что мы не меняем одно на другое (как например "высасывание жизни"), а наоборот, отдаем невыгодно больше, взамен меньшего.

ADB

Сообщение ADB » 13 мар 2007, 10:14

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

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 13 мар 2007, 12:48

Ну да. Что-то вроде эффекта "confused" из angband. Игрок жмёт клавиши направлений (делает фактически ход), а персонаж движется совсем не в тех направлениях.

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 13 мар 2007, 17:41

Гораздно прикольнее бы было, если бы игрок ходов эдак на 10 становился ботом :)
Айв кнгенгах Йог-Сотот

ADB

Сообщение ADB » 13 мар 2007, 18:40

Maelstrom писал(а):Гораздно прикольнее бы было, если бы игрок ходов эдак на 10 становился ботом :)
Как раз продумываю такой эффект, когда он звереет и начинает лупить всех - эффект "озверение".
"Контроль разума", высокоуровневое заклинание, позволит временно управлять героем со стороны компьютерного опонента.
Тоже касается и мобов.

darhark
Сообщения: 57
Зарегистрирован: 02 май 2007, 23:18

Сообщение darhark » 03 май 2007, 00:04

По нейросетям. Конечно, если использовать селекционную модель, то это да, это нейросеть. Только вот как ее реализовать применительно к ИИ монстряков? Какие параметры будут подаваться на входы, как рассматривать значение на выходе? На вход нужно будет пихать инфу не только о состоянии карты и самого монстра - нифига, еще и контекст (типа вон тот чувак в виде @ 100 секунд назад кинул файрбол в того чувака в виде D - это уже чертова туча информации).
Далее. ИИ на нейросетях не будет умным. НИКАДА! Ну, или, по крайней мере, пока Солнце не потухло, каковое время уйдет на обучение монстрятника. Вы можете хотя бы вот навскидку назвать мне число ситуаций, в которых монстрик может реально оказаться? Хотя бы за одну игру? Да, он будет офигеть непредсказуем... Как интересный эксперимент вполне сойдет. Сейчас как раз разрабатываю на бумаге симулятор колонии тараканов :)), но играбельность, мягко говоря, пострадает. Я лично в такую срань, где у какого-нибудь NIGHTMARE MAGE OF TORTURE будет интеллект цифрового таракана, играть не стану.
Далее. Сам процесс эволюции монстрятника мне представляется весьма сомнительным. Думается, что единственным фактором правильности выбранного монстром решения является то, что после его претворения в жизнь функция ThatMonster->IsAlive() выдает 1. И вот что-то мне сдается, до конца эволюционного процесса доживут только те монстры, которые будут в панике сваливать от каждого движущегося по карте обьекта, а единственными работающими заклинаниями магов будут invisibility, increase speed, teleport, и please don't kill me. И уж конечно никто не позарится на какой-нибудь жалкий shining ring of divine light.
Далее. ДАЖЕ если мы решим как-то вышеизложенное, мы столкнемся с еще одной проблемой. Она касается рогаликов типа ADOM, templer там, DF, или какой-нибудь будущей JADE. Понимаете ли, обучить монтрятник можно. Если монстр умер, он более не часть эволюционного процесса. А как быть, допустим, со стражами в городах? Вспомните предыдущий пункт. Ну нафиг стражнику вмешиваться в дела, которые его-то, собственно, не касаются? Да и остальные тоже. Социальная смерть не ведет к исключению из эволюции, а позитивные цели (то есть не из тех, что "не сдохнуть", а из тех, что "срубить бабла" и "посадить дерево") вообще к эволюционному процессу неприменимы.

Все это МОЖНО будет обойти, когда компьютеры немного подрастут, так что к обсуждению возможности использования селекционной модели и нейросетей предлагаю вернуться лет через двести-триста.

По поводу поиска пути. A" - замечательный алгоритм, если поступить с ним по умному. Например, использовать на больших картах заранее сгенерированные waypoint'ы, соединенные сгенеренными путями (которые генерируются при помощи того же A" - точнее, сначала делаем пути, выбираем кратчайшие, и на них через каждые, допустим, 20 тайлов ставим вэйпоинт), . Все, что остается сделать монстру - это найти дорогу к ближайшему пути, пройти по нему, далее на на _предпоследнем_ вэйпойнте решить, а не быстрее ли будет дойти до желаемой точки отсюда, чем от последнего вэйпойнта. Если нет, то идем к последнему вейпоинту, а от него к нужной точке. Конечно, не всегда найденный путь будет самым оптимальным, зато это работает быстро (попробуйте волновым алгоритмом отсчитать путь [0,0]=>[1023,1023]... запаритесь), и путь точно будет найден.

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 03 май 2007, 01:37

Ну да, но в мире игр нет у мобов эволюции. Она им и не нужна. От монстра не требуется делать философские выкладки на тему выживаемость его племени и конкретный смысл его жизни. Он должен "умереть красиво". И всё. Просто потому, что он живёт всего пару дестятков ходов, а то и меньше. А чтобы умереть красиво нейросети не нужны. case, case, case. Вот и весь выбор действий. Это ж рогалик, а не симулятор эволюционных процессов.

В общем с выводами согласен полностью. Особенно принцип "Конечно, не всегда найденный путь будет самым оптимальным, зато это работает быстро" - очень применим и к другим деталям игры. Усложнять - нафиг никому не надо. Это просто не увидят.

P.S.: Не обижайся, но "самый оптимальный" резануло. Оптимальный это уже лучший, без вариантов. :)

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Cfyz » 03 май 2007, 11:56

darhark
ИМХО, ударяетесь в детали теряя картину в целом.
Сам процесс эволюции монстрятника мне представляется весьма сомнительным. Думается, что единственным фактором правильности выбранного монстром решения является то, что после его претворения в жизнь функция ThatMonster->IsAlive() выдает 1. И вот что-то мне сдается, до конца эволюционного процесса доживут только те монстры, которые будут в панике сваливать от каждого движущегося по карте обьекта, а единственными работающими заклинаниями магов будут invisibility, increase speed, teleport, и please don't kill me. И уж конечно никто не позарится на какой-нибудь жалкий shining ring of divine light.
Увы, неверно. Неверно сформулированная задача, имею в виду. В реальной жизни эволюция "поощряет" не тех, кто остается в живых, а тех, кто внесет больший вклад в генный оборот. В roguelike-игре вектором эволюции должно выступать, разумеется, не число потомков, а что-то более целенаправленное - например, количество опыта. И в этом случае "до конца эволюционного процесса доживут" те монстры, кто умудрится и противника покоцать и (желательно, но вовсе не обязательно) с поля брани свалить. Что, кстати, не исключает появления побочных ветвей наподобие "падальщиков" и нападающих из-за угла охотников.
Социальная смерть не ведет к исключению из эволюции, а позитивные цели (то есть не из тех, что "не сдохнуть", а из тех, что "срубить бабла" и "посадить дерево") вообще к эволюционному процессу неприменимы.
Лжете-с. Позитивные цели (точнее, их исполнение или попытки такового) элементарно конвертируются в бонусные очки, а далее - см. выше. Самым простым примером позитивных целей в природе является симбиоз. Перестань помогать своему симбионту и жить станет (иногда - до невозможности) худо. В социальной сфере ситуация та же, только цепь последствий длиннее.

Sanja
Он должен "умереть красиво". И всё. Просто потому, что он живёт всего пару дестятков ходов, а то и меньше. А чтобы умереть красиво нейросети не нужны. case, case, case. Вот и весь выбор действий.
Позвольте не согласиться. Умирать красиво вот уж кому-кому, а монстру в рогалике совсем без надобности. Ему жить надо. Драться за колечко подруге. Отжигать файерболлы. А умирать - не, это и у игрока хорошо получается. Поэтому, чем меньше предсказуемость и чем выше приспосабливаемость монстра под действия, направленные на прекращение его приспосабливаемости - тем лучше.
Пытается раскуклиться

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 04 май 2007, 00:24

Красиво рассуждаешь. Честно. :) Только можно мне пожалуйста примеры игр (желательно рогаликов), в которых реализована вся эта красота. Чтоб я знал, что на практике все эти философские рассуждения о великой цели отдельно взятого монстро-индивида куда эффективнее хорошо реализованного "абстрактного" case выбора.

Я всё же выберу иллюзию интеллекта, нежли реально работающий алгоритм "мозга". Просто потому что это работает быстрее и проще реализуется.

(Хотя чего лукавить, будь у меня фирма по разработке рогаликов с личным составом человек 100, безусловно я выбрал бы реализацию более приближенную к эффективно самообучающейся системе. Но так, я обычный чайник, и мне действительно слабо сделать такую систему).

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Cfyz » 04 май 2007, 05:20

Sanja
Увы, знал бы примеры, указал бы сам... :cry: Пока же это действительно, из разряда "хотелось бы"...

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

К слову - я НЕ считаю разумной идеей попытки создания "реально работающего алгоритма мозга". Другое дело - система, помогающая в выборе уж совсем базовым "инстинктам", (правка: с 'намертво' - это я погорячился) зашитым в код. От того, что через 10 в степени гугол запусков игры 'G' изобретет лампочку, толку (по крайней мере игроку) маловато, это верно. Хочется же - чтоб игрок, к примеру, не мог разработать универсальную тактику обращения с каждым конкретным типом противника. Уменьшить искусственность баланса характеристик противников. Еще чего-нить недетерминированного.
Пытается раскуклиться

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 48 гостей