raylib is a simple and easy-to-use library to enjoy videogames programming.
get the raylib Windows Installer to install raylib in seconds:
NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no gui tools or editors... just coding in pure spartan-programmers way. Are you ready to enjoy coding?
support raylib project!
If you enjoy raylib and want to help, consider supporting the project with a donation! Thank you very much! ❤️
raylib learning resources
raylib does not provide the typical API documentation or a big set of tutorials. The library is designed to be minimalistic and be learned just from a cheatsheet with all required functionality and a big collection of examples to see how to use that functionality. Best way to learn to code is reading code.
Overwhelmed by the options? Maybe the raylib game template is a good place for you to start! It provides some structure and a Makefile that are quick and easy to pick up and use.
Apart from those materials, there are plenty of tutorials created by the amazing raylib community. It's highly recommended to join the friendly raylib Discord Community to stay up to date of latest raylib news and ask for help when required!
raylib awards
raylib has received several recognitions in the last years. Here are some awards received from Google and Epic Games.
raylib supported platforms
raylib supports multiple target platforms, it has been tested in the following ones but, technically, any platform that supports C language and OpenGL graphics (or similar) can run raylib or it can be very easily ported to.
raylib language bindings
You can use raylib with multiple programming languages, there are +60 bindings! Here is a list with some of them:
raylib extra libraries
raylib can be combined with several extra libraries for additional functionality, some of those libraries are already used internally while others are provided for user integration, most of these libraries are single-file header-only with no external dependencies.
raylib technologies tools
raylib is the base technology for raylib technologies tools development! Several multiplatform tools have been developed using raylib and raygui. Check them out!
raylib community
Do you need help with raylib? Do you want to keep updated with latest news? Do you want to show your raylib creations? Join our amazing community of raylib developers! Choose the network you prefer! You are welcome!
raylib features
- NO external dependencies, all required libraries included with raylib
- Multiplatform: Windows, Linux, MacOS, RPI, Android, HTML5... and more!
- Written in plain C code (C99) using PascalCase/camelCase notation
- Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3 or ES 2.0)
- Unique OpenGL abstraction layer: rlgl
- Powerful Fonts module (SpriteFonts, BMfonts, TTF, SDF)
- Multiple texture formats support, including compressed formats (DXT, ETC, ASTC)
- Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more!
- Flexible Materials system, supporting classic maps and PBR maps
- Animated 3d models supported (skeletal bones animation)
- Shaders support, including Model shaders and Postprocessing shaders
- Powerful math module for Vector, Matrix and Quaternion operations: raymath
- Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, XM, MOD)
- VR stereo rendering support with configurable HMD device parameters
- Huge examples collection with +120 code examples!
- Bindings to +60 programming languages!
- Free and open source. Check [LICENSE].
raylib architecture
raylib is a highly modular library. Everything is contained within a small number of well defined, specific and self-contained modules, named accordingly to its primary functionality. Note that some of those modules can be used in standalone mode, independently of raylib library.