Hiero is a bitmap font packing tool. It saves in the Angel Code font format, which can be used by BitmapFont in libGDX applications.

Running Hiero
You can download the .jar file here. Make it executable (if you are on a UNIX-like operating system) and then run it.
As Hiero still runs on our LWJGL 2 backend, it may have trouble with newer Java versions. If you want to be on the safe side, use Adoptium’s OpenJDK 8.
If you are using Gradle and you added “Tools” extension to your project, you can easily run Hiero from your IDE, otherwise look at Downloading Hiero.
Example for IntelliJ IDEA: Go to the Hiero class, right click and select Run Hiero.main(). On the Run configurations popup that will appear, select the Desktop module, and click Run.
Rasterization
Hiero has multiple options for rasterizing fonts:
- FreeType is typically the highest quality. It makes good use of hinting, which means that small fonts are rendered nicely. The
gammasetting controls how much antialiasing is done. Themonosetting disables all font smooth. No other effects are supported, though glyphs can be rendered with padding and effects applied via Photoshop or other tools. Hiero uses gdx-freetype, so generated bitmap fonts will exactly match those rendered on the fly by gdx-freetype. - Java’s font rendering provides the vector outline for the glyphs which allows various effects to be applied, such as a drop shadow, outline, etc. Output is often blurry at small sizes, but larger sizes are good quality.
- OS native rendering is the most simplistic. It does not provide tightly fitting bounds, so glyphs take up more atlas space.
Hiero will output kerning information for fonts with kerning entries.
Command line arguments
Hiero supports 4 command line arguments:
--input <file>or-i <file>loads the specified.hieroconfiguration file when launching.--output <file>or-o <file>sets the output.fntfile to the specified value.--batchor-bmakes hiero automatically generate it’s output and close to be used without human intervention.--scale <scale>or-s <scale>scales the font by the specified amount.
Alternatives
BitmapFontWriter
BitmapFontWriter is a class in gdx-tools which can write BMFont files from a BitmapFontData instance. This allows a font to be generated using FreeTypeFontGenerator, then written to a font file and PNG files. BitmapFontWriter has the benefit that it can be more easily run from scripts and can make use of FreeTypeFontGenerator’s shadows and borders. Otherwise, the output is very similar to Hiero, though Hiero avoids writing a glyph image multiple times if different character codes render the same glyph.
Usage can look like this:
new LwjglApplication(new ApplicationAdapter() {
public void create () {
FontInfo info = new FontInfo();
info.padding = new Padding(1, 1, 1, 1);
FreeTypeFontParameter param = new FreeTypeFontParameter();
param.size = 13;
param.gamma = 2f;
param.shadowOffsetY = 1;
param.renderCount = 3;
param.shadowColor = new Color(0, 0, 0, 0.45f);
param.characters = Hiero.EXTENDED_CHARS;
param.packer = new PixmapPacker(512, 512, Format.RGBA8888, 2, false, new SkylineStrategy());
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.absolute("some-font.ttf"));
FreeTypeBitmapFontData data = generator.generateData(param);
BitmapFontWriter.writeFont(data, new String[] {"font.png"},
Gdx.files.absolute("font.fnt"), info, 512, 512);
BitmapFontWriter.writePixmaps(param.packer.getPages(), Gdx.files.absolute("imageDir"), name);
System.exit(0);
}
});
Skin Composer
Skin Composer includes a BitmapFont editor and Image font generator.
BMFont
The BMFont tool uses FreeType. It has additional supersampling features for smoother glyphs. BMFont does not support effects like drop-shadows or outlines, but glyphs can be output with padding and effects applied with Paint.NET, Photoshop, etc.
BMFont is Windows only but can be run using Wine. There are reports that it hangs if the space character is exported. The space character can be added manually, eg:
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
Change the xadvance as needed, this is the number of pixels for a space character.
bmGlyph
The bmGlyph tool is for macOS only. It supports embedding custom images into a font.
fontwriter
fontwriter is a command line tool to generate fonts for use with the TextraTypist or BitmapFontBridge libraries. It supports creation of MSDF fonts and can achieve more accurate font metrics than Hiero.