did you guys know how complicated like, a really basic dialogue box system like you'd find in any game ever... actually is? like, there's a zillion moving parts, it turns out. you gotta tell the game to stop what it's doing (if you want things to keep moving in the background, you need to define a whole new STOPPED_FOR_DIALOGUE state and determine what happens and doesn't happen in it), you gotta create a file format and reader for the text itself, you gotta get text box assets together, you gotta split the text so that it all fits within the text box and starts new lines at the appropriate time, you gotta set up timers so that the text-box-popping-up animation plays, you gotta set up timers so that the text appears letter-by-letter on the screen, you gotta embed events in your conversation format so that you can have anything happen in response to conversations or control its flow without building and extending a complicated flowchart every time you want a different thing to happen, you need to do preprocessing on the script text so it can do basic things like call the current player by the right name, you gotta define how each line of the conversation connects to the other lines or embedded commands, tell it when to stop the conversation and go back to the main game, and...