-
Notifications
You must be signed in to change notification settings - Fork 34
Improve Plugin End-User Ergonomics #11
Description
Great work! But there are some design decisions which hamper end-user usability, notably:
Hardcoded node paths in scripts which define rigid scene structures and have no configuration warning when not properly configured
I've made a commit in a fork that I can PR which I think nicely solves this for BuoyancyBody3D and BuoyancyProbe3D, as well as one that removes the hardcoded paths in MotorVessel3D (just opting for exported node paths). (https://github.com/Tattomoosa/godot4-oceanfft)
This has the added benefit that probes added during runtime will work without adding them manually as a separate step. (And it just occurred to me that they could easily remove themselves when they exit the tree, so I'll make a commit for that as well)
No in-editor preview which would be very useful for adjusting parameters
Poking at this but having some problems getting QuadTrees to play nice as a tool script, still looking at that.
MotorVessel3D can only be controlled by the keyboard
This is pretty easy to resolve and seems worth doing to allow for autonomous vessels, but considering going a bit further and supporting multiple propellers while I'm at it. Apparently twin rudders is a thing too, TIL.
Necessary for end user to add, setup, and link several nodes to use
This has some other considerations:
- It's probably not ideal to extend WorldEnvironment into OceanEnvironment for a couple reasons
- Environments can be added to cameras directly to override WorldEnvironment and this behavior should be considered
- Other plugins may extend WorldEnvironment
- Multiple oceans can't have different properties
- Seems like a user may potentially want to add more than one, e.g. a beach resort setting that also has a pool
- As-is, properties in several nodes need to be modified to tweak ocean appearance
- Nodes that need to be linked and potentially need modifications:
- QuadTree3D
- Ocean3D
- OceanEnvironment
- Nodes that need to be linked and potentially need modifications:
It seems to me the ideal end-user experience would be to add a single node that just works, but I'm not really sure that's reasonable yet. Happy to keep poking and implement changes myself but wanted to start a conversation and get your thoughts before I do too much work -- would definitely prefer to contribute here than maintain a fork.