Манифест возрождения героев

Форум предназначен для обсуждения общегеройской тематики, не относящейся к аддону Equilibris. Флуд, флейм и оффтоп, категорически запрещены.
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Dalai wrote:Интересна чисто техническая реализация этого процесса
Не знаю какая именно часть технической реализации интересует. Поэтому опишу исходные данные для анализа и некоторые правила анализа.

По большому счету, техническая реализация зависит от игровой ситуации. Это может быть действие ИИ на глобальной карте, в бою, в окне замка и т.д.

Рассмотрим алгоритм самообучающегося ИИ в бою. Более того, рассмотрим определенный момент t в бою, а именно, ход одной из единиц армии противника компьютера в выбранный наугад раунд боя. На этот момент времени t всю информацию о противостоящих сторонах запишем в виде двух матриц: D – матрица данных об обороняющейся армии, A – матрица данных об атакующей армии. Общий вид структур матриц будет идентичен между собой.

Подробнее запишем матрицу D в интересующий нам момент t: Dt = (P1, P2, …, Pi, …, P7), где Pi – случайный вектор (вектор случайных величин) характеристик боевой единицы, стоящей на i-ой (одной из 7) позиций.

Раскроем вектор столбце Pi. Транспонируем его и запишем как строку: PiT = (a*Pm; Ph). Здесь a параметр числа юнитов; Pm это вектор харатеристик монстров: Pm = (mbm1; mbm2; …; mbmj; … mbmn); Ph это вектор харатеристик героев: Ph = (hbm1; hbm2; …; hbmj; … hbmn), где
mbmj – случайная величина (СВ), равная произведению случайных величин mbj и mmj;
mbj – СВ, характеризующая базовое значение j-ого параметра монстра;
mmj – СВ, характеризующая коэффициент модификатора j-ого параметра монстра.
n – число параметров боевой единицы.
Допустим mb1 это СВ, характеризующая базовое значение атаки, тогда mm1 это бонус от артефактов и других модификаторов атаки для монстров.
Аналогично, для героев hbmj.
В качестве характеристик отбираются все ключевые навыки: способность летать, стрелять, кастовать определенные заклинания, атаковать, защищаться и др.

ИИ в каждый момент t своего хода в бою сравнивает матрицы Dt и At и с определенной вероятностью планирует действия базовые или альтернативные. В каждый последующий момент t+1 вес выбранного действия, а значит и остальных тоже, меняется: в случае успеха вес выполненного действия повышается, а невыполненных равномерным образом (в смысле пропорций их весов) снижается. В конце боя проводится сравнительный анализ отношения матриц A в конечные и начальный моменты боя. Полученное значение делится на D в начальный момент боя. То есть сначала оцениваются потери армии и затем потери оцениваются относительно силы армии противника. Это служит оценкой (весом) целой стратегии (последовательности действий) в бою против соперника с эквивалентной матрицей исходных данных.

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

Ситуация: 90 Джинов в трех стеках, по 30 в каждом, ходят первыми в бою против соперника человека.

Обозначим всевозможные действия Джинов кратко путями.
1. Если хватает маны на магию:
1.1. Колдовать замедление, если дистанционный урон соперника не превышает 10% суммарного здоровья всей собственной армии и если есть цель с резистом не более 25% без замедления. Вес этого действия 0,4 (Way1/0,4).
1.2. Колдовать ледяной молот, если все джины в армии могут нанести урон боле 25% суммарного здоровья противника, или если действующий стек джинов может уничтожить любой из стеков прямым уроном, который и будет целью. Вес этого действия 0,3 (Way2/0,3).
1.3. Колдовать иллюзию, если все джины армии могут сделать иллюзию с количеством опыта, превышающей 10% экспериенса армии соперника. Вес этого действия 0,2 (Way3/0,2).
1.4. В противном случае Рвение (Way4). Вес этого действия 0,1 (Way4/0,1).
2. Если нет маны и нельзя или невыгодно откупиться, то ближний удар (Way5). Вес этого действия 0 (Way5/0,0). Если вес равен 0, то действие выполняется из режима Wait, только при невозможности выполнить другие действия.

Базовая стратегия Джинов.
Way1/0,4 –> Way2/0,3–> Way3/0,2–> Way4/0,1–> Way5/0,0.
Обозначим базовую стратегию за Strategy0 (Str0).

Вот в такой ситуации можно издеваться над джинами с помощью диспела. Каждый раз, если система не самообучающаяся, то она будет после диспела с большей вероятностью видеть сигнал для действия Way1. Теперь опишем алгоритм, когда есть буфер памяти действий ИИ.

Ходят первые 30 джинов. Пусть после принятия Str0 наложенное замедление снято. Тогда в этом бою до уничтожения источника исцеления путю Way1 присваивается вес 0. Действие не возымело успеха, а значит оно недопустимо в будущем в тех же условиях. Другим действиям веса распределяются пропорционально, как 3 : 2 : 1 : 0.
Принимается Str1: Way1/0,0–> Way2/0,5–> Way3/0,33–> Way4/0,17–> Way5/0,0.

Ходят вторые 30 джинов. Пусть в результате принятия Str1 сделана иллюзия и тут же она разрушена отменой чар противника. Тогда в этом бою до уничтожения источника снятия иллюзий путю Way3 присваивается вес 0. Также присваивается вес 0 путю Way4, потому что рвение тоже может быть отменено. Остается одно активное действие.

Ходят третьи 30 джинов. Принимается Str2: Way1/0,0–> Way2/1,0 –> Way3/0,0 –>Way4/0,0 –>Way5/0,0.

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

Пояснение: после Str0 логично обнулить веса Way3 и Way4, т.к. противник смог отменить замедление. Но замедление могло быть снято ускорением. То есть здесь нужен более внимательный анализ.

В целом победа дижнов убедительна, если отношение Af/A1 (здесь f индекс последнего раунда боя) велико (близко к 1), т.е. потери у джинов минимальные. И если сила соперника была не маленькой, то последовательность стратегий Str0->Str1->Str2 принимается успешной. Её вес высокий. А в следующем бою, в случае эквивалентности новых матриц A и D матрицам этого боя, новая битва полностью ведется по стратегии Str2, явившейся единственной успешной.

Замечание: отношение матриц Af/A1 не следует понимать простым делением, это сравнительный анализ случайных векторов, из которых эти матрицы состоят.
Dalai wrote:Не согласен со словом "полностью" в первом предложении. Все остальное, конечно, верно.
Какие-то есть еще полезные научные методы? Я писал о необходимости привлечения именно научные методов. Так то мне интересно, что еще можно привлеч сюда.
User avatar
Dalai
Equilibris Core Team
Equilibris Core Team
Posts: 2797
Joined: Sat Apr 02, 2005 17:38
Contact:

Post by Dalai »

Ты описал подход, или методику. Интересно, грамотно, все в порядке. Но:
1. Я спрашивал о технике. Т.е. что куда пишется, куда отправляется, как анализируется и как проверяется на массовость-исключительность, и прочее.
2. Ты видишь функцию самообучения ИИ в каждой отдельной машине, на которой установлены герои, параллельно друг другу? Мне более интересен метод, который позволил бы объединить эти знания, и протестировать в режиме машина-против-машины-в-миллионе-сражений.
Web-designer wanted. "Once a knight, always a knight, but once a King is once too often!" (c) Sir Bella of Eastmarch
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Dalai wrote:1. Я спрашивал о технике. Т.е. что куда пишется, куда отправляется, как анализируется и как проверяется на массовость-исключительность, и прочее.
Я понял, поэтому и написал, что приведу описание лишь исходных данных для анализа и некоторых правил анализа.

Чтобы описать технику, нужно указать объекты, пространство на котором мы работаем. Мне нужна конкретика. О чем именно писать. Понятно, что готового решения даже на идейном уровне о целом ИИ в голове у меня нет. Тем более не может быть и на бумаге. Я не программист, мне сложно представить, что и где там в файлах хранится. Мне нужна задача, тогда я могу описать математическую постановку этой задачи и ее решение.
Dalai wrote:2. Ты видишь функцию самообучения ИИ в каждой отдельной машине, на которой установлены герои, параллельно друг другу? Мне более интересен метод, который позволил бы объединить эти знания, и протестировать в режиме машина-против-машины-в-миллионе-сражений.
Для сингла всё можно уместить на одной машине. Так даже будет лучше для игрока. Но игрок должен получить возможность установить себе более новую версию ИИ через интеренет или при покупке очередного аддона.

Для он-лайн все просто. И эта простота отталкивается от мирового рейтинга игроков. Именно ИИ с игр лучших геймеров заливаются через определенный срок в виде обновлений на сервер разработчика. Например, каждую последнюю неделю месяца сервер пытается залить себе от лидера рейтинга новый ИИ, если неудача, то система отыскивает первого или второго игрока в течение определенного срока и т.д. Если прошел месяц, а система не нашла ни 1, ни 2, ни 3, ни 4 она ищет или их или пятого. То есть, если долго нет лидеров, то они и не активны. Но система может вообще отказаться качать обновление, если ИИ игрока редко улучшался за период, прошедший с последнего обновления.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Тогда не морочьте голову, а просто записывайте выигрышную/ проигрышную тактику/ стратегию человека, в обход дефолтного ИИ, прописанного в том же формате, что и найденный человеческий.
User avatar
Dalai
Equilibris Core Team
Equilibris Core Team
Posts: 2797
Joined: Sat Apr 02, 2005 17:38
Contact:

Post by Dalai »

CTPAHHuK wrote:Чтобы описать технику, нужно указать объекты, пространство на котором мы работаем. Мне нужна конкретика.
Нет ничего. Если бы тебе предстояло решать эту задачу, то как бы ты это сделал.
CTPAHHuK wrote:Мне нужна задача, тогда я могу описать математическую постановку этой задачи и ее решение.
Ну давай попробуем ее сформулировать. Представим, что есть некая игра, похожая по механике на 4-х героев. Ты можешь дать программисту некие инструкции высокого, генерального порядка. Твоя цель - сделать так, чтобы ИИ, играя честно, оказывал игрокам все более серьезное сопротивление. Ресурсы, ограничения и дополнительные направления приложения усилий - на твое усмотрение. Решение - это те самые инструкции самого высокого уровня, детализированные до такой степени, которая кажется тебе достаточной для понимания решения.
CTPAHHuK wrote:Для сингла всё можно уместить на одной машине. Так даже будет лучше для игрока. Но игрок должен получить возможность установить себе более новую версию ИИ через интеренет или при покупке очередного аддона.
Ок, пока нормально.
CTPAHHuK wrote:Для он-лайн все просто. И эта простота отталкивается от мирового рейтинга игроков. Именно ИИ с игр лучших геймеров заливаются через определенный срок в виде обновлений на сервер разработчика. Например, каждую последнюю неделю месяца сервер пытается залить себе от лидера рейтинга новый ИИ, если неудача, то система отыскивает первого или второго игрока в течение определенного срока и т.д. Если прошел месяц, а система не нашла ни 1, ни 2, ни 3, ни 4 она ищет или их или пятого. То есть, если долго нет лидеров, то они и не активны. Но система может вообще отказаться качать обновление, если ИИ игрока редко улучшался за период, прошедший с последнего обновления.
В январе всех победил Вася. 1 февраля ИИ с Васиной машины заливаем всем. В феврале всех победил Петя. 1 марта ИИ с Васиной машины у всех заменяем на ИИ с Петиной машины. Я правильно тебя понял?
Accolon wrote:Тогда не морочьте голову, а просто записывайте выигрышную/ проигрышную тактику/ стратегию человека, в обход дефолтного ИИ, прописанного в том же формате, что и найденный человеческий.
Для каждой комбинации чужих войск, заклинаний и героев, а также вариантов действия человека, правильно?
Web-designer wanted. "Once a knight, always a knight, but once a King is once too often!" (c) Sir Bella of Eastmarch
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Dalai wrote:Твоя цель - сделать так, чтобы ИИ, играя честно, оказывал игрокам все более серьезное сопротивление. Ресурсы, ограничения и дополнительные направления приложения усилий - на твое усмотрение. Решение - это те самые инструкции самого высокого уровня, детализированные до такой степени, которая кажется тебе достаточной для понимания решения.
Прийдется целую доктрину создавать. Документ не для поста форума. Думать надо.
Dalai wrote:В январе всех победил Вася. 1 февраля ИИ с Васиной машины заливаем всем. В феврале всех победил Петя. 1 марта ИИ с Васиной машины у всех заменяем на ИИ с Петиной машины. Я правильно тебя понял?
В целом так. На 24 марта Вася занимает 1 место, значит в период с 24 по 31 марта сервер отыскивает его и забирает у него ИИ. В момент получения нового ИИ, новый ИИ тут же начинает рассылаться всем игрокам, вышедшим в интернет. На 23 апреля в рейтинге Васю обошел Петя и теперь Петя лидер. Значит, ИИ всю неделю с 23 по 30 апреля ищет Петю и рассылает всем Петин ИИ.
Accolon wrote:Тогда не морочьте голову, а просто записывайте выигрышную/ проигрышную тактику/ стратегию человека, в обход дефолтного ИИ, прописанного в том же формате, что и найденный человеческий.
Можно сделать так. И даже нужно. Это ты круто подметил. Но этот ИИ - "ИИ" лучшего онлайн игрока (в марте Васин, в апреле Петин) - будет иметь ограниченное применение. Человеческий "ИИ" можно включать для нейтральных героев, но вряд ли для нейтральных монстров. У человека ведь никогда не бывает в армии тех самых 90 джинов по 3 стека без героев и других монстров. Поэтому человек никогда не научит играть ИИ только монстрами.
Но в этом даже видна своя фишка. Нейтральные герои деруться на уровне человека, а нейтральные монстры ведут свою собственную битву без героя, без человеского интеллекта.

По сути тактика человек состоит в победе с минимальными потерями. А тактика ИИ нейтралов в нанесении максимального урона. Руководящим принципом ИИ нейтральных монстров по большому счету станет не победа с минимальными потерями, как я писал раньше, а цель ИИ монстров нейтралов - напартачить человеку.

Человек чаще избирает тактику обороны и ждет нейтралов, уничтожая их дистанционной атакой и встречая многочисленными ближними боями.
Монстры компьютера в другой ситуации, они не можут ждать. Враг-человек, почти наверняка, навешает различные проклятия. Стоять и размышлять не выгодно. Надо щимиться вперед. Компьютер изначально в проигрышном положении.

Разные цели у компьютера и человека.
User avatar
Dalai
Equilibris Core Team
Equilibris Core Team
Posts: 2797
Joined: Sat Apr 02, 2005 17:38
Contact:

Post by Dalai »

CTPAHHuK wrote:Прийдется целую доктрину создавать. Документ не для поста форума. Думать надо.
Конечно :) Если силы и желание чувствуешь - возьми паузу, подумай, и потом напиши. Если нет - ну и нет тогда :)
CTPAHHuK wrote:В целом так.
Это очень странно, если так. Во-первых, вполне возможно, что ни Петя, ни Вася своего ИИ вообще не тренируют, ведь первыми они стали, сражаясь с людьми. А во-вторых - если кто-то кого-то сильнее - это не значит, что он сильнее во всем. А ИИ должен взять все лучшее от всех.

По аналогии с университетом, когда студенты учат разные дисциплины у разных профессоров, и не факт, что студент знает некую дисциплину хуже профессора, который преподает другую. Или так: Петя побеждает пехотой, а Вася - кавалерией. Так и ИИ у нас будет по четным пехотой воевать, а по нечетным - кавалерией. Это ж не дело.
CTPAHHuK wrote:Разные цели у компьютера и человека.
Одинаковые цели у всех. Выйти из боя с наилучшим соотношением нанесенного и полученного урона. Ну еще и наименьшими затратами маны, если ситуация позволяет выбирать.

При определенных конфигурациях армий и ИИ будет выгодно замедлять и расстреливать, а человеку - ломиться вперед. А кажущаяся разница лишь оттого, что человек "всегда выигрывает". Потому что ИИ плохой - замкнутый круг :) Но не надо забывать и про хит-н-ран, когда человек - проигрывает, стремясь унести побольше ИИ-ных войск. У ИИ в таком бою задача как раз "человеческая" - разбить атакующего с минимальными потерями.
Web-designer wanted. "Once a knight, always a knight, but once a King is once too often!" (c) Sir Bella of Eastmarch
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Dalai wrote:Это очень странно, если так. Во-первых, вполне возможно, что ни Петя, ни Вася своего ИИ вообще не тренируют, ведь первыми они стали, сражаясь с людьми.
В каком смысле не тренируют ИИ? Когда мы говорим об он-лайне, то никаких компьютерных игроков не подразумеваем. Онлайн игроки сражаясь с людьми стремятся научиться развиваться быстрее противников и убивать быстрее нейтралов. Лучший онлайн игрок, если не лучший, то один из лучших тех людей, которые легко выносят нейтралов. ИИ нейтралов в бою против такого соперника закаляется очень быстро. Очень быстро проигрывает варинаты стратегий. Мы не можем говорить об ИИ компьютерного игрока определенного цвета. В онлайн важен и нужен только ИИ нейтральных монстров и героев в боях. Если нужен ИИ компьютерного игрока, то это сингл.

Я все это время пишу только про ИИ нейтралов в боях против человека. Если одного игрока не достаточно для закачки ИИ. Можно сделать закачку с нескольких машин. Посчитать число сочетаний армий 7 единиц из всех монтсров и героев разных мастей, и от всех игроков закачивать лучшие стратегии нейтралов для каждого варианта из числа сочетаний.
Dalai wrote:Одинаковые цели у всех. Выйти из боя с наилучшим соотношением нанесенного и полученного урона.
При такой трактовке цель одна. Я писал про то, что стериотип поведения человека в бою переложить на поведение нейтральных монстров просто так вряд ли получится. Человек развивается. Герои растут, армии скупаются, магия учиться, а нейтралы стоят и хлопают глазами. Не проходит и недели, как большая часть боев для нейтралов заведомо является проигранными. А человек в таких боях показывает тактику победителя.

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

Вобщем буду думать над доктриной :???:
User avatar
Dalai
Equilibris Core Team
Equilibris Core Team
Posts: 2797
Joined: Sat Apr 02, 2005 17:38
Contact:

Post by Dalai »

Max_HMMI wrote: 4 - тут, для начала, нужно посмотреть, как программируют ИИ сейчас. Возможно, есть эффективные готовые механизмы.
Было бы желание :)
http://aigamedev.com/insider/reports/cu ... aper-pack/ :)
Web-designer wanted. "Once a knight, always a knight, but once a King is once too often!" (c) Sir Bella of Eastmarch
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Dalai wrote:Одинаковые цели у всех.
Как писал Тимур Бухараев:
"Главная задача ИИ - не выиграть у игрока, а красиво ему отдаться" ;D
User avatar
Dalai
Equilibris Core Team
Equilibris Core Team
Posts: 2797
Joined: Sat Apr 02, 2005 17:38
Contact:

Post by Dalai »

CTPAHHuK wrote:В каком смысле не тренируют ИИ? Когда мы говорим об он-лайне, то никаких компьютерных игроков не подразумеваем. Онлайн игроки сражаясь с людьми стремятся научиться развиваться быстрее противников и убивать быстрее нейтралов. Лучший онлайн игрок, если не лучший, то один из лучших тех людей, которые легко выносят нейтралов. ИИ нейтралов в бою против такого соперника закаляется очень быстро. Очень быстро проигрывает варинаты стратегий. Мы не можем говорить об ИИ компьютерного игрока определенного цвета. В онлайн важен и нужен только ИИ нейтральных монстров и героев в боях. Если нужен ИИ компьютерного игрока, то это сингл.
Если комп сыгрет 100 боев против супер-мега-чемпиона, он не научится больше, чем в 100 000 боев против обычных, среднестатистических игроков. Просто по той причине, что он выделит 100 явно плохих стратегий и 0 хороших :) А вот из вторых 100 000 боев хоть несколько, но закончатся чем-то хорошим. Когда применяются статистические методы, во многих методиках есть такой шаг, когда исследуемое множество делится на 2 равных части с противоположными исходами. Т.е. на 100 проигрышах ты практически ничему не научишься. И на 100 выигрышах - тоже. А вот на 50 выигрышах и 50 проигрышах - уже научишься.
CTPAHHuK wrote:Я все это время пишу только про ИИ нейтралов в боях против человека.
А пофиг. Как только понимаешь, что у каждой армии в каждом бою цель одна и та же, различие между ИИ для нейтральной охраны шахты, цветного ИИ-шного игрока или нейтрального скриптового героя с армией стирается.
CTPAHHuK wrote:Можно сделать закачку с нескольких машин.
Нужно! Со многих.
CTPAHHuK wrote:Посчитать число сочетаний армий 7 единиц из всех монтсров и героев разных мастей, и от всех игроков закачивать лучшие стратегии нейтралов для каждого варианта из числа сочетаний.
Вот этот подход мне не очень нравится. Что делать, если монстру изменили характеристики? Все на свалку? А что делать, если ввели нового монстра? Мой идеал - это ИИ, умеющий принимать решения исходя из того, что перед ним по сумме характеристик и абилок, а не просто умеющий драться против N-ого числа фиксированных врагов. Его не выбьет из колеи Гидра с накастованным Flight или First Strike, хотя летающих гидр с быстрой реакцией, вроде как, не существует :)
CTPAHHuK wrote:Компьютер должен еще уметь убивать наиболее полезных юнитов человека. Например, отдавать предпочтение убийству монстров из замка игрока. Вместо того, чтобы бить по призванным леприконам-прикрышкам и т.п.
Разумеется.
CTPAHHuK wrote:Вобщем буду думать над доктриной
О, здорово. Буду ждать с нетерпением. :)
CTPAHHuK wrote:Как писал Тимур Бухараев:
"Главная задача ИИ - не выиграть у игрока, а красиво ему отдаться"
Вот, блин, категорически не согласен с этим распрострененным заблуждением. По крайней мере за пределами обсуждения игры про съем виртуальной бабы в виртуальном кабаке.
Web-designer wanted. "Once a knight, always a knight, but once a King is once too often!" (c) Sir Bella of Eastmarch
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Dalai wrote:Если комп сыгрет 100 боев против супер-мега-чемпиона, он не научится больше, чем в 100 000 боев против обычных, среднестатистических игроков. Просто по той причине, что он выделит 100 явно плохих стратегий и 0 хороших А вот из вторых 100 000 боев хоть несколько, но закончатся чем-то хорошим. Когда применяются статистические методы, во многих методиках есть такой шаг, когда исследуемое множество делится на 2 равных части с противоположными исходами. Т.е. на 100 проигрышах ты практически ничему не научишься. И на 100 выигрышах - тоже. А вот на 50 выигрышах и 50 проигрышах - уже научишься.
Выходит, наши взгляды тут расходятся. И сходятся одновременно.

Я согласен, проигрывать всегда нет смысла, как нет смысла выигрывать, потому что постоянный проигрышь уравновесит все веса путей и монстр станет аморфным, без инициативным, а выигрыши постоянные наоброт усилят веса наиболее вероятных действий. В этом я согласен.
Вместе с тем, собирать с кого попало 100 000 наблюдений я не хочу. Вдруг там оболтус сидел под пивом и сливал компу от того, что не знал как играть за браба. В таких наблюдениях будет много мусора, в случаях, когда комп принимал за выигрышную тактику свои победные действия, которые на самом деле стали победными по глупости человека.

Приведу отвелченный пример. Можно по ошибке подумать, что Луч плохо играет, потому что его постоянно бьют более сильные соперники Чемпионата Росси по футболу. Правда в другом. У футболистов луча слабые соперники на тренировках - они же сами. В команде слабых футболистов не может возникнуть сильных. Так и у компа. Дай ему постоянного сильного соперника и он будет расти.

Нужно как-то задать критерий отбора стратегий, все таки, от лучших игроков. Лучшие игроки более гибкие, они всегда ищут изьяны в ИИ, они и помогут ИИ откинуть проигрышные связки в боях. Главное, указать компу, как отбирать лучшее, чтобы не подавить его инициативу. Не только откидывать неудачные действия, но закреплять хоть и минимально, но всетаки, удачные действия.
Dalai wrote:А пофиг. Как только понимаешь, что у каждой армии в каждом бою цель одна и та же, различие между ИИ для нейтральной охраны шахты, цветного ИИ-шного игрока или нейтрального скриптового героя с армией стирается.
Это все так. Мне подумалось, ты пишешь про тактику игры Игрока-компьютера: постройки, пути перемещения по глобальной карте, развития героев и т.п. Я пока что ограничен только боями. И подчеркнул, что в принципе нужны только они в онлайн.
Dalai wrote:Вот этот подход мне не очень нравится. Что делать, если монстру изменили характеристики? Все на свалку? А что делать, если ввели нового монстра?
Если монстру изменили характеристики, то случайный вектор в матрице меняется, обновленная в последний раз стратегия для данного варианта сочетаний принимается за базу и начинается дальнейшее обучение. Ничего сложного. Так же как и человек, увидев изменения в монстрах пробует, смотрит, оценивает, принимает решения.

Если ввели нового монстра, то число сочетаний пересчитывается. И возникшие новые варианты (содержащие в комбинациях нового монстра) за базовую стратугию принимают такую, которая есть у существующего варианта с подобным монстром новому введеному моснстру. Пример: ввели нового пехотинца, хараткеристики которого примерно равны характеристикам минотавра, считай за базовую стратегию берется стратегия комбинаций армий с минотавром, а потом ИИ учиться и умнеет.
Dalai wrote:Мой идеал - это ИИ, умеющий принимать решения исходя из того, что перед ним по сумме характеристик и абилок, а не просто умеющий драться против N-ого числа фиксированных врагов. Его не выбьет из колеи Гидра с накастованным Flight или First Strike, хотя летающих гидр с быстрой реакцией, вроде как, не существует
Но ведь так все и есть. Я всё время говорю про базовые стратегии на момент t=0 в бою. Решение ИИ на каждом следующем моменте боя t+1 складывается из анализ предшествующих действие и анализа Новых случайных векторов характеристик своих и противника.
Гидра не может начать бой с абилкой Flight? Вот и хорошо. Значит, наложение этого заклинания будет выловлено до первого хода компьютера и базовая стратегия переиграна.

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

Ладно. Пойду обобщать.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Dalai
Для каждой комбинации чужих войск, заклинаний и героев, а также вариантов действия человека, правильно?
Ок - важнее сама возможность прямого обучения ИИ человеком.
CTPAHHuK
Можно сделать так. И даже нужно. Это ты круто подметил. Но этот ИИ - "ИИ" лучшего онлайн игрока (в марте Васин, в апреле Петин) - будет иметь ограниченное применение. Человеческий "ИИ" можно включать для нейтральных героев, но вряд ли для нейтральных монстров. У человека ведь никогда не бывает в армии тех самых 90 джинов по 3 стека без героев и других монстров. Поэтому человек никогда не научит играть ИИ только монстрами.
...если у него не будет возможности играть за нейтральных монстров. ;)
Но в этом даже видна своя фишка. Нейтральные герои деруться на уровне человека, а нейтральные монстры ведут свою собственную битву без героя, без человеского интеллекта.
Тоже вариант. Моя думать: схема может зависеть от уровня сложности.
User avatar
Univanger
Level 20 Hero
Level 20 Hero
Posts: 1109
Joined: Tue Jun 12, 2007 19:59
Location: Гастарбайтерск
Contact:

Post by Univanger »

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

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

И пункт 17 тоже неясен. Каких монстров считать классикой? В ГМиМ2 были боровы, которые впоследствии нигде не встречались. Монстры из преисподней вообще только в третьей части появились, и то их ассортимент был притянут за уши.
От себя: меня только вымораживает метаморфоза медузы, визуальный образ которых я бы вернул к "классическому".
беспокоиться о том, что он находится в недоступном месте.
User avatar
Dalai
Equilibris Core Team
Equilibris Core Team
Posts: 2797
Joined: Sat Apr 02, 2005 17:38
Contact:

Post by Dalai »

Univanger wrote:Почему нельзя было вместо создания этой темы использовать все уже ранее созданные, прочитать, вывести положительные результаты в первый пост?
Потому что темы, о которых ты говоришь, относятся к конкретной уже существующей игре. Здесь же - руководство для создателя новой игры, хоть и "по мотивам".
Univanger wrote:И пункт 17 тоже неясен. Каких монстров считать классикой? В ГМиМ2 были боровы, которые впоследствии нигде не встречались. Монстры из преисподней вообще только в третьей части появились, и то их ассортимент был притянут за уши.
Добавь в формалировку "в большинстве" или "в основном".
Web-designer wanted. "Once a knight, always a knight, but once a King is once too often!" (c) Sir Bella of Eastmarch
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Univanger wrote:И пункт 17 тоже неясен.
Пункт 17 мне тоже сначал был не ясен. Но потом я понял:
CTPAHHuK wrote:Проблему это здорово решил Dalai с количеством ходов для каждого предмета и каждого существа, живого или мертвого: перенесенный предмет спрайтом на всю дальность хода спрайта никуда уже не сдвинуть, потому что спрат нёс его до самого заката. Такое количество ходов для предметов и мертвых героев убедительнее действительно назвать локальными часами.
Dalai в 17 пункте описал ситуацию, когда один герой, прибежав ко второму, потратив все ходы и передав второму артефакт, заставил второго героя ждать целый день, а значит, второй никуда не побежит больше в этот ход. Понятнее? Или все равно никак? :)
Dalai wrote:Буду ждать
Готов первый фрагмент.
User avatar
Univanger
Level 20 Hero
Level 20 Hero
Posts: 1109
Joined: Tue Jun 12, 2007 19:59
Location: Гастарбайтерск
Contact:

Post by Univanger »

Dalai wrote:
Univanger wrote:И пункт 17 тоже неясен. Каких монстров считать классикой? В ГМиМ2 были боровы, которые впоследствии нигде не встречались. Монстры из преисподней вообще только в третьей части появились, и то их ассортимент был притянут за уши.
Добавь в формалировку "в большинстве" или "в основном".
Не понял стёба.
CTPAHHuK wrote:Dalai в 17 пункте описал ситуацию, когда один герой, прибежав ко второму, потратив все ходы и передав второму артефакт, заставил второго героя ждать целый день, а значит, второй никуда не побежит больше в этот ход. Понятнее? Или все равно никак?
Я пункты перепутал :roll:
С этой идеей мне как всё ясно) мне она как раз по душе. Неясно только для чего придумывать какую-то отдельную игру, а не исправить в текущей...
Я имел ввиду 18 пункт первого поста этой темы.
беспокоиться о том, что он находится в недоступном месте.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Univanger
на это:
Dalai: 18. Набор замков и существ – классика героев и фэнтези в целом. Темные эльфы и ракшасы с суккубами идут за горизонт плотной и однородной группой.
Accolon: Я бы не стал жечь мосты. "Одна звезда хорошо, а две - лучше".
в теме есть это:
Dalai:
... это путеводитель по принятию решений в спорных ситуациях.

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

Можешь для интереса устроить опрос, кого бы оставили игроки в следующей игре, если бы пришлось выбирать из веномов и вампов, к примеру. Я уверен, что харизматичные вампы выиграют у непонятных веномов практически всухую.
Если не лень, можешь сюда заглянуть: Одна звезда хорошо, а две - лучше.
User avatar
CTPAHHuK
Level 23 Hero
Level 23 Hero
Posts: 2002
Joined: Tue Feb 05, 2008 23:12
Location: Ханты-Мансийск
Contact:

Post by CTPAHHuK »

Univanger wrote:Я имел ввиду 18 пункт первого поста этой темы
Мне очень нравится это пункт. Зачем так много всего разного нового и красочного сразу?
User avatar
Dalai
Equilibris Core Team
Equilibris Core Team
Posts: 2797
Joined: Sat Apr 02, 2005 17:38
Contact:

Post by Dalai »

Univanger wrote:Не понял стёба.
Никакого стеба. Все абсолютно серьезно.

Посмотри, к примеру, фракцию Инферно в Г6. Ты чувствуешь при этом что-нибудь?

Я - нет. Все мои ощущения будут сформированы, когда я сяду играть в игру. У меня нет ни одного ожидания. А если бы у них был ЧД - у меня таких ожиданий была бы куча. Самый ли "толстый" этот юнит? Полный ли иммун магии? Перелетает ли все поле? Позволяет ли водиночку сносить охраны первого-второго уровня? Если да - это "мой" дракон.

Есть, конечно, и обратная сторона. Если "нет" - разрабы получат кучу негатива. Это, как бы, обязывает знать историю и наследие серии. А это, как бы, уже надо напрячь булки. Не хочется. Лучше все сделать новое и послать всех подальше под лозунгом "я вам ничего не обещал". Ведь использование наследия серии и есть некое обещание, пусть и не оформленное, как "я, гейм-дизайнер Г6, торжественно обещаю..."

Но если с прошлым серии ничего не связывать, то какое отношение игра имеет к серии?
Web-designer wanted. "Once a knight, always a knight, but once a King is once too often!" (c) Sir Bella of Eastmarch
Post Reply