Raylib es una librería Open Source para realizar videojuegos, diseñada para ser sencilla y fácil de usar, que está disponible en una amplia variedad de plataformas y lenguajes.
Raylib busca alejarse de soluciones y motores de videojuegos más complejos y pesados, centrándose en los aspectos más básicos y fundamentales del desarrollo de videojuegos.
Así, elimina la necesidad de dependencias adicionales o de añadir enormes frameworks o motores de videojuego a nuestro proyecto. Simplemente funciona, sin necesidad de grandes complicaciones, y con un sabor old-school que resulta de agradecer.
Dentro de las características fundamentales de la librería encontramos, lógicamente, la creación de gráficos 2D y 3D. Su sintaxis está inspirado en Borland BGI graphics y XNA framework. Es compatible con gráficos acelerados mediante OpenGL (1.1, 2.1, 3.3, 4.3 or ES 2.0).
Además del aspecto gráfico, raylib incorpora funcionalidades para la simulación de físicas sencillas, como colisiones entre objetos. El conjunto de funciones core se completa con herramientas para gestión de entradas de usuario, como teclado, ratón o gamepad.
Como habíamos adelantado, uno de los puntos más interesantes es su compatibilidad con múltiples arquitecturas y SO. Estas incluyen Windows, Linux, macOS, Raspberry Pi, Android y Web (HTML5). De hecho, en teoría, debería ser compatible con cualquier plataforma que pueda ejecutar código en C y disponga de gráficos OpenGL.
Raylib está desarrollado por completo en C (C99). Sin embargo, existen bindings que nos permiten emplear raylib desde +60 lenguajes de programación. Estos incluyen C#, Java, Rust, Dart, Go, Python, entre otros.
Como hemos dicho, uno de los puntos fuertes de raylib es su sencillez de uso, frente a otras soluciones mucho más pesadas. Por ejemplo, así luciría un sencillo “hola mundo” desarrollado con raylib.
#include "raylib.h"
int main(void)
{
InitWindow(800, 450, "raylib - basic window");
while (!WindowShouldClose())
{
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("Felicidades, has creado una ventana!", 190, 200, 20, LIGHTGRAY);
EndDrawing();
}
CloseWindow();
return 0;
}
Cómo vemos, no ha sido necesario añadir una larga lista de dependencias, ni emplear un motor gráfico complejo. Únicamente debemos añadir la dependencia a raylib y el código “skeleton” necesario para ejecutarlo en nuestra aplicación es realmente sencillo.
El proyectodispone de una amplia librería de ejemplos que documentan las principales funciones de la librería. Estos pueden ejecutarse pueden ejecutarse directamente desde la web, gracias a la compatibilidad de raylib con HTML5. Están están disponibles en https://www.raylib.com/examples.html.
En sus diez años de desarrollo, raylib ha recibido numerosos reconocimiento, incluidos prestigiosos premios de la mano de compañías de conocido renombre, como por ejemplo Google y Epic Games.
Raylib se completa con una amplia colección de librerías muy interesantes del mismo autor, como raymath para matemáticas, raudio para la reproducción de sonidos, o raygui para la realización de UIs, entre otras.
El proyecto se encuentra documentado de forma excelente, siendo destacables los ejemplos que hemos indicado anteriormente, así como la “Cheatsheet” o “hoja de resumen” disponible en este enlace.
Raylib Open Source y se distribuye bajo licencia zlib/libpng. Todo el código está disponible en https://github.com/raysan5/raylib/, donde también encontraréis instrucciones detalladas para hacerlo funcionar en las distintas plataformas.