alexxbb / hapi-rs

Idiomatic Rust bindings to Houdini Engine C API
MIT License
64 stars 7 forks source link

Any plans to integrate this with Bevy? #18

Open thedodd opened 10 months ago

thedodd commented 10 months ago

Having a streamlined Houdini -> Bevy content creation workflow could be a bit of a game changer for building games/apps with Bevy.

mike-mortimer commented 10 months ago

Agreed, this kind of DCC pipeline would help Bevy adoption too.

alexxbb commented 10 months ago

Yes, it would be great to integrate it with Bevy. As a matter of fact I tried this about a year ago, but I didn't have much experience with Bevy at that time. ( And still don't have it 😆)

The biggest downside is licensing. You need a commercial Houdini license for third-party implementations like this one which can put off potential users.

Having said that, I would like to learn Bevy better and try again this Fall.

thedodd commented 10 months ago

I'm going to be experimenting with this a bit for some stuff I am building. I'll keep it modular so that if I make progress on this, I'll be able to push the code to crates.io (or PR here) and such. Likely I'll use Bevy UI (for any UI stuff, params and such) to try to make it future proof.

My primary objective will be to use a Houdini .hda as a core part of a Bevy scene. That way I can do as much of the asset creation pipeline in Houdini, and then just load it as a Bevy scene.

One thing which I think will be quite important, and also quite doable, is to be able to export various attributes from Houdini, and have those attributes treated as Bevy components. This will be a nice way to integrate the asset creation pipeline with an abstract representation of logic. Then on the Bevy side, we just parse those attributes and attach them as components to the spawned entities using Bevy's reflection system (already a tried and true pattern, just not in the context of Houdini).

That would be killer. Once the Bevy editor ships, Bevy will be much closer to being a viable alternative to Unity and such. Well, it already is, but this will alleviate much of the boilerplate.

alexxbb commented 10 months ago

Hey @thedodd sorry for the late reply.

I'm curious to see what this may turn into. It can be a great test for the library - some APIs are missing (less common) and some design decisions were made to make it simpler and user friendly at the cost of maybe some overhead. But I'm open to changing it if necessary.

I should also have more time to experiment with it later this year.

Good luck!

thedodd commented 10 months ago

Well, unfortunately I only learned after the fact that the Indie license only grants access to the Unity & Unreal engines. In order to use the engine API for this use case, I would need to drop a pretty solid amount of money ... in order for me to do a bunch of work hahaha.

So, at this point, it is a no-op for me.

alexxbb commented 10 months ago

Yes, exactly, this is very unfortunate, but makes sense from SideFx business point of view.

If Bevy (or Rust game dev in general) takes off and people start making money with it, then maybe it will be of SideFx interest to support another ecosystem.

Until then, this library is for niche use cases in VFX studios which have tons of Houdini licenses 🙂