Ambient icon indicating copy to clipboard operation
Ambient copied to clipboard

Why not use Bevy?

Open adsick opened this issue 2 years ago • 1 comments

for me it looks like a lot of goals are intersected with bevy game engine, so why just not contribute to it instead of fragmenting ecosystem and separating human resources for developing stuff that already has been made by other people.

adsick avatar Feb 25 '23 08:02 adsick

Yeah there's some overlap, and we're excited to share and collaborate on infra pieces with the Bevy project. There are a couple of fundamental reasons why this is not built on Bevy though;

  • Ambient's model is based on WebAssembly and small modules that can be written in any language, and which all are run in isolation by the runtime, which means you can even run untrusted third party code on your servers and and clients machines. Bevy's model is based on a "full Rust" stack, where you have a total overview of the finally built binary and can debug and run it as a whole. There are pros and cons to both approaches; Ambient is great for interoping and stitching together a wide range of modules and even adding modules while running. Bevy's is great for when you want total control and you want everything to be in Rust.
  • Bevy is a bit more DIY; it's a collection of Rust libraries which leaves things like distribution and deployment to the user. Ambient is more of a batteries included solution; we aim to make it dead simple for users to deploy their games and experiences.
  • We also needed full ownership of the infrastructure in order to make the dream of the "multiplayer game engine" come true; we need to be able to iterate on core building blocks, such as optimizing the ECS for the multiplayer use case.
  • Finally, there's a historical reason too; when the first few prototype lines of this were written, Bevy wasn't even announced yet. We could have switched when it was released, but at the time Bevy was as new as this project, so it didn't make sense then.

That being said, I would still prefer to try to minimize fragmentation where possible. I think over time both projects will spawn "building block" crates that other engines can take advantage of too, and hopefully things we can share between these projects. I also don't want to rule out the possibility of running Bevy modules inside of Ambient one day, but we'd have to look into the technical perspective there to see how hard that would be to do.

I hope that all makes sense!

FredrikNoren avatar Feb 25 '23 10:02 FredrikNoren

I hope that all makes sense

yes, I see. thanks for a detailed answer!

adsick avatar Feb 25 '23 18:02 adsick

I'm not a game dev but follow the space pretty closely. I'd only like to add that I'm glad that more open source game engines are popping up! Besides Bevy, there's also Godot (albeit not in Rust) that's, from what I can tell, picking up steam, now also Ambient which proposes some pretty cool stuff. I'm excited what there is to come, and more collaboration in this space is awesome! It feels like game dev is slowly getting more into open-source, which is great.

arpadgabor avatar Feb 25 '23 19:02 arpadgabor