Raylib has been updated to version 6. This release has been described by Raylib's creator as the biggest Raylib release ever, representing a significant effort from project contributors, with over 2000 contributions since the previous release.
Raylib is described as a simple and easy-to-use library for videogame programming. It is written in the C programming language and offers bindings for use with more than 60 other programming languages. It uses a modular internal structure that groups functionality into areas like graphics, audio, and input, allowing developers to focus on the features they need when building games, tools, and interactive applications.
The library is designed to be minimalistic and to be learned from a cheatsheet that covers all required functionality, along with a large collection of examples that demonstrate how to use that functionality.
Raylib 6.0 adds several new features and improvements, with the new software renderer representing the most significant addition.
The new software renderer backend allows Raylib to run purely on the CPU, with no GPU required. Although software rendering is typically slower than hardware-accelerated rendering, it can still be fast enough to run less demanding applications at respectable frame rates. It also opens the door for running Raylib-based applications on microcontrollers and various upcoming RISC-V powered devices that may not include a GPU.
A complementary feature to the software renderer is the new memory platform backend, which allows 2D and 3D rendering over a platform-agnostic memory framebuffer. This platform can run headless, and output frames can be directly exported to images. It can also be useful for graphics rendering on servers or for processing images directly using the memory buffer.
This release introduces two additional platform backends: Win32 and Emscripten.
The Win32 backend represents a first step toward a potential replacement or alternative to the platform libraries currently used by raylib (GLFW, SDL, RGFW). It allows initializing OpenGL GPU-accelerated windows as well as GDI-based windows, which are useful for the software renderer backend. This new backend approach aims to simplify code and improve maintenance, readability, and portability for Raylib, establishing a foundation for future development.
Similarly, the Emscripten backend moves away from libglfw.js and directly implements Emscripten and JavaScript functionality with no additional dependencies. It adds support for the new software renderer to draw directly on a non-accelerated 2D canvas, while also supporting a WebGL hardware-accelerated canvas when required.
Fullscreen modes and High-DPI content scaling have been redesigned, with the new approach prioritizing borderless fullscreen modes and automatically detecting the current monitor content scaling configuration to scale the window and framebuffer accordingly when needed.
The skeletal animation system has also been redesigned, introducing a new system that supports animation blending for 3D models. Animation blending works between single frames as well as between different frames across multiple animations, allowing smooth and timed transitions.
Other additions in this release include a redesigned build configuration system, new file system and text management APIs, a new Raylib examples manager tool, as well as the addition of over 70 new examples that developers can explore and learn from.
For more information, refer to the Raylib 6.0 release page on GitHub.