Open erlend-sh opened 4 years ago
Sounds like gstreamer for mesh manipulation
Happy to see this @erlend-sh, thanks for adding it!
I think a discussion on asset pipelines would be great for a number of reasons:
A pipeline implemented in Rust could be genuinely helpful to our community and the broader gamedev community, while also furthering our own desires to see Rust be more widely adopted within this space. I’m not sure that it’s within the scope of this workgroup to take on implementing this, but I think a discussion to explore what we could do to support and foster any efforts towards this could be very beneficial.
There’s a really nice write-up for a pipeline here and there’s probably some overlap with what is proposed in the article that Erland linked. I think the “graph-of-nodes” concept works well and conceptually it’s not far from a material editor in many popular engines. I think it’s a good balance of flexibility, abstraction, and ease of use.
I’ve also noticed that a few of the hyper-scale tech companies are creating their own build systems. (Google’s Bazel and facebook’s Buck) They’re a bit new and aren’t targeted at games, but I think there are ideas we could borrow from them. At a conceptual level they also use a graph structure. They have their own considerations (distributed build farms, build artifact caching) that could be relevant in the games space.
@kabergstrom has been working on atelier. I’ve been getting familiar with it and it looks very promising. The scope of atelier (as I understand) includes:
This may be broader than what was proposed in the article @erlend-sh linked, but that article didn’t address hot-reloading data. They may be assuming a fully “offline” process where the final packaged assets are flat files requested via HTTP. Given that atelier
already has to support multiple “output” cases (development vs. shipping), there may be a natural way to extend it to output data in a web-friendly way.
Looking forward to seeing other perspectives on this!
https://medium.com/@babylonjs/introducing-polymorph-a55588df6cee
https://forum.babylonjs.com/t/introducing-polymorph-an-open-discussion/7692/14?u=erlend_sh
https://gist.github.com/syntheticmagus/32bff819700363d6ed931471c88f09ce