RayLib, one of my favorite game development open source projects, just had a milestone release – RayLib 6 is now available. This popular and incredibly modular game development framework written in the C language continues to become even more modular with the 6.0 release. There is a new completely software renderer, making it possible to use RayLib on even more platforms than the already gigantic list. Of course this isn’t the only addition to RayLib 6.
New features of RayLib 6 include:
Software Renderer (rlsw): Introduces a new software renderer backend that enables raylib to run entirely on the CPU without requiring a GPU. This allows the library to run on hardware lacking graphical acceleration, such as microcontrollers or upcoming RISC-V devices.
Memory Platform Backend (rcore_memory): Adds a new platform backend for 2D and 3D rendering directly to a platform-agnostic memory framebuffer. This is highly useful for headless rendering, server-side graphics processing, or exporting frames directly to images.
Win32 Platform Backend (rcore_desktop_win32): Implements a native Windows backend using direct Win32 API calls instead of relying on external libraries like GLFW or SDL. It supports both OpenGL GPU-accelerated windows and GDI-based windows for the new software renderer.
Emscripten Platform Backend (rcore_web_emscripten): Provides a web backend built directly with Emscripten and JavaScript without any other dependencies. It supports WebGL hardware-accelerated canvases as well as a non-accelerated 2D canvas for software rendering.
Fullscreen Modes and High-DPI Redesign: Completely revamps display handling to prioritize borderless fullscreen modes and automatically detect monitor scaling configurations. Developers can now request High-DPI support explicitly upon window creation using FLAG_WINDOW_HIGHDPI.
Skeletal Animation System Redesign: Upgrades the 3D model animation system to support animation blending and smooth, timed transitions between different animation frames. The update also simplifies the API and improves the performance of GPU-skinning.
Build Config System Redesign: Enhances the custom build configuration system, allowing developers to easily enable or disable specific features via command-line flags (e.g., -DSUPPORT_FILEFORMAT_OBJ=0). The overall flag system was reviewed to remove useless options and expose new ones for highly customized builds.
File System API Overhaul: Reorganizes over 40 file system management functions into the single rcore module, successfully eliminating the previous utils module. This drastically simplifies the build process, requiring only 6 to 7 source files to compile the full raylib library.
Text Management API: Adds over 30 new functions dedicated to string processing and manipulation. These functions aid in general text handling and support the creation of custom build systems directly using raylib.
Key Links
You can learn more about RayLib and the RayLib 6 release in the video below.
