raylib is a simple and easy-to-use library to learn videogames programming.
raylib is highly inspired by Borland BGI graphics lib and by XNA framework.
raylib could be useful for prototyping, tools development, graphic applications, embedded systems and education.
NOTE for ADVENTURERS: raylib is a programming library to learn videogames programming;
no fancy interface, no visual helpers, no auto-debugging... just coding in the most
pure spartan-programmers way. Are you ready to learn? Jump to code examples!
features
Written in plain C code (C99) in PascalCase/camelCase notation
Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES2)
Unique OpenGL abstraction layer (usable as standalone module): rlgl
Powerful fonts module with SpriteFonts support (XNA bitmap fonts, AngelCode fonts, TTF)
raylib uses on its core module the outstanding GLFW3 library. The best option I found for
multiplatform (Windows, Linux, Mac) window/context and input management (clean, focused, great license, well documented, modern, maintained, ...).
raylib uses on its audio module, OpenAL Soft audio library, in multiple flavours,
to accomodate to Android, Raspberry Pi and HTML5.
On Android, native_app_glue module (provided by Android NDK) and native Android libraries are used to manage window/context, inputs and activity life cycle.
On Raspberry Pi, Videocore API and EGL libraries are used for window/context management and raw inputs reading.
building
For detailed building instructions, check raylib Wiki.
raylib has been developed using exclusively two tools:
I believe that time is the most valuable resource and the following people have invested part of their time
contributing (in some way or another) to make raylib project better. Huge thanks!
Elendow for testing and helping on web development.
Victor Dual for implementing and testing 3D shapes functions.
Marc Palau for implementing and testing 3D shapes functions and contribute on camera and gestures modules.
Kevin Gato for improving texture internal formats support and helping on raygui development.
Daniel Nicolas for improving texture internal formats support and helping on raygui development.
Marc Agüera for testing and using raylib on a real product (Koala Seasons)
Daniel Moreno for testing and using raylib on a real product (Koala Seasons)
Daniel Gomez for testing and using raylib on a real product (Koala Seasons)
Sergio Martinez for helping on raygui development and tools development (raygui_styler).
Victor Fisac for developing physics raylib module (physac) and implementing materials and lighting systems... among multiple other improvements and multiple tools and games.
Albert Martos for helping on raygui and porting examples and game-templates to Android and HTML5.
Ian Eito for helping on raygui and porting examples and game-templates to Android and HTML5.
procedural for testing raylib on Linux, correcting some bugs and adding several mouse functions.
Milan Nikolic for adding Android build support with custom standalone toolchain
Please, if I forget someone in this list, excuse me and write me an email to remind me to add you!
license
raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check LICENSE for further details.