DEFINITELY. I should include this in my original post. Not having custom fonts reduces the consistency in the design because we are restricted to Roblox’s fonts, while our static images have our desired custom fonts. It makes the game look more cheap and unpolished.
These additions would make UI designing and creation so much more efficient, quick, and better overall. I hate uploading images to get a circle, triangle, and other basic shapes, and image masking is also a big feature that makes good UI that is missing from the current UI tools.
This is on our roadmap, currently planned for late this year.
Custom Fonts
This is not currently on the roadmap. There are a number of issues here and we can’t un-ship a feature once we ship it.
We can’t guarantee that these fonts will support characters from non-English languages. Additionally, having incomplete support for a script is significantly worse than not supporting that script at all, and most fonts I’ve seen have incomplete support for Latin script. This means that text in e.g. Spanish will have single letters like accented e fall back to a different font, producing a ransom note type effect.
Font licensing is significantly more commercialized than textures/sounds/etc. because creating fonts requires an immense amount of work from a skilled and highly specialized type of designer. Even “free” fonts often have license clauses that only allow them to be used for personal use, or in specific ways such as web typography or videos/illustrations, which wouldn’t apply to Roblox games.
They would have to be downloaded on the fly as the game loads, which could mean that the text flashes as fonts load in.
Text shadows
We’re thinking about this, but it’s not currently on the roadmap. Drop shadows and multi-pixel text outlines are both possible, but will involve more memory usage of the font atlas, which increases the risk of running out of space in it and causing glyphs to flicker.
Image masking
Currently on the roadmap.
Rotated ClipsDescendants
We’ll either implement masking (above) or allow increments of 90 degrees, in the future.
Vector images
Not currently planned, because SVG is an absolutely insane file format. It’s possible we could support some subset that image editors export, but there’s still issues like memory usage, rasterization time, etc. It’s all the same problems we have with text rendering, but with even less control over it engine side.
Custom fonts not being on the roadmap is extremely disappointing to hear. Does Roblox plan on greatly expanding the current font library at the very least? Choices are extremely limited right now and don’t mix together at all. Every game theme will only end up using a few of the fonts.
Any new fonts we add will have to be downloaded on-demand because of space usage concerns on mobile devices. This is something I’d like to do though. Not only to improve the selection, but to improve language support.
Right now, only one font we have supports CJK languages (Noto Sans CJK), so no matter which font you pick, Chinese/Japanese/Korean will always render in that one font. We only have one font that supports Arabic as well (Arial), and only two that support Cyrillic (Source Sans, Arial). We have no fonts that support Devanagari script (as used in Hindi), etc.
Most or all of the current fonts support Spanish and other languages that only use very basic accented Latin letters. However, several fonts have incomplete Latin coverage, and will render like ransom note text in languages like Vietnamese.
There are future improvements for the typesetter planned. Many of them are waiting on the new typesetter to ship for good. Some of them are already in production, but require the new typesetter to be enabled.
If we can get cleaner and thinner fonts, such as Source Sans Light, mixed in with the same kind of lower-case G that Arial has, that would be awesome. Also having support for having a dedicated bold/italic/underline button would be a great addition as well, instead of having a seperate font for bold and italics.
We really need progress bars as an asset that can be maneuvered with a value think of an int contrained value but it controls the amount of progress on a progress bar.