Forum:Question about "optional" features

From NetHackWiki
Jump to: navigation, search

What does it mean when something "may be compiled out the game"? Does this mean that there are versions of NetHack out there without important and prominent game elements such as sinks, Kops, Elbereth and the entire Tourist role? What's the purpose of this? Does this mean that these elements are optional? How does one go about disabling or enabling them? It doesn't seem possible from the config file. ..and sort of a secondary question: why would these options be present to begin with? I don't really get it. Why would you single out Tourists in particular? Why is one not able to 'compile out' Monks or Archeologists or whatever else? And ...why sinks? Why not fountains or treasure zoos or the Oracle or anything else that may or may not be present in the Mazes of Menace? It seems so bizarre and oddly specific, and I've never seen a proper explanation of this. Even in the official instruction file that comes with the game, it's only given a passing mention when it has to clarify that sinks only appear "if your dungeon has sinks" and things like that. Very confusing. 15:55, 20 August 2013 (UTC)

If I had to guess, it's because of the weird tech levels that these things imply. The Tourist (and associated items- Hawaiian shirt, expensive camera, credit card) and the sink (Which implies modern plumbing of a level above fountains) are both of more modern technology, and the Tourist itself is even a massive reference to Discworld in how it's applied- this kind of thing, as well as the Keystone Kops being kind of insanely goofy, might take away immersion that people have by being of a different type of fantasy than the remainder of the game.
Elbereth is a weird feature that people might not know about anyway. No real reason I can think of for that one other than "making the game harder".
--Aitherion (talk) 17:01, 20 August 2013 (UTC)
Basically what Aitherion said, the Tourist role feel out of place compare to the rest of the fantasy-dungeon-exploring-and-monster-slaying setting with traditional roles like barbarian, ranger, rogue and wizard. Some people think that will break the immersion so there is a option to remove the tourist role entirely along with modern stuff like shirts, sinks and Kops.
I'm not sure about Elbereth, but I've seen some people didn't want to use Elbereth at all (even if they're new to the game) because Elbereth seems not "logical" or wierd.
Back in the old days, some environments (such as real mode DOS) didn't have enough RAM to handle all of the features in NetHack. Compiling with features disabled saved enough RAM to allow the game to run under constrained conditions. Kufat (talk) 04:39, 21 August 2013 (UTC)

The features in question are set in the source's configuration header before compiling; you can change whether they're present or not via editing include/config.h. Some variants allow you to set them via command-line options when compiling (Slash'EM, UnNetHack) or (for some of the options) in-game (NitroHack, NetHack 4). (Interestingly, SCORE_ON_BOTL is off by default; autopickup exceptions are also off by default but that's because the devteam weren't confident that that code worked properly.) Ais523 (talk) 17:12, 20 August 2013 (UTC)

Thanks for answering my question. I always considered NetHack to have a tongue-in-cheek style, so I never really thought that some people would scoff at the game containing anachronisms. However, I want to ask something in very, very simple terms. Here is what I know of so far: I have an internet browser. I go to and download NetHack 3.4.3 from their 'downloads' page. I get a ZIP file, which I extract by right-clicking. I open the file and run NetHack.exe and all of a sudden I'm playing the game. Nowhere during this process was I ever given the options of adding or removing these so-called optional features. Am I right in thinking that by the time I have the 'nethack.exe' file, am I too late? Because it has already been compiled at this point, right? How do I even get a chance to do anything to the file before I acquire it from the site? 11:55, 21 August 2013 (UTC)

is it not also that such features were added to an existing game. as a development strategy you can add the compile variable first and then check any new output with the option turned off against the original. if it differs then you've broken something. -- 12:23, 21 August 2013 (UTC)
The nethack.exe is produced when you compile the source code, so yes, it's too late by that time. --paxed (talk) 13:23, 21 August 2013 (UTC)
I think the devteam made new features optional to pacify the die-hard fans who would complain about anything "impure". Of course, time goes by, and everybody is happy with the new features. But the option to disable them lingers around.
Tourists specifically were added as a kind of hard mode. That implies the game was too easy. Not everybody agreed, hence the option to disable tourists. --Tjr (talk) 19:37, 21 August 2013 (UTC)
Hi - if you want to tinker with compile-time options, you will need to download the source code (available on lower down on the download page where you got your executable) and compile it yourself. This requires a certain amount of geekery. Hope this helps. -- Elenmirie (talk) 09:01, 22 August 2013 (UTC)
The autoconf patch from significantly reduces the amount of geekery needed. --Tjr (talk) 19:06, 23 August 2013 (UTC)