NetHack

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
NetHack
Nethack releasing a djinni.png
A released djinni grants the player a wish
Developer(s) The NetHack DevTeam
Initial release July 1987 (1.3d)[1][better source needed]
Stable release 3.6.0 / 7 December 2015; 8 years ago (2015-12-07)
Type Roguelike
License NetHack General Public License (derivative of BISON general public license, a precursor to the GPL)
Website {{#property:P856}}

NetHack is a single-player roguelike video game originally released in 1987 with ASCII graphics. It is a descendant of an earlier game called Hack (1985), which is a descendant of Rogue (1980).[2] Comparing it with Rogue, Engadget's Justin Olivetti wrote that took its exploration aspect and "made it far richer with an encyclopedia of objects, a larger vocabulary, a wealth of pop culture mentions, and a puzzler's attitude."[3] In 2000, Salon described it as "one of the finest gaming experiences the computing world has to offer."[2]

The player chooses a character class and their mission is to retrieve the Amulet of Yendor in a randomly generated dungeon.[4][5]

History and development

The first version of NetHack was released by Mike Stephenson on July 28, 1987.[6]

A core development team emerged with the release of Nethack 3.0 in July 1989. Over the next 14 years of development they established a tight-lipped culture, revealing little, if anything, between releases. Owing to the ever-increasing depth and complexity found in each release, the development team enjoys a near-mythical status among some fans. This perceived omniscience is captured in the initialism TDTTOE, "The DevTeam Thinks of Everything".

Stephenson licensed the software under the NetHack General Public License, allowing other developers to release their own versions. The license is certified as open source by the Open Source Initiative.

For 12 years, the last version to include new gameplay features was Nethack 3.4.3, released in December 2003.[6] Subsequent updates included new tilesets and compatibility with variants of Mac OS.[7] In the absence of new releases from the developers, several variants developed by fans emerged.

On December 7, 2015, version 3.6.0 was released, the first major release in exactly twelve years. While the patch does not add major new gameplay features, the update was designed to prepare the game for expansion in the future.[8][9] NetHack remains "...one of the oldest games still being developed".[10]

Gameplay

Before playing a game, players are asked to name their character then choose its race, role, gender, and alignment, or allow the game to assign the attributes randomly. There are traditional fantasy roles such as knight, barbarian, wizard, rogue, valkyrie, priest, monk, and samurai, but there are also unusual ones, including archaeologist, tourist, and caveman.[11] The player character's role and alignment dictate which deity the character serves in the game and "how other monsters react toward you".[12]

After the player character is created, the main objective is introduced. To win the game, the player must retrieve the Amulet of Yendor, found at the lowest level of the dungeon, and offer it to their deity. Successful completion of this task rewards the player with the gift of immortality, and the player is said to "ascend", attaining the status of demigod. In addition, a number of sub-quests must be completed, including one class-specific quest.

The player's character is, unless manually specified otherwise, accompanied by a pet animal, typically a kitten or little dog, although knights begin with a saddled pony.[13] Pets grow from fighting, and they can be changed by various means. Most of the other monsters may also be tamed using magic or tempting food.

Dungeon levels

NetHack's dungeon spans about 50 primary levels, of which most are randomly generated when the player character first encounters them. A typical level contains a way "up" and a way "down" (these may be stairways, ladders, trapdoors etc.), along with several "rooms" joined by corridors. The "rooms" are randomly generated rectangles (as opposed to the linear corridors) and may contain features such as altars, shops, fountains, traps, thrones, pools of water, and sinks based upon the randomly generated features of the room. Some "special" levels are of fixed design in every game session.

Items and tools

A player's inventory, as displayed after application of the "menucolors" patch

NetHack features a variety of items: weapons (either ranged or melee), armor to protect the player; scrolls and spellbooks to read, potions to quaff, wands, rings, amulets, and an assortment of tools such as keys and lamps.[14]

NetHack's identification of items is almost identical to Rogue's. For example, a newly discovered potion may be referred to as a 'pink potion' with no other clues as to its identity. Players can perform a variety of actions and tricks to deduce, or at least narrow down, the identity of the potion.[15] The most obvious is the somewhat risky tactic of simply drinking it. All items of a certain type will have the same description; for instance, all scrolls of enchant weapon may be labeled 'TEMOV', and once one has been identified, all scrolls of enchant weapon found will be labeled unambiguously as such. Starting a new game will scramble the items' descriptions again, so the 'silver ring' that is a ring of levitation in one game might be a ring of hunger in another.

Blessings and curses

As in many other roguelike games, all items in NetHack are either "blessed", "uncursed", or "cursed".[16] The majority of items are found uncursed, but the blessed or cursed status of an item is unknown until it is identified or detected through other means.

Generally, a blessed item will be more powerful than an uncursed item, and a cursed item will be less powerful, with the added disadvantage that once it has been equipped by the player, it cannot be easily unequipped. Where an object would bestow an effect upon the character, a curse will generally make the effect harmful, or increase the amount of harm done. There are exceptions, however, which are usually very specific – for example, drinking a cursed potion of gain level will make the character literally rise through the ceiling to the level above, instead of gaining an experience level.

Character death

As in other rogue-like games, NetHack features permadeath: expired characters cannot be revived without having made backup copies of the actual save files.

Although NetHack can be completed by new or intermediate players without any artificial limitations, experienced players can attempt "conducts" for an additional challenge.[17] These are voluntary restrictions on actions taken, such as using no wishes, following a vegetarian or even vegan diet, or even killing no monsters. While conducts are generally tracked by the game and are displayed at death or ascension, unofficial conducts are practised within the community.

When a player dies, the cause of death and score is created and added to the list where the player's character is ranked against other previous characters.[18] The prompt "Do you want your possessions identified?" is given by default at the end of any game, allowing the player to learn any unknown properties of the items found during the game. Player's attributes (such as resistances, luck and others), conduct (usually self-imposed challenges, such as playing as an atheist or a vegetarian), and a tally of creatures killed, may also be displayed.

The game sporadically saves a level on which a character has died and then integrates that level into a later game. This is done via "bones files", which are saved on the computer hosting the game. A player using a publicly hosted copy of the game can thus encounter the remains and possessions of many other players, although many of these possessions may have become cursed.[19]

Spoilers

NetHack is largely based on discovering secrets and tricks during gameplay. It can take years for one to become well-versed in them, and even experienced players routinely discover new ones.[20] A number of NetHack fansites and discussion forums offer lists of game secrets known as "spoilers".[21] Fans of NetHack consider an ascension without having read spoilers very prestigious; the achievement is so difficult that some question whether it has been or can be accomplished.

Interface

NetHack was originally created with only a simple ASCII graphical user interface, although the option to use something more elaborate was added later in its development. Interface elements – environment, entities, and objects – are represented by arrangements of ASCII or Extended ASCII glyphs used in plain text, "DEC graphics" or "IBM graphics" mode. In addition to the environment, the interface also displays character and situational information.

A detailed example:

You see here a silver ring.
                                            ------------
                                          ##....._.....|
                                            |...........#          ------
                                           #...........|           |....|
                       ---------------   ###------------           |...(|
                       |..%...........|##########               ###-@...|
                       |...%...........###    #                 ## |....|
                       +.......<......|       ###              ### |..!.|
                       ---------------          #              #   ------
                                                ###          ###
                                                  #          #
                                               ---.-----   ###
                                               |.......|   #
                                               |........####
                                               |.......|
                                               |.......|
                                               ---------
  Hacker the Conjurer            St:11 Dx:13 Co:12 In:11 Wi:18 Ch:11  Neutral
  Dlvl:3  $:120 HP:39(41) Pw:36(36) AC:6  Exp:5 T:1073

The player (The '@' sign, a wizard in this case) has entered the level via the stairs (the '<' sign) and killed a few monsters, leaving their corpses (the '%' signs) behind. Exploring, the wizard has uncovered three rooms joined by corridors (the '#' signs): one with an altar (the '_' sign), another empty, and the final one (that the wizard is currently in) containing a potion (the '!' sign), chest (the '(' sign), and has just moved onto a square containing a silver ring. Parts of the level are still unexplored (probably accessible through the door to the west (the '+' sign)) and the player has yet to find the down-stairs (a '>' sign) to the next level.

Apart from the original termcap interface shown above, there are interfaces that replace standard screen representations with two-dimensional images, or tiles, collectively known as "tiles mode". Graphic interfaces of this kind have been successfully implemented on the Amiga, the X Window System, the similar Microsoft Windows GUI, the Qt toolkit, or the GNOME libraries.

Enhanced graphical options also exist, such as the isometric perspective of Falcon's Eye and Vulture's Eye, or the three-dimensional rendering that noegnud offers. Vulture's Eye is a fork of the now defunct Falcon's Eye project. Vulture's Eye adds additional graphics, sounds, bug fixes and performance enhancements and is under active development in an open collaborative environment.

Online

Bugs, humorous messages, stories, experiences, and ideas for the next version are discussed on the Usenet newsgroup rec.games.roguelike.nethack.[22]

A public server at nethack.alt.org, commonly known as NAO, gives access to NetHack through a Telnet interface. A Java Telnet emulator is also available on the same site. Ebonhack connects to NAO with a graphical tiles-based interface.[23]

During the whole month of November the annual /dev/null NetHack Tournament takes place. It has been held every year since 1999.[24]

NetHack also has an IRC channel, #nethack, on the Freenode network. Many people discuss the game there, and the resident announcer bot, "Rodney", notifies of every death, invocation ritual, ascension, life-saving, and wish that occurs on the NAO server. Rodney can also announce full and new moons (which has effect on gameplay), as well as providing a substantial database of information which players can access with commands.

Ports and forks

The NetHack General Public License allows anyone to create a fork or port it to a platform not supported by the official DevTeam, provided that they use the same license. Over the years this licensing has led to a large number of ports and forks (e.g. Slash'EM[25] and UnNetHack[26]) as well as versions[27] in German, Japanese and Spanish.[6]

NetHack General Public License

The NetHack General Public License is a copyleft software license certified as an open source license by the Open Source Initiative.[28]

The license was written in 1989 by Mike Stephenson, who patterned it after the GNU bison license (which was written by Richard Stallman in 1988).[29] Like the Bison license, and Stallman's later GNU General Public License, the NetHack license was written to allow the free sharing and modification of the source code under its protection. At the same time, the license explicitly states that the source code is not covered by any warranty, thus protecting the original authors from litigation.

Derivative works

The NetHack GPL requires all derivative works to be distributed under the same license, except that the creator of a derivative work is allowed to offer warranty protection on the new work. The derivative work is required to indicate the modifications made and the dates of changes. In addition, the source code of the derivative work must be made available, free of charge except for nominal distribution fees.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. 6.0 6.1 6.2 Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. http://sequoia.ict.pwr.wroc.pl/~witold/aiarr/2009_projekty/elitmod/
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. GNU Bison is no longer distributed under the original Bison license; it has been distributed under an extension of the GNU General Public License since at least 1991.[1]

External links