NetHack / NetHack

Official NetHack Git Repository

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Idea: Easier Start mode

DavidRieman opened this issue · comments

I love that the game has a tutorial mode now, it's great to see that the community cares about attracting a larger, not-necessarily-hardcore-gamer audience. To that end, I wonder also about catering some other aspects of game difficulty towards what casual / new gamers might desire.

I know there are plenty of people who restart right away if their starting character doesn't feel viable, especially in a way that won't be fun to them to try to overcome. I guess some people call this "start scumming" but I think a healthy way to consider this is: Some people like to set a video game's difficulty down to Easy so they can experience the breadth of content (and not just lose at the start over and over, blocking them from experiencing the full breadth of the content).

I'm a pretty casual very periodic NetHack player so apologies if there's already something akin to a global difficulty slider in the #options or something that might help achieve such an approach. Maybe a global difficulty slider would be a nice long term concept but what I'm specifically interested in for starters is proposing a formal easier start mode that gives you a rollable but well above average starting character.

The approach I tried out in local code is to basically write some helper rnd functions which "roll twice, keep the best roll" and apply that across things like starting stats and starting equipment chances, but doesn't affect anything after character generation. (Basically this simulates results you could get from minutes of non-fun start-scumming time until you got an overall luckier generation.)

Anyway I'm hopeful that I won't be branded a heretic here for suggesting we give people some flexibility in choosing how they play on this front. If people are amenable to this being a thing, I'd be happy to discuss and iterate on this idea further (like should it be an #option?), and would probably be happy to revise my PoC code towards a proper PR.

I feel like a starting inventory buff would go a longer way towards curbing start scumming, like what was done with the current Wizard starting inventory for instance.

Start scumming itself is also done for conduct purposes, as opposed to just being a tool of min-maxing players, and in that latter case

  1. Stat-boosting methods are accessible early enough that it isn't even necessary for that
  2. Several monsters that are early game threats don't especially care about your attributes

...so to me it falls strictly into win-more territory as a behavior. It'd be nice if people start scummed way less sure, but IMO that just goes back to both "how much of that is on the devs to solve" and "how much of it can BE solved on their end".

Yeah the "best of 2" roll approach I was thinking would apply to starting inventory too, e.g. !rn2(25) || !rn2(25) vs !rn2(25) is essentially "roll twice, if either pass, you start with that thing". (We'd wrap the code nicer though.)

Once encapsulated with wrappers, we could actually do the opposite too - a Harder Start mode which is "roll twice, keep the worse roll" for almost free too, giving people one more axis for their pride and bragging rights. I guess this suggests this feature is a "starting difficulty" setting with easier/normal/hard or maybe thematically cursed/uncursed/blessed character background?

(Deterministic character creation processes like "which stats do you want to emphasize" and "which starting equipment package do you want" would remove most start scum incentives, but such topics are well outside the scope of this thread though.)

If it's still ultimately random rolls, won't this create more incentive for startscumming so someone can say "I ascended a foodless atheist illiterate wizard on Hard Start Mode!" but they actually scummed (for longer than they would have under present conditions) until they had great starting stats and random equipment?

One way to view start scumming is like pudding farming was in 3.4.3 - it's its own punishment. Online servers tend to prohibit autoscum scripts if for no other reason than they use up lots of CPU starting and quitting all those games and storage for pointless dumplogs and ttyrecs that end on turn 1 and will never get viewed, so you're forced to tediously restart the games over and over again manually.

Another approach, rather than a best/worst-of-N-rolls system , would be to make Easy Start Mode have a guarantee of higher-utility stats and equipment (i.e. no stat will be below 13) and Hard Start Mode similarly guarantee low-utility stats and equipment. I'm lukewarm on this idea though because it's difficult to provide such guarantees, especially for equipment, while preserving inter-role strengths and weaknesses and also preserving some randomization.

NetHack has explore mode for new and/or casual players. If you start the game in that mode (via '-X' on the command line or OPTIONS=playmode:explore for the command line impaired), you will have a wand of wishing in initial inventory. If you use #exploremode to switch during play, you won't have that but the other explore mode features kick in.

In explore mode, when killed you'll get a "Really die?" prompt and can answer 'n', but might be stuck facing whatever just killed you. ^X performs full enlightenment rather than just provide expanded status information. The #terrain command lets you view the current level's entire map even when it hasn't been fully explored yet. When restoring a saved game, you'll be asked whether to leave the save file intact instead of the normal behavior of deleting it (making #quit followed by re-restore feasible). Bones files of dead characters are off limits; you won't load existing ones when available or save new ones. There are probably a few other differences from normal play, aside from the most obvious one: your score doesn't get recorded in the high scores file.

Long ago there was a compile-time option called HARD (enabled by default). I don't remember what sort of different behavior the not-HARD configuration had, except for not choking due to overeating. HARD got removed because it made development testing and tuning more difficult. Any sort of sliding difficulty scale would too and is most likely to be rejected.

Good to know. Thanks for that fantastic context! I didn't know about explore mode and I find it really unlikely that new players are going to discover such an option in time to cater the experience either. Now I'm wondering about whether these ideas would be considered acceptable for potential contributions:

  1. Perhaps the windows client could expose a checkbox on some of the blank area of the character creator for explore mode and a [?] box, or tooltip, or popup message when toggling it on to explain the feature and warn of the negative consequences.
  2. Perhaps entering explore mode mid-game should spawn a wand of wishing (perhaps at your feet like artifacts)?

Explore mode is already mentioned in the Guidebook as an option for novices.

Hmm, I did find one mention of a "guidebook" at the end of one of the help outputs, but it wasn't clear where to find said guidebook or if that mean other bits of what we were already reading. I've re-read through a lot more and just found another mention in the "Help -> NetHack for Windows help" output which does add that the guidebook is a .txt file in the executable's directory.

Which raises:
3. We could add a Help submenu which opens the guidebook in a much more accessible way, like:

  • a. As a popup in a scrollable text box.
  • b. Via the default text editor.
  • c. Fancy ASCII "book" art wrapped around the existing 66-line text page sections, drawn scrollable in the ASCII area. Could be really charming but tons of work and window size hurdles could be abundant.
  • d. Break down the guidebook into sections that can be opened with [?] buttons during character creation, to be able to jump to info about races right from race selection, classes info right from class selection, etc. Probably also not ideal since the txt file looks auto-generated.

3a or 3b could provide a lot of value for very little code.

Edited since I skimmed too fast:

I think we're back into "how much of this is really on devs" territory, but rather than discouraging start scumming, it's enlightening players as to the location of the Guidebook .txt (and .pdf, there's also that) that came with their install of the game.

I guess some players will have noticed the files while working around the lack of a windows installer. (And if we had an installer, those would be good candidates for links in a start menu folder.) I do think 3a or 3b could be very few lines of code and might be worthwhile anyway. But if there's not support for the idea here, that's perfectly OK, that's why I ask first instead of wastefully adding to the PR backlog. :)

When there are official releases, there are links to some documentation on the nethack.org web site too.
https://www.nethack.org/common/index.html

There IS an installer though - right on NetHack's official site, along with online copies of the Guidebook for each version (mall beat me to the documentation bit).

I see a zip file with loose files inside (not an installer inside), where is the installer?
Love that those have guidebook links too though :) I'm less worried about people finding the guidebook now for sure!

PS. I'm not necessarily suggesting we need an installer, just confused by the statement that one exists there.

Anyway, it's unusual for people on Windows to have to supply command-line arguments to the Windows app. It works it's just atypical for the platform and non-power-users won't know how. So I think we can we can make explore mode more accessible. I imagine editing the settings file works too but feels icky as a player to have to configure things that way. Exposing such options in the pre-game chargen UI was option 1, but at this point feels "meh". All together, I think option 2 makes the most sense and a reasonable amount of work for a first minor contribution: Fixing the missing wand of wishing when entering explore mode after getting in-game. When I think about ways people might use this, it doesn't seem bad to me at all; it's really not a game balance issue if the user is giving up their score and bones file anyway, right?

Right, I made the mistake of presuming the download had an actual binary, but the unpacking process should absolutely make the presence of the Guidebook clear, I feel.

Anyway, it's unusual for people on Windows to have to supply command-line arguments to the Windows app.

That's the neat part, they don't. That's only to "confirm the location and names of files that NetHack cares about" and is primarily for a user that doesn't how to navigate directly to the user profile - perhaps my own experience with Windows is filtering me here, but that isn't something I'd figure to be strictly power-user knowledge (distinct from "not knowing this is a crime", which I don't remotely think it is).

Some variants have an entry in their menu for the '?' command to view the Guidebook while in the game. But using an external viewer has security issues for multi-user platforms and reading it in-game with an internal viewer is highly crippled for that sort of usage: scroll forward one page at a time; that would be unbearable for looking up specific things. To go backward it would need to load in the entire Guidebook into memory (not feasible for low end systems; they're mostly dead now so that probably isn't insurmountable anymore) or else re-implement the entire 'more' type program (useful here but would add a lot of code that doesn't affect actual game play, so is not much of a priority, and depending on functionality could have some of the same security issues as an external viewer). It's generally more useful to just expect the player to open a separate window and use a reader that already exists and has separate access to the file system or the network.

When building nethack from sources, there is optional Guidebook.dat in addition to Guidebook.txt. The .txt edition is paginated for printing; the .dat edition is the same except for being one very long page (with one footnote from early on missing at the end). NetHack itself doesn't touch either of them. There are also Guidebook.ps and Guidebook.dvi, either of which can be converted into .pdf with common tools. But the tools to build those two aren't included in nethack's source distribution, nor the tools to convert them to PDF.

Someone, I forget who, suggested a while ago that when the character dies, NetHack should offer the chance to continue in explore mode. I don't think we'd want to do that unconditionally, but maybe the first few times a player dies it could be offered. This helps soften the sting of death a little, gives a chance to learn more about the game, and also educates the player about explore mode in a relatively organic way. The Guidebook is a big, intimidating document, and I think we're long past the time where players should be expected to read through something resembling a technical manual before diving into a game.

On a side note, I wish more public servers would allow explore mode. The most common argument I hear against it is that it's a vector for denial-of-service attacks -- but come on, surely the OS offers some sort of solution to runaway processes eating all the CPU?

I'm pretty sure Hardfought allows explore mode for a few variants, actually - I think you might have to set it in your rcfile, I'd have to ask around, but I've seen it.

explore mode does work for most variants on hardfought, including 3.7. it just doesn’t count for the scoreboard and stuff. you can do #exploremode or set OPTIONS=playmode:explore in your config file