Best way to implement a RPG-style textbox for scrolling dialog

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By gblues

What I’m trying to do is create a box to hold text, where the text is rendered one character at a time, and is automatically scrolled as the box fills. Note that I am not talking about a scrollbox (i.e. the user isn’t going to be using a mouse and scrolling up), it’s more like a glorified terminal window.

To see an example of what I’m trying to describe, here is a YouTube video of Dragon Warrior 3, which uses this type of box pervasively.

Generally speaking:

  • need to be able to handle word wrapping
  • need to draw one letter at a time
  • need to be able to pause output while waiting for input
  • need to be able to control rendering speed

What is generally considered the best way to accomplish this?

The LOVE game engine has a neat function where you give it a font, a width, and a long string, and it gives you back an array of strings such that each line is no more than width pixels. Does Godot have something similar?

I’m new to the engine so I’m not sure what tools are available. I see classes like the Font class that seem like they would be useful, but little in the way of examples on how to actually use it. So, I’m hoping to get some guidance.