Go to file
2017-05-15 18:55:18 +02:00
docs Review some path for image sharing 2017-05-10 19:40:49 +02:00
examples Some test images for compressed texture formats 2017-05-11 23:14:15 +02:00
games Renamed file 2017-05-15 18:26:53 +02:00
logo Updated logo size on t-shirt 2016-02-14 12:25:32 +01:00
project/vs2015 Corrected project paths 2017-04-07 00:50:20 +02:00
release raylib v1.7 release 2017-05-14 18:34:55 +02:00
shaders Redesigned bloom shader to work on RPI 2016-07-25 19:44:21 +02:00
src Move android_native_app_glue to folder 2017-05-15 18:06:26 +02:00
templates Review Android template libraries 2017-05-14 18:33:42 +02:00
tools/rREM Moved tool to folder 2016-08-27 21:05:16 +02:00
.gitignore Added examples web images 2017-04-20 00:49:39 +02:00
CHANGELOG Update Lua naming 2016-11-25 22:26:36 +01:00
HELPME.md Review contact information 2017-03-19 12:52:13 +01:00
HISTORY.md Simplify README 2017-05-15 18:36:38 +02:00
LICENSE.md Updated to raylib 1.5 2016-06-09 01:23:07 +02:00
README.md Update README.md 2017-05-15 18:55:18 +02:00
ROADMAP.md Review contact information 2017-03-19 12:52:13 +01:00

about

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.

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)
  • Uses 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 multiple SpriteFonts formats support (XNA bitmap fonts, AngelCode fonts, TTF)
  • Outstanding texture formats support, including compressed formats (DXT, ETC, PVRT, ASTC)
  • Basic 3d support for Shapes, Models, Billboards, Heightmaps and Cubicmaps
  • Materials (diffuse, normal, specular) and Lighting (point, directional, spot) support
  • Shaders support, including Model shaders and Postprocessing shaders
  • Powerful math module for Vector and Matrix operations: raymath
  • Audio loading and playing with streaming support and mixing channels (WAV, OGG, FLAC, XM, MOD)
  • Multiple platforms support: Windows, Linux, Mac, Android, Raspberry Pi and HTML5
  • VR stereo rendering support with configurable HMD device parameters
  • Custom color palette for fancy visuals on raywhite background
  • Minimal external dependencies (GLFW3, OpenGL, OpenAL)
  • Complete binding to LUA: raylib-lua

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, raylib uses native_app_glue module (provided by Android NDK) and native Android libraries to manage window/context, inputs and activity life cycle.

On Raspberry Pi, raylib uses Videocore API and EGL for window/context management and raw inputs reading.

raylib is licensed under a zlib/libpng license. View LICENSE.

tools requirements

raylib has been developed using exclusively two tools:

Those are the tools I recommend to develop with raylib, in fact, those are the tools my students use. I believe those are the best tools to train spartan-programmers.

Someone could argue about debugging. raylib is a library intended for learning and I think C it's a clear enough language to allow writing small-mid size programs with a printf-based debugging. All raylib examples have also been written this way.

Since raylib v1.1, you can download a Windows Installer package for easy installation and configuration. Check raylib Webpage

building source (generate libraylib.a)

Check raylib wiki page: Compile for...

building examples

Check raylib wiki page: Compile for...

contact

If you are using raylib and you enjoy it, please, let me know.

If you feel you can help, then, helpme!

acknowledgements

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!

  • Zopokx for testing the web.
  • 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.
  • Chris Hemingway for improving raylib on OSX build system.
  • Emanuele Petriglia for working on multiple GNU/Linux improvements and developing TicTacToe raylib game.
  • Joshua Reisenauer for adding audio modules support (XM, MOD) and reviewing audio system.
  • Marcelo Paez (paezao) for his help on OSX to solve High DPI display issue. Thanks Marcelo!
  • Ghassan Al-Mashareqa for his amazing contribution with raylib Lua module, I just work over his code to implement rlua
  • Teodor Stoenescu for his improvements on OBJ object loading.

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.