- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
Difference between revisions of "User:Shaja"
(TerminusAliased 20x32 character set development) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | == More character tiles == | ||
+ | |||
+ | Got a 1920x1200 monitor. | ||
+ | |||
+ | Made a 24x32 tileset. | ||
+ | |||
+ | [[Image:Terminus24.png]] | ||
+ | |||
+ | [[Image:Shaja_10-11-30.png|thumbnail|left|Map screenshot]] | ||
+ | |||
+ | [[Image:Shaja_10-13-09.png|thumbnail|left|Text screenshot]] | ||
+ | |||
+ | <br clear="all" /> | ||
+ | |||
+ | [[User:Shaja|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: | ||
+ | |||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | [[User:Shaja|Shaja]] 00:52, 3 April 2008 (EDT) | ||
+ | |||
+ | |||
+ | == Character tiles == | ||
+ | |||
Plans changed, of course. | Plans changed, of course. | ||
Latest revision as of 02:41, 20 May 2008
More character tiles[edit]
Got a 1920x1200 monitor.
Made a 24x32 tileset.
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: 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[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 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).