Что такое игровой движок?




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

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

Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесёнными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok – для физики, FMOD – для звука или SpeedTree – для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения.

Некоторые игровые движки предоставляют только возможности 3D рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D движки упомянуты просто как «3D движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, Power Render, Crystal Space и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены – объектно-ориентированное представление 3D мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.

Чаще всего 3D движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также обычно используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты.

До появления аппаратно-ускоряемой 3D графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования, для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.

 

OpenSceneGraph

 

Разработчики называют OpenSceneGraph кроссплатформеным пакетом для создания графических приложений, в частности, компьютерных игр. Иными словами, движок заточен под игры, но на его основе можно делать еще много чего – например, неигровые программные модули, презентации и другой трехмерный контент.

OpenSceneGraph (далее OSG) – это open source-проект, то есть любой желающий может изменить исходный код инструментария и выложить творение своих рук в интернете. Благодаря этому движок постоянно развивается, чуть ли не ежемесячно в Сети появляются новые модули для OSG. Технология на полную катушку использует возможности OpenGL, который в последнее время набирает все большую и большую популярность среди игростроевцев.

OSG очень быстр, а картинка, которую можно создать даже без использования дополнительных модулей (то есть только при помощи базовых функций движка), вполне может потягаться по красоте с Unreal Engine первого поколения.

Откомпилировать движок можно в Visual Studio 6.0, Cygwin, Mingw и OSX. OSG умело работает с трехмерными моделями форматов.lwo,.obj,.geo,.3ds,.x,.wrl, то есть свободно оперирует с объектами, созданными в любом современном редакторе трехмерной графики (3DS Max, Maya и Lightwave 3D)

Что касается работы с 2D-изображениями, то и тут у движка все в полном порядке: поддерживается большинство распространенных графических форматов, от стандартных.bmp и.jpg до передовых.dds и.tga. Помимо этого, в OSG встроено несколько библиотек для работы со спецэффектами, системами частиц, шейдерами, ландшафтами и навигационными точками освещения.

На основе этого движка можно сделать неплохую трехмерную RPG, несложную пошаговую стратегию, залихватскую аркаду или даже космический симулятор.

 

GLScene

 

Рассмотрим основные возможности движка. Рендеринг осуществляется через библиотеку OpenGL, которая не только в несколько раз превосходит по скорости Direct3D, но и значительно проще в освоении. По сути, вам не нужно профессионально знать программирование, вы просто берете различные компоненты, которые уже спрограммированы за вас, и перетаскиваете их на форму программы. Впрочем, многие команды, функции, переменные и значения атрибутов по-прежнему вбиваются вручную.

Создатели GLScene максимально упростили процесс программирования: например, поворот и перемещение созданных объектов осуществляются с помощью специальных коротких движковых функций, а не посредством длинных команд OpenGL. Создание простых объектов вроде кубов, сфер и простеньких спрайтов также проводится с помощью простейших команд, так что игру уровня первого DOOM можно собрать из базовых форм (самому ничего рисовать не придется). Но для разработки тайтла современного уровня этого, конечно, недостаточно, поэтому GLScene поддерживает импорт 3D-моделей. Основной упор разработчики сделали на универсальный 3DS-формат. Впрочем, не «Максом» единым: OpenGL поддерживает файлы типов.obj/objf,.smd,.md2,.stl,.tin и.ply. «Оживить» объект можно как во внешнем графическом пакете, так и непосредственно из движка — набор для скелетной анимации прилагается.

Но на одних лишь примитивах и трехмерных модельках далеко не уедешь, для создания красивой картинки нужно нечто большее. И оно у OpenGL есть. На данный момент движок поддерживает практически все версии шейдеров, системы частиц (дождь, снег, туман), ряд универсальных программных модулей для создания спецэффектов. GLScene версии 1.0 научился работать с динамическими тенями, эффектами блеска и отражения. В движок были добавлены модули для работы со звуками и музыкой, а также для захвата данных с разных манипуляторов типа джойстиков и клавиатур. Отдельным пунктом идет возможность интеграции с одним из свободно распространяемых физических модулей – ODE.

 

The Nebula Device 2

 

После того как свет увидела игра Project Nomads, Nebula Device набрал популярность и не сбавляет темп по сей день. Многие разработчики выбирают именно его, особенно если собираются делать недорогой экшен или трехмерную аркаду.

Описанные выше игровые движки GLScene и OpenSceneGraph для вывода изображения на экран используют только графическую библиотеку OpenGL, а Nebula Device 2 поддерживает как OpenGL, так и Direct3D (движок по полной использует возможности DirectX 9.0). При этом Nebula Device 2 – кросс-платформенный движок, на нем можно делать игры под PC (Windows и Linux), Mac и даже Xbox.

Совсем уж здорово, что Nebula поддерживает сразу несколько широко распространенных скриптовых языков – TCL, Python и Lua. Но Nebula мало похож на конструктор для начинающих: девелоперы честно предупреждают, что их разработка – это не набор редакторов карт, трехмерных моделей и прочих удобных утилит. Чтобы сделать нормальную игру, вам сначала придется разработать инструментарий, и тут уж не обойтись без команды опытных программистов.

Игровой движок содержит модули для работы с particle-эффектами: огнем, дымом, туманом, дождем... Что касается форматов трехмерных моделей, поддерживаемых движком, то тут-то разработчики преподнесли весьма неприятный сюрприз – движок способен переваривать модели лишь трех форматов –.n3d и.nvx, которые известны только самому движку, и.obj (для импорта моделей такого формата используется специальный плагин).

Зато с 2D-изображениями проблем нет никаких. Nebula Device 2 поддерживает все известные типы графических файлов, начиная с классических.bmp и.jpg и заканчивая.png и.tga-форматами. Если говорить о современных технологиях, то тут стоит отметить, что Nebula Device 2 позволяет работать с динамическими тенями и HDR-освещением.

 

Unreal Engine 3

Предел мечтаний любой игрострой-компании, вот только слишком уж дорого стоит лицензия: движок по карману только самым крупным разработчикам. Давайте посмотрим для сравнения, что же предлагает Epic Games за почти миллион долларов.

UnrealEd – 3D-редактор уровней, созданный на базе Unreal Engine, один из лучших в своем роде.

В UE 3 реализована многопоточная система рендеринга Gemini, что позволяет максимально быстро и четко отрисовывать сцены и выводить на экране картинку в очень высоком разрешении, при этом в реальном времени просчитываются тени и освещение, на изображение накладываются HDR-эффекты, ну а motion blur (размытие) и depth of field (глубина резкости) вообще просчитываются за миллисекунды.

 

Впрочем, о том, что в плане графики движку Unreal Engine 3 нет равных, и без того знает каждый. Вот только это не единственная причина его популярности. Главное преимущество UE 3 – необычайно гибкая и удобная инструментальная база. Большинство программных элементов, которые для других движков нужно либо докупать отдельно, либо программировать самостоятельно, в UE 3 встроены по умолчанию. Смотрите сами: автоматическая генерация карт нормалей, редакторы файлов локализаций, звуков, скриптов, просмотрщики моделей и анимации, а также известный всем модотворцам редактор UnrealEd... Плюс множество конвертеров, плагинов и мини-редакторов всех сортов и калибров. По сути, приобретая лицензию на UE 3, разработчики избавляют себя от необходимости пользоваться какими-либо другими программными продуктами, кроме 3DS Max. Так что, несмотря на высокую цену движка, вложения вполне могут окупиться.

Отдельно стоит упомянуть модуль обработки физики – в Unreal Engine 3 в его роли выступает физический движок AGEIA PhysX, благодаря которому, собственно, и обеспечивается красивое падение тел персонажей, реалистичное передвижение транспортных средств, скольжение и другие геймплейные прелести.

Написание новых скриптов в UE 3 осуществляется двумя различными способами – путем визуального и обычного программирования. И если со вторым методом все более-менее ясно, то первый нуждается в некоторых пояснениях. Авторы внедрили в движок специальный модуль UnrealKismet для визуального программирования, освоить который сможет практически любой пользователь. Запускаете приложение, создаете новый файл и начинаете выстраивать цепочку из данных вам логических блоков. Например: NPC A – двигаться к отметке X, попытаться убить игрока, сесть в автомобиль и скрыться с места преступления. Замечаете? Программисты полностью избавлены от необходимости программировать скрипты с нуля, это дает колоссальный выигрыш времени.

Quest3D

 

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

Движок Quest3D превосходно справляется с рендерингом сцен. Водные поверхности, тени, отражения здесь ничуть не хуже, чем в других, куда более дорогих движках.

Quest3D поддерживает графическую библиотеку OpenGL, лихо справляется с обработкой теней и освещения в реальном времени, поддерживает HDRI-эффекты, DirectX-шейдеры, бампы, карты нормалей и другие графические технологии, реализованные в DirectX 9 (с DirectX 10 движок пока не дружит).

Но главный козырь этой многофункциональной системы – возможность визуального программирования приложений. Даже пользователь, никогда ранее не работавший с игровыми движками, в Quest3D сможет за несколько месяцев, а то и недель, собрать простенькую игру. Все, что от него потребуется при визуальном программировании, – умение работать с базовыми блоками (отвечающими за инициализацию сцены, расстановку источников освещения и так далее) и выстраивать логические цепочки. Ну а если вы опытный программист, то можете писать свой собственный код, используя скриптовый язык программирования LUA.

 

Заключение

 

В этой работе я рассмотрел основные тенденции развития компьютерных игр, а также последние версии программных средств для разработки игр.

Вывод краток и прост время графических как локомотивов, вытягивающих игры на верхушки хит-парадов, проходит. Красивая графика и реалистичная модель мира – это то, что сейчас уже является требованием по умолчанию. Да, совершенствовать "упаковку" можно будет до бесконечности, но революционных шагов в этом плане ожидать не стоит. Через пару лет новшества уже будет трудно разглядеть невооруженным глазом даже после большой рецензии со скрупулезнейшим разбором игры.

 

Литература

 

1 Гродек П. Как все начиналось. – [Электронный ресурс]

https://www.computer-museum.ru/games/genesis.htm.

2 Компьютерные игры. Как это делается. – Серия «Библиотека game.xe». – Логрус.РУ, 2000.

3 Все о DirectX. – Журнал Computerbild № 19 / 2007.

4 Что такое компьютерная игра и куда мы движемся? – Журнал “Игромания” №12/51 2001.

5 Игровая индустрия на рубеже. – Журнал “Игромания” №1/100 2006.

6 Игровой движок. – [Электронный ресурс] Материал из Википедии – свободной энциклопедии.

7 Индустрия компьютерных игр "сегодня" и "завтра".

[Электронный ресурс]https://www.x-sky.ru/2008/03/29/industrija-kompjuternykh-igr-egodnja.html#

8 Антон Звягинцев. – [Электронный ресурс] Обзор DirectX9. https://www.gamedev.ru/articles/read.shtml?id=10102

9 Обзор OpenGL. – [Электронный ресурс]

https://www.csportal.ru/print.php?article=Obzor-OpenGL&place=gd

10 Библиотека OpenGL. – [Электронный ресурс]

https://www.csportal.ru/print.php?article=Osnovi-1-biblioteki-OpenGL&place=gd

11 Пламенные моторы, часть 2. – Журнал “Игромания” №3/126 2008

12 Пламенные моторы. – Журнал “Игромания” №11/122 2007

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-01-14 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: