Comments on Dwarf Fortress (interface)I've played enough Dwarf Fortress to have some comments to share. The rest of this post, although written as though it were fact for the sake of brevity, is pure personal opinion. Much - probably most - has already been mentioned by others: please consider any repetition here a reinforcement of their arguments.
Interface
Interface is the weakest part of this game.
ToadyOne is clearly right not to focus too much on interface at this stage of development, but there are some interface misfeatures that actually trip up the gameplay, making it more difficult to learn what works, and so progress in design. For the game designer, interface may seem merely decoration, but for the player, it is what serves up the game experience. Additional features (such as vertical building) will add depth, richness, and complexity. The existing interface is poorly suited to handle any additional load. Players need more effective tools to handle more interesting tasks.
Speaking generally, this game is more at war with its own interface than almost any other I've played; it is /possible/ to do extraordinary things in Toady's uniquely brilliant engine. What is currently /practicable/ for us to do is needlessly truncated. An unfortunate truth about too many games, including this one, is that they are most fun on a small scale and when starting out; mere micromanagement kills more fortresses then the elephants.
Among the problems I personally had trouble with were:
Inconsistant keybindings. I trip up over and over again when trying to navigate the menus; no sooner than my fingers get the idea that 9328 navigates than they must re-learn /*-+. No sooner than I get used to the 'd'esignate interface ('d' to mine, return to select a corner, navigate, and return again to select a box) then I must re-learn how to plot a field or bridge (use letters). Some interfaces actually combine these. It almost seems the game is determined to experiment with every single method of using the keyboard to control stuff; this drives me to distraction!
Excessive number of commands. It is unnessary to require the player to use 'q', 't', 'v', and 'k'; these should be reduced to at most three: one to look at a grid, one to look at/manipulate stuff, and one to examine creatures. Better might be using shift and control (look, examine, manipulate). Certainly better would be single left click to select grid, left click again to get details, or right click to manipulate. And the other hand stays on the keyboard to navigate menus.
Excessive depth of menus. It is unnecessary to require five keystrokes to start editing a dwarf's profession; an example of an alternative method within the limited space is to list the major commands, and then lump everything else into a '*' option. So viewing a dwarf's opinions would require 'v', then '*', then "return". Better would be right-click, pick from list.
Utterly inadequate information display on dwarves (the subject of several player add-on programs such as Dwarven Taskmaster that I find more and more necessary after the first year). Sorting for skills, for unhappiness, for lack of rooms, for lack of current employment, for married status - these are just some of what we need to fully wallow in the coolness of this underground version of The Sims.
Disorganized information display. For example, you cannot learn what your soldiers are up without delving into the 'v' interface, the 'm' interface, and the 'x' interface. Even if you run through all these, the game won't tell you if a soldier knows where his barracks are, where his bed is, whether he recognizes a place to shoot or spar, or whether he really is actively using a quiver, backpack, etc.
Lack of needed controls - certainly of user-friendly controls that I actually understand. I don't know how to do anything with a specific object; I can't ask to decorate it, move it to a specific spot, wear it, drop it, ignore it, etc.. Choosing objects when building is a PITA; I'm given a list, and it's (somewhat) easy to control material type, but no information on location is given. Here again, the game design is at war with the interface: While the key to an efficent fortress is stopping those idiot dwaves from running around so much, the interface is not much interested in helping out here. (The topic of movement really deserves a seperate post, so I'll stop here)
Focus: Screen display
Dwarves move as quickly north-south as they do east-west. Effective fortress design means not designing for a 80x25 screen, but the insistance of the interface on this exact size makes planning difficult. The usage of tiles taller than they are wide may look better on screen, but gives a misleading visual impresson of the fort - in essence, it is distorted. As Toady introduces the more varied mountains shown on the development screenshots, this problem is going to get a lot more noticable, even to old-time players used to coping.
More than this, the entire interface is vertically crammed. It is perfectly clear why the game has so much trouble displaying information, uses overly-complex menus, only shows the handy display of idle dwarves when a message isn't shown, and so on: Everything has to fit in exactly 25 lines of text (less borders). In similar projects, including curses itself many years ago, interface has consistantly evolved along approximately the following lines:
1. Give the user control of screen size - how many characters wide and how many deep, subject to minimums required by the game.
2. Let the display show multiple screens. In a 80x43 screen, for example, use the top 25 rows for the main display, and the remaining space for display of menus, dwarves, messages, tiles, etc.
3. Go semi-graphical. Keep showing tile-based displays, but allow for pixiel-level positioning of displays and borders.
4. Allow different tilesets in different displays, so players can either get more information or accomodate a small screen. How about a minimap? It's a lot easier than some might think ... if you take it step by step.
Focus: Choice of API
Dwarf Fortress is in alpha. If I were the designer, not working for a pure Windows audience, and wanted to offer any sort of graphics, I would be using SDL. SDL isn't the fastest, the most capable, or the most modern API, but it is the best API for an alpha project I've ever used. It is genuinely cross-platform, extrodinarily simple and straightforward, lavishly documented, and more than powerful enough for present purposes. Moreover, SDL is designed as a wrapper around OpenGL; you won't have to change APIs; when you need the power (and have time for the complexity!), you will migrate to OpenGL at your own pace.
[ August 21, 2007: Message edited by: Fedor ]