Glyphs, my Beloved

Glyphs and I have become good friends over the past few years. I started using it in spring 2020. Just a month before I tried to design a typeface in Illustrator and FontForge. And while that got me a font-file as a result, I really struggled creating letters with those two programs.

When I finally switched to Glyphs (because it was mandatory for the type design course I was visiting) it all became so much easier. Since then Glyphs became a steady companion. I used it at home—working on fonts while listening to the online-seminars—and while traveling with the often belated german public transport (More time to work on the designs!).

The program is pretty complex and I only know a fraction of what it can do. But, I learned a thing or two. Some of those things are pretty obscure and niche. But since figuring those out often took time and research, I thought I could share them here.

Glyphs Support

The first thing I want to mention is the excellent documentation and forum of glyphsapp.com. The documentation provides great tutorials to get you started and improve your design process. The devs are very active on the forum. I asked several pretty niche questions and they were always really quick to help. And they really know their stuff! And they are also really friendly. So, I recommend the forums if you ever run into an issue with the app.

Testing Fonts

While working on a typeface you often need to export new versions to test them in your design application of choice. If you just install the font the regular way you will run into a problem. Fonts with the same name will get cached by the system. This means, that font updates might not show up immediately but only after a while. This is of course not really helpful if you want to test your designs. On the Glyphs website they describe how to find the Adobe Fonts folder. This one is pretty handy when you’re using Adobe. Any font in this folder will work within (most) of the Adobe Suite. And since it is not directly installed, any update to the file will show up instantly in your designs. It works basically like the fonts folder in a packaged InDesign file.

Since I stopped using Adobe, I couldn’t rely on this approach anymore. I still wanted to see my font updates directly in my designs. There are several ways to achieve this though. I switched to the Affinity Suite for my designing layouts. They process font access differently. Not entirely sure how, but it doesn’t work with just pasting a folder named “Fonts” inside the project folder. I found two ways to work around this issue. First is a script by Nico Hagenburger. It renames the font automatically when exporting and deletes the old font-file. This mitigates the cache issue the native font administration has.

The other possibility is to use an app called fontBase. It is free software that temporary installs fonts by simply (de)activating them in the app. You can even set up folders for the app to track, to keep the fonts you’re using in a centralized place. What I like about both alternatives is, that your updated font files are available for the whole system. Meaning you can use your design for pages, numbers, mail, … you name it. I personally prefer fontBase, as I find it easier and faster for managing fonts. I’ve set up a font folder that I not only export my type designs to, but also drag any font into that I need for a project. I then just need to activate them in fontBase (as it updates what files are in the folder constantly). This way I don’t need to install fonts to use them and I got a nice tool at my hands to keep my font collection managable.

Export to Folder

For the most time I just export my font directly to the font folder mentioned before. But since I started this foundry, this approach reached its limits. When I upload a font here, it contains .otf, .ttf, and .woff2 files. And especially with a super family like “Fritzi” and its more than dozen weights this becomes very tedious. You see, whenever I make small changes I would need to export all the fonts into one folder. From there I need to move the three corresponding files to subfolders for each weight, and click “yes” for overwriting the existing files. Very tedious, indeed. It became such a burden, that I started dreading the need to update the files.

So, to the forums I went. And after some back and forth I was handed a piece of information/code that was able to solve this pain in one fell-swoop. In the font info pop-up just add “Export Folder” under the custom parameters. Now the customizable part, that is a bit tricky, as I wasn’t able to find a documentation on the variables. But to be fair: They are exactly the same names as the item description. Of course you can just add a fixed folder name. But we are here for something dynamic! For that put each folder variable inside three braces. First word is always lowercase. If there is a second word, add it without a space and make the first letter uppercase. In my case I wanted to export like this: Font Family › Weight Class/Axis. The code to achieve this looked like this: {{{familyName}}} {{{name}}}

From there you just select the parent folder on export and it creates all the fitting subfolders. If the subfolder already exists, it puts the matching weight in there. So, if you have already prepared folders (in my case with a EULA PDF) they will not get deleted. What is also great about this setup is, that you can just untick the checkbox during development to exported everything into one folder—just like you’re used to.

In case it doesn’t work you might have to switch on “Show cutting edge versions” under Glyphs › Settings › Updates. But I think it is already available in the latest stable version. If you’re interested in the whole conversation this is the forum thread.

Exporting Trial and Variable Fonts

The first few times I created a trial font I made a copy, deleted all glyphs I didn’t want to provide, clean up the font-feature tab (in part by hand, because of the now the missing glyphs), and exported everything. For “Fritzi” I did that for for four weights. It was no fun and it was not scalable. Because whenever I made updates to the font, I needed to repeat this process for the trial font. So off to the forum I went.

There I learned about a number of neath little features. Namely: “Remove Glyphs,” “Export Glyphs,” and “Remove Features.” You can find those under Exports › Custom Parameters. Then you need to specify a list of glyphs or features. I think every line gets counted as a glyph. Which means adding all glyphs in one line wont work. On the positive side this means you can type out specific glyph names like “a.ss01.” Numbers need to be written as their glyph name as well. Meaning “zero, one, two, ….” And don’t forget to export “space” if you use “Keep Glyphs.” I use those features in two ways: First for setting up additional instances for trial versions, second to test variable fonts. While developing variable fonts you can’t test them, if not all glyphs over every master align. If you would added “ẞ” to your Regular weight, but not yet to your Light one, you get an error message that prevents the variable font from being exported. For these cases I work with “Remove Glyphs”—to exclude the letters that cause issues. For the trial fonts I define the glyphs I want to include via “Export Glyphs.”

Kerned Fonts for Games

If you ever worked with Unity or Unreal Engine you might have noticed that—no matter the font—kerning is not working. This drove me nuts when I dipped my toes into game design. Once I was primed I started noticing it in nearly every game out there—no matter the budget. I found the idea of a digital environment that wouldn’t be able to display proper kerning simply unbelievable. I wanted to know how if there was a fix for the kerning problem. 

Indeed there are fixes that I found deeply hidden in forums. 

Both major game engines can’t read the full information present in a modern .ttf- nor an .otf-file. I don’t understand the specifics that lead to this information-loss during the creation of the font atlas. But, the short of it is that a kerning-table is needed. A kerning table is a long deprecated feature that defines kerning values for letter combinations. The problem with those is, that they have a limited amount of kerning pairs available. The other problem with those tables is to write them into a font file. Because, that is not happening automatically anymore.

Here the Glyphs App forums came in clutch again. I found an entry that described how to write the kerning table back into a file. All you need to do is this: In your Font Info (cmd + i) add a custom parameter called “Write Kern Table”. This it will not appear in the suggestions but will still work. Then just check the box and be sure to export it as a *.ttf file. This will make kerning available in Unreal and Unity’s TextMeshPro. Here is the link to the article I got this information from.

If you’re interested in getting ligatures to work, that is possible too. In Unreal you only need to select your text asset, scroll down to “Localization” and check “Text Shaping Method: Full Shaping.”

Unity’s TextMeshPro seems to have stepped up their game. With version 3.2.0-pre.4 the way the fonts are supported seems to have changed significantly. When creating a font atlas font features are retrieved as well. Finally! Not sure what the standard version of TMP is that comes packed with Unity nowadays. But in case the version is lower you can find more feature-rich versions via the package manager. It seems we already left version 3 and are now at TMP4. Seems I will see more games with kerned text in the future.

A personal recommendation if you haven’t decided on a game engine yet, try Godot. The font support there is just spectacular. You get everything from ligatures, stylistic sets, contextual alternatives, and even variable fonts. And the engine is so lightweight. You can even run it in your browser.