gitmyhub

raylib

C ★ 34k updated 7h ago

A simple and easy-to-use library to enjoy videogames programming

A beginner-friendly C library for making games and graphical apps, handles windows, input, 2D/3D rendering, and audio with simple function calls and no complex setup required.

COpenGLWebAssemblyPythonRustGosetup: easycomplexity 2/5

raylib is a simple and easy-to-use library for building games and interactive graphical applications. It is written in C with a focus on keeping the API minimal and beginner-friendly, avoiding external dependencies entirely. The goal, stated in the README, is to provide a programming-focused library that works across platforms without requiring complex setup.

raylib handles window creation, input (keyboard, mouse, gamepad, and touch), 2D and 3D rendering, audio playback, textures, fonts, shaders, and basic physics utilities. Under the hood it uses OpenGL for rendering, but this is abstracted away so developers interact with simple, readable function calls rather than raw graphics API code. The library compiles to a single static library and links without needing additional runtime dependencies.

It supports Windows, Linux, macOS, Raspberry Pi, Android, and HTML5 via WebAssembly, making it practical for cross-platform game development. A key design principle is that every feature should be accessible from a single C file without prior configuration.

raylib also serves as the foundation for bindings in many other languages, including Python, Lua, Go, Rust, Java, C#, and more, so developers not working in C can still use the library through idiomatic wrappers in their preferred language.

When to use it: raylib is a strong choice for learning game programming, building small games and prototypes, teaching graphics concepts, making game jam projects, or any situation where simplicity and cross-platform support matter more than a feature-rich engine. It is intentionally not a full game engine — there is no editor, no scene graph, no asset pipeline — but rather a clean programming library that gives direct control.

Where it fits