Вход

Просмотр полной версии : Письмо команде МГ "как подрихтовать искусственный интеллект"



Вантала
12.01.2004, 15:43
Заранее оговорюсь: я не претендую на истину в последней инстанции. Я вполне могу ошибаться. Если я ошибся - заранее приношу свои извинения.

Итак, как я вижу исправление ситуации с ИИ в "Ил-2":

1) Любой объект класса "самолёт", а вероятнее всего, даже объект класса "деталь самолёта", в игре имеет динамически изменяющийся набор свойств. Изменяются они, есть такое подозрение, при "выставлении" некоего "флага" (Простите за терминологию, но, хоть я и плохо учился программированию, эти термины помню). Так, при попадании N пуль/снарядов (камней, касок ликующей пехоты :D), например, в крыло, в его свойствах выставляется флаг "в крыле дырка диаметром M см", после чего это повреждение рисуется на экране, а также меняется модель поведения самолёта.
2) Если утверждение (1) верно, то существуют также флаги "утечка топлива", "пустить чёрный дым из движка", "горит крыло/двигатель" и т.п., вызывающие соответствующее изменение поведения и отображения модели самолёта, вплоть до разрушения на мелкие куски.
3) С учётом (1) и (2) следует подправить сущую (на мой взгляд) мелочь:
а) объект "самолёт", в свойствах которого выставлен флаг "утечка топлива", выходит из боя и уходит на базу. Именно на базу, а не вслед за строем.
б) объект "самолёт", с выставленным флагом "горит крыло/двигатель" выходит из боя, набирает максимальную скорость, дабы сорвать пламя (в общем, пытается сорвать пламя), и уходит на базу, не возвращаясь в бой после срыва пламени. При этом флаг "горит крыло/двигатель" должен быть сброшен, а флаг "уйти на базу" - остаться.
в) указание "вернуться на базу" не может быть отменено.
г) объект "самолёт", с выставленным флагом "пустить чёрный дым из двигателя" уходит на базу и, что самое главное, не является целью для противника. Т.е. бот не должен атаковать объекты противной стороны, в чьих свойствах выставлен данный флаг. (Хотя это, я похоже, загнул. Это будет слишком сложно).
д) Посадочная "коробочка" состоит, кажется, из 5 точек (5-я - касание земли). Автопилот самолёта, идущего на базу с утечкой топлива, чёрным дымом, после срыва пламени, должен выставляться не на 1-ю точку "коробочки", а на предпоследнюю. Типа, посадка с ходу.
е) Зенитные пушки не должны стрелять по самолёту, выпустившему шасси (или уходящему на базу по вышеописанным причинам).
ж) Где-то на форуме мелькало утверждение, что самолёт в воздухе и после посадки обсчитывается по-разному. В таком раскладе, дабы избежать остановки бота на ВПП, имеет смысл в случае аварийной остановки (без капотирования, имеется в виду) просто силой сдвинуть его с полосы. Тягач рисовать не надо - обойдёмся воображением.

Вот, примерно так. Заранее приношу извинения, если совершил какую-то фундаментальную ошибку. Я же, естественно, не лазил по программе дизассемблером. Все высказывания основаны на логических измышлениях.
Прошу г-д модераторов накрыть ветку после ответа команды МГ, а народ - не писать сюда лишнего.

P.S. Приду с работы - проверю, может ли самолёт стороны "А" сесть на аэродром стороны "Б". Если нет - это печально...

VGV
12.01.2004, 15:51
Приду с работы - проверю, может ли самолёт стороны "А" сесть на аэродром стороны "Б". Если нет - это печально...

в догфайте при посадке на вражий пишет что сел на свой :)
всё остальное без коментариев....

Violator
12.01.2004, 17:35
Вот чтобы тебе, на мой взгляд ответил бы ОМ: Ил-2 итак имеет строк кода побольше чем в любой игре, и на отладку п. 1-3 уйдут месяцы, у нас нет на это времени и сил......

Сейчас МГ занимаются доводкой аддона, потом все силы будут брошены на BoB и поддержка Ил-2 прекратится, увы....

pwl
12.01.2004, 18:04
Originally posted by Вантала
1) Любой объект класса "самолёт", а вероятнее всего, даже объект класса "деталь самолёта", в игре имеет динамически изменяющийся набор свойств....
2) Если утверждение (1) верно, то существуют также флаги "утечка топлива", "пустить чёрный дым из движка", "горит крыло/двигатель" и т.п....

все так и есть


а) объект "самолёт", в свойствах которого выставлен флаг "утечка топлива", выходит из боя и уходит на базу. Именно на базу, а не вслед за строем.

так и происходит. но с вероятностью 12%. Почему 12% ? спросите MG. то-же при повреждении двигателя.



б) объект "самолёт", с выставленным флагом "горит крыло/двигатель" выходит из боя, набирает максимальную скорость, дабы сорвать пламя (в общем, пытается сорвать пламя), и уходит на базу, не возвращаясь в бой после срыва пламени. При этом флаг "горит крыло/двигатель" должен быть сброшен, а флаг "уйти на базу" - остаться.

горящий бак - прыжок с вероятностью 75% для ветеранов и асов. остальные огня не видят.

горящий двигатель - прыжок с вероятностью 50%.

всего остального вроде нет.
дык вот к чему это я: если вдруг кому-то показалось что в MG об этих ситуациях не думали, то это зря так показалось. думали. приняли решение и реализовали. думается что просто слов типа "вы сделали неправильно надо вот так" будет недостаточно, чтобы они это решение изменили.

Kitty
12.01.2004, 18:14
2 pwl Извините, а с какой вероятностью 80 миллиметровая
зенитная артиллерия не станет лупить по спускающемуся
рядом парашютисту противника?

Заранее спасибо за ответ.

pwl
12.01.2004, 18:38
примерно с такой: количество_других_целей_для_зенитки/(количество_других_целей_для_зенитки+1)
т.е. если других целей нет, то в парашютиста она будет стрелять обязательно. причем: для самолетов есть проверка: если рядом с врагом есть дружественный самолет, то в такого врага не стрелять. для парашютстов такой проверки нет.
в смысле по парашютисту ведется огонь вне зависимости от наличия рядом дружественных самолетов

Serp
12.01.2004, 18:48
Originally posted by pwl
примерно с такой: количество_других_целей_для_зенитки/(количество_других_целей_для_зенитки+1)
т.е. если других целей нет, то в парашютиста она будет стрелять обязательно. причем: для самолетов есть проверка: если рядом с врагом есть дружественный самолет, то в такого врага не стрелять. для парашютстов такой проверки нет.
в смысле по парашютисту ведется огонь вне зависимости от наличия рядом дружественных самолетов
Артиллеристы! Сталин дал приказ! (с) :D

Salsero
12.01.2004, 19:04
Боюсь, ответов мы уже не дождёмся.
И изменений тоже...

:(

Wasy
13.01.2004, 01:20
Originally posted by Violator
Вот чтобы тебе, на мой взгляд ответил бы ОМ: Ил-2 итак имеет строк кода побольше чем в любой игре, и на отладку п. 1-3 уйдут месяцы, у нас нет на это времени и сил......

Сейчас МГ занимаются доводкой аддона, потом все силы будут брошены на BoB и поддержка Ил-2 прекратится, увы....
Поддержка врят ли прекратиться, на смом деле у МГ уже все силы брошены на БоБ, а доводкой ила занимаются в свободное время...........По словам Gibbage(он же Кевин Миллер), из письма Мэддокса к нему, если февральский адд-он будет расходиться хорошо, то выйдет ещё и летний адд-он.....

FilippOk
13.01.2004, 03:11
А почему это письмо - сюда? Почему не на мыло Maddox Games? Уважаемый Вантала считает, что в свой почтовый ящик сотрудники Мaddox Games заглядывают реже, чем сюда? :rolleyes:

Maximus_G
13.01.2004, 04:07
Ух, всё это обсуждалось не раз, и что-то вроде публичных петиций было как минимум две...

Originally posted by pwl
так и происходит. но с вероятностью 12%. Почему 12% ? спросите MG. то-же при повреждении двигателя.

Я полагаю, это усредненный процент для всех ситуаций. Т.е. на мой взгляд, это событие должно происходить с определённой вероятностью - С УЧЁТОМ других факторов, с учётом ситуации.
Принятие решения - уходить домой или нет - должно зависеть от:
1. Местоположения ЛА относительно цели миссии, статуса - выполнена или нет;
2. Наличия своих аэродромов рядом, расстояния до них, оценки времени подлёта к ним и времени до остановки мотора;
3. Важности цели миссии;
4. Ситуации в воздухе - наличия вражеских ЛА и их типа, их связанности с целью миссии, ситуации воздушного боя.

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

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

А ведь от этой штуки совсем недалеко до настоящего тактического мышления ботов :)

RB
13.01.2004, 04:13
Хмм я когда в Даллас летел у меня топливо сочилось с дополнительного бака в левом крыле. Не приятно конечно но ведь у меня их было аж четыре из них два основных :)Я к тому говорю что если топливо сочится то не факт ;)




P.S. Надо отдать должное Олегу в реале выглядет точно как в ЗС. %)

Вантала
13.01.2004, 10:02
Originally posted by FilippOk
А почему это письмо - сюда? Почему не на мыло Maddox Games? Уважаемый Вантала считает, что в свой почтовый ящик сотрудники Мaddox Games заглядывают реже, чем сюда? :rolleyes:
Спьяну, наверное. Да и почта барахлит - ничего не посылает. Вторую неделю бьюсь:(
По поводу топлива... Бот в "Ил-2" летает как минимум до зажигания красной лампочки. Протектирование баков не моделируется. Подавляющее большинство моделей имеет 1 бак независимо от того, что было в жизни. После снижения уровня топлива до красной лампочки течь не прекращается. Результат известен... А ведь Игра затачивалась под оффлайн (или я что-то перепутал?)
Отвечая ув.DeCore (след.пост): Моделируется? Извиняюсь. Не заметил. Больше похоже на моделирование нескольких баков. Простите ещё раз.

deCore
13.01.2004, 10:39
Протектирование баков моделируется.

Jameson
13.01.2004, 17:48
Идея насчет облаков. Если трудно сделать так, чтобы боты не видели в облаке, то можно ли сделать так ,чтобы уровень боов менялся на "курсант", когда он в облаке, и чтобы уровень тех, кто стреляет по игроку тоже менялся на "курсанта", когда игрок в облаке?

Вантала
14.01.2004, 10:36
Побившись всю ночь над эл.почтой и почесав репу над репликой ув.FilippOk, прошу руководство срезать сию ветку, пока она не слопала всё пространство сервера. Свои соображения зашлю в МГ через веб-интерфейс сервера mail.ru

Прошу прощения у сообщества за нарушение беспорядков. Был пьян, больше не повторится.
P.S. Не, пора к (1,2,3,4,5) в отпуск. Пока чесал репу - проторговал <самоцензура>, куда писать. Старый стал:(