As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/

[Dwarf Fortress] Hate the ASCII graphics? Want to de-ugly your fort? Here's how!

Extreme UnctionExtreme Unction Registered User regular
edited September 2010 in Games and Technology
Howdy. I'm new to these forums, though not new to forums in general. I originally tried to post this Friday night. The board software flagged it as possible spam because I'm a new user and the post contains several links. Instead of putting the thread up on the forum, the board software moved the post to a "must be manually approved by a moderator" queue. After some further discussion with the moderators via PM, they have given me permission to post this as a separate, stand-alone thread.


It has come to my attention that SOME of you (and you know who you are) are intrigued by Dwarf Fortress and the stories it generates, but you are put off by the eye-fucking ASCII graphics. This post will show you how you can adjust the graphics and perhaps find something more suitable to your personal aesthetic.

HOWEVER...

Dwarf Fortress is what it is. And what it primarily is is a roguelike with an overactive pituitary gland. Roguelikes are games like Nethack, ADOM, and Angband. These games use ASCII graphics without a shred of remorse, and DF is no different. You can improve the look of DF, but even under the best of all possible circumstances, it's still going to look like an 8-bit Nintendo game.

The other thing about Roguelikes is that they have a certain "do-it-yourself" attitude, and again, DF is no different. There are no option screens with handy check boxes or radio buttons. Making DF conform more to your personal aesthetic will require editing some text files, mostly the /data/init/init.txt file.

If you are allergic to Notepad, or if the idea of reading the entire rest of this post makes you flinch, you may simply download this pre-configured version of Dwarf Fortress right here: http://www.infinitecities.com/DF40d16_de-uglied.zip. The upside is that you won't have to read the rest of this post, and you won't have to muck about with editing text files and downloading tilesets. The downside is that the linked version has been pre-configured by me, so you're stuck with my personal aesthetic choices if you don't want to read the rest of this post, or if you don't want to muck about editing text files and downloading tilesets. Which may or may not be a problem for you, depending on how closely your personal aesthetic matches my own.

The linked version is an older version. The newer version is v31.03. The linked version is v28.181.40d16, which is an "experimental" version of the last stable version. There are several reasons I am linking the older version:
  • The new version is still unstable. A lot of folks are having fun with it, but most of those folks are DF vets. The purpose of this thread is to get new players interested in the game who have thus far been put off by the ASCII graphics. Making a prettied-up version of the latest release runs a non-trivial risk of taking these new players and putting them in the path of game-crashing bugs, melting d0rfs, unkillable critters, and so forth.
  • The old version, by contrast, is stable. That's not to say that it doesn't have its quirks and bugs. But it's a well-traveled road. And it's still plenty fun.
  • The bulk of the tutorials -- including the best tutorials like CaptnDuck's tutorial videos on YouTube -- were created with the 40d version of the game. So it will be easier to ease yourself into DF with the older version.
  • The 40d16 "experimental" version, in particular, adds some stuff that has not yet been merged into the v31 release. Namely the ability to zoom in (not so useful) and zoom out (VERY useful) with the mousewheel. And the ability to resize the window with the mouse if you play in windowed mode. And it has OpenGL acceleration, so it runs a bit faster.

If you're determined to play v31, you can use this thread to guide your efforts in that regard, but there are some additional wrinkles to deal with. I will cover these wrinkles near the end of this post.

Now, having said all of that, on with the show.


The Many Faces of Dwarf Fortress

All of the screenshots below show the exact same thing.
d0rf01.png

d0rf02.png

d0rf03.png

d0rf04.png

d0rf05.png

d0rf06.png

d0rf07.png

d0rf08.png

So, as you can see, you have more choices than just the default eye-fucking ASCII graphics for your d0rfing pleasure.


The Very Basics

There are four components to the Dwarf Fortress graphical interface: Tilesets, Graphic Sets, Color Schemes, and Raw files.
  • Tilesets are what DF uses to represent everything in the game, including Critters.
  • Graphic Sets provide DF with an alternate way of representing Critters.
  • Color Schemes control the color of everything that isn't part of a Graphic Set.
  • Raw files are text files which (in this particular context) tell DF which tiles in a tileset to use when representing particular objects.
There is a text file called init.txt. It is located in the /data/init directory off of your main DF directory. One of the flags in the init.txt file is [GRAPHICS:] flag. If you want to use a Graphic Set for your critters, you will need to set that to [GRAPHICS:YES]. Otherwise, it should be [GRAPHICS:NO].

PROTIP - Any changes you make to the graphic elements of Dwarf Fortress won't show up until the next time you restart Dwarf Fortress. If you want to try out several different changes in a short period of time, the quickest way to do so (if you're running Windows) is to keep your Task Manager open to the Processes tab. That way you can kill the Dwarf Fortress process rather than waiting for it to save before you can exit.



Graphic Sets

The Dwarf Fortress graphics are divided into two parts: Critters (e.g. d0rfs, animals, elves, monsters, etc) and Everything Else (e.g. trees, rocks, walls, bags, water, stairs, etc etc).

The term "Graphic Set" is something of a misnomer in the DF context, since it only affects the appearance of the Critters in your game. If you are using a Graphic Set, some or all of the Critters will be represented by the Graphics Set, while Everything Else will be represented by the Tileset. In the absence of a Graphic Set, Tilesets will be used for both Critters and Everything Else.

Unlike Tilesets, which must have 256 tiles, Graphic Sets have no requirement on which critters they will replace. Some Graphic Sets cover just d0rfs, but not anything else. Some cover humanoids but not animals. Some cover animals but not humanoids. Some cover just d0rfs, but don't cover ALL the d0rfs. Some cover just animals but not ALL the animals. Etc etc and so on.

Because of this lack of standardization, manual installation of Graphic Sets is not straightforward, and will not be covered by this post.

However, most Graphic Set designers either provide an automatic installer for their Graphic Set, or they configure a working version of Dwarf Fortress to use their Graphic Set and then make that pre-configured version of Dwarf Fortress available for download (much like I did earlier in this post). Some of the more popular Graphic Sets, along with links to instructions or installers or full downloads for these sets, can be found here: http://df.magmawiki.com/index.php/40d:Graphics_set_repository.

If you plan on using Graphic Sets for your critters, I recommend doing this step first.


Tilesets

You have to have a Tileset to play Dwarf Fortress. If you don't, everything will be black, which presents many (probably insurmountable) challenges.

The default tileset looks (mostly) like this:

http://df.magmawiki.com/index.php/File:Haowan_Curses_1440x450.png

As you can see, it's just ASCII. ASCII letters, ASCII letters with diacritics, other ASCII symbols, and rudimentary ASCII shapes.

Some clever people, however, realized that you could edit these tilesets and replace some of the ASCII with sprites, e.g.:

http://df.magmawiki.com/index.php/File:Hermano.png

And from this realization comes the variety of pictures above.

Changing your tileset sounds complicated, but it's actually pretty easy once you do it a time or two.

Step 1: Go here: http://df.magmawiki.com/index.php/Tileset_repository

Step 2: Find a tileset you like. Right-click on that tileset and download it into your /data/art directory.

Step 3: The tileset you just downloaded will most likely be a .png file. If you are using any version of DF prior to 40d16, you will need to convert any .png files to a .bmp file.

Step 4a: If you aren't using a graphic set, then look in the init.txt file for the text below (or something very similar). Once you find it, change the font filename to whatever tileset you want to use, in windowed or fullscreen as appropriate for your preferences.
This lets you set the starting windowed/fullscreen setting. Can be YES, NO or PROMPT.

[WINDOWED:YES]

This is the size and font for windowed mode.

[WINDOWEDX:800]
[WINDOWEDY:600]
[FONT:curses_800x600.png]

Full screen info.

[FULLSCREENX:1024]
[FULLSCREENY:768]
[FULLFONT:curses_800x600.png]



Step 4b: If you are using a graphics set, look for the text below (or something very similar) in your init.txt. Again, depending on your windowed/full screen preferences, put the filename of the tileset you want to use into the appropriate font line.
[GRAPHICS:YES]
[GRAPHICS_WINDOWEDX:1920]
[GRAPHICS_WINDOWEDY:976]
[GRAPHICS_FONT:DarkondDigsDeeper_16x16.png]
[GRAPHICS_FULLSCREENX:1920]
[GRAPHICS_FULLSCREENY:1024]
[GRAPHICS_FULLFONT:Autonomous_Font.png]
[GRAPHICS_BLACK_SPACE:YES]


And voila, you have updated your DF tileset.

PROTIP - As you may have noticed, these lines are also where you can permanently change your resomolutions. In 40d16, you can change the size of your window in windowed mode with your mouse, but it won't remember the new size the next time you start the game. To affect a permanent change, muck about with these numbers.


Color Schemes

Color schemes control the color of everything in Dwarf Fortress EXCEPT the Graphic Sets. The color scheme controls how green your grass is, how blue your water is, what color your rocks and walls are, and things of that nature. Of the screenshots above, the 2nd screenshot and the 2nd-to-last screenshot were made with DF configured to use a variant color scheme, while the remaining screenshots were made using DF's default color scheme.

Changing your color scheme is pretty straightforward, and once again involves editing the /data/init/init.txt file. At the bottom of init.txt is the color information for the game. The default color scheme looks like this:
[BLACK_R:0]
[BLACK_G:0]
[BLACK_B:0]
[BLUE_R:0]
[BLUE_G:0]
[BLUE_B:128]
[GREEN_R:0]
[GREEN_G:128]
[GREEN_B:0]
[CYAN_R:0]
[CYAN_G:128]
[CYAN_B:128]
[RED_R:128]
[RED_G:0]
[RED_B:0]
[MAGENTA_R:128]
[MAGENTA_G:0]
[MAGENTA_B:128]
[BROWN_R:128]
[BROWN_G:128]
[BROWN_B:0]
[LGRAY_R:192]
[LGRAY_G:192]
[LGRAY_B:192]
[DGRAY_R:128]
[DGRAY_G:128]
[DGRAY_B:128]
[LBLUE_R:0]
[LBLUE_G:0]
[LBLUE_B:255]
[LGREEN_R:0]
[LGREEN_G:255]
[LGREEN_B:0]
[LCYAN_R:0]
[LCYAN_G:255]
[LCYAN_B:255]
[LRED_R:255]
[LRED_G:0]
[LRED_B:0]
[LMAGENTA_R:255]
[LMAGENTA_G:0]
[LMAGENTA_B:255]
[YELLOW_R:255]
[YELLOW_G:255]
[YELLOW_B:0]
[WHITE_R:255]
[WHITE_G:255]
[WHITE_B:255]

These are the RGB values for the 16 colors that, for lack of a better explanation, DF "understands". It's possible for DF to display more colors than that if the tileset has been designed to do so. But for the default tileset, these 16 colors is all you get. So if (for example) you don't like the default DF yellow, you can change the values for YELLOW_R, YELLOW_G, and YELLOW_B to give you a different yellow more to your liking.

As with many things on the Internet, some enterprising folks have put up their own color schemes on the web. Using these color schemes is as simple as replacing the color scheme text in your init.txt file with one of the color schemes from http://df.magmawiki.com/index.php/40d:Color_schemes. I like "Lee's Color Scheme" from that page, and that's the color scheme I used in the 2nd screenshot above.


Raw files

Raw files (specifically, the files in /raw/objects) contain a lot of data for how DF behaves. With the specific context of DF graphics, there are a few files that govern which tiles in a tileset are used to represent specific things.

You generally won't need to mess with raw files, unless you download a tileset that requires editing the raws to take full advantage of the tileset. Most of the tilesets which require edited raws will either provide you with a download that will install the appropriately edited raws for you, or will provide you with instructions on how to edit the appropriate files.

If you visit the Tileset repository linked above, you'll see the tilesets categorized into sets which require you to edit the raws, and tilesets which don't.

PROTIP - The de-uglied version of DF I linked above uses a tileset that requires edited raws. The original raw files are in the /raw/objects directory with the .BKP extension.


Additional Wrinkles With the New Version

All of the foregoing will work with the new version, with the following caveats/exceptions:

When you create a new world, the new DF will make copies of your /raw/objects file in the /save/region folder. So if you want to change the graphics for previously created worlds, you may have to edit the raw files for each region if the changes require edited raws (or if you use edited raws and want to change to a tileset that uses the default raws).

The OpenGL graphic upgrades present in 40d16 thru 40d19 are not yet present in the latest version. This means you can't zoom in/out with the mousewheel, you can't resize the window with the mouse in windowed mode, and you have to worry about "grid size". It also means you can't use .PNG tilesets, and have to use .BMP tilesets.


And There You Have It

Happy d0rfing!

Have you found yourself reading Dwarf Fortress threads and thinking to yourself "Gosh! I would love to play this game! But the default ASCII graphics make me want to claw my eyes out and pour quartic ammonia into the bloody, empty sockets!"?

Well today may be your lucky day...
Extreme Unction on

Posts

  • azith28azith28 Registered User regular
    edited April 2010
    "eye-fucking" is a little harsh to us old timers :)

    azith28 on
    Stercus, Stercus, Stercus, Morituri Sum
  • JerikTelorianJerikTelorian Registered User regular
    edited April 2010
    That's a pretty comprehensive post on the topic.

    As a note, Toady's latest updates say that he'll have merged the OpenGL support with the game in the next release or two, which (I can only hope) will be here in a few days.
    azith28 wrote: »
    "eye-fucking" is a little harsh to us old timers :)
    And it sounds pretty kinky. :winky:

    JerikTelorian on
    SteamID -- JerikTelorian
    XBL: LiquidSnake2061
    Shade wrote: »
    Anyone notice how some things (mattresses and the copy machines in Highrise) are totally impenetrable? A steel wall, yeah that makes sense, but bullets should obliterate copy machines.

    I don't know about you, but I always buy a bullet proof printer. Its a lot more expensive, but I think the advantages are apparent.
  • Extreme UnctionExtreme Unction Registered User regular
    edited April 2010
    It occurs to me, belatedly, to point out that I did not make any of the artwork that is included in the pre-configured version of Dwarf Fortress that I linked to in my first post.

    The Graphic Set is the popular Mike Mayday set.

    The Tileset is one that I stitched together from two different tilesets. The graphics are from Spreggo's Autonomous_Font tileset, while the letters come from Tims_16x16 tileset.

    Extreme Unction on
    Have you found yourself reading Dwarf Fortress threads and thinking to yourself "Gosh! I would love to play this game! But the default ASCII graphics make me want to claw my eyes out and pour quartic ammonia into the bloody, empty sockets!"?

    Well today may be your lucky day...
  • cjfostercjfoster Registered User new member
    edited September 2010
    Thanks for this comprehensive explanation. I love the ASCII characters actually, but this helped me easily switch to a larger tileset.

    cjfoster on
  • SoleiSolei Registered User new member
    The list of tilesets you used as examples... What are numbers 2 and 7 called?

    (For those to lazy to do anything but say I am lazy for asking - actually viewing screenshots on that list is about as time consuming as doing peer reviewed article searches... and don't even get you a good grade for all your hard work.)

  • Mojo_JojoMojo_Jojo We are only now beginning to understand the full power and ramifications of sexual intercourse Registered User regular
    edited February 2012
    There's already a Dwarf Fortress thread. It has how to use tilesets, for those inclined, right there in the OP. That said, it might get more attention over (although I see you did ask about making this as its own thread, so feel free to ignore me. I'm not trying to backseat mod or whatever)

    The problem is one of the user interface though. Tilesets are just putting makeup on a pig. And Today has sadly made it clear that he doesn't find UIs interesting, so he won't improve it.

    Mojo_Jojo on
    Homogeneous distribution of your varieties of amuse-gueule
Sign In or Register to comment.