Game Maker & Xtreme3D Экстремальные впечатления Без сомнения, все мы мечтали создавать трехмерные игры. Для многих эта мечта стала реальностью, для многих — нет, но в любом случае речь пойдет о том, мимо чего пройти просто невозможно любому. В наш век неустанно развивающихся технологий, когда уже физически нельзя угнаться за всем, что появляется на арене игровой индустрии, так трудно найти что-то реально оправдывающее свою цену. Особенно это касается мира freeware, где понятие «передовые технологии» давно позабыто и редко вспоминается. В коммерческой среде всегда пожалуйста — вот тебе Dark Basic, вот 3D Game Studio A7, а вот недавно вышел FPS Creator X10 с поддержкой наиболее продвинутого API DirectX 10. А нам, приверженцам халявы, остается лишь искать, искать, и еще раз искать... И, представьте себе, иногда удается найти. Как, например, в случае с Xtreme3D — наиболее популярной библиотекой трехмерной графики для наиболее популярного конструктора игр Game Maker. Не помню толком, когда я впервые узнал о Xtreme3D. Но хорошо помню день, когда скачал и протестировал (то была уже версия 2). Признаться, зрелище впечатлило... Но не буду субъективным, поэтому пойду по порядку. Xtreme3D основан на OpenGL. С одной стороны, это хорошо, а с другой — не очень. Ведь Microsoft, операционными системами которой пользуется более 90% всех владельцев ПК, поддерживает OpenGL далеко не в той мере, как свой собственный API DirectX. Поэтому остается вероятность, хоть и небольшая, что игры, построенные на Xtreme3D, работать будут не у всех. Xtreme3D для полного раскрытия своих возможностей требует сравнительно мощной видеокарты. Но даже владельцы интегрированного графического ускорителя не будут разочарованы. Xtreme3D V2, о котором пойдет речь, поставляется с коллекцией примеров, демонстрирующих его возможности, так что проблем с тестированием, думаю, ни у кого не возникнет. Итак, основные «козыри» Xtreme3D против других движков это: • Поддержка большого количества 3D-форматов (3DS, OBJ, MD2, MD3, SMD, B3D и др.) • Встроенные средства для создания динамичного неба, реалтаймовой воды, теней, генерации деревьев и т.д. • Поддержка шейдеров (это-то и требует наличия видеокарты помощнее), включая normalmapping, multimaterial и outline • Поддержка загрузки ресурсов из сжатого PAK-архива • Встроенная физика с использованием ODE И, поверьте, это еще далеко не все. Поддержка карт освещения (lightmaps), технологии quadtree и octree для отбора видимости и проверки столкновений, статические и динамические cubemaps, возможность использовать несколько окон вида и библиотек материалов, встроенные эффекты motionblur и lensflare, собственная система частиц, множество опций и настроек для камеры, материалов и источников света - все это полностью доступно в Xtreme3D. Прибавьте к этому готовый API в виде скриптов и констант с удобоваримыми названиями плюс двенадцать примеров, демонстрирующих если не все, то почти все, и вы получите отличнейший движок, полностью готовый к работе, как говорится, из коробки. Единственное, что меня не устраивает, так это отсутствие в дистрибутиве подробной документации. Наличествовал лишь неудобный documentation.rtf со списком всех функций и краткими комментариями примерно к трети из них. Именно поэтому (здесь читателя придется немного разочаровать) знакомство с Xtreme3D, особенно на первых порах, у многих вызовет противоречивые эмоции. Просто так X3D свои секреты не откроет, придется попотеть, прежде чем выяснить, как именно работает та или иная функция. Кроме того, в определенных ситуациях различные объекты и режимы могут не на шутку конфликтовать, ибо, при всех его достоинствах, до абсолютной стабильности Xtreme3D еще далеко. Нельзя так же не отметить абсолютную несовместимость со стандартными графическими средствами GM. То есть, вам придется самим придумывать, как, напрмер, сделать шкалу здоровья или 2D-анимацию. Все это, конечно, достижимо, но о старых способах можно забыть. Я бы сказал, что для успешного программирования на Xtreme3D необходимо не просто в совершенстве знать GML, но и обладать творческим, креативным мышлением и, естественно, недюжинным терпением. Терпение и труд все перетрут, господа! А теперь о приятном. Официальный дистрибутив X3DV2 со всеми нужными библиотеками, примерами и утилитой для создания PAK-архивов не обременяется никаким лицензионным соглашением и весит около семи с половиной мегабайт. Последнее, впрочем, для некоторых не самое приятное известие. Но коммерческие движки обычно весят намного больше, поэтому жаловаться не на что. Скачать Xtreme3D V2 можно на сайте его разработчика, Xception (который, кстати, является автором и других трехмерных библиотек для GM, таких как GMIrrlicht и MoCo): http://home.tiscalinet.de/xception/. В следующей части обзора движков пойдет речь о главном конкуренте Xtreme3D — Ultimate3D. Gecko "FPS" №1 2008