Guest3d.wohlnet.ru
некоммерческий проект, цель которого объединить профессионалов для обмена опытом и знаниями в области real-time рендеринга
guest3d
Quest3D — все в одном (Игромания)

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

Выдержки из статьи Пламенные моторы, часть 2 публикуется с разрешения редакции журнала "Игромания". Автор Эдуард Клишин.

Quest3D — все в одном

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

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

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

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

Что еще интересного в Quest3D? Движок умеет обрабатывать сцены практически из любого числа полигонов (во многих дешевых движках стоит ограничение в 500-800 тыс.), лишь бы процессор и видеокарта справились с нагрузкой. Есть очень удобная система поиска путей, возможность экспорта созданной игры или другого приложения в независимый exe-файл. Ах да, чуть не забыли упомянуть, что в Quest3D встроен прекрасный сетевой модуль и поддержка MySQL и ODBC. Это означает, что вы, например, запросто можете сделать трехмерную презентацию, игру или другое приложение, доступ к которому будет осуществляться прямо из окна браузера.

Выпускается Quest3D в трех различных редакциях — Creative Edition (цена — 999 евро), Power Edition (2499 евро) и VR Edition (9999 евро). В принципе, начинающим игростроителям базовой версии будет более чем достаточно: в ней отсутствует поддержка VR-оборудования и систем управления с обратной отдачей (рулей и джойстиков), возможность создания сетевых приложений и рендеринга водных поверхностей. Power Edition и вовсе отличается от полной версии лишь поддержкой VR-оборудования — согласитесь, поддержка всевозможных 3D-очков и перчаток не так уж важна.

Приобрести Quest3D можно либо на сайте http://quest3d.com, либо у официальных дилеров (список приведен на том же сайте). Совсем недавно в Сети начал работать сайт русской поддержки движка — www.quest3d.biz. Материалов на нем пока не очень много, но через некоторое время разработчики обещают разместить там кучу статей и уроков.

Трехмерный квест

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

По части технологий движок, конечно, уступает топовым решениям вроде UE 3 или Source — это немного другие весовые категории, да и как конструктор для новичков он чуть похуже, чем Dark Basiс. Но вот столь необычного сочетания возможностей, как в Quest3D, нет ни в одном другом движке.

Чтобы узнать побольше конкретно о Quest3D и о нише недорогих игровых движков в целом, мы обратились к директору компании Act-3D (создатели движка) Ремко Якобсу.

Тернии классификации

[«Игромания»]: Ремко, а к какой вообще категории инструментов относится Quest3D? Вроде бы и движок, но при этом есть визуальная среда программирования, приближающая его к категории игровых конструкторов.

[Ремко]: На конференциях разработчиков программного обеспечения мне часто задают этот вопрос. Если честно, я не знаю, что ответить. Quest3D, наверное, нельзя отнести ни к одной из категорий. Мы привыкли называть свое детище многофункциональной системой для разработки real-time-приложений — это, видимо, и есть самое точное определение.

То есть мы имеем не движок, но и не конструктор. Мы ведь специально скрестили эти два типа программ, чтобы разработчики игр и утилит могли выбирать, как им удобнее всего работать. Даже у матерых программистов не всегда есть время, чтобы писать с нуля весь код программы. Да это и не нужно. Кодировать с нуля нужно только то, что до этого не было сделано кем-то идеально. А если есть идеал, зачем изобретать велосипед? Поэтому даже профессионалы зачастую пользуются заложенным в Quest3D модулем визуального программирования: просто перетаскивают на форму новые элементы. Вас же не удивляет, что, например, в Delphi вшито множество готовых моделей! Вот и у нас в движке есть некий набор кирпичиков, которые можно подгрузить в любой момент.

Quest3D имеет очень логичную и удобную древовидную структуру.

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

В скором времени мы планируем выпустить четвертую версию Quest3D, вот там будет куда больше внимания уделено разработке больших проектов, в частности игр. Ведь одна из главных проблем крупных девелоперов — упорядочивание информации. Это же огромное количество папок, файлов, графики. И все это взаимосвязано друг с другом на самом различном уровне. В Quest3D 4.0 работать с тысячами элементов будет довольно просто: можно объединять файлы и папки в группы, тасовать их и, что самое важное, в любой момент можно будет посмотреть, что куда переместилось и с какими файлами взаимодействует.

[«Игромания»]: То есть Quest3D — не только игровой движок? Почему тогда про него чаще всего упоминают именно геймдевелоперы?

[Ремко]: Правильнее будет сказать, что про Quest3D и разработчики игр тоже говорят часто. А так наш движок достаточно популярен среди архитекторов, на телевидении, с его помощью создаются обучающие программы и презентации, даже для создания прототипа «виртуальной реальности» его кто-то лицензировал. При этом, обратите внимание, такая универсальность почти не умаляет игровых возможностей движка.

[«Игромания»]: Для игр какого жанра больше всего подходит Quest3D? Можно ли собрать на его базе, к примеру, сложный экшен типа GTA: SA или красивую RTS?

[Ремко]: Quest3D не накладывает никаких жанровых ограничений на разработчиков. С одной стороны, это хорошо. Обратите внимание, на многих игровых движках — даже на самых лучших вроде серии Unreal Engine — создаются визуально и технически очень похожие игры. Один движок — один тип игры. Стратегический движок почти невозможно заточить под разработку экшена, в свою очередь, экшен-движки малопригодны для стратегий.

Мы же старались сделать продукт, на котором можно создавать игру любого жанра. Впрочем, оговорюсь. Для разработки чего-нибудь в духе GTA 4 необходимо продумать множество деталей и написать специальные функции, которые позволят обрабатывать огромные 3D-сцены с динамическими объектами. К сожалению, в Quest3D такого количества функций нет. Это не значит, что на нашем движке нельзя разработать столь сложную игру, это лишь означает, что довольно много элементов, классов, функций и структур вам придется разработать самостоятельно.

Дорожки разные бывают

[«Игромания»]: Принято считать, что для создания лучшей графики в играх обязательно нужен либо UE 3, либо Source? Так ли это? А что же более дешевые движки? Вот, например, ваш Quest3D в плане графики на что способен?

[Ремко]: Знаете, отчасти это мнение верно. Если игровой движок создавался с акцентом на рендеринг бесподобной картинки, то — вот тут внимание! — с его помощью сделать эту самую картинку будет проще. Но это совсем не значит, что такой же визуализации нельзя достигнуть при помощи других движков. Просто это будет несколько сложнее и дольше.

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

Quest3D поддерживает все без исключения технологии DirectX 9: это и шейдеры, и HDR-эффекты, и бампы с параллаксом, и анизотропное сглаживание. А раз есть поддержка всего этого, значит, можно создавать игры уровня Unreal Tournament 3, Gears of War, Call of Duty 4. Вот до Crysis наш движок пока не дотягивает, но для этого нужна поддержка DX 10. Мы могли бы добавить ее в движок, но пока не планируем. Это может отпугнуть наших постоянных клиентов, разработчики массово пока не переходят на DX 10. Скажу больше: до того момента, пока DX 10 начнет править балом, пройдет еще минимум полтора-два года. Технология не обкатанная, а в DX 9 сейчас любой разработчик ориентируется как у себя дома. Да и с точки зрения производительности девятая версия куда лучше.

[«Игромания»]: Как реализована поддержка физики в Quest3D, можно ли интегрировать данный движок со сторонними физическими библиотеками?

[Ремко]: Текущая версия Quest3D поддерживает физическую библиотеку ODE, которая отлично подходит для обыгрывания стандартных «физических» ситуаций. Однако с релизом четвертой итерации Quest3D мы интегрируем в программу так называемый «ньютоновский» физический движок — Newton Game Dynamics. Он позволит разработчикам вытворять с физикой все что угодно. В «ньютоновском» движке огромное количество специальных управляющих функций, так что можно хоть невесомость моделировать, хоть миры, где гравитация направлена в самые разные стороны.

[«Игромания»]: Начинающие разработчики любят задавать вопрос, сколько полигонов может обработать тот или иной движок. Как с этим обстоят дела у Quest3D?

[Ремко]: Ну, начинающие разработчики вообще любят задавать много неправильных вопросов. Число полигонов в сцене актуально для 3D-моделлеров. Вот в ZBrush можно сделать модель фантастической детализации из нескольких миллиардов полигонов, а в каком-нибудь Blender уже не получится. Тут важно число полигонов.

А игровым движкам, даже бесплатным, по большому счету неважно, сколько полигонов в кадре. Было бы железо нормальным, да про оптимизацию разработчики не забыли. Как вы уже догадались, в Quest3D тоже нет никакого ограничения по числу полигонов, хоть сто миллиардов подгрузите — движок справится. Только вот fps будут в районе «один кадр в час», но просчитать — не проблема.

[«Игромания»]: Одна из проблем при работе практически с любыми движками — создание трехмерных моделей. В каких-то движках можно использовать 3DS Max, где-то прилагаются специальные редакторы или конвертеры из популярных форматов. Почему вообще такой разброд и шатания? Неужели нельзя стандартизировать?

[Ремко]: Да, было бы неплохо привести все к единому стандарту, только вот не получается. Конвертирование 3D-моделей — один самых сложных этапов, идеального решения попросту нет. Были бы все движки спрограммированы одинаково, было бы другое дело. А так код везде разный, оптимизация проходит по разным принципам. Вот и получаются нестыковочки.

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

В Quest3D трехмерные модели можно загрузить следующими способами.

— Наиболее простой вариант — экспортировать созданные модели в 3DS X- или LWO-файлы и напрямую подгрузить их в Quest3D. Встроенные импортеры 3D-объектов идеально настроены и отлажены, они позволяют без ошибок подгружать в редактор затекстурированные модели, с закрепленной за ними skinning-анимацией.

— Можно использовать для перегонки специальную программу Polytrans, интегрированную в Quest3D. Она умеет работать с огромным количеством форматов, но есть своя проблема: не все форматы идеально адаптируются под движок. Мы, конечно, исправляем ошибки, но работы еще непочатый край.

— У нас есть специальный плагин под 3DS Max для экспорта моделей в формат движка Quest3D. Но тут, сами понимаете, речь идет только о «Максе», если вы привыкли работать в другом моделлере, то плагин вам не пригодится. Хотя нет, можно конвертировать файл из какого-нибудь моделлера сначала в «Макс» (независимых редакторов хватает), а затем уже в Quest3D. Но это как-то слишком уж долго.

— Ну и, наконец, последний на данный момент вариант — использовать специальный модуль импорта Collada, который появится в Quest3D 4.0.

Тонкости освоения

[«Игромания»]: Давайте поговорим о «конструкторской» части вашего движка. Ведь похожих программ много, расскажите, сколько времени нужно неподготовленному пользователю, чтобы освоить конструктор, встроенный в Quest3D, и сделать на нем несложную игру?

Прототип трехмерного экшена, созданный в Quest3D менее чем за месяц.

[Ремко]: Новичку, ранее вообще не работавшему в Quest3D, на разработку простейшей игры понадобится около недели. Опытный девелопер сможет создать примитивную аркаду буквально за 1-3 дня. Я немного утрирую, на самом деле все зависит от изначальной подготовки пользователя. Если он вообще не знает программирования, то даже над банальной головоломкой придется попотеть недели три.

Мы, кстати, не раз проводили эксперименты. Давали Quest3D пользователям, не знакомым с программированием, и смотрели, что у них получится. Бывало, что у кого-то процесс создания маленькой игры растягивался на месяц, но не было ни одного случая, чтобы у людей вообще ничего не получалось.

[«Игромания»]: Теперь вопрос из области высоких материй. Допустим, команда разработчиков сделала на основе Quest3D вполне приличную игру, выпустила ее на дисках, неплохо заработала. А можно ли сделать на движке инструментарий к игре — редакторы карт, моделлеры, конвертеры?

[Ремко]: Вполне. Я уже говорил про Newton Physics, это отличный пример инструмента, написанного с использованием SDK. Модули и плагины мы тоже делаем в SDK, так что тут волноваться не стоит. В других не очень дорогих движках эта функция тоже обычно есть.

[«Игромания»]: Немного банальный вопрос, но все же. Почему разработчики по всему миру поголовно работают под DirectX?

[Ремко]: Я так понимаю, что ваш вопрос с двойным дном? Правильнее было бы спросить, почему DirectX (точнее, Direct3D) побеждает OpenGL. Ну, во-первых, не так уж и побеждает. На игровом фронте — да, а вот многие программы и трехмерные презентации пишутся именно под OpenGL, у этой библиотеки есть свои преимущества.

Мы когда-то думали сделать поддержку и того, и другого, но столкнулись с рядом сложностей: чтобы движок мог работать с Direct3D и OpenGL одновременно, надо вносить в него множество искусственных ограничений. В итоге мы выбрали DirectX, потому что эта графическая библиотека поддерживается большинством производителей железа. Думаю, не последнюю роль тут сыграла маркетинговая политика Microsoft. Хорошо это или плохо — не нам решать, мы работаем с тем, что есть, а DirectX очень удобен.

Если у вас есть материалы, или вы хотите дополнить существующие, если вы хотите писать новости относящиеся к технологиям реалтайм рендеринга, или имеете полезные файлы, вы можете стать резидентом guest3d.wohlnet.ru. Для этого нужно написать письмо в свободной форме на den@wohlnet.ru, с указанием вашей мотивации. Кроме того, каждый резидент получает возможность создать свою страницу, ссылка на которую будет прикреплена к каждому опубликованному вами материалу.
вход