Features

Everything you need to build and ship polished 3D experiences in GameMaker.

General

  • Developed by Patrik Kraif, one of the current GameMaker developers and a GM veteran with 20 years of experience
  • Written in pure GML and GLSL ES for maximum portability
  • Wrapped in easy to use object-oriented interface
  • Every struct, function, macro and variable is documented
  • Split into modules so you can pick which parts you need

Asset Pipeline

  • Custom binary file formats designed for fast loading in GameMaker
  • BBMOD CLI for model and animation conversion
  • Experimental material and Y-up to Z-up conversion in BBMOD CLI
  • Uses Assimp to support many formats including FBX, OBJ, glTF and COLLADA (full list)
  • Optional dynamic library for in-game third-party format imports
  • OBJ importer written in GML with basic material support
  • BBMOD GUI for easier content creation (Patrons)

Animations

  • Vertex skinning
  • Node-based animations
  • Fast precomputed animations (GPU-ready data)
  • Animation events at specific frames
  • Smooth animation transitions
  • Transform bones via code
  • Bone attachments

PBR Materials

  • Metallic-roughness and specular color-smoothness workflows
  • Tangent-space normal maps
  • Baked ambient occlusion
  • Emissive textures (RGBM encoded)
  • Cheap subsurface scattering
  • Different shaders per render pass
  • GGX specular reflection model

Lights and Shadows

  • Ambient light split into lower and upper hemisphere
  • Dynamic point, spot and directional lights
  • Dynamic soft shadows for point, spot and directional lights
  • Image-based lighting with HDR support (RGBM encoded)
  • Reflection probes (pre-baked or captured in-game)
  • HDR baked lightmaps support (RGBM encoded)

Renderers and Cameras

  • Deferred: unlimited shadow-casting lights (requires MRT and FP16 surfaces)
  • Forward: 1 directional + up to 8 punctual lights, only one shadow-casting light
  • Supported on all platforms
  • First/third-person, perspective and orthographic cameras
  • Built-in mouselook including HTML5 Pointer Lock support
  • Camera exposure and HDR rendering
  • World to screen and screen to world-space conversion helpers
  • Fog with configurable color/start/end/max intensity

Post-processing

  • SSAO
  • Kawase, directional and radial blur
  • Depth of field with configurable bokeh shape
  • Chromatic aberration
  • Exposure and gamma correction
  • Reinhard tonemapping
  • Color grading LUT
  • Luma sharpen and film grain
  • Barrel/pincushion lens distortion
  • Screen distortion via normal map
  • Sun shafts, bloom, lens flares and lens dirt
  • Monochrome and vignette
  • FXAA

Performance and Workflow

  • Render queues with deferred command execution
  • Priority-based sorting (e.g. transparent models last)
  • Filter mesh draw calls by instance ID
  • Batch models into single buffers to reduce draw calls
  • Per-model transform, scale, color and ID within a batch
  • Optimized CPU particle system with module composition
  • Particle gravity, attractors, repellers and collisions
  • Soft particles, shadow casting/receiving and depth sorting

Terrain and Level Editing

  • Heightmap terrain split into chunks for large worlds
  • Up to 5 material layers via splat map
  • Color map and full normal mapping support
  • Query terrain height, normal and layer at position
  • Instance picking and selection highlighting
  • Move/rotate/scale gizmos for selected instances
  • Global and local space editing
  • Save/load instance serialization workflow

Math and Misc

  • Vectors, matrices, quaternions and dual quaternions
  • Plane, sphere, AABB, frustum tests and raycasting
  • Compatibility layer for ColMesh
  • MRT and VTF capability checks
  • VTF on Windows through DLL (OpenGL supports natively)
  • Utility helpers for strings, arrays, buffers, sprites and async loading
  • State machines