Features

General

  • Developed by veteran with 18 years of GameMaker 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 in your project

Asset pipeline

  • Custom binary file formats designed for fast loading in GameMaker
  • BBMOD CLI - a command line tool for converting models and their animations to BBMOD format
  • Experimental conversion of materials to BBMOD format with BBMOD CLI
  • Experimental conversion of models from Y-up space to Z-up space with BBMOD CLI
  • Utilizes Assimp to support vide variety of file formats, including FBX, OBJ, glTF and COLLADA (see full list here)
  • Optional dynamic library (DLL and dylib) for importing third-party model formats from in-game
  • OBJ model importer written in GML(includes basic material support)
  • BBMOD GUI - a windowed application for easier content creation (for Patrons only)

Animations

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

PBR materials

  • Support for both metallic-roughness and specular color-smoothness workflows
  • Tangent-space normal maps
  • Baked ambient occlusion
  • Emissive textures (RGBM encoded)
  • Cheap subsurface scattering
  • Support for 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 (single cascade)
  • Image-based lighting with HDR support (RGBM encoded)
  • Reflection probes (pre-baked or captured in-game)
  • Support for HDR baked lightmaps (RGBM encoded)

Deferred renderer

  • Support for unlimited number of shadow-casting lights
  • Requires multiple render targets and 16-bit floating point surfaces!

Forward renderer

  • Limited to 1 directional light and up to 8 punctual lights
  • Only a single light can cast shadows
  • Supported on all platforms!

Fog

  • Configurable color, start, end and maximum intensity

Cameras

  • First and third person
  • Perspective and orthographic
  • Built-in mouselook - includes support for browsers through Pointer Lock API (HTML5 platform)
  • Camera exposure and HDR rendering
  • Convert 3D coordinates to screen coordinates
  • Convert screen coordinates to a 3D vector in world-space

Post-processing

  • High quality screen-space ambient occlusion (SSAO)
  • Kawase blur
  • Directional blur
  • Radial blur
  • Depth of field with configurable bokeh shape
  • Chromatic aberration
  • Exposure
  • Gamma correction
  • Reinhard tonemapping
  • Color grading LUT
  • Luma sharpen
  • Film grain
  • Barell and pincushion lens distortion
  • Screen distortion via normal map
  • Sun shafts
  • Light bloom
  • Lens flares
  • Lens dirt
  • Monochrome
  • Vignette
  • Fast approximate anti-aliasing (FXAA)

Render queues

  • Enqueue commands and execute later
  • Render queues sorted by priority (e.g. draw transparent models last)
  • Filter mesh draw calls by instance ID

Batching

  • Batch multiple models into a single vertex buffer to minimize draw calls
  • Each model in a batch can have its own position, uniform scale, color and ID

Particles

  • Optimized CPU particle system
  • Module based - define particle behavior by composing configurable modules
  • Gravity, attractors, repellers and collisions
  • Soft particles - particles smoothly disappear when intersecting with other geometry
  • Shadow casting and receiving
  • Depth sorting

Terrain

  • Heightmap based terrain
  • Split into chunks to support large scale terrains
  • Support for up to 5 material layers, controlled with a splat map
  • Color map (multiplies diffuse/albedo texture)
  • Precomputed tangent and bitangent vectors for full normal mapping support
  • Retrieve terrain height, normal and layer index at a specific position

Level editing

  • Mouse picking of instances
  • Highlight of selected instances
  • Gizmos for moving, rotating and scaling of selected instances
  • Global and local space editing
  • Save & load system for instances - de/serialize instances from/to buffers

Misc

  • Vectors (2D, 3D, 4D), matrices, quaternions and dual quaternions
  • Plane, Sphere, AABB and frustum intersection tests and raycasting
  • Compatibility layer for ColMesh - a popular library for 3D collisions
  • Check for multiple render targets (MRT) support
  • Check for vertex texture fetching (VTF) support
  • Support for VTF on Windows through DLL (OpenGL platforms supported natively)
  • Utility functions for strings, arrays, buffers, sprites, async loading and more...
  • State machines

And there is more coming!

Keep in touch on our Discord server for the most up to date news about the development.

Support the development

Support us in developing BBMOD, get priority assistance and more of our amazing tools as a reward!

Become Patron

Don't miss out on a thing!

Create an account, subscribe to newsletter and get notified on new releases, tutorials and special offers.

Register Log in