I Tried The 'Game Engine Of The Future'

preview_player
Показать описание
Boy what a ride...

This video was sponsored by Brilliant.

bevy game engine and rust. making games is not easy
Рекомендации по теме
Комментарии
Автор

Some people will say the final result is weird.... They are right.



FredyyDev
Автор

Let's see, if we consider...
- New to Rust, which requires you to do some things differently
- New to Bevy and ECS, which is a paradigm shift
- Bevy changing quickly so information may already be outdated
- Bevy not having an official editor (yet! It's being worked on... ) so it's hard to quickly see what's happening
- No use of video tutorials

Yeah, you did great!


...

Crotch bullets~!

salysPRO
Автор

hey, making a game in bevy while being new to bevy AND rust at the same time is insanety. good job nonetheless, it really impressive given the context. also, props to you for your methods of gathering info

justanotheruser
Автор

Quick note about 22:52

It's not that rust won't let you declare uninitialized variables, but rather the compiler can't guarantee that the variable will be initialized before access. For example if there are no player components, the for loop will never execute and the variable will be undefined. A way to simplify a lot of code for getting the player would be to use the .single() (or the non panicking version .get_single()) to declare and instantiate the variables in one line.

SensyProductions
Автор

FYI, ECS has been an idea in development since 2002, if not earlier. It was implemented for Dungeon Siege and described in a 2002 GDC talk by Scott Bilas, which you can find on Youtube.
It didn't get the name "ECS" until later, around 2007 or so, as more and more articles and implementations of the idea started to emerge. But it's been a thing for decades.

I don't bring this up just to be pedantic, but rather because "Wow look at our new ECS idea" has been used in the marketing for things like Unity, and the fact that ECS is older than Unity, not to mention all these younger engines, should be more widely known so that people aren't susceptible to that kind of marketing.

delphicdescant
Автор

when i saw that you hadn’t installed rust yet i knew it was going to be interesting. i really like the way that you learn stuff. thinking of doing it myself

angelo
Автор

"ECS" has been the standard for game development before it got it's name. It was kinda different back then since you had to do all the stuff manually but under the hood the principle was the same.
A lot of console games had fixed arrays of structs and specific functions that accessed these arrays.
The premise was that consoles back then had a limited amount of memory so developers were forced to utilize a fixed amount of memory to declare all their game properties in these arrays for all possible entities in the world.

JacobNax
Автор

"I don't know if this is good practice but..."
That's me all the time with Bevy. It's a very interesting experience with Rust being so strict but Bevy being so loosey goosey at the same time.

Endelin
Автор

actually a very good look at bevy.

This also makes me wonder how they do a lot of it in the backend as I'm newer to rust

griffinmartin
Автор

The thumbnail got me, but holy frick what an honest video. I’ve been trying to learn Rust on it’s own over the past few months. Even with some basic Rust knowledge, moving to Bevy is exactly this video.

WondaMegapon
Автор

because the part in computing that gets faster at the slowest rate over time is "copying data from ram to cpu/gpu", that then gets slower and slower over time (relatively), and your programming style+language needs t optimize for that slowest-speed-bottleneck.
object oriented programming does not optimize for this. it is going to become a relict.
data oriented programming (with entity component systems) does optimize for this. it is becoming the default.

data oriented means, all modifiable data is in long uniform lists, to optimize for the process of copying to cpu-cache.
entities (anything that moves by modyfying data, like a sim in a sims game, have "components" that point at "data" of such lists.

data oriented programming shines where ever you have large populations of very similar moving/changing objects.
with data oriented programming you may have 100x to 10.000x as many of the same sims/projectiles on the same hardware.
data oriented programming may not be worth the overhead-extra-cost on simpler games with less moving parts.

ollllj
Автор

This is EXACTLY my experience as well but with a rogue like game. Good luck with RUST and Bevy! Also your keyboard sounds good.

The_Wookiee
Автор

"it's always my fault isn't it?" Debugging in a nutshell

IrregularFish
Автор

Really great video!

I'm a software engineer with Rust experience and basically no gamedev experience working on a game in Bevy, so it's really interesting seeing someone come at it from the opposite direction.

paholg
Автор

By the way, if you check out the repository, it includes dozens of examples that show how to use the engine. Each example is a single file so you can easily play around with them and grab what you need.

josephsmith
Автор

Dude... HOW did you grasp all those concepts so quickly!? I had such a tough time getting started (I also didn't/don't know rust), what you did in a mere couple of hours took me days. I would you LOVE to see you continue this or even make it into a series!

andrieskruger
Автор

22:36 You don't have to initialize with default. You can either use the transform from within the loop body (because you could actually have more than 1 player, even though you probably wouldn't, but think of the cherries in Super Mario 3D World), or you could use `break` as a `return` from the loop, which would give you the 1st transform. Rust is easier and most efficient when you think in dataflow where everything is an expression, even `if` "statements" and loops.

jaysistar
Автор

Now I learned most of rust by interacting with gpt for my dumb questions, but I have to say, you mastered this brilliantly.

RogerValor
Автор

Game engines started out without UI, so I wouldn't say its the future. Game engines with UI like Godot are much easier and make the process faster, no UI is definitely not an advancement, or the future. My first language was Python and I coded games in it for 4 years, and even published a game on steam made in Python, and I never knew what I was missing until I tried Godot. Regardless, great video, you did an amazing job!

Bloxd.io-Bros
Автор

Very well done, given that you were new to Rust. Bevy is a departure from what we're used to these days with things like Godot/Unity/Unreal, i.e. a graphical editor where you lay out your game that lets you write a bit of your own code to control the logic. Bevy is, in fact, a return to the roots where you have to program everything by yourself, and only gives common building blocks like the main program loop, rendering pipeline and ECS, while you have 100% control of what your game does. I would argue that Bevy will never really need a graphical editor, although there is one supposedly in the works.

Ankh.of.Gaming