drwhut / tabletop-club

An open-source platform for playing tabletop games in a physics-based 3D environment for Windows, macOS, and Linux! Made with the Godot Engine.
https://tabletopclub.net
MIT License
1.26k stars 51 forks source link

Change the default font to include more characters. #212

Closed GrimPixel closed 1 year ago

GrimPixel commented 1 year ago

Is your feature request related to a problem? Please describe. The default font doesn't cover much of the Unicode including “ǔ”.

Describe the solution you'd like Add an option to customise font. Maybe change the default font as well.

drwhut commented 1 year ago

I think having an option to change the font would be biting more than we could chew - I've never seen a game have this option.

However, I agree more characters should be supported by the default font - if a language contains characters that are not of Latin origin, then the plan would be to add a new font that does support those characters (e.g. Cyrillic characters use a different font when playing the game in Russian), but the example you gave is "u" with an accent, which in my opinion should be supported by the default font.

GrimPixel commented 1 year ago

There is only one font that covers most of the Unicode: GNU Unifont. There will always be some characters left if any font is chosen. An example of a game that can use custom font is Minetest.

drwhut commented 1 year ago

We don't necessarily need to cover every Unicode character, only those that are used by the languages that are added to the game.

GrimPixel commented 1 year ago

Does this mean there will be no support for languages that the fonts of the game don't cover?

drwhut commented 1 year ago

No, fonts will be added to the game when necessary, so for example, if the game had been translated to Japanese, then a font supporting Japanese characters will be added so the game is playable in that language.

GrimPixel commented 1 year ago

Is it possible to use system font when a glyph is missing in the font?

drwhut commented 1 year ago

Only in Godot 4.0 it looks like (see godotengine/godot#62973) - although even with this, I'd be concerned about the licenses of system fonts. I would be more comfortable using only open-license fonts.

GrimPixel commented 1 year ago

Ha, you will not be distributing system fonts. No need to worry.

Fussmatte commented 1 year ago

I'm gonna second the notion to change the font to have more characters. As it is, the current font for Latin-script languages has pretty poor support for Latin Extended-A.

Any Latin-script languages that rely on this block, like Polish, Esperanto, Czech, Turkish, Welsh, etc are either only partially represented, or not represented at all, so will look pretty ugly with fallback characters in-game: image

What's truly odd about this, though, is while the game uses the font "Cabin", it seems to be a stripped-down version. The version on the font's official repo does feature these characters. In that case, it would hopefully be trivial to bring the game's version up to par with the official one, to better future-proof for additional translations, and provide a better experience for international players who may use the chat feature.