ECS has been around for quiet some time actually, but not every game uses it. Its essentially the "counter" to inheritance based paradigms and obviously works data oriented, just like Rust itself does. The idea is to increase CPU performance by coding more CPU friendly stuff by fragmenting elements to put them in arrays / queries and just let them be updated sequentially, just like CPUs work best. As an example: A car (Entity) has doors (Component) that need to be opened (System). A car doesnt need to store how to open a door, so you can have that as a separate function and then load all components into memory to iterate over them and apply the changes. As a bonus this should also massively help with multithreading as there shouldnt be many race conditions for access to data. ECS is very cool stuff but you need to rewire your brain a little when you come from OOP.
ECS has been around for quiet some time actually, but not every game uses it. Its essentially the "counter" to inheritance based paradigms and obviously works data oriented, just like Rust itself does.
The idea is to increase CPU performance by coding more CPU friendly stuff by fragmenting elements to put them in arrays / queries and just let them be updated sequentially, just like CPUs work best. As an example:
A car (Entity) has doors (Component) that need to be opened (System).
A car doesnt need to store how to open a door, so you can have that as a separate function and then load all components into memory to iterate over them and apply the changes. As a bonus this should also massively help with multithreading as there shouldnt be many race conditions for access to data. ECS is very cool stuff but you need to rewire your brain a little when you come from OOP.
I have no idea how you would make a game in rust.
lol
I love games with good music and sound effects
cozy games 😴 looks well made too bad they those a boring af genre for their game