Free fonts for games, and the one rule that catches people

Where to get fonts you can embed, what the Open Font License actually asks, and why fonts are the assets most likely to arrive with no record at all.

All posts

A font pack in Tessera, shown as a specimen with its license on record.

Fonts are the assets most likely to end up in a project with no idea where they came from, because they usually arrive by being dragged out of a design tool rather than downloaded as a pack.

#Where to get them

Google Fonts is the default and a good one. Almost everything there is under the SIL Open Font License, with a few under Apache 2.0. Both are fine for a game.

The League of Moveable Type and similar independent foundries publish under the OFL too, often with more character than the Google catalog.

Font Squirrel aggregates free fonts under varying terms, so it is a per-font check rather than a blanket permission.

Commercial foundries sell licenses that are usually per-use rather than per-file, and a desktop license does not automatically cover embedding in software. That is the distinction that costs money if you get it wrong.

#What the Open Font License asks

Three things, and only the third catches anybody:

  1. You may embed it in a document or a game. This is explicitly allowed and is what you want.
  2. You may modify it, including subsetting it to shrink your build.
  3. You may not sell the font by itself, and if the license reserves the font name, a modified version has to be renamed.

That last clause is the trap, and it is easy to trip over accidentally. Subsetting a font to reduce file size counts as modifying it. If you then ship the result still called by its reserved name, you are technically outside the license. Rename it and you are fine.

Credit is generally not required in your game for OFL fonts, though including the license text somewhere in your third-party notices is good practice and costs nothing.

#Why fonts lose their paperwork

Because of how they arrive. A font is picked in a design tool, exported with a mockup, and copied into the project by whoever is implementing the UI. Nobody downloads a "font pack" with a readme in it. There is just a .ttf in a folder, and six months later the only way to find out what it is licensed under is to recognize it by eye.

Fonts shown as specimens rather than as file names
Fonts in the library, each shown as what it looks like rather than as a name and a size.

Tessera treats a font like any other pack: it previews it as a specimen so you can see what it actually is, and it records the license and the source once, so the .ttf in your build is still traceable to the day it arrived.

Install Tessera, or read licenses.

Something to add, or something wrong? Say so in discussions.