A downloadable tool for Windows

Download NowName your own price


raylib is a simple and easy-to-use library to enjoy videogames programming.

NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helper... just coding in the most pure spartan-programmers way.

Are you ready? Jump to code examples!.

WARNING: raylib Windows installer requires OpenGL 3.3 support and 64bit architecture. To use raylib with other configurations, please download it directly from GitHub and setup it manually for desired platform configuration. Instructions are provided on raylib GitHub Wiki.

NOTE: raylib is being developed and maintained with big effort by Ray (that's me!). If you like the library and you enjoy it, consider contributing to the project through GitHub Sponsorsraylib Patreon or just donating on downloading.

features

  • NO external dependencies, all required libraries are included in raylib
  • Multiplatform: Windows, Linux, macOS, RPI, Android, HTML5... and more!
  • Written in plain C code (C99) in PascalCase/camelCase notation
  • Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES 2.0, ES 3.0)
  • Unique OpenGL abstraction layer (usable as standalone module): rlgl
  • Multiple Fonts formats supported (TTF, OTF, BDF, SpriteFonts...)
  • Outstanding texture formats support (including DXT, ETC, ASTC)
  • Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more!
  • Flexible Materials system, supporting classic maps and PBR maps
  • Animated 3d models supported (skeletal bones animation)
  • Shaders support, including Model shaders and Postprocessing shaders
  • Powerful math module for Vector, Matrix and Quaternion operations: raymath
  • Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC...)
  • VR stereo rendering support with configurable HMD device parameters
  • Huge examples collection with +140 code examples!
  • Bindings to +70 programming languages!

Wanna see all functions available in raylib? Check Cheatsheet

Looking for binaries for a different platform? Check GitHub official release page for precompiled library binaries for multiple platforms and compilers!

raylib is open-source and free to use. View license.

StatusReleased
CategoryTool
PlatformsWindows
Rating
Rated 4.9 out of 5 stars
(153 total ratings)
AuthorRay
GenreEducational
Made withraylib
Tagscoding, Game engine, learn, Minimalist, Open Source, programming, raylib, tool
Code licensezlib License
Average sessionDays or more
LanguagesEnglish
InputsKeyboard, Mouse, Gamepad (any), Joystick, Touchscreen
AccessibilityConfigurable controls, Interactive tutorial
LinksHomepage, Patreon, Source code, Support, Community

Download

Download NowName your own price

Click download now to get access to the following files:

raylib 5.5 Windows Installer (64bit) 647 MB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 40 of 86 · Next page · Last page

Cool. But how to build a raylib project under PSP?

(+1)

Here there is a script and some instructions: https://github.com/raylib4Consoles/raylib4Psp

i'm not good in c and raylib but still i love c and raylib

Nice! If you keep using it you will definitely get better at it! 👍😄

Would recommend making the download a .zip file, windows has all kind of issues with the .exe download.  I was able to download after multiple lines of questioning.... anyways, wish me luck with it, I'll give it a try.

Great project!

Thanks! 😄

(1 edit)

now, the question is : how to use it with C# ?

Because, those who produce nugget packages for VS have troubles to stay updated... And when it is done, it lack some libs.

And in order to use it with a C# project, we need a .dll, not a .h

(1 edit)

just find a binding for it

(1 edit)

The Raylib website gives you a hyperlink to the Raylib-cs C# binding — which, according to a French course I follow (from Gamecodeur), is both official and reliable.

Also see the hyperlink to the list of bindings at the same page, in case you are interested.

bienvenu au club gamecodeur.

ceci dit, la lib n'est pas à jour de raylib 5.5.

Ah tiens, j’ai bien fait de mentionner Gamecodeur, alors, ça fait plaisir de tomber sur quelqu’un de là-bas dans le coin. ;) (Ça m’est aussi arrivé à GMTK 2022 !)

En effet, que 5.0 selon la liste… Selon David Mekersa, Raylib-cs est tout de même actif et tente de se tenir à jour. Après, je ne sais pas combien de temps cela leur prend ; j’imagine que faire un tour sur le dépôt Git de Raylib-cs peut te donner une idée.
Personnellement, j’utilise le Raylib d’origine en C, alors je suis tranquille. ;) (Je viens d’ailleurs de voir qu’il manque le prototype de la nouvelle fonction GetKeyName qui permet de gérer les claviers hors QWERTY, je vais suggérer de voire corriger cela. :))

----------
(For English speakers, because I think of you, while some of you do not think of our AZERTY keyboards. ;))
Indeed, only 5.0 according to the list… According to David Mekersa, Raylib-cs is still active and tries to keep up to date. Now, I do not know how long this takes them; I guess visiting the Raylib-cs Git repository can give you an idea.
I for one use the original Raylib in C, so I do not have to worry. ;) (I have just seen that the prototype for the new function GetKeyName, which allows you to handle non-QWERTY keyboard layouts, is missing, I am going to suggest fixing that or even do it. :))

j'avais eu une grosse discussion avec JeFF, sur le discord Raylib, justement au suget de la gestion des touches, mais en particulier des keycodes et eventkey.

il avait prévu quelques ajouts aussi, de ce côté là.

Ah, justement, je viens de découvrir aujourd’hui qu’il y a apparemment une prise en compte imminente des touches logiques qui s’annonce. :)
https://github.com/raysan5/raylib/pull/4481
Si JeFF = JeffM2501, alors tout fait sens. ^^ En tout cas, bien content de voir que cela va être pris en compte (et étonné que cela ne figure pas dans la feuille de route de Raylib !).

Ray, I love your project. I have been obsessed with it ever since it was the first library to ever let me put things that I made onto the screen from a single file. As of late, I am especially curious on how you built the installer itself!

(+1)

stumbled upon randomly on my yt feed, now searching for games made with raylib - would reccomend adding a showcase link here 

(+1)

Oh wow, 10th Anniversary! Congratulations!! 🥂

(+1)

Thanks! 😄

Hi Ray

I have a question about texture loading and unloading correctness:

#include "raylib.h"

int main(void) {

    const int screenWidth = 400;

    const int screenHeight = 300;

    SetTargetFPS(60);

    InitWindow(screenWidth, screenHeight, "DrawTexture Example");

    int fontsize = 20;

    char *getfont = "fonts/JuliaMono-Light.ttf";

    Font font = LoadFontEx(getfont, fontsize, 0, 250);

    char *ptr = "Texture";

    int x = 50, y = 30;

    Image image = GenImageColor(screenWidth, screenHeight, WHITE);

    ImageDrawTextEx(&image, font, ptr, (Vector2){ x, y }, fontsize, 0, BLUE);

    Texture2D texture = LoadTextureFromImage(image);

    while (!WindowShouldClose()) {

        if (IsKeyDown(KEY_ENTER)) {

            ImageDrawRectangle(&image, x, y, 300, 30, WHITE);   // erase or text will become ugly

            ImageDrawTextEx(&image, font, ptr, (Vector2){ x, y }, fontsize, 0, RED);

            UnloadTexture(texture);                             // 1 saving memory or is it wrong?

            texture = LoadTextureFromImage(image);

        }

        else if (IsKeyDown(KEY_SPACE)) {

            ImageDrawRectangle(&image, x, y, 300, 30, WHITE);   // erase or text will become ugly

            ImageDrawTextEx(&image, font, ptr, (Vector2){ x, y }, fontsize, 0, PURPLE);

            UnloadTexture(texture);                             // 2 saving memory or is it wrong?

            texture = LoadTextureFromImage(image);

        }

        BeginDrawing();

        ClearBackground(WHITE);

        DrawTexture(texture, 0, 0, WHITE);

        EndDrawing();

    }

    UnloadImage(image);

    UnloadTexture(texture);

    CloseWindow();

    return 0;

}

/*

The console reports an incremental higher TEXTURE: [ID num] each time I use Enter or space. Is it only an intern Raylib count or?

Thanks in advance.

*/

(1 edit)

Hi Ray

I'm printing (Linux CUBS printer) on paper and use this test code snip, that works fine. 

// Raylib 5

    int x = 0;

    int y = 100;

    int fontsize = 16;

    char *getfont =  "arial.ttf"; // tried different fonts without success.

    Font font;

    font = LoadFontEx(getfont, fontsize, 0, 250);

    const char *t = "mimMIN";

    ImageDrawTextEx(&image, font, t, (Vector2){ x, y }, fontsize, 1, BLACK);

    const char *filename = "output.png";

    ExportImage(image, filename);

But I have issues with the sharpness of the letters, they become a bit blurred or unclear. I had similar issue month ago, when I printed from Windows using Raylib 4.5, but not using the same font from Notepad. I never got that problem solved.

Do you have a suggestion for what I can improve, if the problem at all is related to Raylib?

Thanks in advance.
Hobby programmer

I'm afraid there is not much it can be done in that regards. raylib uses stb_truetype for font rasterization. Afaik, it does not support better font rasterization options like ClearType hinting.

(+1)

I solved the issue by using an image of higher resolution and then print and it very fine.

Thanks for answer.

ha pasado un año mas o menos para poder usar raylib en Dlang ahora me funciona, gracias autor por esa libreria <3, podrias compartir tutoriales sobre desarrollo pero en Dlang

the exe simply doesn't run for me on windows 11

It requires OpenGL 3.3 support to run... but it can also be locked by an antivirus.

You might have to go in to preferences of the file and on the bottom there should be a box Unblock

I have made small relational database in C, which uses the fantastic Raylib graphics for the interface. Raylib just works perfect for me.

I'm using Linux Mint and it works fine, but if I have to use the database on another Linux Mint computer, I ran into some issues. When I try to run the executable, it respond not associated to any known programs...

What do the other computer need to run the executable file?

Any help would be appreciated.

(-1)

Hi! Afaik, it should work ok on other computers with same OS and system libraries installed. 

If some external resources are required they should be provided along the executable.

It could also be a permissions issue.

Thanks Ray. 

I guess it might be, because I'm trying to use the executable on a Linux Mint LMDE(Debian) and I had made it on a Linux Mint(Ubuntu).

Right now, I'm trying to install Raylib on Linux Mint LMDE, but it's a struggle.

I have read that the installation can be as simple as this:

1. git clone https://github.com/raysan5/raylib.git

2. cd raylib

3. cmake .  gives lots of errors

4. make

I fairly new to Linux and uses CodeBlocks and C99.

After many issues, I think the above is okay. Now I got errors about rlgl.h line 1200  gives undefined reference to 'sqrtf' and many more raymath.h e.g.

That seems related to math library, are you linking with some math library? 

I don't think so, but now I got rid of that error and can compile without errors and warnings.

When I try to run the compiled file, the console shows: error while loading shared libraries: libraylib.so.500: cannot shared object file: No such file or directory

Thank you for this great library. I have been using it recently and enjoy it a lot. It’s such a great middleman between low-level graphics programming and something like Godot or a library that has scenes and things like that. Plus, I can use C. Very easy to use and highly intuitive.

If anyone is interested, I have created a little template project that uses a Makefile and a shell script to download and install for compiling for linux/web and for cross-compiling to win32. I haven’t really used CMake before so I wanted to try and keep it simple. https://git.sr.ht/~kmdodrill/raylib-template

(+1)

Thanks! Glad you like it! :D

And thanks for sharing the template!

Hi, I have a problem on win 11. When I click installers exe, win thinks for a moment, but then nothing happens. Please help! 

This library is super cool. Can i use this in a custom version of Lua?

Sure!

i started working on it

the name is lunar, i made decent progress, i think

(+1)

Is this compatable with C++ or C#?

there are bindings for both

Hey, this is cool library!
Maybe my games will be powered on it :) 

Thanks! Hope you enjoy it! :D

How do I change what directory it installs to?

(+1)

Installer does not allow to change the directory, it contains multiple compilation scripts preconfigured and choosing another path would require reconfiguring all those scripts. In any case, the installation is self-contained, experienced users can just move C:/raylib to any other directory if required compilation scripts are setup properly.

thank you so much for creating this. it saved a heck ton of time for me. i was using c-sfml before but this is a lot quicker and easier. again thanks for making it :)

(+1)

thanks! glad you like it! 🙂

(-15)

uhm, where does the exe of raylib even is?
is this a scam?

i cant find it

raylib is a C programming library to code games using a code editor. It does not include a visual tool like Godot, Unity or Unreal.

(-10)

oh, but i (may) can only code visually

there are bindings and ports for various other programming languages that are easier to learn than C, maybe some of them have visual programming tools, but i don't know

how can i setup it in VS Code? im a beginner so i want to know :D

(+2)

You can check raylib Wiki for details: https://github.com/raysan5/raylib/wiki/Using-raylib-in-VSCode but I also recommend joining raylib Discord and ask the community if you have any problem with the configuration.

Deleted 1 year ago

I think so but I haven't tested it.

(+1)

hi, does raylib support networking?

I’m afraid it does not. I recommend using nbnet library for that task.

(+1)

Hey Ray, I have been using Raylib for a small library for drawing pixels one at a time and slowly drawing lines to make cool animations.

Here is an example:

However, I want to create a flood fill algorithm which means getting the pixels on the screen and checking their color. Is there a function which can get the screen pixels or do I have to try something else entirely?

Hi! Nice application! You can use LoadImageFromScreen() to get screen data as an Image and LoadTextureFromImage() to get a Texture2D to draw on screen again but this can be very slow...

thanks that may actually work for my purposes since it’s not performance critical and just meant to do something good looking very slowly!

Nice! Feel free to share your creation on raylib Discord community, there is a #madewithraylib channel for that. Also, you can share your creations in raylib GitHub Discussion: https://github.com/raysan5/raylib/discussions/1326

will do if I manage to finish it!

(1 edit) (+1)

Any thoughts of providing written/video tutorials for total beginners?

(+1)

It’s been on my TODO list for long time but my resources are limited and creating that kind of content requires lot of time that I usually invest in solving bugs and improving the library.

(+3)

Honestly this is not just the best graphics / game library I've ever tried, It's all around one of the best written project I've ever seen. The code is extremely clean and easy to understand, while capable for almost anything that I could think of as for game programming at this level. Very good example of self documenting code: the simple and well organised cheat sheet with occasional look ups in the source code, and the very high quality examples on the project web page is perfectly enough for working with this Really happy to see projects like this! Thank you very much for your amazing work! 

(+2)

Thank you very much! Glad you like it! I put a lot of work and lot of care to this project! I love to see it is appreciated! Thanks! 🙂

(+2)

Been deep diving into the repos and all the custom tools.  The organization, polish, and simplicity is a thing of beauty. And all written in C, fully open source.  Exactly what I have been looking for, well worth a donation imo. I can't wait to get started on my project ideas.  Well done!!!

Thank you very much! Glad you like it! 😄

That looks interesting, i think i will try it out!

(+1)

Hope you enjoy it! :D

What version of MinGW do i need to have installed for raylib? I’m reinstalling stuff but don’t remember the version needed.

(+2)

Latest raylib installs w64devkit that includes an updated version of MinGW built with the latest tools. You can find it on GitHub.

(+2)

Massive kudos, raysan. This framework is amazing and I'm extremely impressed with how much it can do. You're awesome, keep up the good work!

(+3)

Thank you very much Zed! Glad you like it! :D

Hello, for my new game I want to use new things for me, rayLib and zig. Have you got a basic example written in zig with build.zig ? I am trying same way as SDL but I always an error at first rayLib command "initWindow". build.zig in zip package don't seem to help :)  (sorry for my poor english)

hey i'm very new to coder/programing games could this tool help me get better or should i find another tools to help me get better then come back to this

(+2)

This tool is a C programming library, there is no visual interface, just coding in a text editor, it's recommended that you have some previous C language knowledge to use it.

(+1)

does it support tiled maps

(+2)

Tile maps is up to the user, raylib is a low level library, it supports textures drawing and also drawing a part of a texture, it could be used to draw tilemaps.

(+1)

Seriously one of the best small game frameworks ever released. Simple, fast, and pretty damn elegant.

Well done raysan!

(+2)

Thank you very much! Glad you like it! 😄

Hi Ray,

I've found an issue with the audio system. If an application uses audio and there is no audio device plugged into the computer, the application will crash. I've tried this on multiple devices and it always occurs. I also tried fixing this by using a try-catch block but this didn't work.

Raylib Version: Raylib 3.5.

Language: C++ 

Pleease, could you open an issue on raylib github repo for review?

While opening an issue on the Github page, I tested the newest version of Raylib and it seems this problem does not happen anymore, so I haven't submitted the issue. 

Oh, nice! raylib usually improves from version to version.

(-7)

"improves from version to version"
wow I had no ideas that tihgns cen impov, uneleik me grammaer

When I install raylib 4.0 with tcc, I get raylib 2.0-dev instead.

I verified the file and it's actually raylib 4.0, how did you notice it was raylib 2.0-dev?

(1 edit)

It says so in the logging when I start up my game plus TextFormat and mp3 files were suddenly unsupported (I upgraded from 3.0).

I wanted to upgrade, because I made a small game that is basically done, but I suddenly noticed that the game crashes, when I play a sound that is loaded as number 11 or above (I have tried switching around and removing sounds). I recall it working before, but I must be wrong.

(1 edit)

I don't know where could be the problem. Did you had a previous raylib version installed? I recommend you remove previous raylib version and try installing it again. Idouble verified the TCC installer and it is raylib 4.0, it installs the library and it compiles the examples as expected with raylib 4.0. You can also join raylib Discord and ask there, in case anyone has found a similar issue.

I now have tried to remove the old installation before installing the new. The same has happened, but honestly, I would rather use another compiler, so I can debug and get better error messages. It was just the first install option that would actually work for me.

Ok.

Hi Ray, I am having trouble setting up raylib for vscode. I have tried to do many things to solve this by myself but had no luck. im on windows 10

info:

i downloaded raylib_4.0.0_win64_mingw-win64

my compiler is mingw32 with gcc

i want to use raylib with c++17


Here are some of the things i tried:

- I added the include and lib directory of raylib4.0 to my system path (PATH)

- I also added them to the include directory of my compiler.

-the compiler picked up the raylib.h file but when compiled, it just returns many undefined references to raylib's functions such as InitWindow()

Thanks in advance Ray

i could send a sample code.

You can check raylib Wiki for instructions: https://github.com/raysan5/raylib/wiki/Using-raylib-in-VSCode 

You can also join raylib Discord for some help, there is a specific channel (raylib-setup) for problems with setup configurations.

Hi! Can you show me an example of how to use functions SaveFileData and LoadFileData to store something on the hard drive? Or is there example for that already? I couldn't find...

How powerful/fast is Raylib? Is it possible to have more complex 3d scenes as the examples show ? The framework looks very nice and simple, but is that at the expense of performance

:D

raylib is a thin layer over OpenGL, it should be quite performant but I recommend profiling it first to see if it fits your needs.

(1 edit)

Ok thanks for your fast reply. I'll have a look at it :D

Viewing most recent comments 1 to 40 of 86 · Next page · Last page