raylib es una biblioteca de desarrollo de software de código abierto multiplataforma . La biblioteca fue creada para desarrollar aplicaciones gráficas y juegos. [ 3 ] [ 4 ]
Esta biblioteca está diseñada para su uso en prototipado, desarrollo de herramientas, aplicaciones gráficas, sistemas embebidos y educación. El código fuente está escrito en lenguaje de programación C (específicamente C99 ) y se distribuye bajo la licencia de código abierto zlib/libpng con certificación OSI . Admite la compilación para diversas plataformas, incluyendo Windows, Linux, macOS, FreeBSD, Android, Raspberry Pi y HTML5.
raylib se ha portado a más de 70 lenguajes de programación en forma de enlaces, [ 5 ] pero muchos de estos puertos no son estables. [ 6 ]
Historia
El desarrollo de raylib comenzó en agosto de 2013, cuando Ramón Santamaría creó la biblioteca para dar soporte a un curso de desarrollo de videojuegos dirigido a estudiantes con formación artística y sin experiencia previa en programación. Los comentarios de los estudiantes a lo largo del curso influyeron en su desarrollo inicial, y a mediados de 2014 la biblioteca ya se presentaba en eventos de desarrollo de videojuegos en Barcelona . [ 7 ]
raylib 1.0 se lanzó en noviembre de 2013, ofreciendo funcionalidades básicas para la gestión de ventanas , renderizado 2D/ 3D , carga de texturas y fuentes, y reproducción de audio. Ocho versiones menores durante los siguientes cinco años añadieron compatibilidad con Android , WebAssembly y Raspberry Pi , múltiples backends de OpenGL , compatibilidad con realidad virtual , sombreadores , un módulo de física y una biblioteca de ejemplos en expansión. [ 7 ]
raylib 2.0 se lanzó en julio de 2018, coincidiendo con la salida de Santamaria de su cátedra para dedicarse a raylib a tiempo completo. [ 7 ] Se eliminaron todas las dependencias externas, OpenAL fue reemplazado por la biblioteca miniaudio y se introdujo la compatibilidad con la integración continua . Una versión menor posterior, raylib 2.5, añadió la representación de texto Unicode , animación esquelética con compatibilidad con glTF y un sistema de mando rediseñado . [ 8 ]
raylib 3.0 se lanzó en abril de 2020, refactorizando el código base para mejorar la portabilidad y la compatibilidad con la vinculación de lenguajes. El estado global se consolidó en estructuras de contexto y toda la E/S de archivos se centralizó para permitir la integración de sistemas de archivos virtuales personalizados. En ese momento, estaban disponibles las vinculaciones para más de 40 lenguajes de programación. [ 9 ] Una actualización menor, raylib 3.5, le siguió en diciembre de 2020, agregando el modo nativo de Raspberry Pi 4 y una renderización de software mejorada orientada a dispositivos embebidos. [ 10 ]
raylib 4.0 se lanzó en noviembre de 2021, centrándose en la consistencia de la API a través de un amplio cambio de nombre y mejoras en la documentación. Introdujo un sistema experimental de grabación y reproducción de entradas, temporización de bucle de juego opcional controlada por el usuario y compatibilidad con OpenGL 4.3, con rlgl y raymath promovidas a bibliotecas independientes utilizables. [ 11 ] Le siguieron dos lanzamientos menores: raylib 4.2 en agosto de 2022, que movió bibliotecas secundarias como raygui y physac a repositorios separados e introdujo el formato de empaquetado de recursos rres; [ 12 ] y raylib 4.5 en marzo de 2023, que agregó compatibilidad con ANGLE en escritorio para habilitar backends Vulkan , Direct3D 11 y Metal , extendió la compatibilidad con animación a los formatos M3D y glTF, y agregó el formato de audio QOA. [ 13 ]
raylib 5.0 se lanzó en noviembre de 2023 para conmemorar el décimo aniversario de la biblioteca. Su cambio más significativo fue la división del módulo de plataforma principal en backends separados e intercambiables, lo que hizo que la compatibilidad con nuevas plataformas fuera mucho más accesible, con SDL2 añadido como backend de escritorio alternativo junto con un backend no oficial para Nintendo Switch . También se introdujeron el dibujo de splines, un nuevo generador de números pseudoaleatorios y un sistema de eventos de automatización rediseñado. [ 14 ] Una versión menor, raylib 5.5, siguió en noviembre de 2024, añadiendo RGFW y SDL3 como backends de plataforma adicionales, compatibilidad con skinning de GPU para animaciones de modelos 3D. [ 15 ]
Raylib 6.0 se lanzó en abril de 2026. Se introdujo un motor de renderizado por software , lo que permitió que Raylib se ejecutara completamente en la CPU sin GPU. Se añadieron nuevos motores de plataforma para Win32 y Emscripten sin dependencias de bibliotecas de terceros, junto con un modo de búfer de memoria sin interfaz gráfica. El escalado a pantalla completa y de alta resolución (High-DPI) se rediseñó por completo, y el sistema de animación esquelética se reconstruyó para admitir la fusión entre animaciones. La colección de ejemplos superó las 215 entradas, y se introdujo una herramienta dedicada a la gestión de ejemplos para agilizar las contribuciones. [ 16 ]
Características
raylib ofrece las siguientes características: [ 17 ] [ 18 ]
- Compatibilidad con múltiples plataformas, incluyendo Windows, Linux, macOS, Raspberry Pi, Android y HTML5.
- Compatibilidad con OpenGL 1.1, 2.1, 3.3, 4.3 y OpenGL ES 2.0, 3.0 como API gráfica.
- Carga y visualización de imágenes, texturas y fuentes desde varios formatos.
- Reproducción y carga de audio desde varios formatos y compatibilidad con streaming.
- Operaciones matemáticas para vectores, matrices y cuaterniones.
- Renderizado 2D con cámara, incluyendo procesamiento automático de sprites.
- Renderizado de modelos 3D, incluyendo sombreadores personalizados y sombreadores de postprocesamiento.
- Compatibilidad con simulaciones de realidad virtual con parámetros configurables del dispositivo HMD.
- Compatibilidad con modelos 3D y 2D animados y no animados.
Ejemplo
Este es un ejemplo sencillo que crea una ventana con texto, disponible en la página de GitHub de Raylib.
#incluir "raylib.h"int main ( void ) { InitWindow ( 800 , 450 , "raylib [core] example - basic window" );while ( ! WindowShouldClose ()) { BeginDrawing (); ClearBackground ( RAYWHITE ); DrawText ( "¡Felicidades! ¡Has creado tu primera ventana!" , 190 , 200 , 20 , LIGHTGRAY ); EndDrawing (); }CerrarVentana ();devolver 0 ; }Recepción y adopción
A partir de abril de 2026 ,GitHub enumera alrededor de 2500 proyectos que coinciden con el raylibtema. [ 19 ]
Arquitectura de software
Módulos

raylib consta de varios módulos que se exponen al programador a través de la API .
- núcleo: gestiona la creación de ventanas y la inicialización del contexto OpenGL , así como la gestión de entradas (teclado, ratón, mando y entrada táctil).
- rlgl – Gestiona el backend de OpenGL , abstraiendo múltiples versiones a una API común. Este módulo puede utilizarse de forma independiente.
- Formas: maneja la representación básica de formas 2D (línea, rectángulo, círculo...) y la detección básica de colisiones.
- Texturas: gestiona la carga (CPU y GPU) y la administración de imágenes y texturas, incluyendo la funcionalidad de manipulación de imágenes (recorte, escalado, tinte, etc.).
- Texto: Gestiona la carga de fuentes como hoja de sprites y la representación del texto. También incluye algunas funciones de procesamiento de texto (unir, dividir, reemplazar, etc.).
- modelos: gestiona la carga y el renderizado de modelos 3D, incluyendo la compatibilidad con modelos animados.
- raudio: Gestiona los dispositivos de audio, la carga y la reproducción de archivos de audio, incluyendo la compatibilidad con la transmisión en directo. Este módulo puede utilizarse de forma independiente.
- raymath: proporciona un conjunto de funciones matemáticas para vectores, matrices y cuaterniones.
Encuadernaciones
raylib cuenta con enlaces para más de 70 lenguajes de programación diferentes, creados por diversas comunidades de lenguajes. Los lenguajes de programación que se actualizan a la última versión incluyen: C# , Crystal , D (Dlang) , Fortran , Go , Jai , Java , Lua , Nim , Python , Rust , V (Vlang) y Zig . También hay un envoltorio de C++ para usuarios de C++ que prefieren un uso menos parecido a C y más acorde con las convenciones de C++, y también se puede importar como un módulo de C++ . [ 21 ] Una lista de enlaces está disponible en el archivo BINDINGS.md [ 5 ] en el repositorio de GitHub de raylib .
Ejemplo usando raylib-cpp
El siguiente ejemplo es idéntico al anterior, utilizando las bibliotecas de C++ de raylib-cpp.
importar raylib ;using raylib :: Texture ; using raylib :: Window ; using namespace raylib :: Colors ;int main ( int argc , char * argv []) { constexpr int SCREEN_WIDTH = 800 ; constexpr int SCREEN_HEIGHT = 450 ;Ventana window ( SCREEN_WIDTH , SCREEN_HEIGHT , "raylib [core] example - basic window" ); Textura logo ( "raylib_logo.png" );ventana.SetTargetFPS ( 60 ) ;while ( ! window . ShouldClose ()) { window . BeginDrawing (); window . ClearBackground ( RAYWHITE ); raylib :: DrawText ( "¡Felicidades! ¡Has creado tu primera ventana!" , 190 , 200 , 20 , LIGHTGRAY );logo . Draw ( SCREEN_WIDTH / 2 - logo . GetWidth () / 2 , SCREEN_HEIGHT / 2 - logo . GetHeight () / 2 );ventana.EndDrawing ( ) ; }devolver 0 ; }Complementos
La comunidad de raylib ha contribuido con varios complementos para ampliar las funcionalidades y la conexión de raylib con otras bibliotecas. Algunos de los módulos son:
- raygui – Módulo GUI de modo inmediato para raylib [ 22 ]
- physac – módulo de física destinado a ser utilizado con raylib [ 23 ]
- libpartikel – módulo de sistema de partículas para raylib [ 24 ]
- spine-raylib – Módulo de integración de animaciones Spine para raylib [ 25 ]
- cimgui-raylib – Módulo de integración Dear Imgui para raylib [ 26 ]
Premios
- En abril de 2019, Santamaria fue galardonada con el premio Google Open Source Peer Bonus por su contribución al ecosistema de código abierto con raylib. [ 27 ]
- En agosto de 2020, raylib recibió una Epic MegaGrant de Epic Games para apoyar su desarrollo. [ 28 ]
- En abril de 2021, Santamaria fue galardonada con otro premio Google Open Source Peer Bonus por las mismas razones. [ 29 ]
- En marzo de 2022, raylib fue nominado en la categoría de Mejor Motor de Juego en los Mobile Games Awards 2022. [ 30 ]
Véase también
Referencias
- ↑ "Licencia" .
- ↑ "Raylib GitHub" . GitHub . 10 de octubre de 2021.
- ↑ Thomas (1 de agosto de 2019). "Los mejores motores de juegos 2D: la lista completa (2020)" . Thomas Gervraud . Consultado el 20 de julio de 2020 .
- ↑ "Un juego de serpientes escrito en PHP (con Raylib)" . thephp.website . 12 de abril de 2020. Consultado el 20 de julio de 2020 .
- 1 2 Archivo BINDINGS.md
- ↑ "raysan5/raylib" . GitHub . Consultado el 15 de julio de 2020 .
- ^ Ramón Santamaría (raysan5) (2 de diciembre de 2019 ) . "Lanzamiento: raylib: 6 años de diversión" . Consultado el 26 de enero de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (31 de mayo de 2019). "Notas de la versión raylib 2.5" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (1 de abril de 2020). "Notas de la versión raylib 3.0" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (25 de diciembre de 2020). "Notas de la versión raylib 3.5" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (4 de noviembre de 2021). "Notas de la versión raylib 4.0" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (13 de agosto de 2022). "Notas de la versión raylib 4.2" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (18 de marzo de 2023). "Notas de la versión raylib 4.5" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (18 de noviembre de 2023). "Notas de la versión raylib 5.0" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (18 de noviembre de 2024). "Notas de la versión raylib 5.5" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ Ramon Santamaria (raysan5) (23 de abril de 2026). "Notas de la versión raylib 6.0" . Consultado el 23 de abril de 2026 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ "raylib: una biblioteca de juegos en C++ perfecta para principiantes" . www.gamefromscratch.com . 24 de julio de 2016. Consultado el 20 de julio de 2020 .
- ↑ "Raylib 2.5 lanzado" . www.gamefromscratch.com . 3 de junio de 2019. Consultado el 20 de julio de 2020 .
- ↑ "raylib · Temas de GitHub" . GitHub . Consultado el 15 de enero de 2024 .
- ↑ "raylib" . Consultado el 28 de octubre de 2021 .
- ↑ "RobLoach/raylib-cpp" . GitHub . Consultado el 5 de junio de 2025 .
- ↑ Ray (15-07-2020), raysan5/raygui , consultado el 15-07-2020
- ↑ Fisac, Víctor (14 de julio de 2020), victorfisac/Physac , consultado el 15 de julio de 2020
- ^ Briemann, David Linus (10 de junio de 2020), dbriemann/libpartikel , consultado el 15 de julio de 2020
- ↑ WEREMSOFT (27/06/2020), WEREMSOFT/spine-raylib-runtimes , consultado el 15/07/2020
- ↑ WEREMSOFT (12/07/2020), WEREMSOFT/c99-raylib-cimgui-template , consultado el 15/07/2020
- ↑ "¡Ya están aquí los ganadores del premio Google Open Source Peer Bonus!" . Blog de Google Open Source . Consultado el 15 de julio de 2020 .
- ↑ "rayLib recibe una Epic MegaGrant" . GameFromScratch.com . 7 de agosto de 2020. Consultado el 10 de agosto de 2020 .
- ↑ "¡Anunciamos al primer grupo de ganadores del premio Google Open Source Peer Bonus de 2021!" . Blog de Google Open Source . Consultado el 27 de abril de 2021 .
- ↑ "PREMIOS DE JUEGOS PARA MÓVILES - Los finalistas de 2022" . PREMIOS DE JUEGOS PARA MÓVILES . Consultado el 20 de marzo de 2022 .
Enlaces externos
- Sitio web oficial
- raylib en GitHub
- Juegos de raylib en Itch.io
- Interfaces de programación de aplicaciones
- Bibliotecas de C (lenguaje de programación)
- Bibliotecas gráficas
- Bibliotecas de audio
- Software libre multiplataforma
- API de Windows
- API de Linux
- API de macOS
- Software para el desarrollo de videojuegos
- Software de desarrollo de videojuegos para Linux
- Software que utiliza la licencia zlib