erm, honestly, I don’t know where to start. So in no particular order, off the top of my head:
a) Scene observables. Working with observers/observables(obs) feels like looking at the abyss. I do not know how many obs my scene has, or is currently running, or inactive, or perf hungry. Its not transparent and debugging is largely trial and error. I remember when obs was first introduced, the onus was on the dev to track and manage them. But after all these yrs, I have to say that, having to manually register and remembering to remove registered funcs are a real hassle. One reason why I moved from custom materials to material plugins was not having to manage obs!
b) Assets on third party hostings. When I need to work with bjs, my day starts with firing up the PG, logging in to a third party hosting, uploading my assets to it, switching back to PG tab and start coding. What I really want is to fire up the PG, go to my assets folder, select my assets and drop into my PG and go from there! Kinda like Sandbox+PG! Wouldn’t that be cool!
c) Inspector. I’m so in love with this feature since it came out. I had a bjs gui debugging info box template back in 2015ish. Shift-delete it when the inspector came around. Largest gripe with it? Not showing shared stuff. A little icon to show a material is shared on mesh A or that skeleton is shared with mesh B etc. Why the need? So users don’t dispose the wrong stuff during development and then having to sift thru long codes to discover that a material was shared or a vector wasn’t cloned. Heck I guess, we could extend this further to mesh geo as well? Shrugs…
d) CSM. CSM is CPU driven shadow calculations. Its resource hungry and a simple mesh with a material uses more than twice the resources of the traditional method. I love it still but with webgpu unlocked, I’m looking forward to major upgrades in the lighting department. There are so many methods to choose from, gee, I don’t know which I want. This isn’t a feedback I guess, its more a wishlist for BX. A drop down menu with options for gpu based lighting/shadow in a demo scene would also be a very nice selling point.
e) Vfx. Recently, I’m working on vfx heavily for a feature in Seedborn. And I realize, we really only have barebones api in the particle system. If I need more than linear gradient control, I have to spend time coding the curves in custom functions which is where I don’t want to spend time on. vfx devs generally spend time modifying their textures back and forth, focusing efforts in visual style/look/timing etc. Coding is essential but typically the codes used are generic. Which means its better to have a dedicated vfx sandbox. Also, vfx is a key selling point for a 3D engine.
Apologies, I do have a long list of wants and wishes. But I can’t remember them all. After almost a decade, its hard not to see the most annoying stuff day in day out. I confess, I have not worked with ALL bjs features. If my feedback is incorrect, feel free to correct/ignore.
PS: I work at scale, all above thoughts are wrt scale. So, observables refers to tens/hundreds of observables, assets means tens/hundreds MB worth etc…
Sorry for posting on a weekend. =) Hope it helps.