I just got raylib. I'll probably use it for my next game projects. Big fan of the lack of dependencies as well as minimalist design. Coming from TIC80 i feel very invited into the engine. Especially because I'd like to jump into c++. Some day I'll start making game engines, hoping it's a nice jump-down from a fantasy console
I love raylib so much! It just keeps getting better! I've been using for about seven months, since you put out your video about 4.2, that is how I found out about it. It is easy to setup too with pre-make. I use it with C ++ 20 in VS2022. I built a framework with it I call Knightmare.
There's very little information on forums and I had to give up on a project because I simply couldn't find the solution. It's very good though if you can overcome the skill issue
When I discovered that I could use Ruby to write 60fps games with a powerful API, it blew my mind! But the Ruby bindings are outdated. So now I'm actually learning C to create proper bindings.
I'd like to know in which state all of the bindings are, in terms of coverage, activity, usage, with examples of finished (or close to finished) projects. Which of them are like "first tier" which you can use as well as use C++ directly, and which do have some caveats attached to them?
Hey man, just subscribed to your channel. I wonder if you could give me some tips. I'm just diving into C/C++ having not used them for 20 years -- I had a career in software, multimedia, and games, but just didn't end up using these languages. As you say in this video, getting things setup and linking definitely gave me some headaches getting started (looking into SDL first). My specific(ish) question is, once one has their dev setup all working and sane, how easy/painful is it to distribute apps written in C/C++ using "cross-platform" libraries like SDL, SFML, RayLib, OpenGL, etc. I'm asking broadly, not for details. I am just wondering if this will be an even bigger pain point than getting started was. Thanks for the content!
Yeah coming from SDL, i feel the exact same way. An RL_ prefix seems like a no-brainer and would drastically improve the intuitive feel of me the coder not to mention the code completion intellisense.
@@DrZygote214 First thing I did when I used raylib was create wrappers for all the functions I used so I could call "RAY_******" when I wanted a raylib function.
C++ is still king, you can port your game to literally any device. If you use any binding, then you are slave to the options the language provides. Honestly after fiddling with c++ a bit, it's not really that hard, you just have to understand how the compiler works, like how header files are used, libraries, etc. Then you are set.
C++ is such an incredibly complex language, lifetimes, move semantics, templating. Writing c++ is fairly easy, writing good C++ has a very very steep learning curve
@@jonforhan9196 it's not, you will probably only need 20-30% of what the language offers. The complexity matters if you have to engage with a team dev, or changing someone else's code. Use wha you need, like literally everything C have it's in C++ too. It doesn't magically make it "harder". People just complain
@@lazyh0rse It's a little more than that I'm afraid. The syntax is so drastically different from modern OO langs, it will be a nightmare for anyone coming from them. For new coders, it's still more difficult to learn than another option because the syntax is just uglier and more symbol-heavy. It took me 2 days, 8 hours per day, just to figure out the right syntax of a pointer to an array of pointers to objects, and then passing that properly in functions. The other thing is hacked legacy. You're not even supposed to use arrays in C++ anymore...you believe that? Too unsafe. That's how old and "modern-hacked" this language is, big turn-off. I come from C# in monogame. C# is beautiful but has one ugly flaw: the garbage collector, and there is no way to turn it off. Microsoft, if you're reading this, let us turn off that damned thing in the next version and just let us do memory management ourselves. Wrap it in UNSAFE if you want lol. Honestly the best thing i can imagine tho is someone writing a transpiler for C# to C++, best of both worlds.
@@lazyh0rse it is an extremely convoluted language, the word static means 4 or 5 different things depending upon the scope of where it's declared , const correctness, move scemantics, RTTI, Pointers and references and don't even talk to me about inheritance and runtime polymorphism and how they interact with each other 💀
I have a wide but shallow knowledge of programming languages. I probably "know" about 30 different languages. I've mastered none. The last language I did a sizeable project in was C#.
I have a question: There are game engines, like Godot, Unity, Unreal engine. These all have built in level editors. But if you're working with, say: raylib, how would you make a level, as in: where you define where your assets are inside of the level, and maybe also setup properties for the instances of things inside of your level What tool can you use for this?
@@mokafi7 Well, yes: the output could be in whatever data format is the easiest to parse, or even as raw C code. The question however I'm trying to ask is if and what tool exists in order to create this output, ideally with it showing the models, and so on.
Im using Blender for that. I export Blender scene to GLB format. 1 file contains everything in the scene, cameras, lights, materials, textures, models, animations. It can even contain multiple scenes. I use "Custom Properties" on blender objects to define extra properties i would use on the engine. Could be physics properties, shadow caster or not, particle details etc. They get included in GLB file. Im planning on making a small addon for Blender to make it easy to set these custom properties to objects.
Audio files formats and algorithms are a minefield of patents. It's easily possible that QOA infringes on some of them by accident. I hope that's not the case, but I would stay away from it as long as there is no legal vetting of the format.
it would be nice if they added antialiasing on render textures, last time I used it everything looked very pixelated, for example when you want to use textures for shaders. It would also be nice if they included some precompiled shaders like direct2d has, that would be huge.
Thanks,do you know something similar for C#,i thought Monogame is better for my case looking for C# game development from scratch learning. what you think sir please?
RayLib has C# bindings, as do SFML and SDL. Otherwise there are a few options like flat red ball ua-cam.com/video/X0ncHtmUk5Y/v-deo.html and the now defunct Duality ua-cam.com/video/yNvEY4U5LbE/v-deo.html. Honestly though I'd probably just use RayLib.
@@gamefromscratch thank you so much,i checked all of this,as i already tried Monogame on my macbook and i guess it will be enough and better to keep focus on it .
Raylib is not an engine like unreal, and you cannot use it in combination with engines. Raylib is a minimalist framework to help you build games from scratch. It helps you do things such as open a window, load textures, read user input and play audio. Engines have their own way to do all of those things. Engines also have a lot of gameplay related stuff taken care of for you already, such as physics, entity systems, etc. Raylib doesn't do that because it is not an engine.
@@faxcorp its for learning. Much more u can learn from build game from almost scratch like in raylib vs Unreal or Unity where u got many created modules.
raylib is a cool library but the API is fucking horrible. I like to code by discovery, as in type the namespace of the library and just discover what stuff you can do. But you can't do that in raylib, because there's no fuckin namespace.
There are no namespaces in c. Why would you expect namespaces? Just use the cheat sheet. The entire API fits on a small page. This sounds more like a you problem than anything
@@ShinDMitsuki Tell me you never used raylib without telling me. The API takes way more than 1 "small page" to fit on, it has 475 functions in it. I don't know what library you are using that fits all on 1 page but it's not raylib 🤣
so, probably a total crapshoot, but since the thing is all headers-only, is there any chance you could just wrap it into "namespace x {}" and compile as cpp?
Links
gamefromscratch.com/raylib-4-5-released/
-----------------------------------------------------------------------------------------------------------
*Support* : www.patreon.com/gamefromscratch
*GameDev News* : gamefromscratch.com
*GameDev Tutorials* : devga.me
*Discord* : discord.com/invite/R7tUVbD
*Twitter* : twitter.com/gamefromscratch
-----------------------------------------------------------------------------------------------------------
Mike how do I get you to cover an RTS game engine I'm currently polishing?
Hey Mike! Thank you very much again for covering the new raylib release! Always the faster in news! Congrats! 😄
I just got raylib. I'll probably use it for my next game projects. Big fan of the lack of dependencies as well as minimalist design. Coming from TIC80 i feel very invited into the engine. Especially because I'd like to jump into c++. Some day I'll start making game engines, hoping it's a nice jump-down from a fantasy console
No.1 raylib selling point for me is the minimal dependencies. Oh. My. God.
@@microdavid7098 Raylib is not actually a "game engine" though. It's just a wrapper around openGL.
Raylib IS for game development, while also being a useful educational tool.
I love raylib so much! It just keeps getting better! I've been using for about seven months, since you put out your video about 4.2, that is how I found out about it. It is easy to setup too with pre-make. I use it with C ++ 20 in VS2022. I built a framework with it I call Knightmare.
Lol, my old username when I was into My little Pony was Knightmare.
...eh....
Maybe...not the best name. But good job none the less.
raylib is so awesome dude
Raylib is kind of like BlitzBASIC, but in C/C++. I love such frameworks!
Blitz3D, DarkBasic, etc. That brings some memories.
Don't forget BlitzMax!
Working with raylib is so fun. I just love making c programs with raylib.
Raylib is dabest it’s just amazing i love c and c++
I'm generally a Godot and Unity user, but I would love to see a build from Raylib at work. We need more projects like this.
There's very little information on forums and I had to give up on a project because I simply couldn't find the solution. It's very good though if you can overcome the skill issue
@@w花b normally you just have to figure out things by reading source code of raylib itself, not optimal but saved me quite few times
This is my favorite one as far as from scratch goes, one header file and you can get to work. Using plain C99 is such a good idea.
Nine hours after Raylib 4.5 release, and we already have an overview. Nice work, man!
Jeff made a fantastic Asteroids like example, an RBG sample, and some great extras for raylib.
pretty cool stuff, will try out in the future
When I discovered that I could use Ruby to write 60fps games with a powerful API, it blew my mind! But the Ruby bindings are outdated. So now I'm actually learning C to create proper bindings.
Hazel has also released now!
I'd like to know in which state all of the bindings are, in terms of coverage, activity, usage, with examples of finished (or close to finished) projects. Which of them are like "first tier" which you can use as well as use C++ directly, and which do have some caveats attached to them?
As someone that's been using the 2 major C# bindings for a while, both of them are fantastic. I personally prefer cs-lo.
Hey man, just subscribed to your channel. I wonder if you could give me some tips. I'm just diving into C/C++ having not used them for 20 years -- I had a career in software, multimedia, and games, but just didn't end up using these languages. As you say in this video, getting things setup and linking definitely gave me some headaches getting started (looking into SDL first).
My specific(ish) question is, once one has their dev setup all working and sane, how easy/painful is it to distribute apps written in C/C++ using "cross-platform" libraries like SDL, SFML, RayLib, OpenGL, etc. I'm asking broadly, not for details. I am just wondering if this will be an even bigger pain point than getting started was.
Thanks for the content!
My biggest gripe with raylib is that it doesn’t use a prefix such as RL_ for all the functions, structs, and macros.
Just use its C++ wrapper, search for it online
Yeah coming from SDL, i feel the exact same way. An RL_ prefix seems like a no-brainer and would drastically improve the intuitive feel of me the coder not to mention the code completion intellisense.
@@DrZygote214 First thing I did when I used raylib was create wrappers for all the functions I used so I could call "RAY_******" when I wanted a raylib function.
I haven't heard Milkshape 3D in over a decade
awesome video! thanks for sharing.
FINALLY!!!
ANIMATION FOR MODELS!!!!!!
=DDDDDD
C++ is still king, you can port your game to literally any device. If you use any binding, then you are slave to the options the language provides. Honestly after fiddling with c++ a bit, it's not really that hard, you just have to understand how the compiler works, like how header files are used, libraries, etc. Then you are set.
C++ is such an incredibly complex language, lifetimes, move semantics, templating. Writing c++ is fairly easy, writing good C++ has a very very steep learning curve
@@jonforhan9196 it's not, you will probably only need 20-30% of what the language offers. The complexity matters if you have to engage with a team dev, or changing someone else's code. Use wha you need, like literally everything C have it's in C++ too. It doesn't magically make it "harder". People just complain
@@jonforhan9196Also, a shitty dev is probably a shitty dev with any language tbh.
@@lazyh0rse It's a little more than that I'm afraid. The syntax is so drastically different from modern OO langs, it will be a nightmare for anyone coming from them. For new coders, it's still more difficult to learn than another option because the syntax is just uglier and more symbol-heavy. It took me 2 days, 8 hours per day, just to figure out the right syntax of a pointer to an array of pointers to objects, and then passing that properly in functions.
The other thing is hacked legacy. You're not even supposed to use arrays in C++ anymore...you believe that? Too unsafe. That's how old and "modern-hacked" this language is, big turn-off.
I come from C# in monogame. C# is beautiful but has one ugly flaw: the garbage collector, and there is no way to turn it off. Microsoft, if you're reading this, let us turn off that damned thing in the next version and just let us do memory management ourselves. Wrap it in UNSAFE if you want lol. Honestly the best thing i can imagine tho is someone writing a transpiler for C# to C++, best of both worlds.
@@lazyh0rse it is an extremely convoluted language, the word static means 4 or 5 different things depending upon the scope of where it's declared , const correctness, move scemantics, RTTI, Pointers and references and don't even talk to me about inheritance and runtime polymorphism and how they interact with each other 💀
Hey Mike sometimes it really seems like you know absolutely all the programming languages! What languages do you know and how did you learn them all?
I have a wide but shallow knowledge of programming languages.
I probably "know" about 30 different languages. I've mastered none.
The last language I did a sizeable project in was C#.
I have a question:
There are game engines, like Godot, Unity, Unreal engine.
These all have built in level editors.
But if you're working with, say: raylib, how would you make a level, as in: where you define where your assets are inside of the level, and maybe also setup properties for the instances of things inside of your level
What tool can you use for this?
im not very fimilliar with Raylib, but i think it depends in your use case, eg you can use .txt files, or a seperate level editor.
@@mokafi7 Well, yes: the output could be in whatever data format is the easiest to parse, or even as raw C code. The question however I'm trying to ask is if and what tool exists in order to create this output, ideally with it showing the models, and so on.
@@nathnolt im sorry i also kind of got stuck at this part when i wanted to learn Raylib and other frameworks, i would suggest looking online.
You could use Tiled for example, for pretty much anything 2D.
No xp with 3D gamedev, but I imagine there are ways to do that in Blender.
Im using Blender for that. I export Blender scene to GLB format. 1 file contains everything in the scene, cameras, lights, materials, textures, models, animations. It can even contain multiple scenes.
I use "Custom Properties" on blender objects to define extra properties i would use on the engine. Could be physics properties, shadow caster or not, particle details etc. They get included in GLB file.
Im planning on making a small addon for Blender to make it easy to set these custom properties to objects.
Does the integration of ANGLE mean that we might get iOS as a target as well in the future as it supports Metal?
Theory seems sound enough.
Wow, my favorite programming language: C/C++
Is there any community to ask for help?
Any guides/tutorials to get started?
I made two games in libgdx and wanna try something else.
I recently learned C, can anyone tell me if I should use sdl or raylib. I have projects in my mind like GUI and games.
You should try doing a simple project with both to find which one you like best but my guess is you will have a lot more fun with Raylib.
raylib if you're making a game
This is an old comment but Raylib hands down. SDL is such a grind to get even basic stuff like text working. You're better off with Raylib.
Hey Mike, d oyou know if I can compile for Play Station X / XBOX? Any tutorial in this are using raylib will be really cool!
I assume out of the box no. But once angle support is in place porting should be fairly trivial.
Very cool, how does raylib compare with something like OGRE? Higher or lower level?
What if raylib and its other libraries were in the c/c++ standard library
Is going to be Verse implementation?
We still don't even know if verse will even be a thing outside of Fortnite tools.
If it uses OpenGL, how does it work on Mac and iOS which have switched to Metal?
Is it like SDL on steroids?
yeah
You're telling me I can use raylib to write graphical programs in Rockstar?
Small/big correction. Raylib is not available on iOS.
❤
Audio files formats and algorithms are a minefield of patents. It's easily possible that QOA infringes on some of them by accident. I hope that's not the case, but I would stay away from it as long as there is no legal vetting of the format.
😂 ngmi
So... Wait... Did I understand this right...? Raylib is basically plug and play programming modules?
it would be nice if they added antialiasing on render textures, last time I used it everything looked very pixelated, for example when you want to use textures for shaders. It would also be nice if they included some precompiled shaders like direct2d has, that would be huge.
No AA would be a stone cold dealbreaker for me.
@@Sprogster Maybe look into computer graphics and implement simple AA algorithm? Takes some work but could be done
Thanks,do you know something similar for C#,i thought Monogame is better for my case looking for C# game development from scratch learning. what you think sir please?
RayLib has C# bindings, as do SFML and SDL. Otherwise there are a few options like flat red ball ua-cam.com/video/X0ncHtmUk5Y/v-deo.html and the now defunct Duality ua-cam.com/video/yNvEY4U5LbE/v-deo.html.
Honestly though I'd probably just use RayLib.
@@gamefromscratch thank you so much,i checked all of this,as i already tried Monogame on my macbook and i guess it will be enough and better to keep focus on it .
ever since ive heard about raylib from this channel ive fallen in love with raylib-cs
I recommend using FNA instead of monogame
I left Monogame in a heartbeat once I learned about raylib, it is so much nicer to work with.
Anyone working with raylib in C with vscode? Is it easy to set up?
can you please make a tutorial on how to build for android with raylib
not on ios @GFS
In my opinion, the "Easiest C++ Game Library" title goes to the OLC Pixel Game Engine.
Do you have experience in both libraries? Wondering how they compare.
A library is not a game engine. LOL
Try to compile it before recommending.
Can I use it on Unreal? How do I use it?
No, and you don't.
@@bexplosion Is raylib used when creating a custom game engine? Who uses it?
Raylib is not an engine like unreal, and you cannot use it in combination with engines. Raylib is a minimalist framework to help you build games from scratch. It helps you do things such as open a window, load textures, read user input and play audio. Engines have their own way to do all of those things. Engines also have a lot of gameplay related stuff taken care of for you already, such as physics, entity systems, etc. Raylib doesn't do that because it is not an engine.
@@faxcorp It's for small games and for learning how game frameworks work ;-)
@@faxcorp its for learning. Much more u can learn from build game from almost scratch like in raylib vs Unreal or Unity where u got many created modules.
Angle means IOS is coming, right? Right!?
I've read this over and over and over and still can't decide if this is a "right angle" pun or not.
Don't use cheatsheet, just read the raylib header file.
prob more up to date lol
raylib is a cool library but the API is fucking horrible.
I like to code by discovery, as in type the namespace of the library and just discover what stuff you can do.
But you can't do that in raylib, because there's no fuckin namespace.
Can’t you jus skim over the header file?
@@zytr0x108 Sure I can do that but it would be nice if it was designed right from the start so I don't have to.
There are no namespaces in c. Why would you expect namespaces? Just use the cheat sheet. The entire API fits on a small page. This sounds more like a you problem than anything
@@ShinDMitsuki Tell me you never used raylib without telling me. The API takes way more than 1 "small page" to fit on, it has 475 functions in it. I don't know what library you are using that fits all on 1 page but it's not raylib 🤣
so, probably a total crapshoot, but since the thing is all headers-only, is there any chance you could just wrap it into "namespace x {}" and compile as cpp?