Xtreme3D 4.x
Xtreme3D 4.x is a new branch of Xtreme3D, created for modern versions of GameMaker.
This is currently the most powerful and feature-rich version of Xtreme3D, far surpassing all previous versions. Most importantly, it supports 64-bit GameMaker. Xtreme3D 4.x can be used to create games with graphics comparable to those of 2005-2010 (theoretically, something like Doom 3, Half-Life 2, TES4: Oblivion, and so on). Further development of Xtreme3D's graphics capabilities is hampered by the limited functionality of the GLScene library on which it is based, OpenGL 2.0.
Xtreme3D 4.x is a completely standalone engine. It can be used in any language that supports DLL calls. Xtreme3D can render to a window provided by the environment or create its own window, and also includes functions for handling user input.
Xtreme3D 4.x only works on 64-bit Windows, other platforms are not supported.
Download Xtreme3D 4.1.0 SDK for GameMaker (64-bit)
Download Xtreme3D 4.1.0 SDK for Python 3 (64-bit)
GitHub release page
Source code
Key Features:
Transition to 64-bit architecture. 32-bit architecture is no longer supported.
Uses Delphi 10+ and GLScene 2.2.
Compatible with modern versions of GameMaker.
All strings in the engine are accepted only in 8-bit format (ASCII/UTF-8). Support for other encodings has been removed.
Most functions remain unchanged. All minor API changes are listed below.
Bindings to Python 3 and C/C++ have been implemented.
The help file has been redesigned.
Changes and new features:
The Update function is now called EngineUpdate
The TrisRendered function has been removed
The ViewerRenderEx function has been removed
New functions: ViewerBeginRender, ViewerClear, ViewerRenderObject, ViewerEndRender
The meaning of the EngineSetMaxLights function has changed. It now sets the maximum number of light sources considered by the primary lighting system and the LightFX system. By default, this number is 8 (the maximum for the primary lighting system). If you want to use more light sources for the LightFX system, you should use this function.
ViewerGetPickedObjectsList now works with PickList list objects, which must be created manually.
New functions: PickListCreate, PickListClear, PickListGetCount, PickListGetHit.
ViewerRenderToFilePNG removed - saving to PNG is now supported in ViewerRenderToFile.
New constants for ViewerSetAntiAliasing are supported: aa6x = 6, aa8x = 7, aa16x = 8, csa8x = 9, csa8xHQ = 10, csa16x = 11, csa16xHQ = 12.
CameraZoomAll now requires a Viewer in the second parameter.
New function MaterialLibraryGetTextureByName
The SpriteNoZWrite function has been removed; use MaterialSetDepthWrite instead
The MaterialCullFrontFaces function has been removed
The MaterialSetZWrite function is now called MaterialSetDepthWrite
New MaterialSetDepthTest function
The TextureEx system for materials has been reworked. Removed functions MaterialLoadTextureEx, MaterialSetTextureEx, MaterialSetTextureExFromLibrary, MaterialGenTextureEx, MaterialEnableTextureEx
New function MaterialSetTextureFormatEx
New constant for MaterialSetTextureFormat: tfExtended = 12
New constant for MaterialSetTextureImageAlpha: tiaBottomRightPointColorTransparent = 9
New functions MaterialSetTextureCompareMode, MaterialSetTextureDepthCompareFunc
Removed functions ObjectGetCollisionPosition, ObjectGetCollisionNormal - now replaced by EngineGetLastRaycastPosition, EngineGetLastRaycastNormal, which do the same thing.
Polygon functions removed.
Functions TTFontSetEncoding and TTFontLoadCodePage have been removed.
TTFont fonts now use SDL_ttf instead of Freetype.
TextRead and TextConvertANSIToUTF8 functions have been removed.
OdeAddCone function has been removed.
New BaseMeshBuildSilhouetteConnectivityData function.
New ActorSetReference function.
New ObjectNotifyChange, ObjectStructureChanged, ObjectClearStructureChanged functions.
New ObjectListCreate, ObjectListAdd, ObjectListGetCount functions.
The FBO system has been reworked. The FBO object is now part of the scene graph. The following functions have been removed: FBOSetViewer, FBORenderObject, FBORenderObjectEx, FBOSetOverrideMaterial, and FBOSetColorTextureFormat. New functions: FBOSetActive, FBOSetAspect, FBOSetPickableTarget, FBOSetSize, FBOSetRootObject, FBOSetBackgroundColor, FBOSetEnabledRenderBuffers, FBOSetSceneScaleFactor, FBOSetTargetVisibility, FBOSetMaterialLibrary, FBOSetColorTextureName, FBOSetDepthTextureName, FBOSetClearOptions, FBOSetStencilPrecision, and FBOSetShadowMapMode. [The following functions have been removed: ShadowMapSetCaster, ShadowMapSetProjectionSize, ShadowMapSetZScale, ShadowMapSetZClippingPlanes, and ShadowMapRender] New functions: ShadowMapUpdate, ShadowMapSetViewer
Added a new ShadowCamera object used in ShadowMap. New functions: ShadowCameraCreate, ShadowCameraSetProjectionSize, ShadowCameraSetZClippingPlanes
New functions: GLSLShaderForceDisableStencilTest, GLSLShaderSetOptions
New functions: LoggerCreate, LoggerEnable, LoggerLog
The PtrToReal function is now called PointerToReal
Authors:
Gecko - core developer.