More character tiles
Got a 1920x1200 monitor.
Made a 24x32 tileset.
Shaja 22:35, 19 May 2008 (EDT)
 Object tiles
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: print sys.stdout.write(line) if line.find('[NAME:') != -1: sys.stdout.write(line) if line.find('[TILE:') != -1: sys.stdout.write(line) if line.find('[SIZE:') != -1: sys.stdout.write(line) if line.find('[AQUATIC]') != -1: sys.stdout.write(line) print
Shaja 00:52, 3 April 2008 (EDT)
 Character tiles
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 23:15, 27 March 2008 (EDT)
9 March 2008
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).