RayLib 5 Released - The Easiest C/C++ Game Library Just Got Even Better

Поділитися
Вставка
  • Опубліковано 3 гру 2023
  • Raylib 5 was just (well... two weeks ago, sorry about that) released and it also marks the 10 year anniversary since Raylib 1 was first unleashed on the world.
    Raylib shines in that it is perhaps the easiest to use C based game development framework out there, but there are also language bindings for just about every single programming language in use today.
    In this video I will show just how easy it is to get up and running with RayLib 5, then go over the new features in Raylib 5.
    Links
    gamefromscratch.com/raylib-5-...
    -----------------------------------------------------------------------------------------------------------
    Support : / gamefromscratch
    GameDev News : gamefromscratch.com
    GameDev Tutorials : devga.me
    Discord : / discord
    Twitter : / gamefromscratch
    -----------------------------------------------------------------------------------------------------------
  • Наука та технологія

КОМЕНТАРІ • 149

  • @gamefromscratch
    @gamefromscratch  5 місяців тому +5

    Links
    gamefromscratch.com/raylib-5-0-released/
    -----------------------------------------------------------------------------------------------------------
    *Support* : www.patreon.com/gamefromscratch
    *GameDev News* : gamefromscratch.com
    *GameDev Tutorials* : devga.me
    *Discord* : discord.com/invite/R7tUVbD
    *Twitter* : twitter.com/gamefromscratch
    -----------------------------------------------------------------------------------------------------------

  • @raylibtech
    @raylibtech 5 місяців тому +156

    Hey Mike! Thank you very much for another great video and sharing the raylib news! Thanks! :D

    • @rayecast
      @rayecast 3 місяці тому +4

      Hey @raylibtech! Thank you for your amazing work!

  • @toffeethedev
    @toffeethedev 5 місяців тому +168

    Best library I've ever used and an absolutely perfect reference for how open source software & their APIs should be designed

    • @echoptic775
      @echoptic775 5 місяців тому +2

      Wgat games did u make and publish with it?

    • @Red_Paper6495
      @Red_Paper6495 5 місяців тому

      Not support Ios.

    • @igorthelight
      @igorthelight 5 місяців тому +6

      @@echoptic775 Any 2D game, simple 3D game.
      There is no Editor, so be aware of that! ;-)

    • @Red_Paper6495
      @Red_Paper6495 5 місяців тому +1

      @@igorthelight I bet you've never done anything on it ;)

    • @igorthelight
      @igorthelight 5 місяців тому +3

      @@Red_Paper6495 True! xD
      Am I mistaken about Editor tho?

  • @lyghtkruz
    @lyghtkruz 5 місяців тому +17

    Thanks for bringing this to my attention. I was developing my own engine using LibSDL once upon a time in c++ for GNU/Linux and Windows. I've been using Godot for a few years now, but if I ever feel the need to scratch that c++ itch, this looks pretty amazing.

  • @mission-toast
    @mission-toast 5 місяців тому +5

    Thanks for bringing this to my attention! Up until now, I hadn't heard of RayLib. I've always been curious how a pure C-based framework might perform vs. the alternatives.

  • @krank23
    @krank23 5 місяців тому +9

    I'm using the C# bindings for Raylib when teaching programming… an absolute godsend! Most other graphics librarties require tons of boilerplate or tooling (looking at you, monogame) but Raylib Just Works. My students can just add the dependency to their projects, dotnet restore, and be up and running with really a bare minimum of code.

    • @psyience3213
      @psyience3213 5 місяців тому +2

      There's a problem of unnecessary complexity in at least C++ libraries (i've never done c#).

  • @edwoodgrant
    @edwoodgrant 5 місяців тому +18

    The SDL backend is pretty imporant, much more thna just a testbd.That's because SDL is ported to almost everthing, including modern consoles.
    So having that backend enabled should allow for console export, which, of course, is pretty neat!

  • @psyience3213
    @psyience3213 5 місяців тому +9

    This is an absolute gem for me. As someone who programs as a hobby, I'm always hesitant to really start delving into a whole framework just to do, sprites, or whatever. I like the lower level programming and and design of things, and i always find myself just going to python when i want to graphics or GUI's or whatever because it's just so much freaking easier. But I dislike the control you lose from going to C++ to python. I like making own dynamic arraylists and smart pointers and stuff like that. I will definitely be using this to create a game.
    AND you can program for the Switch!? Sweet.

  • @ar_xiv
    @ar_xiv 5 місяців тому +9

    Another thing to note about the installer is the included templates for other common code editors like sublime text etc.

  • @rubberduckdebug
    @rubberduckdebug 5 місяців тому +10

    raylib and the other ray libraries are awesome. been using them for my Noita inspired falling sand engine. super amazing stuff

  • @disekjoumoer
    @disekjoumoer 5 місяців тому +15

    I've been wanting to get into Raylib for about 2 years now. Now, I think I will.

    • @echoptic775
      @echoptic775 5 місяців тому +3

      Wait a few more years, i think the version 10 is gonna be awesome😅

    • @zezinhoportugues2186
      @zezinhoportugues2186 2 місяці тому

      you are just hater@@echoptic775

  • @tellsackett4572
    @tellsackett4572 2 місяці тому +1

    You’re pulling my leg: you’re telling me this is a simplistic-in-design, C-compatible, open-source, highly portable/adaptable, well-documented, Linux-compatible (AND BSD compatible TO BOOT) set of graphics libraries that even has 3D capabilities!! It sounds BEAUTIFUL; thanks for covering this!

  • @ChrisLeeW00
    @ChrisLeeW00 5 місяців тому +8

    My body relaxed as soon as you went to dark mode 😅

  • @nocturne6320
    @nocturne6320 5 місяців тому +6

    Used RayLib in C# and it was great, functions are pretty much 1:1 with C, except you use them trough the Raylib class. (also no hassle with setting up the build process and all of the other complications of using C)

  • @beegdigit9811
    @beegdigit9811 5 місяців тому +8

    The function names are so clean and the "c header" reference makes it so easy to play around with

  • @anon_y_mousse
    @anon_y_mousse 5 місяців тому +6

    I'm not sure I'd call it a game library, but more of a graphics library. To do anything complex, you still need to know a lot of math, because it's not a game engine, but it does get rid of an absolute ton of boilerplate nonsense that no one should have to bother with. It's kind of amazing how easy it is to use and how easy it is for other languages to bind to it. I can certainly see it taking off as a means of doing game jams and the like because of its simplicity.

    • @cluelessdev3851
      @cluelessdev3851 4 місяці тому

      can you elaborate? As someone who has never delved into that side of game programming, what math or engine aspects someone has to develop to make a working game (not just a play thingy)
      for what I've seen it includes input, graphics, audio, etc. But am fascinated that if for example Raylib includes all that shabang, what else would one need.

    • @anon_y_mousse
      @anon_y_mousse 4 місяці тому

      @@cluelessdev3851 Well, after you've created the assets that you'll use, possibly with Blender if you're going the open source route, then you need to tell it what to load, in what way, where on screen to load things, which involves opening a context in whatever graphics library you use for the backend, OpenGL or Vulkan, which you won't have to decide if you use your system packages, assuming your system has a RayLib package, and you'll have to create the main game loop and logic. It doesn't provide a scripting language nor link such a thing into your app, though that's not too difficult to do, all things considered. I dislike certain aspects of Lua, but if you want a scripting language for your game you might find it more than adequate. Or if you've got the time and skill you could write a custom one or you could just do hot reloading and write plugins in the same language you're writing your game in. It would be interesting if someone made a complete game engine using RayLib and used some custom BASIC variant for the scripting language. *nudge*

    • @jedsiecz
      @jedsiecz Місяць тому

      @@cluelessdev3851 3d is a lotta math

    • @einarsskutans5694
      @einarsskutans5694 23 дні тому

      @@cluelessdev3851 stuff like collisions, game physics, lighting - game engines like unity provide and do the math for you

  • @Im_Ninooo
    @Im_Ninooo 5 місяців тому +7

    years ago I wanted to create a super simple "game" with moving sprites and the Go binding had a bug that prevented me from loading image files so I had to use C and the experience was pretty bad. installing dependencies was kinda confusing and the compilation command was ridiculously long (being used to just typing "go build"). I'm glad to see they have streamlined the process!

    • @abdullahtrees5204
      @abdullahtrees5204 5 місяців тому +10

      No one actually compiles C/C++ projects by hand, they run a makefile script by typing `make build`, so it is pretty much the same.

    • @Im_Ninooo
      @Im_Ninooo 5 місяців тому

      @@abdullahtrees5204 fair enough, but figuring out what flags I needed to begin with took a bit of research

    • @garrettbates2639
      @garrettbates2639 5 місяців тому

      Most of the time to build a C project you just need to do:
      ./configure && make build && make install
      Or some variant thereof. A lot of projects are configured with autotools or cmake to handle the build pipeline, and don't usually require too much work to get running. Sometimes you'll be missing a dependency, but if you're on a Linux machine or using WSL, then it's usually as simple as searching the package repository for the missing dependency and then installing it.
      But some projects will also just include their dependencies as a git submodule, so sometimes you don't even need to do that because you can just clone the repository recursively.

    • @Im_Ninooo
      @Im_Ninooo 5 місяців тому

      @@garrettbates2639 well, I'm not a C developer so I wouldn't know how to set that up. I only used C because I had to.

    • @anon_y_mousse
      @anon_y_mousse 5 місяців тому

      @@garrettbates2639 I think you're confusing make and cmake, which the latter always has the recommendation to `mkdir build; cd build; cmake ..` before building the project. Also, it should be `sudo make install` as things are often installed where only root has access.

  • @grimvian
    @grimvian 2 місяці тому

    At 1:07 protected from what - telemetry...
    Learned an advanced Basic 40 years ago with a real inline assembler(6502), procedures and when a computer took about one sec. to boot. Graphics and sounds was also included and it was a cozy time and a totally new world.
    Now I'm using Linux Mint, Raylib, Code::Blocks and programming in C99 and it's very nice. I have almost finished a small relational database(2500 lines of code) and using Raylib for the graphical interface. The executable is about one megabyte and it runs very fast even with my limited hobby skills.
    The easiest solution for me to use Raylib was a download, extract it and making path for the compiler and that's almost it.

  • @spider853
    @spider853 5 місяців тому

    for a graphics processing application plugin is it easy to use raylib for render to texture effects?

  • @yds6268
    @yds6268 5 місяців тому +2

    "Raylib has no external dependencies" - it does though. On Windows those are just standard libraries that are already included in the system. On Linux you need to install several dependencies (and link them if you're compiling manually). Just a heads-up

  • @grimvian
    @grimvian 5 місяців тому +1

    Works fine in Linux Mint (ditching Windows) and CodeBlocks.

  • @vikinggameprogrammer7233
    @vikinggameprogrammer7233 5 місяців тому +9

    *sweats in SFML with CMake*

    • @hxccz
      @hxccz 5 місяців тому

      i dont feel bad for you

  • @pixelfairy
    @pixelfairy 5 місяців тому +9

    One of PNGs defining features is the unambiguous pronunciation, ping. It was designed as a replacement for gif. So not only is it full color, with alpha, and immune to Unisys trying to sue the internet, its easy to pronounce.

    • @vordrax1014
      @vordrax1014 5 місяців тому +7

      Yes, it's clearly pronounced "Puh-Nog".

    • @ggtooez
      @ggtooez 5 місяців тому +6

      It's pronounced Pea-An-Gee, what are you talking about?

    • @anon_y_mousse
      @anon_y_mousse 5 місяців тому +1

      Clearly it's pronounced Pong.

  • @LeFede
    @LeFede Місяць тому

    how would you handle networking on raylib tho? Can I use sockets without the need of opening ports?

  • @justonlyone7409
    @justonlyone7409 5 місяців тому

    How can we use in C++ for online gaming services and monetization? for example, lobby, matchmaker, chat, advertise in-app billing?

  • @UltimatePerfection
    @UltimatePerfection 5 місяців тому +6

    Tip for maze games: You can win most by always turning right when you come across a split in corridor.

  • @Mempler
    @Mempler 5 місяців тому

    I forgot, did i ping you on twitter about raylib or not?
    i think i did for bevy though

  • @realdlps
    @realdlps 5 місяців тому +5

    Well this kind of sucks, I completely forgot about raylib when I started making my engine so I went with monogame.
    It's not like I am fully committed but I absolutely love C# now and I don't feel like working with C or C++ anymore. Did I mention how easy C# is to learn? I had never used it or Java which is apparently similar, I only used C++, Rust and Python before and now C# is my go to.

    • @johnpekkala6941
      @johnpekkala6941 5 місяців тому +2

      C# is indeed nice to work with in general. I it is a bit like Java for sure. C# was actually created as I understand because of a licence brawl with Oracle when Microsoft put their own version of Java: J++, into Visual Studio and so they were forced to scrap J++ and they then created C# as the replacement wich was actually a good thing. Compared to Java C# is for one thing much less verbose and u dont have things like for example "Class.Class.Class.Class.Class.Class.Function()" wich seems to be a rule more or less with Java that u bury everything under at least like 7 layers of subclasses, boilerplate and other stuff. Was a while since I coded Java now however so this might as well have changed.

    • @hipno3477
      @hipno3477 5 місяців тому +6

      Raylib has C# bindings

    • @anon_y_mousse
      @anon_y_mousse 5 місяців тому

      @@hipno3477 Just going to elevate this comment as it has bindings for so many languages.

  • @andi_decha
    @andi_decha 12 днів тому

    i love raylib :)

  • @nefrace
    @nefrace 5 місяців тому +2

    The only thing that bugs me that I want to use it with Odin lang and export games to browser. And it seems that that particular task is not really straightforward. The wiki of Raylib only mentions working with C/C++ and Emscripten.
    Maybe someone did try the exact same thing as me?

    • @nefrace
      @nefrace 5 місяців тому +2

      @@rytif well i can use Odin itself with something like TIC-80 or in desktop-only apps. And you actually can compile your code to WASM. The only problem here is with Raylib as I can see.
      Also is it possible to build Raylib app for WASM with Zig or Rust? Or do you *need* to use C/C++?

  • @happygofishing
    @happygofishing 5 місяців тому +1

    With SDL, hopefully raylib works on wayland now.

  • @disruptive_innovator
    @disruptive_innovator 5 місяців тому +2

    Notepad++ has a dark mode? I did not know

  • @gokudomatic
    @gokudomatic 5 місяців тому +3

    Can I use raylib for 3DS homebrew?

    • @m3nguele
      @m3nguele 5 місяців тому +1

      I think you can, just make sure you`re using the tooling right, it can be really pesky sometimes

  • @oliverwooding2066
    @oliverwooding2066 5 місяців тому +1

    do you know of anything like raylib in the rust world? the raylib bindings for rust are still on 4.x, and feel very nonnative

    • @hxccz
      @hxccz 5 місяців тому +4

      consider dont using rust

    • @oliverwooding2066
      @oliverwooding2066 5 місяців тому

      @@hxccz is it so unreasonable to want to use a language that isn’t at least 30 years old?

  • @EquaTechnologies
    @EquaTechnologies 5 місяців тому

    LESS GO!!!

  • @FoxInFlame
    @FoxInFlame 5 місяців тому

    I'm a big MonoGame (C#) user, does anyone know how does compares in terms of 3D/console development?

  • @Console.Log01
    @Console.Log01 5 місяців тому +1

    I just started remaking my c++ game like 2 days ago and not in raylib

  • @HiddenAsbestos
    @HiddenAsbestos 5 місяців тому +19

    Overall I like the library, but the C API pollutes the namespace something awful - #define WHITE , conflicts with functions, etc. I'm shocked that they don't stick a prefix in front of all that, like Allegro's 'al_' prefix. Thankfully there seems to be a C++ wrapper that shields you from it. Odd choice though.

    • @ProtossOP
      @ProtossOP 5 місяців тому +1

      "C API pollutes the namespace"
      Sure but the 'al_' prefix example pollutes function names which imo is worse. I mean I understand why prefixes are used that way(because C has no namespaces) but it still looks bad, never mind typing prefix every single time.
      P.S. I'm a C# dev that dabbles sometimes in C so take my opinion with a big grain of salt.

  • @jonstarritt848
    @jonstarritt848 5 місяців тому +2

    A simple trick to get out of a maze, put your left hand on the wall, don't remove it, and follow it around to the exit.

  • @EmiLoomistar
    @EmiLoomistar 5 місяців тому

    I like raylib

  • @user-nn3tb1bz4y
    @user-nn3tb1bz4y 2 місяці тому

    Hello thank for information and i new to programming and i chose c so could you make a tutorial raylib in c

  • @jmschl96
    @jmschl96 5 місяців тому +1

    Please make a full tutorial series 😊

  • @felixlipski3956
    @felixlipski3956 5 місяців тому

    game fans waited for gta 6
    game enjoyers waited for this

  • @33ordie
    @33ordie 5 місяців тому +1

    Hey GFS you haven't explained what was added changed, beside the rcore and the funky website :/

  • @l_t_m_f
    @l_t_m_f 5 місяців тому +1

    took me a while to understand what gooey was xD (GUI)

    • @arashikou6661
      @arashikou6661 5 місяців тому

      Congrats on learning!

    • @anon_y_mousse
      @anon_y_mousse 5 місяців тому

      It's funny because there's one guy on UA-cam that keeps pronouncing it gwee and I've only ever heard it pronounced as gooey.

    • @l_t_m_f
      @l_t_m_f 5 місяців тому

      @@anon_y_mousse idk I've always said "Gee-You-I" like spelling the letters of the acronym.

    • @anon_y_mousse
      @anon_y_mousse 5 місяців тому

      @@l_t_m_f Depending on who I'm talking with I'll do that too, to illustrate that it's an acronym usually. If I'm talking to someone else who programs I'll just say gooey.

  • @zizzyballuba4373
    @zizzyballuba4373 5 місяців тому

    raylib font is too thin

  • @IzimDev
    @IzimDev Місяць тому

    try to watch this video at 2x

  • @DetectivePoofPoof
    @DetectivePoofPoof 5 місяців тому +16

    OK so lemme get this strait... They put a goddamn whole-ass video game in the installer but NOT the option to choose which folder you wanna put the files in?!?!
    See this is the problem with open-source projects, you can't just get up from your desk and go slap the fear of god in whoever it was responsible for that.

    • @PurpleKnightmare
      @PurpleKnightmare 5 місяців тому +6

      The thing is, the installer is also unnecessary. The best way to get started is game-premake, the installer is for those who used it from the start really and to show people that there is an installer. You can use the installer in your own games.

  • @gargamel3478
    @gargamel3478 5 місяців тому +3

    Raylib is better than SDL, SFML and all these, as it's simple. You can create a projects within seconds, and it has builtin functions for transparency, rotating, sound and many other. The only con is that it's a bit bloated.

    • @RobertWinkler25
      @RobertWinkler25 5 місяців тому +2

      That's comparing apples and oranges. SDL and SFML (and GLFW) despite having some extra features are fundamentally cross platform windowing and input libraries while Raylib has orders of magnitude more (and higher level/abstraction) features because it is an all in one game making library. To Raylib, SDL and GLFW are just backends.

  • @itsasecrettoeverybody
    @itsasecrettoeverybody 5 місяців тому +1

    I wanted to use it with python, but i found the documentation to be very bad, for python. I will try to use it with C some day

    • @skaruts
      @skaruts 5 місяців тому +6

      I think you should be able to use the C documentation without issues, though. I've never used the python bindings, but bindings are usually just a mirror image of the C API. If there are any differences in the bindings, they're probably small, and they most likely follow some pattern you can pick up on.

    • @itsasecrettoeverybody
      @itsasecrettoeverybody 5 місяців тому +1

      @@skaruts there are 2 bindings for python one is more c like the other is more photonic. I will look into it again later.

  • @angelcaru
    @angelcaru 2 місяці тому +1

    why tf are you using Windows

  • @JavierGuerra_g
    @JavierGuerra_g 5 місяців тому +1

    yes, if you miss 80-column UIs from the 80s, then do turn dark mode on.
    otherwise, just dial down the brightness and keep the light mode. your visual acuity (and font engine) will thank you.

  • @AntonioLatronicoDeveloper
    @AntonioLatronicoDeveloper 5 місяців тому +1

    Dang, I really hoped they improved model animations and lighting..😢
    oh well

    • @PurpleKnightmare
      @PurpleKnightmare 5 місяців тому +8

      Lighting is handled by shaders and has nothing to do with raylib.

    • @AntonioLatronicoDeveloper
      @AntonioLatronicoDeveloper 5 місяців тому

      @@PurpleKnightmare in the version 4 they added (I don't remember if it was created by an external contributor or not)an experimental RLGL example of dynamic lights using fragment shaders and it was a nice starting point for people who are not so experienced with shader programming

  • @user-hi8dt1qe3e
    @user-hi8dt1qe3e 5 місяців тому

    I can't hardly wait Unreal Engine Monthly Giveaway.. I ♥ Unreal Engine 😍🥰 True Fan.

  • @bes12000
    @bes12000 5 місяців тому +1

    would love to use this on Linux but it appears I have to compile it from source which is dumb, there are newer installer methods for Linux, so why arent those used?.. might be better off downloading the windows version and running it through wine..

    • @hazapple
      @hazapple 5 місяців тому

      It probably varies by distro, but I was able to install it through my package manager. I've only done a few examples, though, so I'm not an expert.

    • @PurpleKnightmare
      @PurpleKnightmare 5 місяців тому +6

      What are you talking about?
      It is up to you how you use raylib, the best way is to have it as part of the project and compile along with the game.

    • @bes12000
      @bes12000 5 місяців тому

      @@PurpleKnightmare im talking about running it as a stand alone to play around with, thats what it appears mike is doing in this video.. any linux version of any app needs to have an option to just directly install it via terminal or have an appinstaller version or just a standard zipped app that I can unzip and just run without needing to compile it first

    • @hwstar9416
      @hwstar9416 5 місяців тому

      use the premake version
      It's as simple as:
      ./premake5 gmake2
      make

    • @anon_y_mousse
      @anon_y_mousse 5 місяців тому

      @@bes12000 You don't run it as a standalone anything. The installer program he's using to install it on Windows has a game built-in, but the library itself does not. You'd need to build an example project to get something like that. And building it is super easy, barely an inconvenience, even if your distro doesn't have a package. Just open a terminal, type git clone {url from GH}; cd raylib; mkdir build; cd build; cmake ..; make -j8; and if it fails because you don't have glfw installed, then do the same for it and just rm -rf the build directory in RayLib's directory then continue from the point of mkdir.

  • @MainWorldTree
    @MainWorldTree 5 місяців тому

    Pin me pls

  • @kishirisu1268
    @kishirisu1268 5 місяців тому

    Do not confuse Raylib with game dev frameworks, as Raylib creator said himself - Raylib is for learning, not for actual game development.

    • @raylibtech
      @raylibtech 5 місяців тому +19

      As far as I remember, I never said it can't be used for actual game development.

    • @anon_y_mousse
      @anon_y_mousse 5 місяців тому +5

      I'd wager he said it's not a game engine, which it's not, but it most certainly can be used for game development. If you are into making games, I'd encourage you to give it a try because you might find yourself enjoying it.

    • @zytr0x108
      @zytr0x108 4 місяці тому +3

      I don’t see any reason why it shouldn’t be used for actual professional game development. It seems to me that it’s basically a C equivalent to MonoGame/XNA which was used for some absolute gems.

  • @RandomNoob1124
    @RandomNoob1124 5 місяців тому +1

    No point in raylib when bevy exist

    • @BoredOfUnityShills
      @BoredOfUnityShills 5 місяців тому +2

      🤡

    • @Clawthorne
      @Clawthorne 5 місяців тому +17

      Raylib: C based with bindings for basically every language.
      Bevy: Rust based with no bindings. Use rust or gtfo.
      Doesn't look that superior to me.

    • @rkvkydqf
      @rkvkydqf 5 місяців тому +7

      Bevy tried to be a full on game engine with its own ECS and stuff. Raylib is more like Pygame, a simple self-contained framework to render stuff, leaving everything up to you. I actually consider more minimalist libraries like Raylib to be superior to larger efforts like Beavy, very often you just need some graphics with no bloat but don't want to go learn OpenGL.

    • @RandomNoob1124
      @RandomNoob1124 5 місяців тому

      @@Clawthorne don’t know what you’re talking about.

    • @RandomNoob1124
      @RandomNoob1124 5 місяців тому

      @@rkvkydqf this guy knows what he’s talking about. Great comment. I agree 100%. But having an ecs along with the use of rust does make bevy really good imo. Rust avoids a lot of the bothersome issues of typical systems programming, also is much much faster than most system programming languages. Also more secure.