From Dwarf Fortress Wiki
Jump to navigation Jump to search

More character tiles[edit]

Got a 1920x1200 monitor.

Made a 24x32 tileset.


Map screenshot
Text screenshot

Shaja 22:35, 19 May 2008 (EDT)

Object tiles[edit]

I did a few experiments last week and decided it was worthwhile to create an object tileset for myself with creature names attached to the original character tile.

For example, a hippo would be an 'H' tile with the word 'hippo' in a very tiny font above it - a small thing, but I like the end result.

There's quite a lot of creatures, though... (Actually, I just counted and came up with 237, not all of which are displayable with object tiles - somewhat manageable since I won't be doing non-default states)

Today, I decided to work on the idea a bit and see if I could come up with a quicker way to determine which tiles I need than scanning through the text files by hand.

So I looked at the format and thought, "I need a parser."

Having used pyparsing successfully for a small project I did last year (implementing a simple custom script format for a game engine), I set about getting the rules together.

After four hours of fiddling with the fiddly bits, I had a parser capable of scanning through the creature_.txt files and... not catching half of the creatures. And I hadn't even gotten to the point of hooking up the parser output to generate creature objects that I would then be able to iterate through... and... print... Hmm.

I redefined the problem, tossed the parser, and spend two minutes putting another file scanner together. Or maybe it was one minute:

import sys
from glob import glob

creature_files = glob('creature_*.txt')

for creature_file in creature_files:
    print creature_file
    for line in file(creature_file).readlines():
        if line.find('[CREATURE:') != -1:
        if line.find('[NAME:') != -1:
        if line.find('[TILE:') != -1:
        if line.find('[SIZE:') != -1:
        if line.find('[AQUATIC]') != -1:

Shaja 00:52, 3 April 2008 (EDT)

Character tiles[edit]

Plans changed, of course.

Regular OS or Photoshop-rendered grey-scale antialiasing just does not look good in Dwarf Fortress when the character cell background is inverted, since the characters have only a one-bit alpha mask.

I love Consolas, but it is totally not designed for non-Cleartype rendering.

The Microsoft Glass Gauge font from Flight Simulator was ok, but was composed of too many 45 degree angles for me to really like.

After a lengthy period of casting about for a fixed-pitch font that worked at the relatively high point size I wanted, I finally found Dimitar Zhekov's Terminus font, which looked almost right to me.

I also appropriated some characters faces that I think make nice not-quite-standard dwarves from The Boukagne's Font, by PRS.

So, after a lot of fiddling around in Photoshop on my PC, and Pixen on my Mac, I realized that neither PS nor Pixen worked very well for what I was doing. Good thing I found GraphicsGale, which is nearly perfect.

In the end, I hand-edited every alpha character used from Terminus, adding some slight antialiasing shading towards the upper end of the brightness scale - looks much better than no antialiasing with dark cell backgrounds, but still looks pretty good with inverted colors like the Dwarf Fortress frame title.

I also redid walls and some of the symbol characters, but there are still quite a few left from the base I used, 'Curses_24pt_cleartype_ThomModifications' (which was itself based on a set by Winterwing, which I've never seen).

And here is the result:

Shaja 10-25-48.png
Shaja 10-27-09.png

TerminusAliased handedit gal.png

--Shaja 23:15, 27 March 2008 (EDT)

9 March 2008

Hello, world.

I'm working on some 20x32 character sets - an antialiased set using Consolas, and an aliased set using Microsoft's Glass Gauge font, slightly tweaked.

Why 20x32? Because I use a 1600x1200 monitor, and none of the current fonts have quite what I like (although I am of course using other people's characters in many spots).