- Dec 4, 2022
- 156
- 168
tl;dr - How are you handling Emojis? Which Emoji font(s) are you using in your Godot project?
I've been trying out and playing way too many games in Windows on my dual boot rig -- including yours.
So I just upgraded my rig to dual boot Win11 & Linux Mint 22.1 'Xia' so I get cracking on some AI stuff without the windows bloat.
I suspect this is WINE issue, but your Godot game lacks emojis under WINE. The WINE install is pretty basic.
I'm used to bumping into hangups like this so I don't expect a solution as most Windows devs don't use Linux not fitting their use-case. Many Godot devs do not perform Linux exports. No need to start if Linux isn't your thing.
- Thing is the Godot project NTR-Phone-0.22.17-Windows.exe runs just fine and has emojis under WINE (it may have them as PNGs).
- While the Godot projects My_NTR_Girlfriend_v0.5.0.exe and NtrGramV0.6.0_windows.exe have the same problem -- No emojis under Linux WINE.
But I thought I'd share my diagnostics in case you'd like to sort out what could be a game breaking feature.
This could easily be tested in a Virtual Machine (on Windows) running Linux Mint 22.1 XFCE (or debian). Godot games are light weight compared to some Unity & Unreal games. Games like these can use even emulated built-in graphic support.
When texting, I got the emoji UTF-16 symbols not the emoji.Code:# install WINE stuff -- one time only sudo apt install winetricks # pulls in WINE and dependencies # my prefix for many of my latest games. mkdir -p ~/.wineprefixes/unreal5 WINEPREFIX=~/.wineprefixes/unreal5 winetricks -q corefonts dxvk vcrun2022 vkd3d # had to repeat it just for vkd3d only due to archive.org burping (404) # play game - the command to re-use every time WINEPREFIX=~/.wineprefixes/unreal5 wine My_NTR_Girlfriend_v0.5.0.exe # OR # play game - the command to re-use every time WINEPREFIX=~/.wineprefixes/unreal5 wine NtrGramV0.6.0_windows.exe
Adding more Fonts via WineTricks, manually copying Google's Noto Color Emoji, then finally my Win11's entire Fonts directory into my into `~/.wineprefixes/unreal5/drive_c/windows/Fonts/` and still could not make Emoji's in either game appear.
Questions:
- How are you handling Emojis?
- If a font, which Emoji font(s) are you using in your Godot project?
- Could it be an issue finding the Font resource? The game(s) have no problem with chat pictures embedding.
I have done more testing. The missing emoji effect surfaces on Linux using:
Having the lead that "twemoji" may be used, I've found the following:
- Classic WINE (v9.0)usage
- Bottles (via Flatpak) with default WINE
- Heroic Launcher (via Flatpak) using Latest Proton - Hotfix
- Lutris (via Flatpak) using WINE (v9.0) and Latest Proton - Hotfix
There's other google search showing challenges with using emojis in various ways within Godot. I don't think it specific to Godot either. There's much discussion regarding using Google's Noto emoji and Microsoft's Segoe UI emoji -- displaying, if even installed on a target system, etc.
- All Godot assets for emojis is literally provided by one developer project: Rakugo Team (
You must be registered to see the links) submitted by Jebedaia (You must be registered to see the links). They've created a Ren'Py like VN Dialogue libraries (including Emoji)- That developer has deprecated their practically all their previous Emoji (based on twemoji - Twitter Emoji) and VN Dialogue assets
- Per their
You must be registered to see the links, they bring up the point having to leverage Emoji as images, not fonts (which appears to be why they deprecated the others). Plus the challenges of exports to other platforms than genuine Windows (like Web, etc.) having a lack of fonts.
Looking at vendor github repos (google, microsoft) where they post their emoji font libraries. their "TTF" fonts are distilled from SVG and PNGs. The Rakugo Team solves that problem by using Google's open source font NOTO graphic assets, NOT a True Type Font.
It appears there's no Universal way built into Godot to handle Emojis so they appear properly regardless of export (i.e. Universally). It may be those Godot game developers usingYou must be registered to see the links(deprecated) may need to test if Godot-Icons-Fonts (You must be registered to see the links,You must be registered to see the links) will work them and refactor - a requirement of the trade.
NOTE: If a Godot game developer ever plans on releasing their game on Steam, they will want to make sure there is no Emoji breakage on a Steam deck. If broken, it will harm sales and the developer will be railed on by their player base. And that's not good for anyone's mental health.
This was as good deep dive for me to learn about the emoji challenge as I'm starting to return to development practice via Godot. Especially since I planned on leaning on emoji heavily for icons, placeholders, & "cheap" graphic elements vs. custom assets.
To get a better understanding of what's going on with the Emoji's not appearing for two of three Godot game above, I've used a a Godot Project recovery tool to crack open the EXEs.
The difference where NTR-Phone-0.22.17-Windows.exe runs just fine and has emojis under WINE while My_NTR_Girlfriend_v0.5.0.exe and NtrGramV0.6.0_windows.exe do not is because
- NTR-Phone-0.22.17-Windows.exe has Font assets of NotoSans (303KB), NotoSansSC (7.5KB), and TwitterColorEmoji-SVGinOT (7.6MB) imported and leveraged in the project. This ensures it is more portable and consistent regardless of target.
- Whereas My_NTR_Girlfriend_v0.5.0.exe and NtrGramV0.6.0_windows.exe rely on the OS to provide the fonts.
Considering three fonts total equal 8MB (the emoji's being the largest), it's a small amount to ensure consistency and play-ability. If you don't, your game will appears as an untested or broken game players will be frustrated with (possibly asking for a refund) besides wasting the indie dev's precious time fielding support, bug tracing, support correspondence, etc.