I can't decide 🎵
Okay, let's have a good think about scripting languages that I might use in Project Special K. I wrote about this before, but really I'm just trolling for comments and suggestions.
Option 1 - Lua
Relatively easy to implement, especially with something like Sol on top.
Well known, often used for game scripts.
I have no earthly clue how to handle multiple objects running their own scripts simultaneously, let alone the whole "wait for some other object to signal back" that I described before.
Option 2 - JavaScript
Could be a nice challenge to implement, maybe with something like Duktape?
Well known, but not as often used for game scripts as Lua.
The third point is exactly the same as for Lua.
Option 3 - bespoke Lisp-like
Tricky to implement, but I've done it a bunch of times now to varying degrees.
Not as well known nowadays, I suppose, compared to JS and Lua.
I already know how to allow for cooperative multi-threading and waiting for other objects to finish, as described before. Just gotta implement the whole thing.
Option 4 - Event Flow
The script engine used in Animal Crossing New Horizons, Legend of Zelda Breath of the Wild and Tears of the Kingdom, and probably many other Switch games.
This option is a joke to make the list longer.
Obviously supports waiting for outside things.
Option 5 - Something else
Who knows, maybe one of you reading this has a better idea?
As a reminder of what I kept referring to, there would be several things running simultaneously like villagers, gift balloons, bugs, the hourly weather and chime thing, the player, and the UI. When you talk to a villager, they stop what they're doing and run a script. That script can then cause a dialogue box to appear by spawning in a new game object. The script should then sit and wait until the dialogue box is dismissed, all while the villager sits and waits until the script signals it's done, while the dialogue box and script can trigger animations to play on the villager and player alike... all while all these other objects still process in the background, and may themselves run scripts.
I'd rather not start on implementing something as in-depth as a script system, let alone with a feature such as that, without being certain it's not a very bad idea.
Doesn't need to be the best idea. Just not a very bad one.











