Тема работы Архитектура игровых движков
Компьютерные игры Популярный вид развлечения среди широкой категории людей Появились в середине 40-х годов 20-го века на «больших машинах» Быстро распространились Игровые платформы: –PC –PlayStation (Sony) –Xbox (Microsoft) –другие
Эволюция процесса создания игр Копирование кусков кода из предыдущих проектов Отделение повторно используемого кода от остальной части игры – зарождение игровых движков Продажа готовых игровых движков
Общая характеристика игрового движка Игровые движки предоставляют собой гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки
Состав игрового движка Графический движок Игровая логика Система ввода и работы в сети Система анимации Физический движок или система обнаружения столкновений Искусственный интеллект Звуковой движок Скриптовый движок База данных игрового контента Игровые редакторы (средства визуальной разработки)
Графический движок Графический движок представляет собой программное обеспечение, которое обрабатывает структуры данных трехмерного мира и визуализирует игровой мир с точки зрения игрока или камеры «Лицо» игры. По качеству получаемой картинки у игрока складывается первое впечатление об игре
Графический движок должен Рисовать интерфейс пользователя: –Экранные меню –Игровой интерфейс Рисовать курсор Рисовать сцену: –Ландшафт –Объекты –Модели (с анимацией) –Окружение (небо, облака, погода и т.д.) –Эффекты –Тени
Игровая логика Управление всеми другими подсистемами игрового движка Организация игрового процесса (геймплея) Уникальность этого модуля из-за уникальности геймплея каждой игры
Система ввода и работы в сети Самая «проблемная» подсистема Решение о поддержке сети и выбор структуры данных для синхронизации должны быть приняты на самом раннем этапе проектирования игры Использование библиотек (например, DirectX) для абстракции аппаратного обеспечения ПК
Система анимации Виды анимации: –Простое движение –Сложная анимация Последовательность сеток Управление процессором анимации с помощью команд –Анимация физических моделей Проблема осмысленности движения в реальном мире
Система обнаружения столкновений Если нет необходимости в полноценном физическом моделировании игрового мира
Физический движок Подсистема в компьютерных играх, отвечающая за симуляцию физики абсолютно твёрдого тела Основные требования: –Производительность –Реалистичность Требования противоречат друг другу Ограничения на количество одновременно моделируемых объектов Пример коммерческих движков: –AGEIA PhysX –HavokFX
Скриптовый движок Управление игрой Скриптование игровых событий, сцен и т.д. Программирование NPC
Искусственный интеллект Набор алгоритмов, управляющий поведением персонажей в компьютерной игре (врагов, юнитов в стратегиях, NPC в RPG), и имитирующий поведение реального человека. Определяет поведение, реакцию на действия игрока и других персонажей, алгоритм поиска пути и т.д.
Звуковой движок Звук - неотъемлемая часть любой игры Функций, выполняемые звуком: –используется в качестве дополнительной поддержки, облегчающей визуальное восприятие –сопровождение действия –усиление интерактивности На плечи звукового движка ложится задача поддержки звука в игре и правильного позиционирования звуковых эффектов в трехмерном игровом пространстве
Игровой контент Типичная трехмерная игра должна работать с множеством данных следующих типов: –каркасы трехмерных объектов –двумерные текстуры и источники света –данные о трехмерном мире игры –данные о движении и анимации –карта игры
SDK Редакторы моделей, карт, уровней и др. Облегчение и ускорения процесса создания игры Предназначены для: –Художников –Моделлеров –Левелдизайнеров –Геймдизайнеров –Аниматоров –И др.
Применение и примеры игровых движков Можно купить полностью готовое решение у стороннего разработчика Ускоряют и упрощают процесс создания игры Часто SDK включаются в состав игры – моды Warcraft III (Blizzard) - $3,750,000 Unreal Engine 2 (Epic Games) – $750,000
Выводы Игровой движок представляет собой удобный конструктор для создания игры. При этом требуется минимальное вмешательство программистов, и большая часть работы может быть выполнена другими членами команды разработчиков Разработка игрового движка является очень трудоемким, длительным и дорогим процессом, посильным не всем игровым студиям В некоторых случаях, при разработке игры стоит купить готовый игровой движок, чтобы сократить трудозатраты и время разработки Но для создания качественной игры мало купить хороший игровой движок. Необходимо собрать квалифицированную команду разработчиков, которые смогут качественно реализовать все задумки и инновации