трехмерные моторы TONY (PORCO@ARGENTINA.COM) Спецвыпуск: Хакер, номер #064, стр. 064-080-1 САГА О ДВИЖКАХ: КУРС МОЛОДОГО БОЙЦА ЕСЛИ ПРОВЕСТИ АНАЛОГИЮ С АВТОМОБИЛЕМ, ТО ИГРОВОЙ ДВИЖОК — ЭТО НЕ СОВСЕМ ТО ЖЕ, ЧТО ДВИГАТЕЛЬ ВНУТРЕННЕГО СГОРАНИЯ. СКОРЕЕ, СОВОКУПНОСТЬ СИЛОВЫХ ДЕТАЛЕЙ КУЗОВА, ПОДВЕСКА И, ЕСТЕСТВЕННО, САМ ДВИГАТЕЛЬ. НА ПОЛУЧИВШИЙСЯ СКЕЛЕТ РАЗЛИЧНЫЕ ПРОИЗВОДИТЕЛИ НАВЕШИВАЮТ ДЕТАЛИ ЭКСТЕРЬЕРА И ИНТЕРЬЕРА, КОТОРЫЕ И ПОСТУПАЮТ КОНЕЧНОМУ ПОТРЕБИТЕЛЮ Исторически сложилось так, что игровым движком принято называть совокупность программных абстракций, с которой работают программисты ИИ (искусственного интеллекта), моделлеры физического поведения игрового мира и программисты шейдеров (они же — создатели игрового контента). бестиарий Часто случается так, что жизненный цикл игрового движка прекращается на первой же игре — уже в момент выпуска движок является морально устаревшим. Конечно, с точки зрения экономии ресурсов это абсолютно неправильно, но сложившиеся правила игрового бизнеса не позволяют перевести старый программный код на новые аппаратные рельсы. Так было не раз, и, думаю, так будет и в будущем. Ты, наверное, воскликнешь: «Как же, черт побери, хорошо работать на игровых консолях!» И в какой-то мере ты прав. Для повторного использования кода на консолях есть гораздо больше пространства, если учесть, что жизненный цикл игрового железа составляет не два-три года, как на PC, а в несколько раз больше. Однако в кустах нас поджидает парочка жирных и хищных «но». Во-первых, не так просто пробраться на консольный рынок, там нас ожидает строгий face-контроль платформодержателя, а игру ждут пытки, по сравнению с которыми испанская инквизиция покажется сборищем воспитательниц детского сада. Во-вторых, стоимость разработки под современную консоль значительно выше, чем под PC, хотя, конечно, можно сорвать больший куш, но, впрочем, это не тема статьи. Ты тут же вспомнишь о RenderWare, Unreal Engine, Source и прочих монстрах геймдела. Как же так? Эти технологии имеют длительный жизненный цикл! Не забывай, что эти движки разрабатывались опытными командами от крупных компаний, которые зашибают основные деньги на лицензировании и поддержке своих продуктов. Примечательно, что на просторах нашей необъятной крупные игроки рынка наконец осознали, что могут зарабатывать деньги подобным же образом. Собственно, кроме предоставления технологий, они обеспечивают продюсерское участие в проектах молодых студий, что позволяет начинающим командам избежать типичных ошибок новичков. Конечно, пока качество отечественных движков оставляет желать лучшего — как в плане качества картинки, так и в плане производительности. Будем надеяться, что рано или поздно наше отставание от капиталистов будет ликвидировано, особенные надежды возлагаем на недавние экспансии иностранных инвестиций в наш игропром. толстый огр Впрочем, спустимся с небес на грешную землю и вернемся к нашим баранам. Для молодых команд (буржуи называют их Indie team — пока молодая и пока независимая компания) многие компании предоставляют солидные скидки на свои технологии. Кроме того, существует масса бесплатных открытых движков, которые вполне пригодны для создания современных игр. Типичный пример — Ogre 3D (Open source graphics engine), к использованию которого примеряются многие начинающие игроделы. К слову, существует русский ресурс, посвященный Ogre (www.ogre3d.org.ru). Еще одно «кстати»: недавно (в декабре 2005) питерская студия Lesta выпустила игру «Стальные Монстры», сделанную на этом движке. Выбор Lesta оправдан, поскольку Ogre — объектно ориентированный кросс-платформенный движок (Windows и Linux), который развивается и поддерживается разработчиками (сейчас они уже перевалили за версию 1.0.6). В качестве рендера в Ogre используются DirectX 7.0, DirectX 9.0, и openGL 1.5, что, с одной стороны, обеспечивает солидную гибкость, с другой — порождает рыхлый исходный код движка с массой лишних классов-wpapper'ов. Движок поддерживает различные шейдеры: Cg, HLSL, GLSL (к примеру, используется развитая идеология материалов). Для экспорта мешей из 3D-редакторов существует масса экспортеров, поддерживаются следующие редакторы: Milkshape3D, 3D Studio Max, Maya, Blender и Wings3D. Возможно использовать скелетную анимацию и прогрессивные меши. Менеджмент сцены организован просто и в то же время гибко, имеются объекты сцены, предопределенные на многие случаи жизни, поддерживаются алгоритмы BSP и Octree. Реализовано несколько алгоритмов построения теней. Поддерживаются системы частиц и несколько алгоритмов отображения неба. Функциональность движка легко расширяется за счет того, что он реализован по объектно ориентированным принципам и поддерживает развитую систему плагинов. |