Xtreme3D
Xtreme3D - внешний 3D-движок для Game Maker (DLL), основанный на библиотеке GLScene. Написан на Delphi. Ранние версии были несвободными, ветка 3.x распространяется по лицензии Mozilla Public License.
История
История Xtreme3D началась в 2003 году. Изначальный автор движка - Xception. Возможности первой стабильной версии Xtreme3D (0.9) были довольно скромными: поддерживались только анимированные модели MD2 и MD3, статичные 3DS, MS3D и OBJ, встроенные примитивы, спрайты, двумерный и трехмерный текст, lensflare, частицы и небесный купол. Основной целью проекта было создание движка для трехмерной RPG наподобие Dungeon Master. И, хотя автор движка изначально не планировал дальнейшее развитие Xtreme3D, в более поздних версиях функционал движка быстро перерос потребности конкретного жанра.
Так, в версии 1.7 (2004 г.) появилась динамическая вода. Однако куда более серьезным прорывом стала версия 2.0 (2006 г.): тотальный пересмотр API, поддержка видов, библиотек материалов и карт освещения, динамический cubemapping, поддержка новых форматов моделей, рендеринг в текстуру, загрузка ресурсов из сжатого архива, аппаратные шейдеры (bump mapping, cel shading), мультитекстурирование, octree и quadtree, поддержка DDS, а также, что особенно важно, интегрированный физический движок Open Dynamics Engine (ODE).
Последний релиз от Xception (2.0.2.0), помимо многочисленных багфиксов, содержал два важных нововведения: отрисовщик ландшафта и движок проверки столкновений DCE. Функциональность движка была на уровне коммерческих игр 1997-2003 годов - Xtreme3D 2.0 позволял создавать что-то похожее в плане графики на Quake 2-3, Half-Life, GTA 3, The Elder Scrolls: Morrowind и т.д. - все, что относится к «дошейдерной» эпохе. К сожалению, после этого Xception забросил свою разработку.
С 2009 года в русскоязычном сообществе Xtreme3D постоянно витала идея воссоздать движок с нуля, исправить баги и добавить недостающую функциональность - учитывая, что Xtreme3D является весьма тонкой оберткой над GLScene, эта задача казалась несложной и чисто технической. Однако возникли непредвиденные проблемы, и дело затянулось. В итоге, проект, начавшийся в 2009 году и переживший долгий период стагнации и несколько вспышек активности, был завершен лишь в 2016-м. Так появился Xtreme3D 3.0.
Эта версия Xtreme3D, как и оригинал, написана на Delphi с использованием GLScene. В основе Xtreme3D 3.0 лежит форк GLScene 1.0.0.0714. Из главных новшеств Xtreme3D 3.0 стоит отметить поддержку шейдеров GLSL, тени shadow mapping, антиалиасинг, поддержку форматов LOD и B3D, многочисленные улучшения в физическом движке ODE.
В последующие годы вышло несколько обновлений в ветке 3.0, включающих множество интересных нововведений, таких как FBO, новая система освещения, улучшенный API для объектов Freeform и экранных объектов, TrueType-шрифты и текст в Юникоде, Ragdoll в ODE, новый физический движок Kraft, физика мягких тел, прокси-актеры, новые инструменты для работы с ландшафтами, а также функции для создания окон и управления ими. Последняя на данный момент стабильная версия - 3.9.2.
С 2022 года сообществом ведется разработка Xtreme3D 4.0.
Разработчики Xtreme3D 3.x - Gecko, FireRun, Rutraple aka Hacker, Ghost, gadmaker.
Возможности
Создание объектов-примитивов, загрузка моделей форматов 3DS, OBJ, FBX (ASCII), LWO, ASE, BSP, MS3D, B3D, MD2, MD3, MD5, MDC, SMD, X, LOD, CSM, DXS, OCT, NMF, WRL, PLY, GTS, TIN, STL, GLSM, вершинная и скелетная анимация, освещение, туман, скайбоксы, процедурный небесный купол, отрисовка 2D-графики и текста, дискретный LOD, мультитекстурирование, шейдеры на GLSL, cel shading, normal mapping, parallax mapping, отрисовка контуров, теневые объемы, теневые карты, ландшафты, частицы, RTT, антиалиасинг, динамическая вода с волнами, зеркальные отражения, процедурные деревья, отрисовка кривых, встроенные физические движки ODE и Kraft, симулятор мягких тел, octree и quadtree, функции для создания окон и чтения пользовательского ввода.
Преимущества и недостатки
По сравнению с другими движками для GM, Xtreme3D отличает легковесность (основная библиотека занимает всего 2 Мб), низкие системные требования (большая часть функций работает на видеокартах эпохи OpenGL 1.x-2.0), простая для понимания архитектура.
К недостаткам (актуальным для версии 3.9.2) можно отнести отсутствие поддержки x64, отсутствие универсальной системы частиц, теневых карт для точечных источников света, устаревший графический конвейер с фиксированным количеством источников света, отсутствие возможности воспроизводить видео.