Home
(current)
News
Features
Showcase
Learn
Community
Account
DOWNLOAD
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