Deledrius wrote:That kind of thing, while it would be amazing, is not remotely inside the scope of any of our current projects. A drag-and-drop interface for Python scripting is a huge task, and honestly not really worth the effort for the sort of simple interaction it sounds like you want to accomplish.
Are you both thinking about generating Python scripts from Node Trees using visual scripting ? Because now that I'm thinking about it, that's not required at all IMHO...
I don't have a proof of concept to backup what I'm saying, but I'm pretty sure we CAN already code pretty much any basic or intermediary puzzle using the current Korman.
Korman's Node Trees allow us to hook inputs (detectors), outputs (animations & responders) and Python scripts. We also have a few global scripts (xAgeSDLDoSomething) which allow us to interact with SDL variables - some can even act as simple logic gates (or we could just write a bunch more global scripts if required).
This is enough to do the following 3 operations:
- detect click/animation event → set SDL variable
- if <several sdl variables to true> → set other variable
- on variable set to true → run animation or responder.
Granted, this isn't enough to do advanced mathematical calculus, but has any of Plasma's most "complex" puzzles like Kadish's or Laki'Ahn ever required it ? Besides, the advantage of nodes is that you don't have to deal with complex API commands like registering for notifications, etc.
What do you think ? I might have forgotten a few details, but it sounds reasonable from what I can say.
On the other hand, what would be really useful (aside from more global scripts) is make the node trees a bit more newbie friendly. They are already light-years away from messy undocumented AlcScript or Plasma's clusterfuck of modifiers, but I think there might be a few ways to improve them more...
- Display a warning when a node is missing a mandatory input/output. This way people know when it makes sense to omit an output.
- Rename a few nodes so their purpose is easier to understand. I'm mostly thinking about Responders and OneShotMods. Although some really good noob-friendly documentation might work too.
- Possibly implement a way to make "generic" node trees. By this I mean treat each node tree as an actual node taking inputs/outputs. This would allow you to "script" the behavior for journey clothes, doors etc once, then reuse them throughout the whole Age by simply changing the inputs. A bit tricky to do, but this would be a massive help.
- Add a "comment" node, which wouldn't do anything, just improve readability when sharing node trees.
Once again, I haven't thought the whole of it through, so I'd like to know what you think about it