Rust for Game Development -- Game Engines & Frameworks

Поделиться
HTML-код
  • Опубликовано: 16 июл 2024
  • Today we are looking at the most popular engines, frameworks and libraries for Rust game development.
    Links
    gamefromscratch.com/rust-game...
    -----------------------------------------------------------------------------------------------------------
    Support : / gamefromscratch
    GameDev News : gamefromscratch.com
    GameDev Tutorials : devga.me
    Discord : / discord
    Twitter : / gamefromscratch
    -----------------------------------------------------------------------------------------------------------
  • НаукаНаука

Комментарии • 136

  • @gamefromscratch
    @gamefromscratch  2 года назад +7

    Links
    gamefromscratch.com/rust-game-development-in-2022/
    -----------------------------------------------------------------------------------------------------------
    *Support* : www.patreon.com/gamefromscratch
    *GameDev News* : gamefromscratch.com
    *GameDev Tutorials* : devga.me
    *Discord* : discord.com/invite/R7tUVbD
    *Twitter* : twitter.com/gamefromscratch
    -----------------------------------------------------------------------------------------------------------

    • @spacewargamer4181
      @spacewargamer4181 Год назад

      You need to update the game engines by language playlist with this one I think

  • @DerSolinski
    @DerSolinski Год назад +64

    I'm pretty sure Rust will become the prominent language for games in years to come.
    Adoption will be very slow, and then explode as soon there is a viable product for AAA production.
    The amount of bug fixing that Rust just outright eliminates from the start is astonishing.
    It makes games safer, faster and efficient.

    • @MrGamelover23
      @MrGamelover23 Год назад +10

      Which is why it would be amazing for game developers, they're already ridiculously rushed, but rust eliminating a significant chunk of bugs from the start would at least let them make the game be more stable on release.

    • @DerSolinski
      @DerSolinski Год назад +1

      @@MrGamelover23 tell me about it 🙄
      Currently dabbling with löve2D for a little thing.
      Löve is an engine based on Lua.
      I love Lua for what it is, but debugging is a sheer nightmare.
      Since it is so flexible it allows for so many shortcuts to take, and because programmers are by nature lazy...
      Those are just self assembling trip hazards.
      Which I just trip over for the sheer principle off it.
      90% off debugging is spend on me being an idiot 😂
      Yesterday I spend an hour debugging something that was completely fine from the get go just because I was unable to count correctly 😅

    • @gpsxsirus
      @gpsxsirus 4 месяца назад +1

      The first company that has a Rust based engine that can compete with Unity and Unreal is going to make bank in the long term.

  • @magicjtv
    @magicjtv 2 года назад +211

    ‘No mobile” is not a limitation of Rust. Rust libraries can be used on both iOS and Android.

    • @nearcz533
      @nearcz533 2 года назад +30

      wgpu and to a certain degree bevy already run on mobile. Additionally godot-rust let’s you build godot games in rust that can already run on mobile.

    • @robertoze
      @robertoze Год назад +2

      -No mobile and no console. What a game development language!

    • @zoeherriot
      @zoeherriot Год назад +11

      @@robertoze you can use it on mobile, and I don't see why you can't use it on console.

    • @robertoze
      @robertoze Год назад

      @@zoeherriot Officially it doesn't support mobile and console. Do you know official support for Android, Ios, Ps and Xbox?

    • @zoeherriot
      @zoeherriot Год назад +10

      @@robertoze what do you mean by "it"? What are you referring to exactly?

  • @telldo8016
    @telldo8016 2 года назад +60

    Reading a little about Rust made me understand a bit easier C/(old) C++ I now use at work (avionic industry). Vice-versa, C++ made me understand parts of Rust I initially didn't fully comprehend. I really don't understand the hate on either of them some people seem to have.

    • @syntaxed2
      @syntaxed2 2 года назад +17

      Just noobs complaining, not knowing rust can link c/c++ code - it was a primary design goal that rust be compatible with old code bases.

    • @blaser80
      @blaser80 2 года назад +6

      I mostly develop C/C++ embedded systems. Rust is an interesting language in some ways I wish it came before C++, it does a lot of the things C++ would like us to use i.e. const correctness by default. The only negative is I find Rust syntax unintuitive, but that might just be me.

    • @BlazertronGames
      @BlazertronGames 2 года назад +10

      @@blaser80 I found rust's syntax ugly as hell when I first saw it, but after a couple days of reading the free book they have, I've started to genuinely enjoy it.

    • @LassNoches
      @LassNoches Год назад +3

      @@BlazertronGames I found rust sintax beautiful, sometimes it remembers typescript

    • @TanigaDanae
      @TanigaDanae Год назад +5

      C++ has a lot of legacy to carry and still many ugly (undefined) sides. Also I know that many people are tortured to use C++ with raw pointer and C-style return value error reporting. Since C++ lacks some modern features (like an OS independent way for Sockets/Web Sockets/Shared Memory) you often depend on 3rd party libraries or something homegrown or make your software OS dependent. There is more but I am lazy.
      Rust on the other hand is very "young". Some libraries cease development and bug fixes before you might even finish a product. The whole language requires people to rethink how to write software, so there is much frustration because you need time to adapt (kind of similar when you would need much time to adapt to Haskell or LISP). If you use a 3rd party library you might have to use async or special error types. Having more complex generic types in Rust can create ugly long function definitions.
      These are bullet points of what I would criticise on the languages but I use both and don't hate them.

  • @y1QAlurOh3lo756z
    @y1QAlurOh3lo756z 2 года назад +94

    "gg easy" is how you pay respects to your opponents after a competitive match.

    • @taizeen1805
      @taizeen1805 2 года назад +23

      I'm not sure if I would describe "ez" as paying respects.

    • @bevvy.bee9
      @bevvy.bee9 2 года назад +18

      @@taizeen1805 LOL, ggez is a great way to add salt to the fire

    • @hyscript7
      @hyscript7 2 года назад +2

      Love it. Time to fry some overthinkers

  • @dominikdalek
    @dominikdalek 2 года назад +18

    Embark Studios are heavily into Rust.

  • @GDScriptDude
    @GDScriptDude 2 года назад +10

    I was rusty on this topic, thanks for the update :)

  • @rogeriocruz658
    @rogeriocruz658 2 года назад +13

    "gg ezed" is what Mike says when he trashes noobs of the opposite team

  • @techbytefrontier
    @techbytefrontier Год назад +2

    I'm starting to learn rust and will develop games using the bevy engine. I just started and rust seems amazing for me looking as a c, c++ dev.. so many similarities but at the same time very different and very safe, the compiler is also very straight forward with the errors.. i'm really enjoying

  • @ysumate
    @ysumate 2 года назад +3

    As for me, everything is simple and clear. Thank you very much for

  • @samdavepollard
    @samdavepollard Год назад

    many thanks - tons of useful info as always with your videos

  • @Hashbee
    @Hashbee 2 года назад +7

    I literally decided to learn Rust today and you upload a video, thanks lmao

    • @astroid-ws4py
      @astroid-ws4py 2 года назад

      Good luck and have a fun journey

  • @embeddedbastler6406
    @embeddedbastler6406 2 года назад +30

    As an addition, it might be easier to use the wgpu crate instead of Vulkan, OpenGL, ... bindings. Wpgu is a graphics library that has Vulkan, OpenGL, Dx and Metal backends to provide native rendering. As it is based on the upcoming WebGPU API, it will soon be able to also run wgpu projects on the web with high performance.
    It's also the project used by the bevy game engine.

    • @santiagoarellano2983
      @santiagoarellano2983 2 года назад +1

      Have you used it? I've tried to and I find that there are very limited resources to learn so I've struggled with understanding how to use it and how it works.

    • @zoeherriot
      @zoeherriot Год назад

      @@santiagoarellano2983 There is a really good (but expensive) book available on Amazon.

    • @santiagoarellano2983
      @santiagoarellano2983 Год назад

      @@zoeherriot how is it called? Or who wrote it?

    • @zoeherriot
      @zoeherriot Год назад +1

      @@santiagoarellano2983 Jack Xu - Practical GPU Graphics with wgpu and Rust.

    • @santiagoarellano2983
      @santiagoarellano2983 Год назад +1

      @@zoeherriot thanks!

  • @syntheticperson
    @syntheticperson Год назад

    Informative. Thanks

  • @m-o42
    @m-o42 2 года назад +13

    I was literally checking your Bevy 0.7 vid a few hours ago and cloned their repo already, best timing ever.
    I was going to try Amethyst originally but changed my mind after seeing that Bevy seems to have the upper hand in terms of roadmap, also personal preference.

    • @Tigregalis
      @Tigregalis 2 года назад +1

      Amethyst discontinued as well I believe, in deference to Bevy

    • @Tigregalis
      @Tigregalis 2 года назад

      yep, repo has been archived

    • @longiusaescius2537
      @longiusaescius2537 Год назад

      @Tigregalis is bevy equal in performance?

  • @13thxenos
    @13thxenos 2 года назад

    The first moment I saw your thumbnail, I didn't see the R, and got a flashback of UST crash.

  • @igorgiuseppe1862
    @igorgiuseppe1862 2 года назад +9

    ggez probably is pronounced as GG Easy

  • @robertkimura8224
    @robertkimura8224 2 года назад +1

    The rust gamedev news letters shows some advanced rust projects

  • @diman1ght491
    @diman1ght491 2 года назад

    Nice!

  • @EmilNicolaiePerhinschi
    @EmilNicolaiePerhinschi Год назад +1

    in the article the link to "SDL2 Bindings" goes to the raylib crate

  • @MrNybbles
    @MrNybbles 2 года назад +19

    @1:12 Mike: ". . .but it was almost like Rocket Surgery to learn."
    Yeah, being an Aerospace Doctor is a very high bar to entry.
    I love these subtle jokes, please keep them up! 🤣

    • @FinaISpartan
      @FinaISpartan 2 года назад +2

      Just like the legend himself, Jonny Kim

  • @louisgjohnson
    @louisgjohnson 2 года назад +1

    Should have covered macroquad!

  • @polymathprogramming5036
    @polymathprogramming5036 2 года назад +6

    Allegro 5 has a Crate for rust, and is fantastic alternative to SDL :)

  • @Sanrio_cute413
    @Sanrio_cute413 2 года назад +5

    Please take a look at kajiya renderer it works with bevy game engine, and it looks as good as Unreal Engine.

    • @techpriest4787
      @techpriest4787 2 года назад +1

      Yeah. I just looked it up. It is a very interesting project.

  • @jaysistar2711
    @jaysistar2711 Год назад

    I don't know when it came about, but there's another Rust game engine called INOX with a Blender based editor.

  • @madpuppet666
    @madpuppet666 Год назад +1

    I don't think you'll see any triple A using rust unless NIntendo, Sony & Microsoft support a rust interface with their sdks, or if you can compile rust to c++ that can be compiled with their sdks.

  • @user-lg7td1he3s
    @user-lg7td1he3s Год назад

    can i make a game in rust using unreal engine because i like unreal engine and c++ but i am wondering if i can use rust and unreal engine

  • @jrdoughty13
    @jrdoughty13 2 года назад +3

    So... I wonder how hard it would be to use bevy's ECS with godot

    • @warkah7557
      @warkah7557 2 года назад +1

      Well, someone did it with Unity.

  • @Wilker_uwu
    @Wilker_uwu 8 месяцев назад

    Hey! If you're watching this today and happen to be interested in the development for the GDExtension for Godot 4.x, we do need some help writing the documentation and tutorials for it. i did a Pull Request of my own to the book for Rust-godot 4.x, but there's still a lot to be done ^^

    • @tomtravis858
      @tomtravis858 Месяц назад

      I have tried Gdext, I don't think bindings will ever come close to the ergonomics of a native library. I once even couldn't compile my Rust in release mode with Gdext, not good.

  • @boyinpyjamas
    @boyinpyjamas Год назад +1

    ggez name is just too good lol

  • @vitluk
    @vitluk 2 года назад +7

    Using rust almost daily, not for work, just for toy projects atm, and I love it. The language is just fun to work with (all the other benefits of it aside). I tried to use bevy at some point, but it got me confused as hell with its structure, macros, and traits. Maybe I'll get into that someday but sadly, not enough time to just learn it properly right now for me...

    • @jonathan2847
      @jonathan2847 2 года назад +3

      As someone with many years of experience and works with Rust professionally. Most Rust game engines are not well documented or as simple as they should be.

    • @marcosdanieltorres7253
      @marcosdanieltorres7253 2 года назад

      Hey whats projects are you doing?

    • @sharkpyro93
      @sharkpyro93 Год назад +4

      @@jonathan2847 this thing is correct for almost all libraries for rust, i've used rust at work, it was a miserable experience, don't get me wrong i love the language and i got hired primarily because i knew the language a bit, but man, the immaturity of the ecosystem is real, most of the libraries are like alpha / pre-alpha state, no big company baking, no defined standard, lack of documentation, every library lack documentation that goes beyond an "hello world" example, took me 2 months for building those projects, and also, it seems that the rust community have some problems regarding unit testing...it seems that most rust devs have never used it professionaly and it shows

  • @mariobroselli3642
    @mariobroselli3642 3 месяца назад

    Why not go lang?

  • @bevvy.bee9
    @bevvy.bee9 2 года назад +2

    Ggez probably means
    Gg - as in good game
    And ez - as in easy
    So good game ez

  • @BlooFlame
    @BlooFlame 11 месяцев назад +1

    Rust is the future.

  • @Sky-iv8zm
    @Sky-iv8zm 2 года назад

    How would you recommend bevy which is extremely early on, doesn't even have an editor, but then say fyrox is very early in development and should be careful when using it to create a game"
    Bevy doesn't even have basic rendering going for 3D, basics of the basics are missing.

  • @kristianlavigne8270
    @kristianlavigne8270 Год назад +1

    Fyrox 💕

  • @JohnPywtorak
    @JohnPywtorak Год назад +6

    Maybe mentioned already, the Stardew Valley team is using Rust now as I recall, hopefully have that right. While not on the scale of Naughty Dog, that team has a big following. Whatever is next may be Rust based.

    • @zettwire
      @zettwire Год назад +1

      Did they switch to rust? Last time i checked it was C# i think ( was a few years ago :/ )

    • @JohnPywtorak
      @JohnPywtorak Год назад +2

      @@zettwire That’s what I heard as I recall.

  • @shell4293
    @shell4293 9 месяцев назад

    Its gonna take AGES before Rust begins being adopted in more industries, but damn will I be happy when it is. Rust is just a better designed language imo than say C++.

  • @khealer
    @khealer 2 года назад +10

    ggez = gee gee ee zee = good game, easy!

  • @WildWestDesigns
    @WildWestDesigns 2 года назад +3

    Every environment that I have seen with people, always tend to be on top of a C/C++ environment. As long as it can't stand on it's own, it has to sit on top of something else, wrap it etc, I'll always have hesitancy with using it outside of just a hobby project. Unlike some other languages, I don't even find Rust easy to write in, even compared to C/C++.

    • @astroid-ws4py
      @astroid-ws4py 2 года назад +9

      The major points Rust gives are validated safe memory handling and multithreading, Which are both Big pluses when using a low level language and kills a ton of potential bugs compared to when using C and C++

    • @Aidiakapi
      @Aidiakapi 2 года назад +5

      Change is gradual, and large games take many years to make. Longer than most of these engines have even existed in total.
      So yes, you won't see this in the wild yet, it's simply too young. That doesn't say anything about the future though. In 20 years, it might not be so uncommon.

  • @PravinKumar-lo8em
    @PravinKumar-lo8em 2 года назад +2

    It has a minimal runtime for ref counting I guess. I was coding happily in rust until I ended up with using a self referencing struct

    • @unsafecast3636
      @unsafecast3636 2 года назад +8

      You can just Box a self referential struct though.

    • @PravinKumar-lo8em
      @PravinKumar-lo8em 2 года назад

      @@unsafecast3636 I know. If you are pinning a struct which has fields stored in a stack, there is too much boilerplate code and unsafe. I love rust, but sometimes I feel like doing a lot to satisfy the compiler than coding the actual stuff.

  • @canht95
    @canht95 Год назад

    Mobile is limited because Android and iOS have their own renderers.

  • @propulsion_man
    @propulsion_man Год назад

    0:25 "opera-renovating-systems"

  • @marcenware0113
    @marcenware0113 Год назад

    gg e zet bruh

  • @abdelhaksaouli8802
    @abdelhaksaouli8802 Год назад

    GGEZ is pronounced GG-easy as if good game easy, something you say when you win and you wanna be salty x')

  • @AntonioBarba_TheKaneB
    @AntonioBarba_TheKaneB 2 года назад

    interesting stuff, but it's going to take decades until it can dislodge C++ for professional Game Programming.

  • @CGMossa
    @CGMossa 2 года назад

    My comment is no longer here.
    I wrote about macroquad and fermium.

  • @lancemarchetti8673
    @lancemarchetti8673 Год назад

    Rust is seriously solid!

  • @mtalhakhalid1679
    @mtalhakhalid1679 Год назад

    Think about you ave game and it is out as soon as yoy leave the map cz rust is good at garbage collection😅😅😅

  • @eboatwright_
    @eboatwright_ 2 года назад +2

    Rust = Best programming language
    Macroquad = Best game framework / engine (if you want it to be)

    • @demosthenes7902
      @demosthenes7902 2 года назад +4

      Say's everyone who will never actually create anything :D

    • @eboatwright_
      @eboatwright_ 2 года назад +1

      @@demosthenes7902 facts

  • @safebox36
    @safebox36 2 года назад +1

    Feels like Rust's libraries are more restricted access compared to other languages.
    Like it's not uncommon for there to be paid libraries or game engines, but I've noticed there's a higher level of it in the Rust community which is rare for a relatively modern language.
    On the plus side, it has PSP support so it has homebrew potential.

  • @_jdfx
    @_jdfx Год назад +1

    install dark reader. thank you.

  • @skel9242
    @skel9242 2 года назад

    Me, who already knows like 20 more convenient engines in languages I actually know: hmm… interesting.

  • @gostan2718
    @gostan2718 2 года назад +10

    Rust compile time is slow!

    • @perregrinne2500
      @perregrinne2500 2 года назад +2

      Rust's compilation is slow only if you're ignoring download times for packages for other languages. Cargo first downloads all needed crates and compiles them. After that, incremental compilation takes over and subsequent compilations take only a few seconds. Having to fetch packages via NuGet, Vcpkg, or manually downloading them from online and then compiling your project that's in another language can easily add a minute or longer to your build time, compared to Cargo.

    • @etopowertwon
      @etopowertwon 2 года назад +7

      ​@@perregrinne2500 That's nice and all, but cargo builds external dependencies only once per project(which is already stupid, imagine cloning ue5 for each project, lol), after that compiling is still slow. Or more specifically linking.
      Rust adores static linking, so each time you build the program, it gonna link everything together. It's so bad, Bevy advises to use shared library during development (however it's not possible on windows).

  • @Deathend
    @Deathend 2 года назад +3

    As someone in their 30s that remembers not understanding the appeal of Python when they were a young teen, the question with programming is not "if you can", it is "why would you".
    While there will always be dedicated people that will do things simply because they are hard, if there is no specific reason to use Rust over C++ and such for game development, why do it?

    • @AndrewBrownK
      @AndrewBrownK 2 года назад +8

      Well, there *are* reasons

    • @AndrewBrownK
      @AndrewBrownK 2 года назад +6

      For me, the simplest reason is I know Rust and I don’t know C++

    • @adamodimattia
      @adamodimattia 2 года назад +10

      I know Rust and C++, and C++ was my favorite language until I discovered Rust. Many people here write the programming/writing in Rust isn't easy... Well I don't know, in my case after a session with Rust when I have to go back to C++ it is a real pain. Usually we all write in C++ because as far as games go there is often very little choice to the language...

    • @astroid-ws4py
      @astroid-ws4py 2 года назад +14

      Because Rust kills at compile time a ton of potential C and C++ bugs that could be hard to catch on production.

  • @computer9764
    @computer9764 2 года назад +4

    If Rust wasn't so ugly, I'd maybe use it...
    Not saying C/C++ look amazing or anything, but at least they have the excuse of being old...

    • @spartv1537
      @spartv1537 2 года назад +1

      LMAO
      never thought that languages can be described by their prettyness before

    • @DerSolinski
      @DerSolinski Год назад +3

      OK now I'm curious, what exactly or rather why is it ugly?
      Since IMO it is a very concise readable language if used properly.
      "Properly" is the keyword, it get's ugly when people try to use paradigm that they are used from other languages.
      AKA fighting the complier... He's a d++k but he only has pure intentions...

  • @mountainshark2388
    @mountainshark2388 2 года назад +9

    rust is evil

    • @timothytim9238
      @timothytim9238 2 года назад +4

      why

    • @timothytim9238
      @timothytim9238 2 года назад +3

      why

    • @astroid-ws4py
      @astroid-ws4py 2 года назад +3

      Why? Just use whatever language is best for the project currently in mind

    • @raiyaankazi
      @raiyaankazi 2 года назад

      @@timothytim9238 He owns a 70s Chevy in the rust belt.

  • @etopowertwon
    @etopowertwon 2 года назад +6

    I just today played around with rocket(high-level framework for rust, reminds me of bevy in how it treats state: in bevy you make Resource argument, in Rocket - State and framework figures itself that it needs to be passed) and also I read about sqlx, which supports sqlite and hence can be useful for gamdev.
    Coming from c++, rust macro is something of next-level. sqlx can check sql syntax by connecteing to DB at compile time.

    • @GeorgeSukFuk
      @GeorgeSukFuk Год назад

      Why would you use SQL when building a game

    • @etopowertwon
      @etopowertwon Год назад +3

      ​@@GeorgeSukFuk
      Lots of games have lots of relational data. Overall sqlite is very good for that.
      It's reliable: you don't have to worry about data recovery, file renaming, etc.
      It's expandable: you don't have to worry about that adding new fields will break old files.
      It's portable: no need to worry about byte order or something like that.
      It's composable: you don't have to think how to mix in one file inventory, units skills, etc.
      It's queryable. You don't need to load it fully (contrast with json/xml/other text format) if you don't need to.
      It adds extra layer of fool-proofness(FK)
      It's small and easy to use.
      It's patchable. If you need to repair save/asset file because you changed a lot internally, you don't need to write sed script or make adhoc tool to load and save: you often can just use sqlite cli
      It's creatable: if you need to test mock data, it's SQL statements.
      It's used in real world by big boys(Witcher3 FWIR)
      Sqlite literally advertises itself as a replacement of fopen. And it's a very good replacement.
      It has downsides(PITA for version control, no concurrent writes, next to useless for something like minecraft worlds)

    • @MaxsuelMaccari
      @MaxsuelMaccari 11 месяцев назад

      @@etopowertwon I'm from the web area, where we use a lot of SQL, and I was interested in what you said. In games, how is this code that deals with relational data organized? Do you use any kind of ORM? Any MVP (or MVP) style patterns?