A Roguelike with a message-based user interface?

One of the ideas that I’ve been rolling around in my head lately is the possibility of a roguelike completely lacking in any sort of graphical user interface (GUI). Basically, this means the game would have no menus or displays of any sort–not even a health display or or turn counter–on the main screen of the game. Instead, the user interface would all be in text, displayed in a separate message console/log thingy (don’t you just love my technical terminology?). Events in the game, player stats, monster stats, and all that would be displayed through such a console.
So the question is: is it possible to have a roguelike with a completely message-based interface? The answer is absolutely. In this post I’ll be talking about a few of the things that you’d have to deal with in the writing of such a game. (Note: not necessarily Javascript specific, just some rambling/brainstorming about RL development in general)

Displaying information in a textual format

There are a couple of key things the developer of a GUI-less RL needs to be aware of.

One of the most important things to get right is alerting the player about life-threatening events such as HPs dropping dangerously low, risk of starvation, etc. In a text game without any sort of health display it’d be awfully easy to miss the “HP low!” warnings and accidentally play your character to death.

Naturally, you’d want to spend a good portion of development time on creating some good grammar formatting/text generation algorithms. You don’t want “an foo” to attack you, nor would “a gloves” be a very interesting find. This is, of course, a concern for all games with messaging systems, but since the primary focus of a GUI-less game would be the text, the player would be paying a lot more attention to it, and thus would be more likely to catch any errors.

Furthermore, numbers don’t look very good in a textual context. A GUI-less game shouldn have very few, if any, numerical characters mixed in with the text. Instead of saying “You have 5 apples, 2 shirts, […] in your inventory”, you’d want to display “You have five apples, two shirts, […] in your inventory”. I suppose this might fall under creating solid algorithms for generating messages, but I feel that it’s important enough to deserve its own paragraph.

Receiving user input in a textual format

Another issue with a GUI-less roguelike would be how to get user input. Naturally, in the map screen, movement keys would be the same as in a “vanilla” roguelike, and I suspect many other “standard” commands such as [key]g[/key] for grab, [key]w[/key] for wear, [key]e[/key] for equip, and the like, would remain the same as well. However, in addition to these normal keys, which I’ll call hotkeys for the sake of clarity, there would be a second method for interfacing with the game: commands. Commands would be longer and more complex instructions, often consisting of whole words, something somewhat similar to what Nethack offers with its array of one-word commands. It would be possible to enter a whole sequence of commands and have them executed sequentially.

However, constantly having to type in long commands could easily get annoying, so you’d want to provide a way to save custom macros and perhaps custom hotkeys as well. These hotkeys would execute specific macros in the console, which would of course have access not only to all longer commands, but also the commands the hotkeys call as well, such as “walk north”, “walk southeast”, and the like.

Another feature that would be useful would be the ability to quickly scroll through previously entered commands with, say, the up arrow key. This functionality is already offered in most consoles, and for good reason. It makes doing repetitive actions which don’t necessarily require a macro much easier to execute.

Closing thoughts

I guess you could call the type of game I’ve been describing a roguelike in which all the game-related information is presented to the player solely through a console. I think it’d be an interesting challenge and certainly something worth attempting. I might try to write such a game in the near future, since it’s (obviously) something that I find quite intriguing. If that does happen, I’ll be posting more about what goes into a GUI-less Roguelike. In the mean time, feel free to comment if you have any corrections or just want to add on to what I’ve said. Oh, and don’t forget to subscribe to my RSS feed!