FyroxEngine / Fyrox

3D and 2D game engine written in Rust
https://fyrox.rs
MIT License
7.71k stars 349 forks source link

Questions regarding this game engine. #196

Closed Joe23232 closed 2 years ago

Joe23232 commented 3 years ago

Hi, I have some questions regarding this game engine:

  1. How does it differ to the Bevy game engine, especially in regards to its ease of use in comparison to bevy?
  2. Does it integrate its own ECS?
  3. If I used the game editor, does it do a lot of the heavy lifting for me, for example if I position a cube at a certain point, I don't have to manually code this?
  4. Am I using Rust to code my game if using the game editor?
  5. If 4 is applicable, then does (I am not sure if I am explaining this correctly) does the code get compiled to machine code, not something like where godot has some sort of linker for gdnative-rust which has some performance drawbacks or something, its all pure machine code without any costs to performance, am I correct?
  6. Is there a lot more coding compared to something like Unity if I wanted to move a simple object?
  7. If exporting my objects from Blender, what format does it support?
mrDIMAS commented 3 years ago
  1. Hard to tell, I never used it. But I think rg3d has more advanced 3D and in general is ready for production.
  2. No.
  3. rusty-editor is not a game editor, it is a scene editor - this means that it allows you building your own scenes to use them later in your game. Currently it is not possible to add/remove/edit game entities using the editor. You may think of it as a Blender or 3Ds max.
  4. Yes
  5. Your game just loads a scene made in the editor, so your game is in native code with no performance drawbacks.
  6. No, for example, to move an object you should do something like scene.graph[node_handle].local_transform_mut().set_local_position(Vector3::new(1.0, 2.0, 3.0))
  7. FBX
ghost commented 3 years ago

FBX is the only currently supported format, it's not blender specific.

Joe23232 commented 3 years ago

@mrDIMAS @Voodlaz Thanks guys for your comments.

Isn't FBX proprietary? I heard that Godot couldn't use FBX due to license issue or something? How did you guys manage to use FBX, cause I thought this is something that Autodesk owns?

mrDIMAS commented 3 years ago

Nothing stops you from writing your own loader of FBX (which I did), I think Godot can't use FBX SDK due to its license.

Joe23232 commented 3 years ago

Nothing stops you from writing your own loader of FBX (which I did),

Ah I see mate.

I think Godot can't use FBX SDK due to its license.

Yeah they could have written their own loader though.

MiniaczQ commented 3 years ago

For people who came here to know how it's different from Bevy, here's my take:

Joe23232 commented 3 years ago

@MiniaczQ

Interesting mate.

So wait I can use Blender over rusty_editor for my game scene? How would that be possible mate?

mrDIMAS commented 3 years ago

@MiniaczQ

* RG3D has a scene editor, but you should be better off using Blender (my guess is that it's gonna shine after more features are added),

Why? Could you please elaborate on that?

* It seems that RG3D tries to show off some of they stuff that it doesn't really add, but just include

Am I missing something, but I think added a lot of its own stuff. I want to know more :)

Joe23232 commented 3 years ago

Why? Could you please elaborate on that?

Maybe its easier to use Blender to navigate over the rust_editor but even then I wouldn't understand how you can make an entire game in Blender?

MiniaczQ commented 3 years ago

So wait I can use Blender over rusty_editor for my game scene? How would that be possible mate?

* RG3D has a scene editor, but you should be better off using Blender (my guess is that it's gonna shine after more features are added),

Why? Could you please elaborate on that?

As I said, I just collected information I found and organized it my way, I never actually used this engine. mrDIMAS said himself that you should think of it as something like blender. Obviously blender has been around for longer and has more features, hence I said the editor will get much better once it becomes something more than just scene editing. Maybe I was wrong to jump the rope, but maybe you can use blender and export scenes directly for the RG3D.

* It seems that RG3D tries to show off some of they stuff that it doesn't really add, but just include

Am I missing something, but I think added a lot of its own stuff. I want to know more :)

The rg3d website and some 3rd party article uses things like serialization (comes from serde), physics (comes from rapier), hrtf (comes from hrtf) as selling points. That is not to say, the engine doesn't add any features on it's own, because there is plenty of those too. But the fact is, you can add any of previously mentioned crates to any other engine and will get a very similar if not the same interface. I'd from my point of view, those features don't really put it above other Rust based engines, hence are pointless for my purpose where I try to find which one is better.

mrDIMAS commented 3 years ago

rusty-editor is a specific editor, it is designed to be used together with the engine. Blender could be used only to create 3d models, you can also create entire level in it, but then you should manually assign physical bodies, create navigation meshes, etc. rusty-editor does a heavy lifting for you. So your point is completely wrong here, sorry.

The rg3d website and some 3rd party article uses things like serialization (comes from serde), physics (comes from rapier), hrtf (comes from hrtf) as selling points.

rg3d uses its own serialization system, not serde. Also I'm the author of hrtf crate, it was a part of rg3d back in the day. The engine has a lot of its own unique features and you should've learn about them before trying to diminish the merits of the engine.

mrDIMAS commented 2 years ago

Closing this due to large period of inactivity. Feel free to reopen if needed.

CoreyCole commented 1 year ago

I'm wondering how bevy and fyrox can work together? Can I use bevy to keep track of positions/velocities/collision with bevy-rapier inside a fyrox game world?

mrDIMAS commented 1 year ago

Fyrox has its own wrapper for Rapier physics. All you need to do is to create appropriate physics nodes and it will work - see https://fyrox-book.github.io/fyrox/physics/physics.html and following chapters.