SGRX Engine (2015-)
SGRX Engine is the latest engine I've worked on, still largely driven by experimental efforts but has been stabilizing from the middle of 2016 and through 2017. It started with the intention to convert TACStrike (2013) into a 3D title. It has since been used as the foundation for 7 more or less finished games and a few more unfinished projects.
While work on it went rather quickly, the expected feature set was never really pinned down, leading to frequent changes in direction. The original CSG-based workflow is being dropped in favor of a more WYSIWYG-oriented one that would allow to utilize external model editors more. The experimental minimal-allocation inline UI was replace in the middle of 2016 with the "dear imgui" library with minor changes and a thin wrapper on top of that. The 2D rendering capabilities have been largely unchanged throughout the engine's lifetime.
Games using SGRX Engine
Screenshots
Features
- Platformer pathfinding (since 2017)
- Physically-based shading (since Dec. 2016)
- Direct3D 9 (discontinued) and Direct3D 11 rendering backends
- Particle system with WYSIWYG editor
- Asset editor (with support for asset editing - sharpening, restructuring - on import)
- Skinned mesh rendering (up to 64 bones)
- Advanced character animation with layered node graph
- Pixel-perfect antialiased text & SVG rendering (via FreeType, nanosvg and custom glyph cache)
- Map editor with incremental lightmap rebuilding (via Lighter)
- Forward shading with support for point lights (no shadows) and spot lights (with shadows)
- Map compilation framework that allows generating chunks recognized by built-in and custom systems
- Support for decals and projectors
- Raycasting of rendering meshes
- Pay-for-what-you-use design
- GUI framework with various responsive scaling features that allows to define local coordinate systems
- AI cover generation (from pathfinding data)
- 3D pathfinding (via Recast/Detour)
- 3D physics plug-in (via Bullet)
- 2D physics plug-in (via Box2D)
- Sound plug-in (via FMOD)
- Support for DXT/3Dc-compressed textures
- Object-resource-behavior system
- Scripting (via SGScript)
- HDR rendering with bloom and tone mapping
- Support for rendering to a part of the screen
- Easy-to-use 2D immediate-mode rendering interface
- Text-based level/asset formats for easy diffing