This issue collects various ideas for improvements of text rendering functionality in Flame. These are of various degrees of difficulty and/or usefulness, and there is no timeline on when we would be able to implement all of these, but still collecting all these ideas in one place is useful in order to be able to design the framework capable of supporting all these various use cases eventually.
Display text using a custom sprite-sheet based font. For example, a game may use a custom hand-drawn "font" which is prepared as a regular image, and it may not be practical to convert that image into an actual font file. (#1621)
Mix styles within a single text block.
For example, you may want to have some part of text displayed as bold, or italic, or in a different color, etc.
Mix text renderers within a single text block.
Some texts may need to use pictograms inside, for example "This quest will give you 8π" (except that the pictogram would come from the game's assets and not from the standard emojis). This can be accomplished if a text block would allow mixing text fragments from the standard "TextPaint" renderer, and the spritesheet-based renderer.
Automatically expand a marked-up plain text into rich text.
Once we have the ability to display rich text, we need to also make it convenient, so that for example a string like "To **boldly** go where no man has gone before" could be automatically converted into a text fragment with a bold word inside. (#2049)
Allow user-customizable text markup.
As an extension to the previous functionality, some text fragments may need to be expanded into user-defined entities. For example, "10[GP]" may render as 10 + an icon for a gold coin.
Allow dynamic text effects.
Sometimes you may need to adjust either the style or placement of each letter individually. For example, each letter may have its own different color, or you may want some words to "shake" (as in Undertale).
Allow text fragments to respond to tap events.
This could allow URLs or URL-like functionality, or even simple tooltips.
Render text with "justified" alignment.
Align different text pieces according to their baseline.
In-text exclusion zones.
For example, in order to insert images inside text, one would need to force the text to flow around that image.