Письмо команде МГ "как подрихтовать искусственный интеллект"
Заранее оговорюсь: я не претендую на истину в последней инстанции. Я вполне могу ошибаться. Если я ошибся - заранее приношу свои извинения.
Итак, как я вижу исправление ситуации с ИИ в "Ил-2":
1) Любой объект класса "самолёт", а вероятнее всего, даже объект класса "деталь самолёта", в игре имеет динамически изменяющийся набор свойств. Изменяются они, есть такое подозрение, при "выставлении" некоего "флага" (Простите за терминологию, но, хоть я и плохо учился программированию, эти термины помню). Так, при попадании N пуль/снарядов (камней, касок ликующей пехоты :D), например, в крыло, в его свойствах выставляется флаг "в крыле дырка диаметром M см", после чего это повреждение рисуется на экране, а также меняется модель поведения самолёта.
2) Если утверждение (1) верно, то существуют также флаги "утечка топлива", "пустить чёрный дым из движка", "горит крыло/двигатель" и т.п., вызывающие соответствующее изменение поведения и отображения модели самолёта, вплоть до разрушения на мелкие куски.
3) С учётом (1) и (2) следует подправить сущую (на мой взгляд) мелочь:
а) объект "самолёт", в свойствах которого выставлен флаг "утечка топлива", выходит из боя и уходит на базу. Именно на базу, а не вслед за строем.
б) объект "самолёт", с выставленным флагом "горит крыло/двигатель" выходит из боя, набирает максимальную скорость, дабы сорвать пламя (в общем, пытается сорвать пламя), и уходит на базу, не возвращаясь в бой после срыва пламени. При этом флаг "горит крыло/двигатель" должен быть сброшен, а флаг "уйти на базу" - остаться.
в) указание "вернуться на базу" не может быть отменено.
г) объект "самолёт", с выставленным флагом "пустить чёрный дым из двигателя" уходит на базу и, что самое главное, не является целью для противника. Т.е. бот не должен атаковать объекты противной стороны, в чьих свойствах выставлен данный флаг. (Хотя это, я похоже, загнул. Это будет слишком сложно).
д) Посадочная "коробочка" состоит, кажется, из 5 точек (5-я - касание земли). Автопилот самолёта, идущего на базу с утечкой топлива, чёрным дымом, после срыва пламени, должен выставляться не на 1-ю точку "коробочки", а на предпоследнюю. Типа, посадка с ходу.
е) Зенитные пушки не должны стрелять по самолёту, выпустившему шасси (или уходящему на базу по вышеописанным причинам).
ж) Где-то на форуме мелькало утверждение, что самолёт в воздухе и после посадки обсчитывается по-разному. В таком раскладе, дабы избежать остановки бота на ВПП, имеет смысл в случае аварийной остановки (без капотирования, имеется в виду) просто силой сдвинуть его с полосы. Тягач рисовать не надо - обойдёмся воображением.
Вот, примерно так. Заранее приношу извинения, если совершил какую-то фундаментальную ошибку. Я же, естественно, не лазил по программе дизассемблером. Все высказывания основаны на логических измышлениях.
Прошу г-д модераторов накрыть ветку после ответа команды МГ, а народ - не писать сюда лишнего.
P.S. Приду с работы - проверю, может ли самолёт стороны "А" сесть на аэродром стороны "Б". Если нет - это печально...
Re: Письмо команде МГ "как подрихтовать искусственный интеллект"
Цитата:
Originally posted by Вантала
1) Любой объект класса "самолёт", а вероятнее всего, даже объект класса "деталь самолёта", в игре имеет динамически изменяющийся набор свойств....
2) Если утверждение (1) верно, то существуют также флаги "утечка топлива", "пустить чёрный дым из движка", "горит крыло/двигатель" и т.п....
все так и есть
Цитата:
а) объект "самолёт", в свойствах которого выставлен флаг "утечка топлива", выходит из боя и уходит на базу. Именно на базу, а не вслед за строем.
так и происходит. но с вероятностью 12%. Почему 12% ? спросите MG. то-же при повреждении двигателя.
Цитата:
б) объект "самолёт", с выставленным флагом "горит крыло/двигатель" выходит из боя, набирает максимальную скорость, дабы сорвать пламя (в общем, пытается сорвать пламя), и уходит на базу, не возвращаясь в бой после срыва пламени. При этом флаг "горит крыло/двигатель" должен быть сброшен, а флаг "уйти на базу" - остаться.
горящий бак - прыжок с вероятностью 75% для ветеранов и асов. остальные огня не видят.
горящий двигатель - прыжок с вероятностью 50%.
всего остального вроде нет.
дык вот к чему это я: если вдруг кому-то показалось что в MG об этих ситуациях не думали, то это зря так показалось. думали. приняли решение и реализовали. думается что просто слов типа "вы сделали неправильно надо вот так" будет недостаточно, чтобы они это решение изменили.
Re: Re: Письмо команде МГ "как подрихтовать искусственный интеллект"
Ух, всё это обсуждалось не раз, и что-то вроде публичных петиций было как минимум две...
Цитата:
Originally posted by pwl
так и происходит. но с вероятностью 12%. Почему 12% ? спросите MG. то-же при повреждении двигателя.
Я полагаю, это усредненный процент для всех ситуаций. Т.е. на мой взгляд, это событие должно происходить с определённой вероятностью - С УЧЁТОМ других факторов, с учётом ситуации.
Принятие решения - уходить домой или нет - должно зависеть от:
1. Местоположения ЛА относительно цели миссии, статуса - выполнена или нет;
2. Наличия своих аэродромов рядом, расстояния до них, оценки времени подлёта к ним и времени до остановки мотора;
3. Важности цели миссии;
4. Ситуации в воздухе - наличия вражеских ЛА и их типа, их связанности с целью миссии, ситуации воздушного боя.
Все эти факторы, на мой взгляд, должны учитываться для правдоподобного принятия решения. А теперь, если попробовать формализовать эту задачку - приходим в выводу, что для этого нам нужны не просто "флаги", а отдельный "ситуационный" модуль, который будет анализировать все эти (и возможно другие) факторы, и принимать решение.
Вот из отсутствия мотивации разработчиков делать такую штуку, имхо, мы и имеем флаги и простые вероятности.
А ведь от этой штуки совсем недалеко до настоящего тактического мышления ботов :)
Re: Re: Re: Письмо команде МГ "как подрихтовать искусственный интеллект"
Хмм я когда в Даллас летел у меня топливо сочилось с дополнительного бака в левом крыле. Не приятно конечно но ведь у меня их было аж четыре из них два основных :)Я к тому говорю что если топливо сочится то не факт ;)
P.S. Надо отдать должное Олегу в реале выглядет точно как в ЗС. %)