The Tombstone Engine, the successor to the C4 Game Engine, just got a new update, it’s first since 2017. The Tombstone game engine is a commercial game engine that runs on 64bit Windows machines, and is capable of targeting major desktop platforms as well as the PlayStation 4. The 2.9 update is free for existing developers and focuses heavily on new font related functionality, as well as bumping the OpenGL version required to 3.3 or higher. Full details of the update from the release notes:
- All of the unsigned integer types that previously began with unsigned_ have been changed to begin simply with u. For example, unsigned_int32 is now just uint32.
- The Array::FindArrayElement() function has been renamed to Array::FindArrayElementIndex() to make it clear what kind of information is returned.
- The Graphics Manager on Windows and Linux now require OpenGL 3.3 plus the GL_ARB_clip_control, GL_ARB_direct_state_access, GL_ARB_multi_bind, GL_ARB_texture_storage, and GL_ARB_texture_storage_multisample extensions. Since Apple does not support some of these extensions (and never will), this means that Tombstone 2.9 does not run on the Mac. We are planning to implement a Metal back end for the Graphics Manager in version 3.0.
- The projection matrices used by the engine have been modified to produce device-space z coordinates in the range [0,1] with reversed depth. This greatly increases depth buffer precision and eliminates Z fighting artifacts when parallel surfaces near each other are viewed from far away.
- Generalized depth offset modifications and depth bounds test optimizations have been implemented to handle oblique near plane projections. This can improve the appearance of decals in reflection or refraction images, and it can improve performance of point/cube/spot light sources in reflection or refraction images.
- The motion blur algorithm has been improved and now generates better results. The velocity buffer has been changed to a two-channel format using 8 bits per channel, using half the space it previously used.
- The method used to split linear 32-bit depths into two 16-bit depths for the floating-point structure buffer has been improved. This gives better precision farther from the camera position.
- The font format has changed in this version. Any custom fonts that were previously imported must be imported again before they can be used.
- There are many new text rendering capabilities, including underline, strikethrough, horizontal stretch, transform-based subscript/superscripts, right-to-left writing directions, bidirectional layout, adaptive supersampling, rectangle primitives, fraction formatting, and hyphen-minus substitution. Settings have been added to the Text Widget that can be used to enable these in the Panel Editor, and new embedded format directives have been added to control them within a block of text. See the Slug User Manual for details about all of the text rendering features.
- A new Text Effect node has been added to the engine. This is used to place text on surfaces within a game world and apply materials to the glyphs so they appear to be painted on the surfaces. (This is completely different from using text in a panel effect.)
- The functions that build terrain geometry have been improved so that vertex sharing occurs as often as possible. Rebuilding terrain geometries can reduce the data size by roughly 5–10%.
- The Font Importer contains new settings for the size and position of underline and strikethrough decorations and the transforms for subscripts and superscripts. These are initialized to the values specified in the input TrueType font file.