CATENGINE is a comprehensive set of tools enabling the creation of some of the world's most performant PC games.
It's main priorities are optimization, original code and minimalism.
CATENGINE is developed by me, Catse, as a solo project.
The first publicly announced game utilizing it is swingmania.
Specifications and features:
Languages used: C
Architectures: x86_64
Supported Platforms: Windows, Linux
Virtual Reality APIs: OpenXR
Graphics APIs: OpenGL 3.3 Core for extremely broad support, all engine features work without extensions. Vulkan (in development)
Windows specific APIs: Windows built in APIs
Linux specific APIs: Wayland, PipeWire
Notable features:
-No C run-time library (on Windows). Catengine doesn't use any standard C libraries or functions.
-No third party code or libraries used at all, apart from calling previously mentioned APIs. All code in CATENGINE is original and developed from scratch
-Unity build. CATENGINE projects compile as a single translation unit, significantly reducing compile time.
-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.
-Custom decoders for .BMP, .PNG and .JPG image files for textures
-Custom decoders for .WAV and .OGG sound files, capable of instant playback of large files with simultaneous decode. On Windows, DirectSound is used for audio device output. On Linux, CATENGINE has a custom audio engine that handles realtime mixing, playback, and control of multiple sound objects and uses PipeWire for output to audio device.
-Custom decoder for .OBJ format and support for loading multiple 3D models contained in a single .OBJ file.
-Custom decoder 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
-Custom parser for .INI files for saving/loading game settings
-Support for Twitch integration
-Support for Discord rich presence
-Support for Steam API
-Multiplatform support and helper routines for platform independent code, for things like window and graphics context creation, networking, file i/o etc.
Licensees:
-Cat Games Oy
Engine licensing is handled by me (Catse). More details coming soon