A .NET framework for building cross-platform 2D and 3D games in C#, re-implementing Microsoft's discontinued XNA Framework.
raysan5/raylib
A simple C library for making videogames, with 2D/3D graphics, input, audio and cross-platform support, no external dependencies.
Open-source alternative to:Unity
Unreal Engine
- Stars
- 35,359
- Forks
- 3,350
- Open issues
- 10
- Last commit
- 6 hours ago
What is it?
raylib is a C library for videogame programming, designed to be simple enough for prototyping, education, tooling and embedded systems. It draws inspiration from the Borland BGI graphics library and the XNA framework, and provides a single API for opening a window, handling input, rendering 2D and 3D content, and playing audio.
The library is written in C99 with all required dependencies bundled in, so it needs no external packages to build. It targets Windows, Linux, macOS, Raspberry Pi, Android and HTML5, and uses OpenGL for hardware acceleration, with a software renderer available as an alternative. Support covers common texture, font, 3D model (IQM, M3D, glTF) and audio formats, along with shaders, PBR materials and a math module for vectors, matrices and quaternions.
raylib favors minimalism over tooling: it has no built-in editor or debug interface, and it is learned mainly through its large set of examples and a function cheatsheet. Bindings exist for many other programming languages.
Key features
- 01Dependency-free C99 library with all required code bundled
- 02Runs on Windows, Linux, macOS, Raspberry Pi, Android and HTML5
- 032D and 3D rendering with models, shaders and PBR materials
- 04Skeletal animation for IQM, M3D and glTF models
- 05Audio loading and streaming for common formats such as WAV, OGG, MP3 and FLAC
- 06Vector, matrix and quaternion math module
Use cases
- Prototyping a 2D or 3D game quickly in C
- Teaching game programming with a minimal API
- Building graphical tools or visualizations without a large engine
- Running graphics applications on embedded boards such as Raspberry Pi
Quick start
- 1
Download a binary release from the GitHub Releases page
- 2
Or follow the platform build guides in the raylib Wiki
- 3
Start from the basic window example in the README
Things to know
- Single window with a single OpenGL context by default, with no multi-window support.
- Window resize and move stops the rendering loop on platforms that support a window.
- Font rasterization has lower quality than alternatives like Freetype2.
- Text drawing does not support RTL, ligatures or emojis.
Topics
FAQ
- What is raylib?
- A simple C library for making videogames, with 2D/3D graphics, input, audio and cross-platform support, no external dependencies. raylib is a C library for videogame programming, designed to be simple enough for prototyping, education, tooling and embedded systems. It draws inspiration from the Borland BGI graphics library and the XNA framework, and provides a single API for opening a window, handling input, rendering 2D and 3D content, and playing audio.
- Is raylib free to use? What license does it have?
- raylib is open source under the Zlib license. Check the license terms before using it in commercial products.
- Is raylib still maintained?
- Actively maintained. The last commit to raylib was on Oct 21, 2026.
- What can I use raylib for?
- Prototyping a 2D or 3D game quickly in C Teaching game programming with a minimal API Building graphical tools or visualizations without a large engine Running graphics applications on embedded boards such as Raspberry Pi
- How do I install raylib?
- Download a binary release from the GitHub Releases page Or follow the platform build guides in the raylib Wiki Start from the basic window example in the README
- Where can I get raylib?
- The source code and installation instructions are on GitHub: https://github.com/raysan5/raylib
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A simple 2D game engine for the D programming language, with built-in physics, animation, tilemaps and dialogue.
A cross-platform Java game development framework built on OpenGL ES for desktop, Android, web, and iOS games.
Godot is a free, MIT-licensed, cross-platform game engine for building 2D and 3D games from one unified editor.
A retro game engine for Python that lets you make pixel-art games with a fixed palette and low-resolution screen.
No-code, open-source game engine and editor for building 2D, 3D and multiplayer games for mobile, desktop and the web.