CATENGINE is a comprehensive set of tools enabling the creation of some of the world's most performant PC games.

The first publicly announced game utilizing it, swingmania, will likely be the most optimized PC VR game ever made upon release.

Specifications and features:

Languages used: C
Architectures: x86_64
Supported Platforms: Windows
Virtual Reality APIs: OpenXR
Graphics APIs: OpenGL 3.3 Core for extremely broad support, all engine features work without extensions. Vulkan (in the future)


Notable features:

-No C run-time library. Catengine doesn't use any standard C libraries or functions.

-No third party code or libraries used at all, apart from previously mentioned APIs.

-Custom, optimized functions for math, string operations, etc...

-Custom format for packing and loading game assets into a single file to optimize disk access.

-Static memory management. Catengine games should never allocate or free memory while they are running. All necessary resources are acquired at startup.

-Support for .BMP, .PNG and .JPG image files for textures

-Support for .WAV and .OGG sound files, capable of instant playback of large files with simultaneous decode.

-Support for .OBJ format and loading multiple 3D models contained in a single .OBJ file.

-Support for .SMD format for 3D models with rigging and bones

-Custom internal format for 3D models and standard shaders for rendering them

-Support for dynamic bone animation of models

-Built in text generation system supporting vector/mesh and texture fonts

-Support for single-pass/single-drawcall rendering of multiple instances of a model, and even to multiple independent viewports at the same time, to minimize drawcalls, binds and other CPU->GPU communication, useful for Virtual Reality applications

-Low level API access for the game developer allowing extreme optimizations. Catengine rendering helper functions are minimal and do not add any unnecessary operations. Game developers are encouraged to make their rendering pipeline as optimal as possible minimizing resource binds, draw calls, and other CPU-GPU communication

-Virtual Reality support and helper routines to make VR application development easy

-Support for networking, HTTPS, and websockets

-Support for .INI files for saving/loading game settings

-Support for Twitch integration

-Support for Discord rich presence

-Support for Steam API