01 декабря 2007
Обновлено 17.05.2023

Пламенные моторы. Бесплатные игровые движки

Пламенные моторы. Бесплатные игровые движки - изображение обложка

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

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

Современная индустрия предлагает на выбор полный спектр движков. От недорогих полукоммерческих стоимостью $3-7 тыс. до навороченных монстров вроде Source и Unreal по $700-800 тыс. Таких денег иногда нет даже у компаний, прошедших этап становления и выпустивших несколько игр.

Для начинающих девелоперов выход очевиден — бесплатные игровые движки. Сегодня мы детально рассмотрим три самых популярных технологии с крайне привлекательными условиями лицензирования. На их основе вы можете создавать как бесплатные, так и коммерческие тайтлы.

OpenSceneGraph

ОФИЦИАЛЬНЫЙ САЙТ: www.openscenegraph.org

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

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

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

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

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

С официального сайта OSG можно скачать отличную документацию на английском. Разработчики движка подробно описывают процесс установки и компиляции и разбирают множество практических задач. Там же вы найдете FAQ — ответы на наиболее часто задаваемые вопросы. Впрочем, не стоит ограничиваться только официальным сайтом, в Сети достаточно русскоязычных ресурсов с детальными описаниями принципов работы с OSG.

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

GLScene

ОФИЦИАЛЬНЫЙ САЙТ: www.glscene.org

С момента последнего упоминания о GLScene в нашем журнале прошло более года. За это время движок проделал длинный путь через многочисленные альфа и бета-версии к долгожданной версии 1.0. Если вы не читали «Игроманию» в 2005 году, то напомним, что GLScene — это многофункциональный игровой движок, написанный под Delphi/Kylix. На нем было выпущено большое количество как коммерческих, так и бесплатных игровых проектов.

Популярность GLScene была очень высока, даже когда он был эдаким конструктором для начинающих, где диаметры гаек не подходили к болтам, а деталей было значительно меньше, чем нужно для полноценной работы. Сейчас же, когда движок доведен до ума, все больше профессиональных разработчиков обращает на него внимания и по мере сил помогает совершенствовать GLScene.

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

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

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

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

The Nebula Device 2

ОФИЦИАЛЬНЫЙ САЙТ: www.nebuladevice.org

После того как свет увидела игра 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-освещением.

И на закуску буквально пару слов по поводу документации. Справочной информации по Nebula Device 2 в Сети довольно много, но вот единого хелпа вы не найдете. Стандартная справка тоже не поможет разобраться с движком: в ней есть только список основных функций и базовых файлов, идущих в комплекте с движком.

В целом Nebula Device 2 не идеален (трудности при работе с 3D-моделями, отсутствие нормальной документации), но если вы хотите сделать игру современного уровня, то мы рекомендуем вам воспользоваться именно этим движком.

Бесплатные движки Мнение профессионалов

Чтобы расставить все точки над i с бесплатными движками, мы обратились за разъяснениями к разработчикам. Кому как не им знать, что представляют собой бесплатные движки: наверняка они не раз решали проблему — купить дорогой движок, разработать свой или… взять бесплатный.

Своими знаниями с нами поделился Евгений «GEorGE» Новиков , управляющий директор KDV Games (работал над играми « Самогонки », « Периметр », Maelstrom ). Со стороны «Игромании» в обсуждении принимали участие Светлана Померанцева и Алексей Макаренков.

Профессионалы и не очень

Создание собственного движка — дело крайне сложное, а главное, на это уходит уйма времени. Нередки случаи, когда на движок уходит полтора-два года, а на разработку самой игры — всего год. Так не проще ли всем разработчикам использовать уже готовые платные или бесплатные движки? Зачем мучиться самому, если все уже давно сделано, знай себе раскошеливайся (или, наоборот, экономь)?

[Игромания]: Насколько часто бесплатные движки используются профессиональными разработчиками? В каких случаях? Или подобная практикаудел начинающих игростроевцев?

[GEorGE]: Все движки условно можно разделить на два класса. Для поддержки форматов/различных сервисов и так называемые комплексные системы. Те, что для поддержки форматов, — это небольшие движки для внедрения в игру файлов различных расширений. Такая технология обычно основана на собственном коде или комплексном движке, не поддерживающем требуемый формат самостоятельно. Комплексный же движок — это общая система библиотек и инструментов, на базе которой можно создавать законченный продукт.

Оба вида движков могут быть как платными, так и бесплатными. Мы в KDV любим создавать и продвигать собственные комплексные технологии, но мы также активно используем и сторонние движки для поддержки нужных форматов и сервисов. Чаще всего это платные технологии — такие, как GameSpy , Bink , DemonWare. Хотя есть и исключения. Например, движки, поддерживающие формат OGG или 7-Zip , бесплатны.

Что касается бесплатных комплексных движков, то полагаю, что опытные разработчики их почти не используют. А вот академический интерес они представляют — мы не упускаем шанса изучить некоторые технологические решения других разработчиков, а в бесплатных движках таких очень много.

Многие начинающие девелоперы наивно считают, что если они покупают движок или берут бесплатный, то это автоматом избавляет их от проблем кодинга, скриптинга и много чего еще. На самом деле это, конечно, не так. Практически всегда движок требует тщательной доработки, в некоторых случаях приходится переписывать его чуть ли не с нуля. И тем не менее базовые наработки — это уже что-то, от них можно отталкиваться, модифицируя ядро движка под свой проект. Ведь основные задачи разработчики уже решили.

[Игромания]: Что прощенаписать свой собственный движок с нуля или полностью переработать уже существующий бесплатный?

[GEorGE]: К сожалению, чаще всего молодые и амбициозные разработчики стараются написать движок с нуля, в то время как профессионалы, напротив, пытаются максимально использовать уже имеющиеся наработки. Если бы сейчас перед нами стоял подобный выбор, то мы бы, конечно, выбрали самые лучшие из бесплатных движков и переработали бы их, соединив все лучшее для использования в своем проекте.

Издержки халявы

И все же, и все же… Бесплатные движки, многие из которых вполне могут потягаться с коммерческими аналогами, существуют не первый год, а популярность их держится на одном и том же, далеко не на самом высоком, уровне. Что же мешает использовать бесплатные технологии? Неужели халявный сыр бывает только в мышеловках?

[Игромания]: Есть несколько показательных примеров, когда на бесплатных движках делались очень качественные и коммерчески успешные игры. Самый известный случайProject Nomads, разработанный Radon Labs в 2002-м году на бесплатном движке Nebula Device. Тем не менее бесплатные движки все равно мало кто использует. Что этому мешает?

[GEorGE]: На мой взгляд, есть три причины, мешающие использованию бесплатных движков:

1. Отсутствие поддержки со стороны создателя — бесплатный, значит, никто за движок и его содержимое ответственности не несет;

2. Неполноценность — бесплатные движки не являются комплексными, то есть, как правило, в них не хватает всех необходимых для создания законченного продукта инструментов;

3. Ограниченность возможностей для геймдизайна — обычно бесплатные технологии поддерживает лишь несколько известных и часто используемых игровых элементов.

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

Да, у бесплатных движков хватает минусов, но мы не понаслышке знаем, что и их коммерческие собратья не лишены недостатков. Давайте разберемся, чем минусы платных движков отличаются от минусов бесплатных.

[Игромания]: Есть ли какие-то минусы у платных дорогих движков? Например, Unreal, Source?

[GEorGE]: Как ни странно, минусы практически те же, что и у бесплатных движков: плохая поддержка, недостаток инструментов и гибкости. Только в случае очень дорогих движков вы получаете такие серьезные бонусы, как стабильность кода, кросс-платформенность, ну и конечно, маркетинговый бонус — вроде « кто на нас с Васей Анриловским?! ».

[Игромания]: Цена на топовые коммерческие движки начинается от $200-300 тыс. В каких случаях проще купить, а когда лучше разработать свой собственный движок?

[GEorGE]: Думаю, самое главное — здраво оценивать возможности собственной команды, время, отведенное на проект, и финансовые возможности всего предприятия. Комбинация этих трех переменных должна точно указать на правильный вариант ответа. Хотя возможны исключения — например, дорогой движок может быть использован, чтобы переориентировать команду на разработку игр нового, непривычного для девелоперов жанра, или на новую платформу. В данном случае это сэкономит время, которое будет потрачено на разработку игры.

Мы уже выяснили, что грань между коммерческим и полностью бесплатным движком довольно тонка. Есть переходные варианты, некоторые некоммерческие проекты зачастую лучше коммерческих. Так все же в чем еще смысл использования платного движка?

[Игромания]: Велика ли разница между бесплатными движками и недорогими коммерческими?

[GEorGE]: Главная разница — поддержка со стороны создателя движка. Платные движки, как правило, обеспечены хотя бы минимальной поддержкой, и это экономит уйму времени.

К примеру, KDV лицензирует недорогой комплексный движок QD Engine для создания игр-квестов. На этом движке уже выпущено около дюжины проектов. Уверен, что такая продуктивность — результат гибкой поддержки движка с нашей стороны. К каждому проекту движок обрастал новыми возможностями, становился более стабильным, что заметно облегчало жизнь дизайнеров.

Уверен, если бы движок был бесплатным, то есть без поддержки, на нем сделали бы куда меньше игр.

Взгляд в будущее

Иногда создается впечатление, что бесплатные движки отживают свой век. Пройдет год-два, и они будут полностью вытеснены платными, пускай и не очень дорогими аналогами. Вот только это ощущение было и два, и три, и даже четыре года назад, а бесплатные движки по-прежнему живут и здравствуют.

[Игромания]: Как вы оцениваете будущее бесплатных движков? Какая участь им уготована?

[GEorGE]: Думаю, бесплатные движки будут появляться постоянно. Это такие сгустки свободной энергии, эффективное использование которой в той или иной форме — важная и интересная задача даже для опытных разработчиков.

[Игромания]: А как вообще идет развитие middleware? И как у них будут обстоять дела с кросс-платформенностью?

[GEorGE]: Middleware — это, скажем так, консолидация опыта многих человеколет. И всем нужно учиться использовать этот опыт, хотя желающих пока слишком мало. Поэтому процесс развития middleware сложный, но очень нужный: нам, разработчикам, жизненно необходим единый формат производства. Это, конечно, не панацея ото всех бед, но middleware заметно повышает эффективность работы.

То же касается и кросс-платформенности. Все должно стремиться к единообразию. И если платформы пока продолжают спорить, чей путь вернее, то одна из основных задач движков — наводить мосты между непримиримыми конкурентами. В итоге выигрывают разработчики, потому что они могут работать над игрой, а не тратить время на решение частных технических проблем. За middleware будущее.

Проблема большинства бесплатных движков — малое число поддерживаемых форматов. Начинающий игростроевец, возможно, и выбрал бы для своего проекта Nebula, но он адекватно воспринимает только формат моделей .n3d. Это для продвинутых девелоперов не проблема освоить любой формат, но им-то как раз не нужны бесплатные движки.

[Игромания]: Поддержка различных форматовэто проблема только бесплатных движков, или их платные собраться тоже не всегда умеют поддерживать все необходимые расширения? Например, бесплатный движок Nebula Device 2 подошел бы многим начинающим девелоперам, но он умеет работать только с 3D-моделями в форматах .n3d, .nvx, и .obj.

[GEorGE]: В общем случае это проблема для всех. Выбирая движок, стоит трезво оценить все его плюсы и минусы, в том числе и набор поддерживаемых форматов. Если выбирать не приходится, то нужно осваивать тот формат, который поддерживает движок.

[Игромания]: С каждым годом игры становятся все сложнее. И часто получается, что команда разработчиков не делает игру с нуля, а просто собирает эдакий конструктор, каждая деталь которого создана кем-то еще. Модельки и текстуры творят аутсорсеры, движок покупается, музыка заказывается профессиональным композиторам, сценарий пишут профессиональные писатели… Так во что же превратятся девелоперские компании в будущем?

[GEorGE]: Так это же здорово! Каждый должен делать то, что умеет лучше всего. Разработчик игры должен создавать игру, то есть комбинацию контента, сценария, музыки и прочего, связанную интересным игровым сюжетом. Чем больше разработчики игр будет думать о самих играх и меньше энергии тратить на насущные проблемы — выбор форматов, моделлинг, детализацию сюжета, расписывание диалогов, кодирование современного рендера, физику, инструменты и прочее, — тем больше будет качественных и интересных игр.

* * *

Сегодня мы рассмотрели три бесплатных движка, которые чаще всего задействуют начинающие и даже продвинутые разработчики компьютерных игр. Но для их использования необходима слаженная команда: геймдизайнер, программисты, художники, 3D-моделлеры… В общем, полный набор сотрудников.

Но как быть, если игру сделать хочется, но сильно напрягаться по этому поводу желания нет? С одной стороны, рыбку без труда из пруда ни за что не вытянешь, но есть и полумеры. Если вы хотите разработать игру самостоятельно, в гордом одиночестве, то вам на помощь всегда придут 3D-конструкторы. В них даже геймер, ничего не понимающий в программировании, может за несколько месяцев или даже сделать сносную аркаду или пошаговую стратегию.

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

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь