Xtreme3D 4.0
Четвертое поколение Xtreme3D, графического движка для GameMaker. В настоящее время находится в разработке.
Текущий статус: второй этап разработки первой версии (Milestone II), альфа-тестирование
История
В 2022 году GameMaker Studio 2 полностью перешел на 64-битную архитектуру, вследствие чего потерял совместимость со старыми 32-битными расширениями. Для того, чтобы продолжить поддержку классической связки Xtreme3D+GameMaker, было решено портировать Xtreme3D на современный Delphi и актуальную версию GLScene. Поскольку порт частично ломает обратную совместимость, он будет развиваться в рамках новой ветки Xtreme3D - 4.x. В обозримом будущем обе ветки будут поддерживаться параллельно.
Xtreme3D 4.0 пишется на Delphi 10 и выше с использованием библиотеки GLScene 2.2. Будет поддерживаться только 64-битная архитектура и (пока) только ОС Windows.
Проект осуществляется в два этапа. На первом были реализованы базовые функции-врапперы, основанные на встроенных классах GLScene, и выпущена первая альфа-версия. На втором будут реализованы аналоги тех возможностей, для которых пришлось добавлять новые классы и менять методы встроенных. По итогам II этапа будет выпущена вторая альфа-версия, на основе которой затем будет подготовлен релиз Xtreme3D 4.0.0. Также на II этапе будет подготовлен биндинг для Python 3. Если все пройдет успешно, затем выйдет версия 4.1, в которой будут добавлены врапперы некоторых новых классов GLScene 2.
Дорожная карта разработки:
- ✔️ Milestone I (2022-2023)
- ⏳ Milestone II (2023-2024)
- ⏳ Xtreme3D 4.0.0 (ориентировочно начало 2025 года)
- ⏳ Xtreme3D 4.1.0 (середина-конец 2025 года)
Отличия от Xtreme3D 3.9
Большинство функций движка остаются без изменений. Изменения, ломающие обратную совместимость, перечислены ниже.
- Функция Update теперь EngineUpdate
- Изменился смысл функции EngineSetMaxLights. Теперь она задает максимальное количество источников света, которые учитываются основной системой освещения и системой LightFX. По умолчанию это количество равно 8 (максимум для основной системы освещения). Если вы хотите использовать больше источников света для системы LightFX, нужно использовать эту функцию
- Функция TrisRendered удалена
- Функция ViewerGetPickedObjectsList теперь работает с объектами-списками PickList, которые нужно создавать вручную
- Функция CameraZoomAll теперь требует указания Viewer во втором параметре
- Функция SpriteNoZWrite удалена, используйте вместо нее MaterialSetDepthWrite
- Функция MaterialCullFrontFaces удалена
- Функция MaterialSetZWrite теперь MaterialSetDepthWrite
- Переделана система TextureEx у материалов. Удалены функции MaterialLoadTextureEx, MaterialSetTextureEx, MaterialSetTextureExFromLibrary, MaterialGenTextureEx, MaterialEnableTextureEx
- PtrToReal теперь PointerToReal
- Функции Polygon удалены
- Функции TTFontSetEncoding, TTFontLoadCodePage удалены
- Функции TextRead, TextConvertANSIToUTF8 удалены
- Функция OdeAddCone удалена
- Переделана система FBO. Удалены функции FBOSetViewer, FBORenderObject, FBORenderObjectEx, FBOSetOverrideMaterial, FBOSetColorTextureFormat. FBO теперь лучше интегрирован в граф сцены.