I work as a videogames programming teacher and videogames developer. Last year I started working in a small C library to teach videogames programming to my students, it's called raylib (http://www.raylib.com). It worked really well with my students and I've continued developing it along this year. Some days ago I released a new version with support for Android devices and Raspberry Pi. raylib also comes with lots of simple code examples (http://www.raylib.com/examples.htm) and some project templates to start mid-size games (https://github.com/raysan5/raylib/tree/master/templates)

In the raylib webpage there is a Windows Installer containing the library, the compiler and a simple code editor for quick installation and usage (really useful for a fast setup), but the library sources, examples and templates also come with RaspberryPi-ready makefiles to be used on Raspberry Pi.

I've worked in raylib for more than a year now; I've invested 1000+ hours on its development, getting feedback from more than 80 student and I continuously added required features... raylib worked really well with my students and I think it can be useful for other teachers or Raspberry Pi game developers.

If someone wants to try, just let you know about its existence. Any feedback is welcome!

Note for Moderator: I also posted this info on Education Resources board because raylib is mainly oriented to education but it can also be used for games development. Please, feel free to remove this post if feel convenient.

I just published raylib v1.3. That's the biggest raylib update since it's creation about two years ago and comes with lot of new features:

- Shaders support for easy shaders loading and use. Loaded shaders can be attached to 3d models or used as fullscreen postrocessing effects. A bunch of postprocessing shaders are also included in this release, check raylib/shaders folder.

- raygui, the new IMGUI (Immediate Mode GUI) module offers a set of functions to create simple user interfaces, primary intended for tools development. It's still in experimental state but already fully functional.

I just published raylib 1.4. On this new version, lots of parts of the library have been reviewed, lots of bugs have been solved and some interesting features have been added.

First big addition is a set of Image manipulation functions have been added to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. Now a basic image processing can be done before converting the image to texture for usage.

SpriteFonts system has been improved, adding support for AngelCode fonts (.fnt) and TrueType Fonts (using stb_truetype helper library). Now raylib can read standard .fnt font data and also generate at loading a SpriteFont from a TTF file.

New physac physics module for basic 2D physics support. Still in development but already functional. Module comes with some usage examples for basic jump and level interaction and also force-based physic movements.

raymath module has been reviewed; some bugs have been solved and the module has been converted to a header-only file for easier portability, optionally, functions can also be used as inline.

gestures module has redesigned and simplified, now it can process touch events from any source, including mouse. This way, gestures system can be used on any platform providing an unified way to work with inputs and allowing the user to create multiplatform games with only one source code.

Raspberry Pi input system has been redesigned to better read raw inputs using generic Linux event handlers (keyboard:stdin, mouse:/dev/input/mouse0, gamepad:/dev/input/js0). Gamepad support has also been added (experimental).

Other important improvements are the functional raycast system for 3D picking, including some ray collision-detection functions, and the addition of two simple functions for persistent data storage. Now raylib user can save and load game data in a file (only some platforms supported). A simple easings module has also been added for values animation.

Up to 8 new code examples have been added to show the new raylib features and +10 complete game samples have been provided to learn how to create some classic games like Arkanoid, Asteroids, Missile Commander, Snake or Tetris.

After 5 months of really hard work, here it is the amazing new raylib 1.5. One of the few C libraries primary intended to learn videogames programming and that let's you compile the same code for multiple platforms, from Raspberry Pi to Oculus Rift CV1.

This new version comes with a lot of features but probably the most amazing one is the support for Oculus Rift CV1 and VR simulator. It means, you can run your raylib games extremely easely in Oculus Rift CV1 but also, if you don't have an VR device connected, you can see an stereo rendering simulation with distortion... even on a Raspberry Pi!

Ray, a couple of issues compiling Raylib on a Raspberry Pi by simply following the instructions on your Github page:

I am using a new clean install of Jessie 2016-05-27.

I cloned the Git repository. The initial make failed saying it couldn't create ../release/rpi/libraylib.a so I created the ../release/rpi directory, after which it compiled OK, and created ../release/rpi/libraylib.a

Then when I tried to compile any of the examples, I got the following error:

/usr/bin/ld: cannot find -lraylib

Looking at the gcc string, it contains -L../src so I copied ../release/rpi/libraylib.a into ../src after which all the examples compiled fine.

Perhaps you might need to update the makefile and/or instructions, as it's likely to trip up a newbie?

Just updated raylib to version 1.6 to commemorate the 3rd anniversary of its development. New version comes with a bunch of changes:

Complete raylib binding to LUA. All raylib functions plus the +60 code examples have been ported to LUA, now LUA users can enjoy coding videogames in LUA while using all the internal power of raylib.

Completely redesigned audio module. Based on the new direction taken in raylib 1.5, it has been further improved and more functionality added (+20 new functions) to allow raw audio processing and streaming.

Physac module has been moved to its own repository and it has been improved A LOT, actually, library has been completely rewritten from scratch by @victorfisac, multiple samples have been added together with countless new features to match current standard 2D physic libraries. Results are amazing!

Camera and gestures modules have been reviewed, highly simplified and ported to single-file header-only libraries for easier portability and usage flexibility.

Improved Gamepad support on Windows and Raspberry Pi with the addition of new functions for custom gamepad configurations but supporting by default PS3 and Xbox-based gamepads.

Improved textures and text functionality, adding new functions for texture filtering control and better TTF/AngelCode fonts loading and generation support.

After almost 6 months of hard work, new raylib 1.7 is ready! Some highlights of this new version are:

More than 30 new functions added to the library: functions to control Window, utils to work with filenames and extensions, functions to draw lines with custom thick, mesh loading, functions for 3d ray collisions detailed detection, functions for VR simulation and much more!

Support of configuration flags on every raylib module. Advance users can customize raylib just choosing desired features, defining some configuration flags on compilation. That way advance users can control library size and available functionality.

Improved build system for all supported platforms (Windows, Linux, OSX, RPI, Android, HTML5) with a unique Makefile to compile sources. Added support for Android compilation with a custom standalone toolchain and also multiple build compliation flags.

New examples and sample games added. All samples material has been reviewed, removing useless examples and adding more comprehensive ones; all material has been ported to latest raylib version and tested in multiple platforms. Examples folder structure has been improved and also examples build systems.

Improved library consistency and organization in general. Functions and parameters have been renamed, some parts of the library have been cleaned and simplified, some functions have been moved to examples (lighting, Oculus support) towards a more generic library implementation.

PS: Some examples also need the "-std=c99" option.
PPS: Older versions of raspbian can probably remove the "brcm" letters from the library names, I think they came in Stretch. Check your "/opt/vc/lib" directory.

thank you very much for your guide, nonetheless I have 3 concerns / considerations:
1st, I have Jessie, not Stretch, and I have no Pi3 but just 2 old Pi2
2nd, I need the XWindows because all windows have to be resizeable and moveable due to different additional windows.
3rd, last but not least, I have to use C(++)11 (if not even C(++)14 for the future) because of some robot IOshield libs which are using C++ objects/instances.