Difference between revisions of "Patch"

From NetHackWiki
Jump to navigation Jump to search
m (Redlink to diff, because I presume that someone will want to know how to use it to produce patches.)
m (de-SLEX)
 
(16 intermediate revisions by 13 users not shown)
Line 1: Line 1:
A '''patch''' is a modification to [[vanilla]] [[NetHack]] not created by the DevTeam. Hundreds of patches can be found at the [http://bilious.homelinux.org/ Nethack Patch Database]. Historically, a small handful of popular patches have been incorporated into official releases.
+
{{man|patch}}
 +
 
 +
In the context of ''[[NetHack]]'', a '''patch''' is a modification to the [[vanilla]] game or one of its variants not created by that game's [[DevTeam]]. Hundreds of patches can be found at the [[Bilious Patch Database]].
 +
 
 +
Some things that patches do:
 +
* Add new features (items, monsters, traps, levels, artifacts) or change existing features.
 +
* Add new playable [[role]]s, with their respective inventories, abilities, and quests. Examples: [[Convict]], [[Pirate]], [[Bard]].
 +
* Enhance the interface in some way, such as coloring elements of the text display to [[Menucolors|highlight certain items]] or [[Statuscolors|alert you to low health or spell power]].
 +
 
 +
The practice of releasing individual patches, common in the 1990s and 2000s, has declined in popularity, particularly since NetHack's development source became publicly available. Instead, developers tend to fork NetHack on GitHub and make pull requests there. A pull request versus vanilla is functionally equivalent to a patch, though.
 +
 
 +
==Examples==
 +
* [[Biodiversity patch]] – adds new monsters (as well as features from some other patches)
 +
* [[Convict patch]] – adds a new role, the Convict
 +
* [[Grudge|Grudge patch]] – causes certain classes of monsters (such as elves and orcs) to attack each other on sight
 +
* [[Heck² patch]] – adds special predesigned rooms that can be generated in the maze levels of Gehennom
 +
* [[Itlachiayaque]] – replaces the [[Orb of Detection]] with an artifact [[shield of reflection]]
 +
* [[Lethe patch]] – adds a new branch, the Lethe Gorge, which appears before Gehennom
 +
* [[Photography patch]] – adds photographs of monsters and dungeon features that are created whenever you apply an [[expensive camera]]
 +
* [[Statuscolors]] – allows the user to configure the colors of the status line, to highlight [[properties|ailments]] or indicate low [[health]] or [[power]]
 +
* [[Underground rivers]] – occasionally generates rivers of [[water]] or [[lava]] across levels
 +
 
 +
Many [[artifact YANIs]] have been made into patches.
 +
 
 +
==Influential patches==
 +
Patch design is not only a popular activity for the NetHack community, but has also influenced the development of the game itself. The NetHack source includes some code that originated in patches for older versions. For example, many features of modern [[spellcasting]] first appeared in the [[Wizard Patch]], which was written for NetHack 3.2.0 to 3.2.3 but proved so popular that it became a part of version 3.3.0.
 +
 
 +
The release of [[NetHack 3.6.0]] in December 2015 saw the addition of a number of patches, including the [https://bilious.alt.org/?195 Dull Book] and [https://bilious.alt.org/?151 Moving Clouds] patches, to the code.
 +
 
 +
Many [[variant]]s of NetHack also use content from existing patches, in addition to creating new content. For example, [[SLASH'EM]] included [[potion of amnesia|Lethe water]] and [[torch]]es, and [[UnNetHack]] includes [[grudge]]s and the Convict role.
 +
 
 +
==Adding patches to NetHack==
 +
If you want to know how to patch your NetHack sources, see the article on [[patching]].
  
 
'''patch''' is also a program that can apply specially formed patch (also known as "[[diff]]" after the program that creates them) files. The usual invocation of patch is along the lines of
 
'''patch''' is also a program that can apply specially formed patch (also known as "[[diff]]" after the program that creates them) files. The usual invocation of patch is along the lines of
  patch -p1 < patch_file
+
  patch -p1 &lt; patch_file
  
{{stub}}
+
patch for the Windows platform may be downloaded from http://gnuwin32.sourceforge.net/ (though it seems to have problems under Vista and Win 7, fix: http://jameswynn.com/2010/03/gnu-patch-in-windows-7-or-vista/). After downloading, the patch.exe file needs to be placed in the system PATH, so that it can be found when it is invoked from the command line. One possible place would be in the same directory as the compiler used to compile NetHack (e.g. \mingw\bin) for the MinGW compiler).
  
 +
{{noversion}}
 
[[Category:Patches| ]]
 
[[Category:Patches| ]]

Latest revision as of 02:09, 5 October 2022

In the context of NetHack, a patch is a modification to the vanilla game or one of its variants not created by that game's DevTeam. Hundreds of patches can be found at the Bilious Patch Database.

Some things that patches do:

The practice of releasing individual patches, common in the 1990s and 2000s, has declined in popularity, particularly since NetHack's development source became publicly available. Instead, developers tend to fork NetHack on GitHub and make pull requests there. A pull request versus vanilla is functionally equivalent to a patch, though.

Examples

Many artifact YANIs have been made into patches.

Influential patches

Patch design is not only a popular activity for the NetHack community, but has also influenced the development of the game itself. The NetHack source includes some code that originated in patches for older versions. For example, many features of modern spellcasting first appeared in the Wizard Patch, which was written for NetHack 3.2.0 to 3.2.3 but proved so popular that it became a part of version 3.3.0.

The release of NetHack 3.6.0 in December 2015 saw the addition of a number of patches, including the Dull Book and Moving Clouds patches, to the code.

Many variants of NetHack also use content from existing patches, in addition to creating new content. For example, SLASH'EM included Lethe water and torches, and UnNetHack includes grudges and the Convict role.

Adding patches to NetHack

If you want to know how to patch your NetHack sources, see the article on patching.

patch is also a program that can apply specially formed patch (also known as "diff" after the program that creates them) files. The usual invocation of patch is along the lines of

patch -p1 < patch_file

patch for the Windows platform may be downloaded from http://gnuwin32.sourceforge.net/ (though it seems to have problems under Vista and Win 7, fix: http://jameswynn.com/2010/03/gnu-patch-in-windows-7-or-vista/). After downloading, the patch.exe file needs to be placed in the system PATH, so that it can be found when it is invoked from the command line. One possible place would be in the same directory as the compiler used to compile NetHack (e.g. \mingw\bin) for the MinGW compiler).