Over ten years ago, in my bachelor’s thesis, I delved into font development using a then relatively new software called ›Glyphs‹. As I plan to engage more with typography again, I’ve decided to get reacquainted with Glyphs, now updated to version 3. Currently, I am designing a new typeface named ›Brokken‹. To force myself to master the workflows of Glyphs 3, I’ve opted to implement the font entirely within Glyphs without using any other production pipelines like drawing the vector shapes in Illustrator and use Glyphs to generate a font only.

Design and Aesthetics

Brokken leans towards brutalist-inspired broken scripts, with elements borrowed from Textura and Fraktur-Grotesque combinations (that got a real bad reputation in the 1930ies). Therefore Brokken is also an attempt in investigating the typographic qualities of the so called ›Schaftstiefelgrotesk‹ and how these aesthetics can be transformed to a more pleasing looking design. Since back then the fonts such as Element or Tannenberg were almost exclusively used in a bold/heavy configuration Brokken also aims to explore how a normal or light version of these fonts could look like. In order to divert from the Brutalistic and propagandist connotations the font features a lot of quirks and characteristics resembling the quick scribbles made with a thick felt-tip marker. Interestingly, the resulting style resonates with a design language reminiscent of fantasy novels and pen-and-paper role-playing games from the 1980s.

A version of the font in a very early pre-alpha state: Although the initial inspiration in designing ›Brokken‹ was heavily influenced by Brutalistic typography, the overall impression of the font is almost playful and has a nice cheesy fantasy charm to it.
Mockup of the intended use case for Brokken: Cheesy headlines and bold titles. (note: the mockup uses a work in progress version of the font)

Development

In developing this typeface, I set specific parameters as creative constraints:

The font eschews Bézier curves, instead indicating curves through sharp, “broken” edges.

Example of some glyph shapes: All ›round‹ corners are created by broken lines.

Each glyph consists of individual components that appear as though chiseled from rough stone—hence the name ›Brokken‹ (»Brocken« = German for chunk, bolder).

Detail of the construction: Each glyph consists of overlapping, ›chunky‹ shapes.

The typeface includes a complete character set to accommodate all European writing systems that can be represented with Western Latin scripts, boasting over 350 different characters to support languages like Icelandic, Polish, Croatian, and Slovenian.

Snippet of the font’s glyph palette

I personally hate it when fonts don’t offer any arrows (which leads to abominations like this one: ->) , therefore I included a set of pointing arrows that fit the design language of ›Brokken‹.

Some arrows that are part of the font

These arrows are automatically inserted once one of the following conditions appear: [minus] OR [hyphen] OR [endash] + [greater] substitutes to →; [smaller] + [minus] OR [hyphen] OR [endash] substitutes to ←, etc. So each software that is able to use ligatures and contextual substitutions (i.e. basically everything other than Powerpoint on Windows) replaces this letter combination: -> to this: → without any configuration.

Example of the automatic substitutions that are embedded in the font binary.

At the moment the substitutions code is tiny, but I plan on extending the features:

sub [hyphen minus endash emdash] greater by rightArrow;
sub less [hyphen minus endash emdash] by leftArrow;
sub less [hyphen minus endash emdash] greater by leftRightArrow;

With these substitutions I also implemented some solutions for otherwise problematic situations when using capital letters. Have a look at this example:

Between the capital V and the capital A is a huge gap.

To address this problem, I drew an alternative and more traditional version of the capital A that is embedded as a stylistic alternate in the font.

Stylistic alternates in the font: Two different letterforms for the capital A in one word.

Via context-sensitive this alternate replaces the standard glyph once a capital V is detected in front OR after the A.

On-the-fly substitution of letters once specific cases appear.

This approach can become quite sophisticated: As of now, four different versions of the capital A are embedded in the font: One default version, a version witch respects left overhangs of the following capital letter, version that respects overhangs of the preceding capital letters (such as W, V, Y) and a version for words, where the capital A is in between two problematic letters (like: WAVE).

Example of the font with deactivated substitutions.

The example above demonstrates the problem: There are visible gaps in between the letters.

Example of the font with full substitutions activated: Four different versions of the capital A are used, depending on the context (i.e. the neighboring letters).

These substitutions happen automatically as open type feature while typing.

Automatic substitution of the letters depending on the context.

Since the capital A features 10 different combinations of diacritics (e.g. A, Ä, À, Á, Â, etc.) there needs to be glyphs/letterforms for these stylistic alternates as well. Also the substitution code needs to respect these variants.

Adaptive substitutions also work with diacritics.

Italics

Since Brokken has some playful charm to it, I decided that I wanted to develop a ›true‹ italic version of it instead of just an oblique. Therefore it is necessary that every single letter needs to be adjusted and tweaked. The significant advantage of this is that a true italic version of the font also presents an opportunity to add even more unique characteristics and playful elements to the letters. However, to avoid too much chaos, I straightened the serifs that were previously only slanted on the baseline, creating a clear finish at the line edge. I’m so pleased with the result that I’m considering using this design for the Bold and (future) Regular versions of the font as well.

Italic prototype of ›Brokken‹: Custom designed letters for a, f, R, K, j, s and much more.
Comparison: Screenshot of ›Brokken Bold‹: This version looks almost too chaotic when compared to the italics: Maybe it could be necessary to align the letters more to the baseline.

The italics also feature certain stylistic alternates that can be used to replace some key letters when typesetting in order to enhance the visual separation of the bold from the italic version. Also the italic version features text figures (i.e. lowercase numbers) instead of the regular numbers (i.e. lining figures) from the bold version of ›Brokken‹.

Example of stylistic alternates when typestting with ›Brokken italic‹. Also some first drafts for the lowercase numbers that are part of the font.

The italic version is quite pronounced in its obliqueness: It is 12° slanted, which results in a quite obvious drift to the right. For a commercial font I would not take this risk, but since Brokken is a test ground, I want to gather some experience in designing an ›extreme‹ italic.

Redesigning of certain shapes

Although the overall ‘look and feel’ of the font was taking shape I am still not fully convinced that I found the perfect form for certain letters – especially the ‘e’ and ‘B’ were glyphs that need some rework. Until now I worked fully digital i.e. all shapes and forms were designed in Glyphs directly. However since I was unable to find a decent shape for the letter ‘e’ I decided to make some ‘analog’ drafts on a scetchpad.

One of many drawings in order to find ’the perfect e’.

I also took inspiration from the italics and redesigned every single glyph so that it features a nice grounding on the baseline (with the only exception being the underlines at letters such at g and y, some diacritics and of course the overshoot at certain ›round‹ letters).

Example of the new baseline of ›Brokken bold‹: all letters are now orientated on the baseline. Also the new shape of the ›e‹ works like a charm.

In order to visually distinguish between the bold and italic version of ›Brokken‹ I also designed two glyph shapes for the letter ›g‹: The two story version will be featured in the italic, while the three story version will be featured in the bold (and later the regular) version of the font.

Comparison of the bold and italic version of ›Brokken‹: The italics feature the ›old‹ B and e that were redesigned for the bold version. At the moment I like the expressiveness of the old-school ›B‹ for the italics, but that may change in the future.

Full family: Multiple Masters

Until now the overall ’weight‘ of Brokken can be considered quite heavy and bold. To expand the font into a ‘family’, at minimum a ‘Regular’ weight is required. Glyphs offers a highly efficient workflow for this process, where the thickest (bold) and thinnest (thin) weights are manually designed, while the intermediate weights are automatically generated through interpolation of the anchor points’ coordinates. To test this feature, I decided not to manually design the Regular weight – instead, I created an extremely thin version of Brokken, allowing the software to automatically generate the Regular, Light, and Semibold weights. This approach is known as ‘Multiple Masters‘ and can also be used for italic variants in the future.

However, to work with this technique, it’s essential to manually craft the extrema (i.e. the ’master‘ thin and the ’master‘ bold weight), ensuring the number and sequence of anchor points remain consistent between the two masters.

Screenshot of editing the two masters: The finished bold a (left), the manually constructed bold a in editing mode (middle) and the manually constructed thin a (right). The lines and colors indicate where Glyphs is able to interpolate to generate font weights that are in between these extrema.

In order to stick to this workflow it was necessary to draw a full glyph set of the light weight of Brokken manually – all automatic tools and scripts were not able to create any meaningful results.

Part of the glyph table for the light weight of Brokken. In total it was necessary to create light variants for 387 letters.
Comparison of the both masters of Brokken.

Since the shapes of the letters changed it was necessary to tweak spacing and kerning to create a pleasing overall look. Mac OSX behaves very poorly if multiple versions of the same font are installed, therefore I did not install Brokken globally but set up a small test environment within InDesign to get a first impression of the font and its particularities, characteristics and bugs.

Early version of Brokken light within InDesign. Working with real text is crucial to find problems and issues. With this text sample it became obvious the the font’s spacing is too tight.

Once this master was set up, Glyphs is able to automatically generate any weight that lays in between the thin and bold weight of Brokken. Therefore I exported a light, regular, and semibold variant with automatic hinting.

Test export of interpolated font weights: Brokken thin (master, handdrawn), Brokken light, Brokken regular, Brokken semibold, Brokken bold (master, handdrawn). Some minor flaws (have a look at the stem of the light version of ß) are still present.

Design Process

With my experiments I follow an iterative design approach – therefore a lot of characters are in a constant state of change. Although this process is cumbersome and leads to a lot of work thrown into the bin it is crucial to view each shape in context to find the ›right‹ design decisions.

Redesign process of the capital S.

Building Process

Since the font is intended to be submitted to Google Fonts in the future, the development process must adhere to specific guidelines. This means that the font should not be exported using the export function in Glyphs. Instead, a custom build process using fontmake is required. Additionally, the TTF version for Windows needs custom hinting and specific flags in the 'gasp' table. These adjustments cannot be made with Glyphs alone, so after building with fontmake, the corrections must be done using gftools fix-hinting. Following this procedure, the font must be checked with the command-line tool fontbakery.

To automate this build process, which runs in its own Python environment, I created a basic Bash script that sequentially performs all the necessary steps. For the regular (non-italic) variant of the Brokken font, completing all the steps, including generating the final report, takes about 100 seconds.

#!/bin/bash

# initialize python3 virtual environment
source myenv/bin/activate

# clean the export folder
echo "deleting all contents of fonts folder"
rm -rf $HOME/Documents/GitHub/brokken/fonts/*

# build the font using fontmake
echo "building font with fontmake"
cd $HOME/Documents/GitHub/brokken/fonts
fontmake -i -g ../sources/brokken.glyphs -a

# correct ttf version with gftools
echo "gftools"
cd $HOME/Documents/GitHub/brokken/fonts/autohinted/instance_ttf
for font in *.ttf
do
    gftools fix-hinting $font;
    if [ -f "$font.fix" ]; then mv "$font.fix" $font; fi
done

# check font with fontbakery
echo "checking font with fontbakery"
fontbakery check-googlefonts Brokken-Bold.ttf --full-lists

# cleanup
echo "moving autohinted contents to default instance_ttf folder"
mkdir -p $HOME/Documents/GitHub/brokken/fonts/instance_ttf
cp -r $HOME/Documents/GitHub/brokken/fonts/autohinted/instance_ttf/*.ttf $HOME/Documents/GitHub/brokken/fonts/instance_ttf
rm -rf $HOME/Documents/GitHub/brokken/fonts/autohinted

echo "renaming instance_ttf and instance_otf to ttf and otf"
mv $HOME/Documents/GitHub/brokken/fonts/instance_ttf $HOME/Documents/GitHub/brokken/fonts/ttf 
mv $HOME/Documents/GitHub/brokken/fonts/instance_otf $HOME/Documents/GitHub/brokken/fonts/otf 

# make a copy of the otf files in the document directory for testing in InDesign
echo "copying the contents of otf folder to the InDesign test folder"
cp -r $HOME/Documents/GitHub/brokken/fonts/otf/*.otf $HOME/Documents/GitHub/brokken/test/"brokken-test Ordner"/"Document fonts"

After countless adjustments, Brokken now successfully passes the fontbakery test.

Status Quo & Download

I am developing ›Brokken‹ as an open-source (and open-end) project without any warranty. Both the source code and the finished font are freely available. All data can be accessed on GitHub. If you are interested in a usable binary font, have a look at the releases on the GitHub page here.

assignment_late

Important

Certain Open Type features cannot be used in MS Word: If you need these features (e.g. automatic glyph replacement, automatic arrow replacement, …) use a proper DTP program (i.e. InDesign, Quark Xpress, Scribus, LaTeX) or Libre Office instead.
Window users in general: Please use the ttf not the otf file, otherwise kerning will not work properly.

Appendix

Useful tools