Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
разработки:ткма:start [2010/10/23 09:05] admin Page moved from ткма:start to разработки:ткма:start |
разработки:ткма:start [2021/04/07 21:33] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | Технология коллективного моделирования аниматов | + | ========== Технология коллективного моделирования агентов ========== |
+ | |||
+ | ========== Цель ========== | ||
+ | Создать программную технологию позволяющую отлаживать, испытывать, обучать и исследовать ИИ агентов в сложном виртуальном мире. Технология должна позволять создавать виртуальный мир ( в дальнейшем - мир) и поведение автономных объектов в нем без программирования.Технология должна позволять коллективно моделировать поведение множества ИИ агентов в одном мире, при этом программа ИИ агента должна работать на ЭВМ клиента и обмениваться необходимой информацией по сети Интернет с ЭВМ моделирующей мир. На ЭВМ клиента должна быть возможность наблюдать процесс моделирования поведения ИИ агента в мире. | ||
+ | |||
+ | ========== Термины ========== | ||
+ | |||
+ | ИИ агент - программа с элементами искусственного интеллекта моделирующая мозг некоего виртуального существа. | ||
+ | |||
+ | Мир (виртуальный мир) - совокупность объектов и их свойств моделируемая на ЭВМ в которой существует ИИ агент в теле виртуального существа. | ||
+ | |||
+ | Активный объект - объект имеющий поведение или свойства отличные от свойств обеспечиваемых физическим движком мира, например: "хищник" догоняющий по кратчайшему пути жертву, "пища убегающая по случайно меняющейся траектории. | ||
+ | |||
+ | ========== Анализ игровых движков и конструкторов ========== | ||
+ | |||
+ | Проводился анализ игровых движков и конструкторов с целью выяснения их пригодности для технологии коллективного моделирования агентов (ТКМА) в двух или трех мерном мире. | ||
+ | |||
+ | Под миром понимается модель среды в которой «живет» агент. | ||
+ | Окончательно были сформулированы следующие требования к программному обеспечению ТКМА : | ||
+ | |||
+ | 1) наличие поддержки продукта; | ||
+ | |||
+ | 2) распространенность; | ||
+ | |||
+ | 3) наличие реально работающего программного обеспечения (ПО); | ||
+ | |||
+ | 4) наличие документации (хотя бы частично) на русском языке; | ||
+ | |||
+ | 5) свободность и бесплатность применения ( как минимальное требование – бесплатность применения в исследовательских и учебных целях); | ||
+ | |||
+ | 6) легкость в использовании и освоении ("легкость входа"); | ||
+ | |||
+ | 7) пригодность для научно- промышленных применений ; | ||
+ | |||
+ | 8) отсутствие привязки к конкретному языку программирования для агентов/ботов; | ||
+ | |||
+ | 9) возможность коллективного моделирования с использованием сети Интернет, при этом программа агента должна исполняться на ЭВМ пользователя и на ЭВМ пользователя должны быть доступны результаты коллективного моделирования агентов различными пользователями; | ||
+ | |||
+ | 10) возможность отладки пользователем своего агента на локальной ЭВМ в локальном мире, без использования сети; | ||
+ | |||
+ | 11) легкость построения нового мира пользователем; | ||
+ | |||
+ | 12) наличие физического движка в программе моделирования мира. | ||
+ | Было рассмотрено 144 игровых движка и конструктора , краткая информация о которых расположена на сайте http://gcup.ru | ||
+ | |||
+ | После исключения не поддерживаемого в настоящее время ПО, ПО с крайне ограниченным функционалом ( например | ||
+ | пригодного только для создания аркад), ПО не имеющего режима мультиплеер , необходимого для организации коллективного | ||
+ | моделирования, а также ПО не имеющего бесплатных версий осталось около 20 игровых движков и конструкторов. | ||
+ | |||
+ | Следует отметить, что профессиональное ПО для разработки игр имеет весьма высокую стоимость: начиная от нескольких | ||
+ | тысяч долларов на одно рабочее место с ограниченной поддержкой и без предоставления исходных кодов ПО и до многих | ||
+ | cотен тысяч долларов для корпоративных лицензий с неограниченной поддержкой и предоставлением исходного кода игрового | ||
+ | движка. | ||
+ | Учитывая необходимость обеспечения п.11) из рассмотрения были исключены большинство игровых движков, т.к. игровой | ||
+ | движок обычно не предоставляет возможностей создания мира (редактор сцен часто отсутствует). | ||
+ | |||
+ | В результате в дальнейшем анализ проводился для следующего ПО | ||
+ | |||
+ | с 2-D миром | ||
+ | |||
+ | Constractor (http://www.scirra.com http://scirraconstruct.ru ) | ||
+ | |||
+ | Game Maker (www.yoyogames.com/make ) | ||
+ | |||
+ | Eclipse(http://www.freemmorpgmaker.com/index.php ) | ||
+ | |||
+ | с 3-D миром | ||
+ | |||
+ | Awakening (http://www.awingsoft.com/) | ||
+ | |||
+ | Unity (http://unity3d.com/ ) | ||
+ | |||
+ | Blender (http://www.blender.org/ ) | ||
+ | |||
+ | Попытка рассмотрения игрового движка Unreal Engine не удалась, на моем компьютере программы пакета выдавали неустранимую ошибку. Кроме того, бесплатная версия данного движка требует 3 Гб свободного места на диске, 2Гб ОЗУ, что мне показалось чрезмерным для поставленных задач. | ||
+ | |||
+ | Среди ПО для разработки 2-D игр было отобрано два конструктора игр, их анализ приведен в таблице: | ||
+ | |||
+ | ^ ^Constractor 0.99 ^Game Maker 8| | ||
+ | |наличие поддержки продукта |+ |+| | ||
+ | |распространенность |Слабо распространен |Весьма популярен| | ||
+ | |наличие реально работающего программного обеспечения (ПО) |+ |+| | ||
+ | |наличие документации (хотя бы частично) на русском языке |+ |+ (наличие не только форумов, уроков, но и справки на русском языке| | ||
+ | |свободность и бесплатность применения ( как минимальное требование – бесплатность применения в исследовательских и учебных целях) |+ (свободное ПО с открытым кодом) |+ (но для создания 3-х мерных игр и сетевых игр необходимо приобрести лицензию, стоимостью 25$ USA)| | ||
+ | |легкость в использовании и освоении ("легкость входа") |+ |+ ( производит впечатление несколько менее сложного , чем Constractor)| | ||
+ | |пригодность для научно-промышленных применений |+/-(для промышленных применений мало пригодно вследствие слабой поддержки 3-D) |+/-(для промышленных применений мало пригодно вследствие слабой поддержки 3-D) | | ||
+ | |отсутствие привязки к конкретному языку программирования для агентов |Допустимо использование языка Python, за счет чего можно реализовать интерфейс мира с любой программой агента |Встроенный язык (только в профессиональной , коммерческой версии) похожий на С| | ||
+ | |возможность коллективного моделирования с использованием сети Интернет, при этом программа агента должна исполняться на ЭВМ пользователя и на ЭВМ пользователя должны быть доступны результаты коллективного моделирования агентов различными пользователями |Есть специальная библиотека, обеспечивающая сетевую игру |Есть специальная библиотека, обеспечивающая сетевую игру| | ||
+ | |возможность отладки пользователем своего агента на локальной ЭВМ в локальном мире, без использования сети |+ |+ | ||
+ | |легкость построения нового мира пользователем |+ |+ ( производит впечатление несколько менее сложного , чем Constractor)| | ||
+ | |наличие физического движка в программе моделирования мира. |+ |+| | ||
+ | |Дополнительно |Ограниченные возможности создания 3-D игр |Ограниченные возможности создания 3-D игр| | ||
+ | |||
+ | Выбрать фаворита среди данного ПО не представилось возможным, т.к. конструкторы довольно равноценны и лучшие показатели в одной области компенсируются более средними показателями в другой. | ||
+ | |||
+ | Среди ПО для разработки 3-D игр было отобрано два конструктора игр/игровых движка, их анализ приведен в таблице: | ||
+ | |||
+ | ^ ^Unity 3.0 ^Blender 2.49| | ||
+ | |наличие поддержки продукта |+ |+| | ||
+ | |распространенность |+ |+| | ||
+ | |наличие реально работающего программного обеспечения (ПО) |+ |+| | ||
+ | |наличие документации (хотя бы частично) на русском языке |+ (меньше чем по Blender) |+| | ||
+ | |свободность и бесплатность применения ( как минимальное требование – бесплатность применения в исследовательских и учебных целях) |+ ( коммерческое ПО, недавно появилась бесплатная , урезанная , но все равно очень мощная версия) |+ (свободное, бесплатное ПО)| | ||
+ | |легкость в использовании и освоении ("легкость входа") |+ |+ ( сравнительно хуже чем у Unity )| | ||
+ | |пригодность для научно- промышленных применений |+ |+| | ||
+ | |отсутствие привязки к конкретному языку программирования для агентов |+ |+ (допустимо использование языка Python, за счет чего можно реализовать интерфейс мира с любой программой агента)| | ||
+ | |возможность коллективного моделирования с использованием сети Интернет, при этом программа агента должна исполняться на ЭВМ пользователя и на ЭВМ пользователя должны быть доступны результаты коллективного моделирования агентов различными пользователями |+ |+ (наличие сетевых возможностей декларируется, но их реальные возможности под сомнением)| | ||
+ | |возможность отладки пользователем своего агента на локальной ЭВМ в локальном мире, без использования сети |+ |+| | ||
+ | |легкость построения нового мира пользователем |+ |+| | ||
+ | |наличие физического движка в программе моделирования мира |+ |+| | ||
+ | |||
+ | Правильнее сказать, что Blender – это 3-D редактор с возможностями игрового движка, а Unity – скорее игровой движок | ||
+ | со встроенным редактором/построителем сцен. | ||
+ | К недостаткам Blender относительно Unity я бы отнес: более сложный интерфейс, медлительность игрового движка, к | ||
+ | достоинствам: больший объем русскоязычной документации, большие возможности программы как трехмерного графического | ||
+ | редактора, возможность «оживления» объектов без программирования вообще, что ценно для построения простых ботов | ||
+ | создающих сложный мир для ИИ агентов. | ||
+ | К достоинствам Unity я бы отнес: высокий уровень игрового движка, высокий уровень физического движка, простоту | ||
+ | освоения, возможность программирования непосредственно из Unity на JavaScript, C#, Python, к недостаткам: отсутствие | ||
+ | полных возможностей трехмерного редактора ( что для данного применения не слишком критично), необходимость | ||
+ | применения скриптов для задания действий любым объектам, что повышает уровень «входа» для пользователей. | ||
+ | |||
+ | Данный анализ, безусловно, носит субъективный характер, т.к. автор не является экспертом в области разработки игр. |