Roguelike Graphics

State: incomplete.

Overview

One of the more common defining features present in a roguelike is the use of text to picture the game world. Where text-based MUDs primarily describe the world using words and sentences, a text-based roguelike describes it using an overhead view built using characters. Some of the clients used to connect to MUDs make those characters available, and some clients also support the control sequences that allow the overhead view to be displayed. With the availability of these functionalities, it is possible to adopt some of the text-based graphical and user interface displays that roguelikes may feature, also within MUDs.

Client Suitability

MUD clients have the lowest level of support for control sequences that allow the window to have its contents dynamically drawn. The biggest problem is that they are unlikely to support character mode, and separate input from output so that commands are sent line by line instead.

Proper telnet clients like Putty are more likely to be the tool suitable for applications like this.

Character Sets

The primary contribution to how good a view of the game world can be displayed in a given client, are the character sets that the client can display. The character set provided by some clients may only contain language-related characters. Although, ideally the client will provide access to a character set which contains graphical characters. This may be in the default character set which it uses, or in another character set it can be made to use.

CP437

This is the standard character set that provides a minimal amount of graphical characters.

UTF-8

If a client either only provides access to one or more language-related character sets, there may be another option. Some clients support the UTF-8 character set, which encompasses thousands of different characters including a wide variety of graphical ones. With this character set enabled, at the least the server can map in the subset that would otherwise be shown with CP437 support. Although of course, they can also always provide an enhanced game for those who have the ability to use unicode through this character set, taking advantage of that much wider variety of characters.

Colours

Beyond using the appropriate character to represent a given in-game object, it is possible through the use of colour to make the view more intuitive to the player. From using green to indicate plant life, red to indicate heat and perhaps blue to indicate water or ice, colour can add useful visual cues.

16 Colours

This is the standard set of ANSI colours.

xterm 256 Colours

The xterm console commonly available on Linux, and other similar systems, added an extended range of escape sequences that allowed a wider range of colours to be displayed. This extends the commonly supported range of 16 colours, to the wider range of 256.

Configuring a Client

If a client provides support for using alternate character sets, it may do in one or both of two ways. It may allow the server to remotely enable the option, without the player ever having to be aware that it has happened (the ideal approach). Or it may require the player to alter an option in the relevant GUI settings window.

Remotely Changing Character Sets

Standard VT100 codes.

The Window

NAWS negotiation to determine the window size.

The Scrolling Region

There is a limited ability to set a range of lines as the scrolling region.

The Cursor

Ideally, the cursor should be hidden so that the focus is on the character chosen to be the avatar. But not every client supports this.

Updating the Display

While it would be entirely possible to simply scroll onto the screen an updated page, effectively updating the window frame by frame, this will be slow and will not provide the best quality playing experience.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License