Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППП.docx
Скачиваний:
2
Добавлен:
19.07.2019
Размер:
89.83 Кб
Скачать

Федеральное агентство по образованию

ТК имени А.Н. Коняева

РЕФЕРАТ

По дисциплине ППП

На тему «Unreal Engine»

Выполнил _________________

Проверил __________________

Тверь

2011 г.

Содержание

  • 1 Введение

  • 2 Основная терминология движка

  • 3 Версии движка

    • 2.1 Unreal Engine 1

    • 2.2 Unreal Engine 1.5

    • 2.3 Unreal Engine 2

    • 2.4 Unreal Engine 2.5

    • 2.5 Unreal Engine 2X

    • 2.6 Unreal Engine 2 Runtime

    • 2.7 Unreal Engine 3

    • 2.8 Unreal Engine 3.5

    • 2.9 Unreal Engine 4

    • 2.10 Модифицированные Unreal Engine

  • 4 Лицензирование и исходный код

  • 5 Игры, использующие движки Unreal Engine

Введение

Игровой движок (англ. game engine) — это центральный программный компонент компьютерных видеоигр и других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows. Словосочетание «игровой движок» подразумевает целый комплекс прикладных программ, включающий движок рендеринга («визуализатор») для 2D или 3D графики, физический движок, или обнаружение столкновений (и реакции на столкновение), звук, скриптинг, анимацию, искусственный интеллект, сетевой код, streaming, управление памятью, threading и граф сцены. Строго говоря, все части кода, написанные программистами при разработке игры, являются компонентами движка. Игровой процесс (геймплей) определяется функциями, реализованными в этих программах.

Unreal Engine  -игровой движок, разрабатываемый и поддерживаемый компаниейEpic Games Первая игра, созданная на этом движке — Unreal — появилась в 1998 году. С тех пор различные версии этого игрового движка были использованы в более чем сотне игр, среди которых Deus Ex, Lineage II, Thief: Deadly Shadows, Postal 2, сериях игр Brothers in Arms, Tom Clancy’s Splinter Cell, Tom Clancy’s Rainbow Six, а также в известных игровых сериях Unreal и Unreal Tournament от самих Epic Games. Будучи приспособленным в первую очередь для шутеров от первого лица, движок использовался и при создании игр других жанров.

Написанный на языке C++, движок позволяет создавать игры для большинства операционных систем и платформ: Microsoft Windows, Linux, Mac OS и Mac OS X, консолей Xbox, Xbox 360, PlayStation 2, PlayStation Portable, PlayStation 3, Wii, Dreamcast и Nintendo GameCube. В декабре Марк Рейн продемонстрировал работу движка Unreal Engine 3 на iPod Touch и iPhone 3GS. В марте 2010 работа движка была продемонстрирована на коммуникаторе Palm Pre, базирующемся на мобильной платформе webOS.

Для упрощения портирования движок использует модульную систему зависимых компонентов: поддерживает различные системы рендеринга (Direct3D, OpenGL, Pixomatic; ранее поддерживались Glide API, S3 Metal, PowerVR SGL), воспроизведения звука (EAX, OpenAL, DirectSound3D; ранее поддерживались A3D), средства голосового воспроизведения текста, распознавание речи (только для Xbox360, PlayStation 3, Nintendo Wii и Microsoft Windows, также планировалось для Linux и Mac), модули для работы с сетью и поддержка различных устройств ввода. Для игры по сети поддерживаются технологии Windows Live, Xbox Live, и GameSpy, включая до 64 игроков (клиентов) одновременно. Несмотря на то, что официально средства разработки не включают в себя поддержку большого количества клиентов на одном сервере, движок использовался для создания MMORPG-игр. Один из наиболее известных представителей жанра, Lineage II, использует движок Unreal Engine.

Основная терминология движка

Все элементы игрового движка представлены в виде объектов, имеющих набор характеристик и класс, который определяет доступные характеристики. В свою очередь любой класс является «дочерним» классом object. Среди основных классов и объектов можно выделить следующие:

  • Актор (actor) — родительский класс, содержащий все объекты, которые имеют отношение к игровому процессу и имеют пространственные координаты.

    • Павн, пешка (pawn) — физическая модель игрока или объекта, управляемого искусственным интеллектом. Название происходит от англ. pawn — тот, кем манипулируют (pawn можно перевести также как пешка, поэтому такой объект без какой-либо модели выглядит как пешка). Метод управления описан специальным объектом, такой объект называется контроллером. Контроллер искусственного интеллекта описывает лишь общее поведение пешки во время игрового процесса, а такие параметры как «здоровье» (количество повреждений, после которых пешка перестает функционировать) или, например, расстояние, на котором пешка обращает внимание на звуки. задаются для каждого объекта отдельно.

  • Мир, уровень (world, game level) — объект, характеризующий общие свойства «пространства», например, силу тяжести и туман, в котором располагаются все акторы. Также может содержать в себе параметры игрового процесса, как, например, игровой режим, для которого предназначен уровень.

Для работы с простыми и, как правило, неподвижными элементами игрового пространства (например, стены) используется двоичное разбиение пространства — все пространство делится на «заполненное» и «пустое». В «пустой» части пространства располагаются все объекты а также только в ней может находиться «точка наблюдения» при отрисовке сцены. Возможность полного или частичного помещения объектов в «заполненную» часть пространства не исключается, однако может привести к неправильной обработке таких объектов (например, расчёт физического взаимодействия) или неправильной отрисовки в случае помещения туда «точки наблюдения» (например, эффект «зала зеркал»). Все пешки, попадающие в «заполненную» часть пространства, сразу «погибают».

Поверхность (surface) является основным элементом двоичного дерева пространства. Эти элементы создаются на грани пересечения между «заполненной» и «пустой» частями пространства. Группа элементов двоичного дерева пространства называется нодом (node, рус. узел). Этот термин, как правило, употребляется в контексте node count — количество нодов на экране или в игровом пространстве вообще. Количество нодов, одновременно видимых на экране влияет на производительность при прорисовке сцены. Если какой-то нод не попадает на экран или перекрывается целиком другими нодами, он не обсчитываются — это служит для повышения производительности, особенно в закрытых пространствах. Разбиение всего пространства на группы нодов называется зонированием. Для этого иногда используются порталы — невидимые поверхности, которые служат для того чтобы вручную разделить крупный нод на два меньших. Кроме порталов используются антипорталы, которые ограничивают области отрисовки. Описание «заполненных» и «пустых» частей пространства выполняется с помощью набора замкнутых трехмерных объектов, составленных из не пересекающихся поверхностей — брашей (brush, рус. кисть). Этот принцип построения пространства называется конструктивной сплошной геометрией. Геометрия может быть «аддитивной»(все пространство изначально «пустое») и «вычитательной» (изначально заполненное материей пространство). Браши делятся на три типа:

  • Сплошные (solid) — полноценно участвуют в двоичном разбиении пространства.

    • Аддитивные (additive) — «заполняют» двоичное пространство.

    • Вычитательные (substractive) — «вырезают» объёмы в пространстве.

  • Полу-сплошные (semi-solid) — не влияют напрямую на двоичное дерево пространства, однако влияют на её физическую модель. Могут только «заполнять» пространство. Служат для создания «невидимых» препятствий, а также снижения числа полигонов и нодов.

  • Пустые (non-solid) — только создают поверхности, не влияют на двоичное дерево пространства. Используются преимущественно для создания объёмов (volume) — часть пространства, которая обладает свойствами, отличными от свойств игрового мира. Объёмы имеют приоритет, свойства объёма с большим приоритетом применяются к находящимся в нём акторам. Игровой мир всегда имеет минимальный приоритет. При помощи объёмов можно изменить гравитацию, вязкость, туман и тому подобное. Объёмы, начиная с версии движка Unreal Engine 2, используются для создания воды (но не водной поверхности).

Версии движка

Сравнение качества детализации персонажей в разных версиях движка

Unreal Engine 1

Дебютировав в 1998 году, Unreal Engine 1 совмещал в одном движке графический движок, физический движок, искусственный интеллект, управление файловой и сетевой системами и готовую среду разработки для игр UnrealEd. Учитывая уровень производительности большинства компьютеров того времени, разработчики несколько упростили некоторые элементы движка: систему обнаружения столкновений (англ. collision detection), сетевой код, код контроллера для игрока.

Некоторые технологии движка Unreal Engine были революционно новыми, например использование Dynamic scene graph (DSG). Эта технология позволяла ряд эффектов для наложения на поверхности:

  • Частично или полностью зеркальные поверхности.

  • Технология варпинга (warp) — возможность при прорисовке заменять изображение одной поверхности проекцией изображения на другую, ей параллельную поверхность. Несмотря на то, что ряд объектов мог беспрепятственно переходить через варп-зоны (например, пущенная игроком ракета), присутствовало большое число ограничений на работу таких зон. Данная технология выглядела в игре как порталы (через которые можно было стрелять и проходить, но они не пропускали звуки), существенно опередившие свое время. Дизайнеры игры добавляли к таким порталам великолепный динамический эффект переливающейся и светящейся поверхности, в результате чего порталы были одной из заметных особенностей Unreal 1.

  • Скайбокс (Skybox) — проецирование на поверхности отрисовки с другой точки. (которая обычно помещалась в небольшую «коробку» с наложенной текстурой неба, отсюда и название Skybox). Проще говоря, отображение не лицевой грани полигонов, а обратной, с заранее наложенной текстурой «неба» на объект. В игре вообще весьма широко использовался прием масштабирования текстур таким способом, что приводило к весьма реалистичным (и самое главное — динамическим, в отличие от игр предыдущих поколений) картинкам окружающей среды. Для сравнения, в Quake3 также было динамичное небо, но в отличие от Unreal, там оно абсолютно не выглядело фотореалистичным (имея кроме того, ошибку в декомпрессии алгоритма S3TC, приведшую к появлению градиентов). Unreal был одной из первых игр, широко использовавших мультитекстурирование, позволявшее (при правильной расстановке источников света и ориентации относительно пререндеренных текстур) добиться эффекта трехмерности поверхностей (хотя истинных технологий Bump mapping в то время не было ещё ни в одной игре).

Особенно хорошо в движке получились невероятно красивые гало вокруг источников света, которые плавно (а не мгновенно) затухали, будучи перекрыты краями стен по мере движения игрока; лава и некоторые текстуры луж воды, в которые падали капли (выглядящие чрезвычайно живыми и динамичными за счёт использования процедурных текстур); и фотореалистичное небо. В целом игра обладала своеобразной графикой, отличающей её от других игр (так как «эпоха похожести» игр друг на друга началась после её появления).

Первоначально движок был выпущен с поддержкой для двух платформ: IBM PC (Windows) и Macintosh. Благодаря модульной системе движка была заявлена возможность портирования движка на приставки «нового поколения» того времени и позже был успешно использован на таких платформах как GameCube, PlayStation 2 и Xbox. Также поддерживалась независимость сетевого кода от платформы клиента — пользователи Mac OS могли играть в многопользовательском режиме Unreal с пользователями Microsoft Windows.

Unreal Engine 1.5

В 1999 году вышла улучшенная версия движка Unreal, предназначенная для современных (на то время) компьютеров и консолей Dreamcast и PlayStation 2. Были внесены значительные дополнения — поддержка лицевой анимации, максимальное разрешение текстур увеличено до 1024x1024, расширяемая система «частиц», технология S3TC. Также была интегрирована вторая версия редактора UnrealEd. Эта версия движка используется в онлайн-шутере Unreal Tournament, и в аркаде «Гарри Поттер и Философский камень».

Через несколько лет группа независимых разработчиков UTPG обратилась к Epic Games за доступом к исходным кодам исполняемых файлов Unreal Tournament, чтобы продолжить поддержку игры. Epic Games приняли предложение и некоторое время команда разработчиков выпускала неофициальные патчи для игры.

Unreal Engine 2

Вторая версия Unreal Engine увидела свет в 2002 году с появлением Unreal Tournament 2003. В ней были практически полностью переписаны ядро и механизм рендеринга, а также интегрирована новая версия редактора UnrealEd 3. Помимо этого, движок использовал физическую подсистему Karma. Другие части движка были также улучшены или изменены для лучшей совместимости с PlayStation 2, GameCube и Xbox.

Появились следующие технологии:

  • Жидкая поверхность (fluid surface) — плоский объект, состоящий из большого числа полигонов, имитирующий поверхность жидкости. Такой объект можно поместить на границу с объёмом воды и он будет искажаться под действием проходящих через него объектов (например, ныряющего игрока).

  • Листва (foliage) — генерируемые на лету объекты, которые декорируют ландшафт (например, трава).

  • Поддержка VoIP — возможность переговоров через микрофон с другими игроками во время игры.

  • Распознавание речи — перевод голоса в текст и обработка как команды (например, возможность отдавать ботам команды голосом). Эта технология использовала Microsoft Speech API и поэтому поддерживалась только в 32-битной версии Windows.

  • Более сложная физика тел, технология «Карма» (Karma) — обработка действия на тела не как действие на один объект, а как действие на скелет (Ragdoll) с привязкой к нему частей тела. У каждого сустава персонажа появились ограничители (вращения), эти ограничители бывают 2х видов: шарнирные и линейные. Линейные могут вращаться только вокруг одной оси, а шарнирные по всем 3-ём. Также само действие на некоторые объекты определяется не по коробкам коллизий, а по сложным моделям, которые также привязаны к скелету. Конечно такая технология использовалась только там где необходимо, например для расчёта взаимодействия с гранатой применялась только сфера коллизий для экономии ресурсов.

  • Физика Ragdoll (как следствие перехода на Karma) — несмотря на то что «скелетная» структура объектов была реализована ещё в первой версии движка, возможность использования физики «тряпичной куклы» появилась только вместе с переходом на новую физическую подсистему.

  • Транспортные средства (vehicles) — возможность обрабатывать события от стороннего актора. В Unreal Tournament 2003 реализованы не полностью, есть недоработанный актор BullDog. Однако есть реализация уровня для UT2003, на котором находится модифицированный актор, выполняющий все функции транспортного средства. Транспортные средства делятся по типам реализаций — неподвижные (стационарные оборонительные установки), составленные из нескольких объектов (Karma vehicle), с использованием скелетной структуры и транспортные средства, прикрепляемые к другим транспортным средствам (например, пулемет на башне танка). Некоторые транспортные средства могу действовать без «пилота», управляемые собственным искусственным интеллектом.

  • EAX 3.0 — движок 3D звука, разработанный Creative Labs.

В связи с переходом на 16-битную графику и использование технологии Karma, использование варп-зон стало затруднено.

Unreal Engine 2.5

В этой версии был в очередной раз улучшен и оптимизирован графический движок — появилась поддержка Direct3D 9, OpenGL 2 и Pixomatic (последняя система рендеринга служит для компьютеров со слабой видеокартой, но мощным центральным процессором). Добавлена поддержка 64-битных операционных систем Windows NT и GNU/Linux. Наиболее возможное разрешение текстур поднято до 4096x4096 пикселов, добавлена полноценная поддержка юникода (16-бит), что позволило создавать полностью локализованные игры на азиатских языках. В более поздних версиях внедрен SpeedTree. Появилась возможность воспроизведения видео в формате DivX и Bink. Кроме того, сам движок был значительно оптимизирован, что позволило добиться большей производительности при тех же системных требованиях.

Эта версия движка была применена в таких компьютерных играх, как Unreal Tournament 2004, Duke Nukem Forever, Killing Floor и во многих других.

Unreal Engine 2X

Специальная версия движка для консоли Xbox. Помимо оптимизации кода, были введены новые визуальные эффекты, такие как depth of field (с англ. — глубина зрения), динамическая гамма-коррекция, bloom и различные вариации blur. Формат текстур был изменен для более реалистичного отображения теней в высоком разрешении, добавлен Memory Tracking, поддержка голосового чата, сервиса Xbox Live а также функция разделения экрана.

Был использован в Unreal Championship и Unreal Championship 2.

Новые специальные эффекты в Unreal Championship (Unreal Engine 2X).

Unreal Engine 2 Runtime

Unreal Engine 2 Runtime является специальной версией движка Unreal Engine 2.0 с ограниченной лицензией. Пользователь может загрузить дистрибутив Windows-версии движка с официального сайта (для других операционных систем необходимо приобрести лицензию). В комплекте поставляется редактор карт UnrealEd, утилита ucc, а также тестовый уровень и небольшой набор моделей и текстур, демонстрирующие возможности технологии «Unreal». Движок бесплатен для некоммерческих проектов а также для использования в образовательных целях (таких как создание 3D-презентаций). Для использования в коммерческих целях требуется приобрести лицензию.

Unreal Engine 3

UE3 был разработан с учетом персональных компьютеров, использующих современные системы рендеринга (DirectX 9/10 и OpenGL 2/3), и консолей следующего поколения (PlayStation 3 и Xbox 360). В связи с широким распространением многопроцессорных систем движок использует два параллельных главных потока — основной поток (отвечающий преимущественно за игровой процесс) и поток рендеринга. Кроме двух главных потоков могут быть вызваны второстепенные, которые выполняют разовые задачи. Появилась поддержка многопоточной динамической загрузки данных (streaming), например, загрузка «локации» непосредственно при перемещении по ней в целях экономии ресурсов.

Обновленный графический движок поддерживает большинство современных технологий, включая HDR, попиксельное освещение, динамические тени, shader model 4, геометрические шейдеры. Сам графический конвейер был переведён под управление шейдеров. От физической подсистемы Karma отказались в пользу иной под названием PhysX от компании AGEIA. Позже AGEIA выпустила набор дополнительных библиотек к игре, позволяющих задействовать все возможности физической системы (такие как эффект «жидкости» или ткани). За анимацию лиц персонажей отвечает механизм FaceFX. Обновлена версия EAX до 5-ой. Добавлена поддержка SpeedTree для генерации деревьев. Упор был сделан на additive-геометрию, однако от поддержки вычитательной геометрии не отказались. Недостатком вычитательной геометрии в первую очередь является гораздо более длительный расчёт освещения. Представлен новый редактор UnrealEd, переписанный с использованием wxWidgets.

Unreal Engine 3.5

В данной версии был добавлен фильтр пост-обработки Ambient occlusion, улучшающий тени и освещения. Было увеличено число обрабатываемых персонажей в кадре. Переработана на новом уровне технология динамической водной поверхности, физика мягких тел и разрушаемое окружение также значительно улучшены.

В марте 2010 года был опубликован анонс новых возможностей движка, которые будут представлены на Game Developers Conference 2010. Одним из основных нововведений является новая система расчёта освещения Unreal Lightmass, использующая глобальное освещение без потерь функций, которые были реализованы в более старых системах освещения. Улучшена работа с многопроцессорными системами — распределение задач между многопроцессорными системами с помощью Unreal Swarm, а также ускорение компиляции кода C++ и обработка Unreal Script за счёт Unreal Build Tool (последнее увеличение производительности коснётся только разработчиков или создателей любительских модификаций). Добавлено собственное средство распространения пользовательского контента — Unreal Content Browser. Будет подробнее рассказано о Unreal Master Control Program — новом мастер-сервере, для обновления клиентов и ведения глобальной статистики, который уже используется в Gears of War 2. В связи с нововведениями Epic Games China планирует продемонстрировать использование движка для массовых многопользовательских онлайн игр.

Unreal Engine 4

18 августа 2005 года вице-президент Epic Games Марк Рейн сообщил, что Unreal Engine 4 уже два года как находится в разработке и его целевыми платформами являются персональные компьютеры и консоли 8-го поколения, а единственным человеком, работавшим над движком, является Тим Свини. Сам же Свини на GDC 2006 объявил, что разработка четвёртого Unreal Engine не начнётся раньше 2008 года, поскольку UE3 будет актуален вплоть до 2010 года.

9 октября 2008 года на TGS группа разработчиков Square Enix сообщила, что они «видели следующий Unreal Engine (Unreal Engine 4)» и «не могут дождаться возможности поработать с ним». Ранее Square Enix выпустила The Last Remnant и «не встречалась с проблемами при работе с Unreal Engine 3».