ВВЕДЕНИЕ 4
ГЛАВА 1. АНАЛИЗ ЗАДАЧИ И СУЩЕСТВУЮЩИХ ПУТЕЙ ЕЁ
РЕШЕНИЯ 6
1.1 Простое принятие решений 8
1.1.1 Жёстко заданные условные конструкции 9
1.1.2 Дерево решений 10
1.2 Реакция на события 13
1.3 Улучшенное принятие решений 14
1.3.1 Конечные автоматы 14
1.3.2 Иерархический конечный автомат 19
1.3.3 Деревья поведений 22
ГЛАВА 2. АНАЛИЗ ВОЗМОЖНОСТЕЙ ИГРОВЫХ ДВИЖКОВ 27
2.1 Unity 27
2.2 CryEngine 29
2.3 Unreal Engine 30
ГЛАВА 3. РЕАЛИЗАЦИЯ БАЗОВОГО ИСКУССТВЕННОГО
ИНТЕЛЛЕКТА ДЛЯ НЕ ИГРОВЫХ ПЕРСОНАЖЕЙ 32
ЗАКЛЮЧЕНИЕ 40
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 41
В настоящее время индустрия компьютерных игр развита в большинстве стран [1]. Учитывая стремительный рост рынка, крупным компаниям и независимым разработчикам требуются всё более удобные, быстрые и современные методы разработки. Для этого создаются различные игровые движки и библиотеки, а также для многих из этих движков предусмотрено создание модулей сторонними разработчиками. Также существуют компании, занятые исключительно разработкой и поддержкой игровых движков.
Термин «игровой движок» появился в 1990-х годах. Первый 3D движок был разработан Джоном Кармаком в 1996 году в компании id Software и назывался Quake engine. Данный движок был использован в более чем десяти проектах и дал серьезный толчок развитию данной индустрии.
Игровые движки созданы для упрощения и ускорения разработки игр. Существует несколько понятий движков, но чаще всего это игровые и графические. Игровой движок - это тот модуль игры, который включает в себя игровую логику.
Игровой движок, включает в себя движок рендеринга («визуализатор»), физический движок, звуковой движок, систему скриптов, анимацию, искусственный интеллект, сетевой код, управление памятью и многопоточность. Так можно сэкономить на процессе разработки за счет повторного использования одного и того же движка для создания множества различных игр [10].
С развитием технологий порог вхождения на рынок всё больше снижается, и появляется всё больше независимых разработчиков. Например, 2D движок Construct позволяет создавать игры, не прибегая к программированию. Помимо этого, в последних версиях Construct есть WEB- интерфейс, и разрабатывать игры можно прямо в браузере.
В настоящее время существует тенденция на использование visual scripting (визуального скриптинга) для написания логики в играх. Это распространяется как на относительно простые игровые движки, на подобии Construct, так и на более популярные игровые движки от крупных компаний, такие как Unreal Engine от Epic Games и с недавнего времени инструменты визуального скриптинга официально появились в Unity от Unity Technologies, ранее для этого нужно было покупать сторонний модуль.
Использование визуальных скриптов облегчает взаимодействие с движком начинающим разработчикам, художникам и дизайнерам локаций, звуковым дизайнерам, игровым дизайнерам (игровой, звуковой и дизайнер локаций далее по тексту - гейм-дизайнер). Хотя данный инструмент и облегчает разработку, он не является панацеей от всех бед, для обеспечения лучшей производительности и оптимизации всё же следует использовать языки программирования. Так как визуальные скрипты хоть и конвертируются в код, всё же они не обеспечивают достаточного быстродействия для больших или сложных проектов. Тем не менее, данный способ превосходно подходит для быстрого создания простой логики.
Другой популярной тенденцией является использование уже готовых модулей (ассетов), распространяемых во внутренних магазинах игровых движков. Там можно встретить как программные ассеты, так и содержащие графику, 2д и 3д модели с графикой, 2D и 3D моделями, анимацией и даже с плагинами, расширяющими возможности движка.
Целью работы является создание программного модуля, содержащего базовый искусственный интеллект для неигровых персонажей, и публикация данного модуля в unreal engine marketplace.
В ходе выполнения выпускной квалификационной работы бакалавра был произведён анализ способов реализации игрового искусственного интеллекта и игровых движков. Выбраны оптимальные способ реализации и движок. Спроектированы автомат состояний, алгоритмы и блок-схемы. Реализован базовый искусственный интеллект не игровых персонажей для Unreal Engine Marketplace и проведено его тестирование. Полученный модуль легко встраивается в проекты, использующие Unreal Engine, лёгок в использовании и модифицировании, так как реализован с помощью простой и понятной системы визуального скриптинга Blueprints.