I have a really simple dialogue system I implemented with Ink ( https://www.inklestudios.com/ink/ ), it works great for displaying and branching text but I'd like to be able to animate, move, and otherwise command characters, props, and the cinematic camera during dialogues. Every line of dialogue in Ink comes with an associated string that is essentially a comment- the writer can dump whatever they want in it, and it's kept with the line of dialogue but never displayed. What I've been doing is using the comment text to insert commands for a really crummy homemade scripting language: given a string of text, it checks if the first word matches some CommandType enum, and if it does, it passes the string to a scripting interpreter which parses the string. It's very crude, every command is essentially some variant of "Hmm, this is a MoveTo command, that means it should have two more words, each corresponding to a prop or actor in the scene. If I can find two matching objects, I'll tell the first one to move to the second one- otherwise I'll fail out." It works, but it feels really schlocky, especially since the lion's share of my logic relies on parsing and interpreting strings. Is there a better, simpler solution I could be considering here, or is my best avenue to clean this up simply reading up on creating scripting languages, and refining what I already have to follow best practices?