Jump to content

Разработка внешней утилиты для работы с миссиями


Recommended Posts

Цитата: "Причина взаимных огорчений, фрустраций и прочих неприятностей, окружающих деятельность ED на почве игростроения, кроется в несоответствии приоритетов разработчиков и широкой играющей публики. Авторы стараются делать и делают профессиональные продукты - где важна "начинка", глубина возможностей, проработка симуляторной части и пр. Буквально все силы сознательно бросаются именно на этот аспект игры. И именно поэтому всё остальное, не касающееся собственно симулятора, оказывается проваленным. Представьте на секунду, что Ил вышел бы с внеполётной частью Фланкера. Скоратило бы это аудиторию? Не то слово."

Alfred, ещё тебе могу порекомендовать MS Combat Sim 3. Там ещё садиться не надо. И человечек там по ящикам прыгает. Пилот! И дрыгалки эти нахрен не нужны. Как их, блин? Забыл... А, ЗА-КРЫЛ-КИ! Нифига себе умное слово! Слышал такое? Не просветишь, нафиг они нужны? Ну ладно, я то же не знаю и жить от этого мне не хуже (не считать за издёвку, потому что это она и есть).

 

 

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

With my Art I'm the fist

In the face of god

Link to comment
Share on other sites

  • ED Team

...

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

Пока ничего обещать не буду.

Может ты расскажешь подробнее что задумал?

Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу

Link to comment
Share on other sites

Chizh, рассказываю. Нечто вроде генератора быстрых миссий. Только миссий сложнее, чем делает БПС. Ну, допустим, хочу я перехват устроить над вражеским

 

Крымом. Выбираю в настройках гипотетической проги "Тип миссии: перехват", "Объект: эскортируемая транспортная колонна", "Район: Крым" "Самолёт:

 

МиГ-29С", "Плотность наземного ПВО: плотная", "Воздушная активость: высокая". В соответсвии с этим комп строит миссию из примитивных миссий-кирпичиков.

 

То есть загружает миссию-префаб с колонной С-130 прикрытой истребителями в Крыму (колонна помечена "целью миссии" и уже заранее написан брифинг под эту

 

цель), объединяет её с миссией, в которой звено игрока на ВПП. Раз плотность ПВО высокая, объединяет ещё с, допустим, тремя миссиями, в которых стоят ЗРК

 

(можно сделать и одну миссию, в которой ЗРК дохрена, но проще несколько с одним. В случае низкой плотности ПВО загружать одну мисиию, средней - две

 

сразу). Раз в миссии высокая воздушная активность, загружаем левый траффик: пару миссий со звеньями истребителей, у которых задание "завоевание

 

превосходства в воздухе". Сейвим полученое - готова полудинамическая миссия. Если сразу поделить территорию на "нашу" и "вражью", создать заранее

 

коалиции, не париться с наземной техникой и штурмовкой, то миссий-префабов будет не больше сотни. Миссия, в которой стоит С-300 занимает 10 кбайт. Да, неизменное время суток, неизменная погода, но это не так страшно. Делов - на пару недель. Зато радость от создания чего-то своего.

With my Art I'm the fist

In the face of god

Link to comment
Share on other sites

Ах да, не будет ещё маршрутов в точку цели, но в брифинге можно указать, кто откуда и куда.

With my Art I'm the fist

In the face of god

Link to comment
Share on other sites

Да, неизменное время суток, неизменная погода, но это не так страшно.
И то не факт. :)

Коричневые очки никогда не поранят мозг. Они небьющиеся.

Brown-coloured spectacles will never harm a brain. They are unbreakable. (с) Me

сфсвсг

I'm the future of the Russian government.

According to Scott Lofgren,

Bentley Systems global director.

Link to comment
Share on other sites

Не факт, так не факт. Значит ещё миссии-пресеты с погодными условиями (загружать их, как я понял, нужно тогда в последнюю (первую) очередь). Впрочем, напраслина всё, пока низя объединять миссии не кликая ручками

With my Art I'm the fist

In the face of god

Link to comment
Share on other sites

Chizh, рассказываю. Нечто вроде генератора быстрых миссий. Только миссий сложнее, чем делает БПС.

Emperor, в LO есть такая MOM.dll, это COM компонент с помощью которого строятся миссии. его интерфейс можно глянуть любым просмотрщиком OLE обьектов. соответственно можно на любом развитом инструменте программирования заюзать эту MOM (Mission Object Model?), сделав свой генератор миссий.

так как документации на MOM.dll нет, то по частным вопросам скорее всего придется распрашивать ED в частном порядке.

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

  • ED Team
Emperor, в LO есть такая MOM.dll, это COM компонент с помощью которого строятся миссии. его интерфейс можно глянуть любым просмотрщиком OLE обьектов. соответственно можно на любом развитом инструменте программирования заюзать эту MOM (Mission Object Model?), сделав свой генератор миссий.

так как документации на MOM.dll нет, то по частным вопросам скорее всего придется распрашивать ED в частном порядке.

Все правильно, однако в следующей версии симулятора MOM.dll уже отсутствует, поэтому предлагаемый путь не очень-то перспективен. Я бы посоветовал дождаться того времени, когда файл миссии будет чистым скриптом.

Valery Blazhnov

Eagle Dynamics Veteran

Link to comment
Share on other sites

  • ED Team
Chizh, рассказываю. Нечто вроде генератора быстрых миссий. Только миссий сложнее, чем делает БПС. Ну, допустим, хочу я перехват устроить над вражеским

 

Крымом. Выбираю в настройках гипотетической проги "Тип миссии: перехват", "Объект: эскортируемая транспортная колонна", "Район: Крым" "Самолёт:

 

МиГ-29С", "Плотность наземного ПВО: плотная", "Воздушная активость: высокая". В соответсвии с этим комп строит миссию из примитивных миссий-кирпичиков.

 

То есть загружает миссию-префаб с колонной С-130 прикрытой истребителями в Крыму (колонна помечена "целью миссии" и уже заранее написан брифинг под эту

 

цель), объединяет её с миссией, в которой звено игрока на ВПП. Раз плотность ПВО высокая, объединяет ещё с, допустим, тремя миссиями, в которых стоят ЗРК

 

(можно сделать и одну миссию, в которой ЗРК дохрена, но проще несколько с одним. В случае низкой плотности ПВО загружать одну мисиию, средней - две

 

сразу). Раз в миссии высокая воздушная активность, загружаем левый траффик: пару миссий со звеньями истребителей, у которых задание "завоевание

 

превосходства в воздухе". Сейвим полученое - готова полудинамическая миссия. Если сразу поделить территорию на "нашу" и "вражью", создать заранее

 

коалиции, не париться с наземной техникой и штурмовкой, то миссий-префабов будет не больше сотни. Миссия, в которой стоит С-300 занимает 10 кбайт. Да, неизменное время суток, неизменная погода, но это не так страшно. Делов - на пару недель. Зато радость от создания чего-то своего.

Теоретически есть возможность сделать консольную утилиту которая будет сливать миссии (подобные микроутилиты есть на сборку-разборку кампаний).

Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу

Link to comment
Share on other sites

Все правильно, однако в следующей версии симулятора MOM.dll уже отсутствует, поэтому предлагаемый путь не очень-то перспективен. Я бы посоветовал дождаться того времени, когда файл миссии будет чистым скриптом.

 

Было бы очень интересно задавать хоть часть поведения ИИ скриптом. Что то подобное было сделано в морски симуляторах Fleet Command, SubCommand, Dangerous Waters by Sonalysts. Например задавать групповые действия вроде drag или pincers, использовать рельеф местности для засад и прочих хитростей и уловок. Даже после того как игрок привыкнет к репертуару ИИ будет возможность разнообразить игру.

 

Это так же даёт возможность игрокам доработать поведение ИИ объектов до которых у разработчиков не хватило времени (вроде ЗРК или кораблей).

В случае с SubCommand так и случилось - поведение ИИ объектов было существенно доработано игроками - этакий open source development на базе скриптов.

Link to comment
Share on other sites

Да, для разработчиков это - довольно простой и эффективный способ улучшить качество игры, а также избавится от нападок игроков за некорректное поведение ИИ в мисииях, ведь за это будет отвечать только создатель миссии.

 

Кстати, разве в SubCommand были скрипты?

 

Абсолютно, с небольшими изменениями по сравнению с языком в Fleet Command. SCX3.0 стал последней user community-made модификацией которая стала стандартом и для on-line.

Поведение объектов гораздо более продуманное чем в release.

 

Давно пора дать часть ИИ на откуп useram - через скрипты только, не через сам source. Особенно для тех кто не играет по сетке и больше любит конструировать ботов и их войны в компьютерной "песочнице".

 

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

 

http://ai.eecs.umich.edu/people/laird/gamesresearch.html

 

A description of some experiments we have done with the Quakebot to test how human it behaves and whether we can modify some simple parameters to change skill levels: Creating Human-like Synthetic Characters with Multiple Skill Levels: A Case Study using the Soar Quakebot. This appeared in the AAAI 2000 Fall Symposium Series: Simulating Human Agents, November 2000.

 

 

The games research uses the same technology we've used for simulating military pilots. This paper gives an overview of our military pilot simulation work and relates it to issues in computer game AI development. Sorry but not all of the figures came through to PDF. Laird, J. E., and Jones, R. M. Building Advanced Autonomous AI Systems for Large Scale Real Time Simulations, Proceedings of the Computer Game Developers Conference, May 1998, Long Beach, CA.

 

Вот небольшой отрывок про TACIAR SOAR, на основе учений STOW-97:

 

"

База данных ландшафта включала 575М (3.7Г для визуализации) что было достаточно для моделирования 500x775 км^2. База данных включала 13500 зданий, 20000 разрушаемых объектов, ВПП, дорог, мостов, кустов, рек, водоёмов и тд. До 3700 сгенерированных ЭВМ технических объектов были задействованы, они включали объекты всех родов войск США а так же вражеские силы. Моделирование было полностью распределённым, выполнялось на 300 ЭВМ на 6 площадках. Время в моделировании соответствовало реальному масштабу времени и военнослужащие действительнй службы участвовали в моделировании наблюдая за полем боя посредством смоделированных сообщений и датчиков и давали настоящие команды объектам на ЭВМ. Наше участие заключалось в моделировании всех ЛА США с неподвижным крылом, которые включали до 100 самолётов в воздухе одновременно, распределённые между 20-30 ЭВМ.

 

...

 

Soar написан на ANSI C и может работать на всех основных платформах и всех основных операционных системах. В типичной конфигурации, мы запускали всё программное обеспечение (ПО) как одиночный процесс на Linuxe на ЭВМ класса Pentium Pro c 256М ОЗУ. ...

 

В течении STOW-97, у нас было достаточно вычислительных ресурсов чтобы пролетать все необходимые боевые задания. Нашими ЭВМ были 200МГц Pentium Pro (P6'е) с 256М ОЗУ. До STOW-97 по нашим оцнкам мы могли моделировать полёт до 8 самолётов на одной ЭВМ. Во время STOW-97, у нас было достаточно ЭВМ чтобы уменьшить отношение самолёты/ЭВМ. Вообще, у нас было до 4-6 самолётов на ЭВМ, хотя некоторые боевые задачи, такие как разведка были проделаны с только одним самолётом на ЭВМ. На пике, у нас было 102 самолёта в полёте одновременно, и мы могли отработать гораздо больше если бы было нужно.

 

...

 

На STOW-97, ИИ модули делили 200МГц Pentium Pro со всем другим ПО необходимымдля моделирования, поэтому каждый отдельный бот получал где-то 5-10% времени центрального процессора. Поэтому было реалистично предположить что на отдельной ЭВМ могло отрабатываться 2-4 разумных противника как часть однопользовательской игры.

 

"

Link to comment
Share on other sites

  • ED Team
Было бы очень интересно задавать хоть часть поведения ИИ скриптом.

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

Valery Blazhnov

Eagle Dynamics Veteran

Link to comment
Share on other sites

Все правильно, однако в следующей версии симулятора MOM.dll уже отсутствует, поэтому предлагаемый путь не очень-то перспективен. Я бы посоветовал дождаться того времени, когда файл миссии будет чистым скриптом.

вот это исключительное правильное направление развития!

 

ну и чтобы не завершать пост на оптимистичной ноте, вставлю хотелку - хорошо бы часть логики AI вынести в скрипты :)

 

ps: эх, медленно пишу...

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

  • ED Team
Понятно... Буду ждать и учиться.

Chizh, и каким же образом (про консольную утилиту)?

Как каким. Будет например EXE-шник. Запускаешь с консоли, пишешь например Merge 1.mis 2.mis, жмешь ENTER и получаешь на выходе что-то типа merge.mis

Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу

Link to comment
Share on other sites

Опять же надеясь что человек разрабатывающий ИИ для Локона читает..

 

Интересная работа по самообучающемуся ИИ в реальном масштабе времени (reinforcement learning applied to neural network topologies) сделана под руководством Проф. Risto Miikkulainen из The University of Texas, Austin. Он сам спец. по нейронным сетям. Система NERO - первая работающая версия в Мае 2004, не совсем fighter combat, но главное принцип работы. Reinforcement learning используется для мутирования нейросетей по ботов согласно их успеху/неуспеху в игре против людей. Боты приспосабливаются играть и побеждать в зависимости от стиля игры человека. Хотя первоначальные тренировки элементарных тактик делается в отдельном режиме

 

статейка за 3Мега, "The NERO Real-time Video Game" IEEE Transactions on Evolutionary Computation, Special Issue on Evolutionary Computation and Games (2005), описывает принцип работы, результаты экспериментов:

 

http://www.cs.utexas.edu/users/nn/downloads/papers/stanley.utcstr04-312.pdf

 

Сама игра Quake-образная - команды ботов бегают с арбалетами и тд и уничтожают другую команду.

 

"

NERO может очень быстро развивать поведение в реальном масштабе времени. Самая обыкновенная боевая тактика - это агрессивный поиск и врага и стрельба. Чтобы натренировать на эту тактику одиночный стационарный враг помещался на тренировочное поле и роботы поощрялись за приближение к врагу. Эта тренировка требовала от роботов научиться бежать к цели, что сложно т.к. роботы начинают на заводе обращённые лицами в разные направления. Начиная со случайной нейросети, в среднем занимает 99.7 секунд для 90% роботов на поле научиться успешно приближаться к врагу (19 прогонов, sd = 44.5c). Важно заметить что критерий успеха, те что команда научилась достаточно хорошо приближаться к врагу, является частично субъективным, тк игрок решает когда тренировка завершена визуально оценивая результат действий команды.

 

...

 

В стандартный набор датчиков робота входят РЛС, дальномер до объекта и датчик линии визирования на цель.

 

"

Link to comment
Share on other sites

Guest kt82

Не надо про нейронные сети, я при этом вспоминаю свой последний экзамен перед дипломом

Link to comment
Share on other sites

Guest kt82

какая бы ни была крутая методика построения и обучения ИИ, учить их будет живой человек, учить в течении тысяч часов, первую сотню которых ИИ будет так тупить, что этот самый человек не выдержит

Link to comment
Share on other sites

  • ED Team
какая бы ни была крутая методика построения и обучения ИИ, учить их будет живой человек, учить в течении тысяч часов, первую сотню которых ИИ будет так тупить, что этот самый человек не выдержит

... а потом появился Skynet. :D :D :D

Best Regards, Dmitry.

 

"Чтобы дойти до цели, надо прежде всего идти." © О. Бальзак


 
Link to comment
Share on other sites

какая бы ни была крутая методика построения и обучения ИИ, учить их будет живой человек, учить в течении тысяч часов, первую сотню которых ИИ будет так тупить, что этот самый человек не выдержит

 

 

Нет, почитайте книгу по reinforcement learning - учиться бот сам, ему функции поощрения задали - вот он и учится прогоняя эпизоды. А ещё есть работы по совместному самообучению ботов. Не надо путать supervised leaning и reinforcement. Наука вперёд двигается и говорить что "какие бы методы не были то никогда не будет чего-то" это пардон близорукость.

 

NERO рассчитан на то что он будет приспосабливаться к особенностям игрока, поэтому без человека который даёт добро не обходится. Идея в том что как играть будешь (а не учить), бот будет сам настраиваться.

Link to comment
Share on other sites

Chizh, я не про то... Тем постом там были мысли вслух, или рекомендации к действию, или что? И, самое главное, какое слово ключевое: "можно" или "теоретически"?

With my Art I'm the fist

In the face of god

Link to comment
Share on other sites

Ну вот, покопался в MOM.dll, нашёл ответ на интересующий меня вопрос.

Только вот метод Merge (это ведь то самое "объеденить?") итерфейса Mission работает с большими странностями. Даже с очень большими странностями. Поэтому буду, наверное, мучить слияние миссий "вручную". Dmut, спасибо, что подсказал библиотечку. Побудил меня, понимаешь ли, к действию. Развлечения надолго хватит. Сегодня полдня провозился и поимел кучу фана.

With my Art I'm the fist

In the face of god

Link to comment
Share on other sites

Ну вот, покопался в MOM.dll, нашёл ответ на интересующий меня вопрос.

Только вот метод Merge (это ведь то самое "объеденить?") итерфейса Mission работает с большими странностями. Даже с очень большими странностями. Поэтому буду, наверное, мучить слияние миссий "вручную". Dmut, спасибо, что подсказал библиотечку. Побудил меня, понимаешь ли, к действию. Развлечения надолго хватит. Сегодня полдня провозился и поимел кучу фана.

будут успехи - сообщай, мне самому любопытно :)

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

Вопрос к программистам и вообще ко всем.

Предыстория: просмотрел я, значит, МОМ.dll, истратил литра два чаю и у почти весь день. В структуре, в принципе, разобрался. Решил написать прогу а-ля "Hello, World!" и пойти спать. Прога сия брала компашку под имнем "my" и пересохраняла в "my2". Всё шло гладко, несмотря на великую сложность программы :) , ехе-шник скомпилировался. Но после запуска выдал: "Access violation at address 004541D1 in module Project2.exe. Read at address 00000000". В чём причина? Что ему в моей памяти не понравилось? Кто его там насилует?

With my Art I'm the fist

In the face of god

Link to comment
Share on other sites

такие интерфейсы обычно требуют аккуратной предварительной инициализации. в данном случае код по адресу 004541D1 попытался прочитать значение переменной по адресу 0, что означает неинициализированый указатель.

боюсь без помощи ED не обойтись.

Валерий Блажнов, нам нужнен простейший сэмпл истользования MOM.dll, если Вас не затруднит :)

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...