What a roguelike is
"What is a roguelike?" is a tricky question; it is hard to conceive a roguelike definition with which everybody will agree as this is a gaming genre that has evolved over time. As such, this article is not meant to define roguelikes, but merely to describe what they often have in common.
Some of the most common elements in roguelikes are:
- The User Interface : ASCII display of a tiled world has become a distinctive feature of roguelikes.
- The Game World : random world generation may be the most common feature of roguelike games. They usually provide little plot, and instead focus on creating unique layouts.
- The Gameplay : turn-based gameplay and dungeon hack are most often proposed.
Even among the "major roguelikes", it is not uncommon for one or several of the above guidelines to be broken, such as ASCII character display (many offer a graphical-tile alternative) or plotlessness (ADOM is heavy on plot).
- ASCII character display: games use no graphic tiles or 3D models but rather a two-dimensional character grid viewed from above, in which each character represents an entity. For example, a human may be plotted as a '@', a dragon as a 'D', etc.
- Narrated action: short text descriptions are given for almost all game events except ordinary movement.
- Front-loaded commands: the player has knowledge of and access to all (or almost all) commands at the start of the game, often long before acquiring the objects or powers that make the command useful.
- Keyboard based interaction: The keyboard is the traditional way to interact with the game world, as it provides the quickest way to access the several commands that a Roguelike may have. There are certain popular schemas of keyboard usage.
- Random world generation: some parts of the world in which the action is performed are generated using a random algorithm; this is made for the sake of replayability, thus every gaming session is unique.
- Spatial consistency: all the actions happen in a definite space. No warping to fight scenes or minigames on a different reality.
- Little storyline: a gripping plot is not typically the selling point of any roguelike. The story is usually kept to a minimum to enhance replayability.
- World interaction: little or no objects lie as an adornment in the world; most of them have a use in the game.
- Setting: some of the common settings for the world include the personification of a character fighting his way into a dungeon and acquiring items via monster treasures or town supply. The world commonly has magic forces of different kinds to increase the possible interactions.
- Grid-based motion: all objects, monsters, players, terrain, dungeon features, etc. are restricted to a grid. The early roguelikes, being text-based, didn't have much choice regarding the grid, and grid-restricted play is considered a mandatory attribute of roguelikes out of tradition.
- Permadeath: once your character dies your savefile disappears; this encourages careful chosen tactics, cold sweat when fighting big baddies and curses when your character dies; as well as a great sense of accomplishment in every victory.
- Freedom: the player may choose to do anything he wants in the game; there are no fixed plots, you can roam freely or look for the final game goal.
- Turn-based: the time freezes in order to take the best of decisions when time comes.
- Dungeon hack: your goal is to kill monsters and find powerful treasures in order to kill stronger ones and repeat the process.
- Tactical single character play: the unit of action is based on the individual adventurer. The game is not twitch oriented (like Quake, rewarding reflexes and well trained actions) nor is it strategy oriented (like Civilization or Warcraft, requiring working on the large picture).
The Berlin Interpretation
The first International Roguelike Development Conference held in Berlin, Germany in 2008 addressed this question. The result of those discussions was the Berlin Interpretation.
Many people have tried to define Roguelike games. Here is a collection of links to pages that purport to do just that: