raylib is a simple and easy-to-use library to enjoy videogames programming.
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?
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.
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 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!
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!
I'm working hard on raylib but my resources are limited. If you enjoy raylib and want to help, consider a small donation or contributing to the project on GitHub. Thanks!
- 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 +50 programming languages!
- Free and open source. Check [LICENSE].
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.