
The story behind NetHack's first update since 2003 - FroshKiller
http://gamasutra.com/view/news/269726/The_story_behind_NetHacks_longawaited_updatethe_first_since_2003.php
======
zipwitch
Ascending isn't particularly difficult, it's just that it requires levels of
attention to detail and preparation that verge on tedium for some.

One example: in order to pass through the Elemental Plane of Water on the
Astral, you need to find the (moving!) portal. In order to do this with
optimal safety, you want to have: _genocided all sea monsters, so you don 't
need to worry about krakens and the like _have a means of magical breathing,
in case you do end up in the water _rustproofed all your metal armor and other
gear_ have a large stash of Scrolls of Gold Detection, in a Bag of Holding
(itself blessed and stored inside and oilskin sack so that water doesn't get
in and erase your scrolls) _have a means of safely giving yourself the
Confused status (reading scrolls of Gold Detection while Confused lets you
detect magic portals)_ a means of swiftly removing said Confusion, so that you
can... *use your Boots of Speed (or other speed-boosting effect) to close
rapidly on the moving portal.

And that's ONE challenge on ONE level (although its deep in the endgame and
considered one of the harder things in the game). Now imagine doing that for
100+ levels of gameplay... you CAN virtually guarantee a win in Nethack, but
its never fast.

I spent a couple years playing hard in college. I read spoilers, and save-
scummed for a while, then stopped save-scumming because it wasn't fun and I
didn't need to anymore. I've lost track of my legitimate ascensions - at least
one with every class, and then I started in on conducts and score
maximization.

Now, I still play on and off for a week here or a week there. I can ascend
about 1 in 4 times with the easy starting classes like Valkyrie. My YASDs
inevitably come from rushing or not thinking things through, plus very
occasionally getting screwed early by the RNG.

And I'm not particularly good at the game. Really good players can virtually
ascend at will, with the only limitation being their available time.

~~~
fenomas
I think what's not obvious to people casually familiar with Nethack is that
success is hugely bound to memorizing spoilers (the NH community term for any
non-obvious peculiarity of the game).

In the early game that means knowing what the various meaningless messages
mean ("You have a strange feeling for a moment, then it passes"), knowing how
to identify items from context (cost, weight, results of innocuous actions)
and so on. In the late game it means knowing all the harmful stuff coming up
and what counteracts it, knowing all the statuses and interactions (Gold
Detection while confused, etc).

That kind of stuff is what wound up driving me from the game - anything past
the early stages just felt like bookkeeping.

~~~
stickfigure
For me, reading the source code was part of what made the game fun. It was a
sort of metagame, learning how to cast "real-world" spells by studying the
arcane tomes that held the secrets of the universe. It by no means made me
invincible (my death/ascension ratio was still topheavy) or even cut out the
mystery; it just moved some of the action and exploration from the game screen
to a text editor. Two games in one.

Every 5-10 years I end up losing a couple days to NetHack. I'm overdue.

------
bhaak
The article is a bit low on actual details why the release happened and what
events lead to it.

"Why not" doesn't adequately describe how ESR released the in-development code
to the community without the rest of the devteam knowing about it. This lead
directly to new members joining the devteam and the 3.6.0 release.

~~~
poizan42
I found this much better at explaining what went down before the 3.6 release:
[https://tung.github.io/DynaHack/2016/02/18/stepping-down-
fro...](https://tung.github.io/DynaHack/2016/02/18/stepping-down-from-
maintaining-dynahack/)

------
lubujackson
I've just been reading about the foundations of NetHack and other roguelikes,
which is quite interesting: [http://www.amazon.com/Dungeon-Hacks-NetHack-
Angband-Roguelik...](http://www.amazon.com/Dungeon-Hacks-NetHack-Angband-
Roguelikes-ebook/dp/B012QP0Z7O)

------
aldanor
Such C. Much ANSI.

    
    
        STATIC_OVL void
        mkcavepos(x, y, dist, waslit, rockit)
        xchar x, y;
        int dist;
        boolean waslit, rockit;
        {
            register struct rm *lev;
            ...
        }

~~~
aldanor
... as in, "this is actually a quite nice and readable old-style ANSI C
codebase". Seriously, the downvotes...

~~~
wzdd
Maybe you were downvoted because that is K&R style, not ANSI style. ANSI
requires the type declaration next to the name in the parameter list.

~~~
LukeShu
ANSI still allows K&R style, refer to the grammar in section 6.7.6 and the
semantics in 6.7.6.3 (of C11).

------
PaulHoule
Has anybody beat the game without patching the source or running it in the
debugger?

~~~
notzorbo3
I have. I've ascended four times over about 18 years of (non-continuous)
playing. And without resorting to the use of Elbereth. For those who don't
know, you can engrave "Elbereth" on the ground, and most monsters will refrain
from killing you. I considered it a cheat, so I never used it.

After a while, you tend to get really good at the game and it becomes much
easier. The trick is not to do something stupid. If you can prevent yourself
from doing that, all you need is a fair amount of luck and patience, and
you'll make it to the end.

The problem is not doing anything stupid. For example, for me it was common to
die while attacking an enemy, or usually multiple ones in a swarm, even though
I had the items to escape them _right_ there in my inventory. A simple zap
with a wand of digging and you'll drop to the level below and make your
escape.

After a while, if I got myself in a pickle, I'd just open the inventory
screen, read through it a few times, go for a cup of tea or a good night's
sleep. When I figured out a solution, I would continue the game. It is, after
all, turn based so there is no hurry.

It's great fun.

~~~
viraptor
Sounds like playing Spelunky. "Of course throwing the rock upwards is a risky
and stupid idea, why did I try to do it again?" But there, the time is working
against you so no breaks... One day I'll stop throwing stuff, running near
spikes, angering shop keepers, running into bones, and all the other stupid
stuff and maybe finally win!

~~~
eru
I've won Spelunky only a handful of times. (I suggest playing with the fan
made patches for the gamemaker version.)

But, I've seen sub ten minutes run on Youtube using only the original items,
and no hearts lost.

------
agentgt
I never could get into NetHack. Even today I find the game off-putting and I
love rogues. I can't decide way. I think its a combination of the interface,
targeting system, and spoiler knowledge required.

ADOM was my first love around 1995 I believe. It recently has had a revival
but it's still showing its age particularly in the interface. I don't expect
Rogue interfaces to be easy but I do expect them to be semi efficient since
you are using a keyboard.

Really the only classic rogue games today that have decent interfaces (control
input) that I like are Brogue and DCSS.

~~~
netnet
The thing about Nethack is that it isn't so much a game as an elaborate joke.
You don't win by being good, you win by memorizing all of the tricks. And it's
only fun if you play on #nethack on irc.freenode.net, because then you can
kibbitz with other players, they can watch your game, you can fall into
addiction together, laugh about ridiculous situations involving cockatrices,
etc. It gets boring after you win a couple of times, there isn't really much
difference between the classes.

I thought DCSS was boring, 15 runes is way too much of a slog and that's with
an easy class. If it wasn't so grindy I would like it a lot more, the skills
are fun.

ADOM is similarly just way too long and you can't reasonably beat it without
spoilers.

Brogue is perfection. You should try playing in the weekly random seed
contests on the forum.

~~~
lfowles
>I thought DCSS was boring, 15 runes is way too much of a slog and that's with
an easy class. If it wasn't so grindy I would like it a lot more, the skills
are fun.

It's only 3 runs for minimal ascension, right? It's as grindy as you make it..

------
karamazov
Does anyone know how large the codebase is?

~~~
lomnakkus
sloccount says:

    
    
        Totals grouped by language (dominant language first):
        ansic:       233396 (95.05%)
        cpp:           7250 (2.95%)
        yacc:          2846 (1.16%)
        perl:          1161 (0.47%)
        lex:            579 (0.24%)
        sh:             210 (0.09%)
        awk:             90 (0.04%)
        sed:             11 (0.00%)
    

EDIT: That's the recent version 3.6.0

EDIT#2: Here's the cloc output:

    
    
        https://github.com/AlDanial/cloc v 1.66  T=1.76 s (266.7 files/s, 181757.6 lines/s)
        ---------------------------------------------------------------------------------------
        Language                             files          blank        comment           code
        ---------------------------------------------------------------------------------------
        C                                      271          24996          32675         220107
        C/C++ Header                           159           2950           4398          18318
        C++                                      5           1033           1097           6070
        yacc                                     2            320            146           2846
        Perl                                    11            280            501           1171
        Windows Resource File                    5            164            175            909
        lex                                      2             37             58            484
        DOS Batch                                3             43             14            327
        R                                        1              8              6            287
        Bourne Shell                             4             34            118            214
        Windows Module Definition                2              7              0            141
        Pascal                                   3              2              0            137
        awk                                      1              6             58             90
        sed                                      1              0             12             11
        ---------------------------------------------------------------------------------------
        SUM:                                   470          29880          39258         251112
        ---------------------------------------------------------------------------------------

~~~
sho_hn
cloc ([http://cloc.sourceforge.net/](http://cloc.sourceforge.net/)) improves
over sloccount.

------
busterarm
I consider myself fairly good at roguelikes, but surprisingly I only have one
Nethack ascension. For some reason I'm just not as motivated with that game as
I am with DCSS or Ragnarok/Valhalla.

Most of the time though I just play Brogue. Item identification through use
and the game trying to provide everything you need to win let's me optimize
around the items I get and not optimize around some set strategy.

------
Isamu
I did enjoy long hours playing Nethack.

But you know, Rogue was win-able.

~~~
robocaptain
My problem with Nethack was that it actually becomes too win-able, once you
know the dominant strategy. There is very little variability in building a
successful "ascension kit".

Early game strategies can vary and some can be quite fun (healer/pacifist run)
but in my experience the "sameness" sets in once your strategy becomes "step
1: get wand of wishing".

Of course you don't HAVE to use that wand. But it's there.

~~~
SwellJoe
I think my favorite games are when I don't have a wand of wishing, but I still
end up obtaining most of a decent ascension kit, anyway. It's very satisfying
in a way that few "grinding" games are. Especially that moment of getting
dragon armor "the hard way".

I think knowing what the ascension kit contains doesn't necessarily break the
fun or the challenge of the game. It just makes it possible to win (whereas,
while flying blind, you probably won't win the game given a normal human life
span and a normal working adult's amount of available free time and
willingness to keep playing and experiencing YASD after YASD).

I've seen folks suggesting NetHack is not a good game, because it requires so
much spoiling in order to be winnable. But, I kinda enjoy reading the lore.
It's part of the game for me; just because it happens on the internet rather
than in the game terminal doesn't make it less fun.

~~~
Nadya
Slightly off-topic tangent:

 _> I think knowing what the ascension kit contains doesn't necessarily break
the fun or the challenge of the game. It just makes it possible to win
(whereas, while flying blind, you probably won't win the game given a normal
human life span and a normal working adult's amount of available free time and
willingness to keep playing and experiencing YASD after YASD)._

I didn't know what "YASD" meant so had to search it. Neat! I learned something
new.

And on that same note, there is an entire game based entirely around
YASD/YAAD! "I Wanna Be The Guy" a game about dying in a million different
unpredictable and stupid ways combined with many ways to kill yourself through
user error or forgetfulness.

I'm not sure if the completion of IWBTG is at all comparable with NetHack as
I'm not too familiar with NetHack.

~~~
lfowles
It's also about memorizing the tricks. I would recommend finding videos of it
from Awesome Games Done Quick or Summer Games Done Quick. Bonus! An even more
challenging variant exists: I Wanna Be The Boshi.

Here's the Boshi speedrun, it's entertaining even if I would never want to
play myself.

[https://www.youtube.com/watch?v=b8GlqtSJxmk](https://www.youtube.com/watch?v=b8GlqtSJxmk)

------
cubano
Not me.

In the 80's and 90's, I decided to do other silly things with my life, like
becoming a professional guitarist and being a Dad.

I know I know...how irresponsible. :)

