• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Tutorial TECHNICAL ARTICLE - Understanding Akella Game Fonts and How to Improve In-Game Quality

TheBlackKnight

Corsaire Flibustier
Storm Modder
Pirate Legend
All,

As a prepare to release a HD fonts package, I thought would write a short technical article for players to improve their game quality regarding text usage and apply this knowledge to improving the GUI and interfaces.
Old Storm Modders make pick up some tips as well.

BACKGROUND:

Unlike modern games that use TTF (true type fonts), all Akella pirate games (POTC, AOP:CT, CoAS, POTEHO) use fonts which are imbedded in texture files, generally with ludicrously low resolution basic values such as 512X128.
These files harken from the original days of "Sea Dogs" back in 1999/2000.

This can be problematic with playing Akella's games at very high modern resolutions, because scaling is not increased proportionally, and text quality suffers due to increasing blurriness and gets VERY small.

Most in English version game fonts (but not all) are controlled by FOUR texture files, namely:

1) interface button.tga.tx (which is the font used for titles/buttons and has a sweeping handwriting style script)
2) interface normal.tga.tx (which is used for general GUI interface and dialogs)
3) interface bold numbers.tga.tx (which is used for personal/ship skills, and crew)
4) menu font rus.tga.tx (which is used for the "PIRATES" skills)

In game texts are then scaled from these three files to the fonts_rus.ini file for modded versions of games(not fonts.ini) in the resource/ini folder and several other files in game which I will describe.
Positioning of individual letters and shadowing is coded into these files as well.

In order to increase game quality, it is not sufficient to simply raise the resolution of the texture file to say 2048X512 from 512X128, as without direct texture replacement, the quality will remain unchanged.
The only way to properly increase quality is to reconstruct the font files using TTF at a much higher resolution (preferably at an overkill level higher than your final texture file size and then reduce the file down) and then add necessary transparencies.

Once this is completed, you can begin to the process of increasing scale to improve text quality and size in game.

HOW TO MAKE IMPROVEMENTS:

In the fonts_rus.ini the key line you are looking for is:

pcscale = #.#
You don't need to change this value very much (say +0.05-0.15) and get really good results
Do not adjust size of texture font files, font texture file positioning or encoded letter positioning, as the entire interface is scaled from a baseline 800X600 resolution, and you WILL completely mess up your game if you do not know what you are doing.

NOTE: It is possible to overhaul the entire GUI to make it completely HD modern, but it requires modifying over 4 dozen files, and is not an acceptable option IMHO, because one wrong mistake in several files will result in complete game corruption.
The other problem is scaling, because whatever you choose becomes the default, and then you stuck if you need to change game resolutions again.
This then will not work properly per say if someone is using LESS than an HD resolution (<1920X1080)

Here is the explanation for the most IMPORTANT fonts_rus.ini lines and what they do:

dialog2 - controls dialog text at top of dialog screen box
dialog3 - controls dialog text size in talk box
Bold_Numbers - Controls all large blue-white text on interace screen
Interface_Title - Controls top title text on interface screen
Interface_Normal - Controls all basic text on interface screen
Interface_Button - Controls text size inside clickable buttons
Dialog_Quest - Controls Text in Quest Logbook

Next, you need to improve texts in the world map, land interface, battle interface, and spyglass which are found in the separate files in program/interface folder namely:

BattleInterface.c
ispyglass.c
LandInterface.c
WmInterface.c

For battle interface, land interface, and world map you are looking for text use lines like this:

BattleInterface.wm_sign.fontscale = 1.1 (this example controls sailors # in the ship icon)

For spyglasses you are looking text use lines like this (as these are scaled resolution multipliers):
objISpyGlass.text.shiptype.scale = fBaseScale * 1.2 (this example is the ship type in the spyglass)

By adjusting these values just a little higher or smaller (once again by very small values +0.05-0.15), you can dramatically improve your quality based on your resolution that you play, particularly 1680X1050 and above, make text look good at widescreen resolutions as well as make the text easily readable.

No new game or reinit is required to perform these changes.

Look forward to the HD fonts package!
 
Last edited:
Back
Top