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.