Rust for Game Development -- Game Engines & Frameworks

  Рет қаралды 63,164

Gamefromscratch

Gamefromscratch

Күн бұрын

Пікірлер: 136
@gamefromscratch
@gamefromscratch 2 жыл бұрын
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 2 жыл бұрын
You need to update the game engines by language playlist with this one I think
@magicjtv
@magicjtv 2 жыл бұрын
‘No mobile” is not a limitation of Rust. Rust libraries can be used on both iOS and Android.
@nearcz533
@nearcz533 2 жыл бұрын
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.
@4dillusions
@4dillusions Жыл бұрын
-No mobile and no console. What a game development language!
@zoeherriot
@zoeherriot Жыл бұрын
@@4dillusions you can use it on mobile, and I don't see why you can't use it on console.
@4dillusions
@4dillusions Жыл бұрын
@@zoeherriot Officially it doesn't support mobile and console. Do you know official support for Android, Ios, Ps and Xbox?
@zoeherriot
@zoeherriot Жыл бұрын
@@4dillusions what do you mean by "it"? What are you referring to exactly?
@DerSolinski
@DerSolinski Жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@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 6 ай бұрын
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.
@telldo8016
@telldo8016 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@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 2 жыл бұрын
@@BlazertronGames I found rust sintax beautiful, sometimes it remembers typescript
@TanigaDanae
@TanigaDanae 2 жыл бұрын
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.
@GDScriptDude
@GDScriptDude 2 жыл бұрын
I was rusty on this topic, thanks for the update :)
@dominikdalek
@dominikdalek 2 жыл бұрын
Embark Studios are heavily into Rust.
@etopowertwon
@etopowertwon 2 жыл бұрын
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 Жыл бұрын
​@@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 Жыл бұрын
@@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?
@y1QAlurOh3lo756z
@y1QAlurOh3lo756z 2 жыл бұрын
"gg easy" is how you pay respects to your opponents after a competitive match.
@taizeen1805
@taizeen1805 2 жыл бұрын
I'm not sure if I would describe "ez" as paying respects.
@bevvy.bee9
@bevvy.bee9 2 жыл бұрын
@@taizeen1805 LOL, ggez is a great way to add salt to the fire
@hyscript7
@hyscript7 2 жыл бұрын
Love it. Time to fry some overthinkers
@embeddedbastler6406
@embeddedbastler6406 2 жыл бұрын
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 жыл бұрын
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 Жыл бұрын
@@santiagoarellano2983 Jack Xu - Practical GPU Graphics with wgpu and Rust.
@santiagoarellano2983
@santiagoarellano2983 Жыл бұрын
@@zoeherriot thanks!
@techbytefrontier
@techbytefrontier Жыл бұрын
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
@m-o42
@m-o42 2 жыл бұрын
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 жыл бұрын
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?
@rogeriocruz658
@rogeriocruz658 2 жыл бұрын
"gg ezed" is what Mike says when he trashes noobs of the opposite team
@Hashbee
@Hashbee 2 жыл бұрын
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
@igorgiuseppe1862
@igorgiuseppe1862 2 жыл бұрын
ggez probably is pronounced as GG Easy
@MrNybbles
@MrNybbles 2 жыл бұрын
@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 жыл бұрын
Just like the legend himself, Jonny Kim
@Sanrio_cute413
@Sanrio_cute413 2 жыл бұрын
Please take a look at kajiya renderer it works with bevy game engine, and it looks as good as Unreal Engine.
@techpriest4787
@techpriest4787 2 жыл бұрын
Yeah. I just looked it up. It is a very interesting project.
@madpuppet666
@madpuppet666 Жыл бұрын
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.
@ysumate
@ysumate 2 жыл бұрын
As for me, everything is simple and clear. Thank you very much for
@robertkimura8224
@robertkimura8224 2 жыл бұрын
The rust gamedev news letters shows some advanced rust projects
@vitluk
@vitluk 2 жыл бұрын
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 жыл бұрын
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 2 жыл бұрын
@@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
@polymathprogramming5036
@polymathprogramming5036 2 жыл бұрын
Allegro 5 has a Crate for rust, and is fantastic alternative to SDL :)
@EmilNicolaiePerhinschi
@EmilNicolaiePerhinschi 2 жыл бұрын
in the article the link to "SDL2 Bindings" goes to the raylib crate
@13thxenos
@13thxenos 2 жыл бұрын
The first moment I saw your thumbnail, I didn't see the R, and got a flashback of UST crash.
@louisgjohnson
@louisgjohnson 2 жыл бұрын
Should have covered macroquad!
@samdavepollard
@samdavepollard Жыл бұрын
many thanks - tons of useful info as always with your videos
@syntheticperson
@syntheticperson 2 жыл бұрын
Informative. Thanks
@jrdoughty13
@jrdoughty13 2 жыл бұрын
So... I wonder how hard it would be to use bevy's ECS with godot
@warkah7557
@warkah7557 2 жыл бұрын
Well, someone did it with Unity.
@jaysistar2711
@jaysistar2711 Жыл бұрын
I don't know when it came about, but there's another Rust game engine called INOX with a Blender based editor.
@Wilker_uwu
@Wilker_uwu 10 ай бұрын
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 3 ай бұрын
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 2 жыл бұрын
ggez name is just too good lol
@JohnPywtorak
@JohnPywtorak 2 жыл бұрын
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 2 жыл бұрын
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.
@khealer
@khealer 2 жыл бұрын
ggez = gee gee ee zee = good game, easy!
@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
@diman1ght491
@diman1ght491 2 жыл бұрын
Nice!
@mariobroselli3642
@mariobroselli3642 5 ай бұрын
Why not go lang?
@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.
@bevvy.bee9
@bevvy.bee9 2 жыл бұрын
Ggez probably means Gg - as in good game And ez - as in easy So good game ez
@kristianlavigne8270
@kristianlavigne8270 Жыл бұрын
Fyrox 💕
@shell4293
@shell4293 11 ай бұрын
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++.
@BlooFlame
@BlooFlame Жыл бұрын
Rust is the future.
@WildWestDesigns
@WildWestDesigns 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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"
@abdelhaksaouli8802
@abdelhaksaouli8802 Жыл бұрын
GGEZ is pronounced GG-easy as if good game easy, something you say when you win and you wanna be salty x')
@safebox36
@safebox36 2 жыл бұрын
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.
@lancemarchetti8673
@lancemarchetti8673 2 жыл бұрын
Rust is seriously solid!
@eboatwright_
@eboatwright_ 2 жыл бұрын
Rust = Best programming language Macroquad = Best game framework / engine (if you want it to be)
@demosthenes7902
@demosthenes7902 2 жыл бұрын
Say's everyone who will never actually create anything :D
@eboatwright_
@eboatwright_ 2 жыл бұрын
@@demosthenes7902 facts
@gostan2718
@gostan2718 2 жыл бұрын
Rust compile time is slow!
@perregrinne2500
@perregrinne2500 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 жыл бұрын
​@@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).
@CGMossa
@CGMossa 2 жыл бұрын
My comment is no longer here. I wrote about macroquad and fermium.
@AntonioBarba_TheKaneB
@AntonioBarba_TheKaneB 2 жыл бұрын
interesting stuff, but it's going to take decades until it can dislodge C++ for professional Game Programming.
@marcenware0113
@marcenware0113 Жыл бұрын
gg e zet bruh
@_jdfx
@_jdfx Жыл бұрын
install dark reader. thank you.
@IcyTorment
@IcyTorment 6 ай бұрын
Eww, gross.
@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😅😅😅
@skel9242
@skel9242 2 жыл бұрын
Me, who already knows like 20 more convenient engines in languages I actually know: hmm… interesting.
@Deathend
@Deathend 2 жыл бұрын
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 жыл бұрын
Well, there *are* reasons
@AndrewBrownK
@AndrewBrownK 2 жыл бұрын
For me, the simplest reason is I know Rust and I don’t know C++
@adamodimattia
@adamodimattia 2 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
LMAO never thought that languages can be described by their prettyness before
@DerSolinski
@DerSolinski Жыл бұрын
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 жыл бұрын
rust is evil
@timothytim9238
@timothytim9238 2 жыл бұрын
why
@timothytim9238
@timothytim9238 2 жыл бұрын
why
@astroid-ws4py
@astroid-ws4py 2 жыл бұрын
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.
Comfy Engine - An Easy To Use 2D Rust Game Engine
17:33
Gamefromscratch
Рет қаралды 18 М.
I spent six months rewriting everything in Rust
15:11
chris biscardi
Рет қаралды 426 М.
У ГОРДЕЯ ПОЖАР в ОФИСЕ!
01:01
Дима Гордей
Рет қаралды 7 МЛН
大家都拉出了什么#小丑 #shorts
00:35
好人小丑
Рет қаралды 85 МЛН
Throwing Swords From My Blue Cybertruck
00:32
Mini Katana
Рет қаралды 11 МЛН
So you want to make a Game Engine!? (WATCH THIS before you start)
14:39
Giant Sloth Games
Рет қаралды 300 М.
Bevy 0.14 -- Rust Powered Game Engine
12:01
Gamefromscratch
Рет қаралды 23 М.
The Unity Run-Time Fee is Dead!
10:45
Gamefromscratch
Рет қаралды 35 М.
BEVY Rust Game Engine -- My Fav Yet!
17:30
Gamefromscratch
Рет қаралды 78 М.
Switching Game Engines... Twice? - Devlog #7
10:55
TIMBER
Рет қаралды 83 М.
SDF -- The Future of 3D Modelling?
11:20
Gamefromscratch
Рет қаралды 84 М.
Making an FPS game with Bevy and Rust!
9:32
Biped Potato
Рет қаралды 33 М.
Bevy 0.13 -- Rust Powered Game Engine
12:33
Gamefromscratch
Рет қаралды 28 М.
rust runs on EVERYTHING (no operating system, just Rust)
18:10
Low Level Learning
Рет қаралды 356 М.
У ГОРДЕЯ ПОЖАР в ОФИСЕ!
01:01
Дима Гордей
Рет қаралды 7 МЛН