Font Conversion & Repair
As of 2024, there are four tools for TDM font conversion and repair:
- ExportFontToDoom3
- Q3Font
- Refont - New in 2024
- Font Patcher
Fidcal's Original Take
These are some rough notes [from 2009] about converting ttf fonts to doom3 and repairing if necessary.
My understanding is that ExportFontToDoom3 is more suitable than Q3Font for converting. It is what I used to convert a lot of TTF fonts. See notes with that tool as to how use it. But be aware of copyright issues if converting TTF fonts.
With ExportFontToDoom3 there were quite a few spacing errors. Q3Font I found a bit puzzling so never did any conversions (it may be better for all I know.) BUT it can convert the dat files to readables for editing and back again so I used Q3Font to fix the errors.
Geep adds: Check out newer Font Patcher and Refont to fix errors too.
Doom fonts have multiple dat files for each size. However, only the following are loaded by the code:
- fontImage_12.dat
- fontImage_24.dat
- fontImage_48.dat
The size 24 is used mostly by readables, while the menu uses 48 (the big headlines and the main menu) and 24 (settings and other headlines). This means it is not necessary to create other sizes, as these will be ignored, anyway.
Geep adds: Size 48 is also used for titles of some readables, like those Stone font. The subtitle system as of TDM 2.12 uses Stone size 24, with (at render time) horizontal compression.
For More
- ExportFontToDoom3 is, as Fidcal says, the recommended method, if you want to start a Doom3/TDM font project by generating from a TrueType font.
- Q3Font is the traditional Windows utility program to fix Doom3/TDM fonts. Fidcal provides a simple example of using it. (Some of this info used to be here in Font Conversion & Repair; some is an update.)
- Refont is another command-line program, new in 2024, that handles some of Q3font's functionality, but is easier to use. This article includes a detailed comparison.
- Font Patcher details the font_patcher.pl utility, which is a preferred method (over Q3font) to fix and change fonts. Includes links to examples.
- I18N (Internationalization) introduces consideration for non-English languages.
- I18N - Charset details the TDM-specific character mapping for non-English languages. For instance, if you convert a Russian font, you need to move the character 0xFF to 0xB6, otherwise it will not show in the GUI or readables.