2018-02-12 13:53:47 +03:00
< img align = "left" src = "https://github.com/raysan5/raylib/blob/master/logo/raylib_256x256.png" width = 256 >
2013-11-19 02:38:44 +04:00
2017-07-25 12:28:22 +03:00
**raylib is a simple and easy-to-use library to learn videogames programming.**
2013-11-19 02:38:44 +04:00
2017-07-25 12:40:04 +03:00
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.
2013-11-19 02:38:44 +04:00
2015-09-03 02:28:13 +03:00
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
2017-02-23 18:32:19 +03:00
pure spartan-programmers way. Are you ready to learn? Jump to [code examples! ](http://www.raylib.com/examples.html )
2014-12-31 21:25:50 +03:00
2017-10-05 07:18:25 +03:00
[![Build Status ](https://travis-ci.org/raysan5/raylib.svg?branch=develop )](https://travis-ci.org/raysan5/raylib)
2017-11-23 12:14:53 +03:00
[![https://ci.appveyor.com/api/projects/status/github/raysan5/raylib?svg=true ](https://ci.appveyor.com/api/projects/status/github/raysan5/raylib?svg=true )](https://ci.appveyor.com/project/raysan5/raylib)
2017-11-24 14:40:08 +03:00
[![Gitter ](https://badges.gitter.im/Join%20Chat.svg )](https://gitter.im/raylib/Lobby?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge)
[![License ](https://img.shields.io/badge/license-zlib%2Flibpng-blue.svg )](LICENSE.md)
[![Twitter URL ](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Follow )](https://twitter.com/raysan5)
2017-10-05 07:18:25 +03:00
2013-11-19 02:38:44 +04:00
features
--------
2017-12-05 15:22:26 +03:00
2017-07-25 12:40:04 +03:00
* Written in plain C code (C99) in PascalCase/camelCase notation
2017-12-05 15:22:26 +03:00
* Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES2 - choose at compile)
2017-05-17 01:58:27 +03:00
* Unique OpenGL abstraction layer (usable as standalone module): [rlgl ](https://github.com/raysan5/raylib/blob/master/src/rlgl.c )
2017-12-05 15:22:26 +03:00
* Powerful fonts module with SpriteFonts support (XNA fonts, AngelCode fonts, TTF)
* Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC)
* Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more!
2017-07-25 12:40:04 +03:00
* Flexible Materials system, supporting classic maps and PBR maps
2016-07-18 00:40:25 +03:00
* Shaders support, including Model shaders and Postprocessing shaders
2017-05-30 20:04:59 +03:00
* Powerful math module for Vector, Matrix and Quaternion operations: [raymath ](https://github.com/raysan5/raylib/blob/master/src/raymath.h )
2017-05-17 01:58:27 +03:00
* Audio loading and playing with streaming support (WAV, OGG, FLAC, XM, MOD)
2017-12-05 15:22:26 +03:00
* Multiple platforms support: Windows, Linux, FreeBSD, MacOS, UWP, Android, Raspberry Pi, HTML5.
* VR stereo rendering with configurable HMD device parameters
* NO external dependencies, all required libraries included with raylib
2017-05-17 01:58:27 +03:00
* Complete bindings to LUA ([raylib-lua](https://github.com/raysan5/raylib-lua)) and Go ([raylib-go](https://github.com/gen2brain/raylib-go))
2013-11-19 02:38:44 +04:00
2017-05-15 19:55:18 +03:00
raylib uses on its core module the outstanding [GLFW3 ](http://www.glfw.org/ ) library. The best option I found for
multiplatform (Windows, Linux, Mac) window/context and input management (clean, focused, great license, well documented, modern, maintained, ...).
2013-11-19 02:38:44 +04:00
2015-01-10 15:25:07 +03:00
raylib uses on its [audio ](https://github.com/raysan5/raylib/blob/master/src/audio.c ) module, [OpenAL Soft ](http://kcat.strangesoft.net/openal.html ) audio library, in multiple flavours,
to accomodate to Android, Raspberry Pi and HTML5.
2013-11-19 02:38:44 +04:00
2017-05-18 01:22:48 +03:00
*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.*
2014-09-17 00:51:31 +04:00
2017-05-18 01:22:48 +03:00
*On Raspberry Pi, Videocore API and EGL libraries are used for window/context management and raw inputs reading.*
2014-09-17 00:51:31 +04:00
2017-11-24 21:57:44 +03:00
build and installation
----------------------
2017-11-26 12:42:19 +03:00
Binary releases for Windows, Linux and macOS are available at the [Github Releases ](https://github.com/raysan5/raylib/releases ) page. Raylib is also available via following package managers:
* Homebrew: `brew install raylib`
2017-05-16 01:43:57 +03:00
2017-11-24 21:57:44 +03:00
To build raylib yourself, check out the [raylib Wiki ](https://github.com/raysan5/raylib/wiki ) for detailed instructions.
2013-11-19 02:38:44 +04:00
raylib has been developed using exclusively two tools:
* Notepad++ (text editor) - [http://notepad-plus-plus.org/ ](http://notepad-plus-plus.org/ )
* MinGW (GCC compiler) - [http://www.mingw.org/ ](http://www.mingw.org/ )
2017-05-16 01:43:57 +03:00
Those are the tools recommended to develop with raylib, in fact, those are the tools my students use.
2013-11-19 02:38:44 +04:00
contact
-------
* Webpage: [http://www.raylib.com ](http://www.raylib.com )
* Twitter: [http://www.twitter.com/raysan5 ](http://www.twitter.com/raysan5 )
* Facebook: [http://www.facebook.com/raylibgames ](http://www.facebook.com/raylibgames )
2016-02-21 04:27:34 +03:00
* Reddit: [https://www.reddit.com/r/raylib ](https://www.reddit.com/r/raylib )
* Twitch: [http://www.twitch.tv/raysan5 ](http://www.twitch.tv/raysan5 )
* Patreon: [https://www.patreon.com/raysan5 ](https://www.patreon.com/raysan5 )
2017-10-25 12:37:19 +03:00
* YouTube: [https://www.youtube.com/channel/raylib ](https://www.youtube.com/channel/UC8WIBkhYb5sBNqXO1mZ7WSQ )
2013-11-19 02:38:44 +04:00
If you are using raylib and you enjoy it, please, [let me know][raysan5].
2017-02-23 18:45:18 +03:00
If you feel you can help, then, [helpme! ](http://www.raylib.com/helpme.html )
2013-11-19 02:38:44 +04:00
2017-05-15 19:36:38 +03:00
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 ](LICENSE.md ) for further details.
2017-05-16 01:43:57 +03:00
[raysan5]: mailto:ray@raylib.com "Ramon Santamaria - Ray San"