For compatibility with quake3 / ioquake3 engines it would probably be best to just create a replace 2d/gfx/bigchars.tga using a tools such as Quake 3 Arena Font Builder (which seems to have an expired HTTPS certificate at the moment).
Quake III: Team Arena uses pre-rendered TrueType fonts (
fonts/*.dat for font information and
fonts/*.tga for image data) to avoid shipping the actually TTF file as id Software was not permitted to by the font copyright holder.
make USE_FREETYPE=1 allows converting TrueType font to Team Arena font by setting
r_saveFontData to 1 and loading font using
trap_R_RegisterFont("fonts/myfont.ttf", pointSize, &font);
Using Team Arena fonts / TrueType in Quake 3 (or actually everywhere in Team Arena) requires extensive code changes. For best results you would need to change both the engine (to render TrueType to screen resolution at run-time) and mod code to use
fontInfo_t. (Note: It’s limited to the first 256 Unicode code points / ISO 8859-1.)
I’ve implemented TrueType fonts everywhere in Spearmint Quake 3 which replaces 2d/gfx/bigchars.tga with a TrueType by default. The mod code (mint-arena) is licensed as GPLv3+ with ZeniMax’s additional terms from RTCW/ET.