Ship a font that covers the glyphs the UI uses #27

Open
opened 2026-09-13 17:06:07 +00:00 by icub3d · 0 comments
Owner

Every non-ASCII character in the UI renders as a tofu box.

assets/fonts/ contains only a .gitkeep, so the UI is drawn with Bevy's built-in
fallback font, whose glyph coverage is a small ASCII-ish subset. The main menu's tagline
reads 2147 ▯ one city, three shareholders, and the roster shows Span ▯,
Sana Broul▯, and similar throughout.

The characters actually used in the tree today:

Glyph Codepoint Seen in
— U+2014 main menu tagline, roster entries
… U+2026 UI strings
é U+00E9 roster names
§ U+00A7 UI strings
² U+00B2 UI strings

This is not an Android problem — the same font is used on desktop, and the boxes will be
there too. The tablet simply made it visible.

Notes

  • Pick a licensed font that covers Latin-1 plus general punctuation, and one that suits
    the monospaced look the UI currently has by accident of the fallback.
  • The licence file ships with it.
  • src/theme/ owns the type scale and is where the handle belongs, so no screen loads a
    font path directly.

Done when

Every string the game currently renders does so without a tofu box, on both platforms.

Every non-ASCII character in the UI renders as a tofu box. `assets/fonts/` contains only a `.gitkeep`, so the UI is drawn with Bevy's built-in fallback font, whose glyph coverage is a small ASCII-ish subset. The main menu's tagline reads `2147 ▯ one city, three shareholders`, and the roster shows `Span ▯`, `Sana Broul▯`, and similar throughout. The characters actually used in the tree today: | Glyph | Codepoint | Seen in | | --- | --- | --- | | `—` | U+2014 | main menu tagline, roster entries | | `…` | U+2026 | UI strings | | `é` | U+00E9 | roster names | | `§` | U+00A7 | UI strings | | `²` | U+00B2 | UI strings | This is not an Android problem — the same font is used on desktop, and the boxes will be there too. The tablet simply made it visible. ## Notes - Pick a licensed font that covers Latin-1 plus general punctuation, and one that suits the monospaced look the UI currently has by accident of the fallback. - The licence file ships with it. - `src/theme/` owns the type scale and is where the handle belongs, so no screen loads a font path directly. ## Done when Every string the game currently renders does so without a tofu box, on both platforms.
Sign in to join this conversation.
No description provided.