zHz00
dNetHack -- это усложнённый и переработанный вариант NetHack.

На протяжении последних полутора месяцев я ежедневно играл в dNetHack по джва часа в день. Кончилось это тем, что dNetHack я прошёл. Об этом данный пост (или, как говорится, YAFAP, поскольку до этого dNetHack я не проходил, хотя проходил обычный NetHack и UnNetHack).

Можно сказать, что я прошёл "с первого раза", но технически это не так. Во время Junethack пару лет назад я уже пробовал играть в этот вариант NetHack, но тогда моей целью не было прохождение. Сейчас, когда я поставил себе целью прохождение, я действительно прошёл его с первого раза.

Из-за багов в игре дамп-лог не сохранился. Мне пришлось вручную выдрать его из имеющегося реплея, чтобы можно было похвастаться: pastebin.com/QB1aHTVK

На этом часть с хвастовством заканчивается, и начинается часть о самой игре.

dNetHack мне очень понравился. Он действительно сложнее обычного NetHack, но не настолько невыполним, как SLEX. В игре изменено несколько ключевых механик, например вместо Elbereth надо использовать специальные защитные знаки (ward), которые можно узнать из книг заклинаний (что делает их небесполезными даже для боевых персонажей). При попытке чтения книжки выдаётся запрос -- учить заклинание или защитный знак? Знаки учить проще.

Многие сопротивления теперь исчезают со временем (сопротивление ядам, слава Тюру, не исчезает). Трупы, дающие сопротивление, дают его всегда, но не навсегда: чем больше труп, тем на дольше можно получить сопротивление. О потере сопротивления выдаётся предупреждение. Сопротивления, полученные при коронации, больше не исчезают. Но чтобы получить коронацию, теперь надо выполнить Квест и поговорить после этого с квест-лидером.

В игре появилось очень много колдующих монстров, которые колдуют издалека. Можно очень сильно огрести, даже если есть magic resistance и вы уже коронованы.

Чтобы попасть в Геенну, теперь нужно добыть хотя бы три из девяти уникальных ключей, которые разбросаны по трём огромным новым ответвлениям подземелья. И вот эти ответвления -- основное, ради чего стоит играть в dNetHack. Ответвления называются "квесты вероисповедания" (alignment quest). Очевидно, на каждую веру приходится по квесту (lawful, neutral, chaotic). Названия квестов довольно условны, т.к. их можно проходить независимо от собственного вероисповедания.

По большей части раскладки всех уровней этих квестов фиксированы. Это вызывает у меня сомнения в реиграбельности dNetHack, но по первому разу мне было всё это изучать очень интересно.

Квест законопослушности самый неинтересный. Надо завоёвывать многоэтажную крепость. Хотя если сгенерируется башня с Платиновым драконом (12.5% шанс в каждой игре), там будет поинтереснее.
Фишка квеста хаоса -- его устройство. Куча лестниц и порталов, и все куда-то ведут. Но не туда, куда надо. В конце имеется босс, который страшно колдует и имеет 1400 хп.
Квест нейтральности -- просто бомба. Во-первых, он воссоздаёт патч SLethe для SLASH'EM. Кажется, dNetHack -- единственный актуальный вариант NetHack, который позволяет воочию увидеть все уровни SLethe почти без изменений. А во-вторых, вас ждут лавкрафтовские монстры, в т.ч. шогготы, спуск в бездну Эн-Кай (см. рассказ Курган), а на дне -- встреча с Великим Ктулху и Серебряный Ключ. И ещё там есть Некрономикон!

Геенна сильно переработана. Первые пять уровней идут лабиринты (но площадь уровня поменьше стандартной), потом башня Wizard of Yendor (как обычно, без входа), и, наконец, покои разных уникальных демонов (много новых). Демоны в dNetHack очень толстые и очень опасные. Здоровьечко у них от 500 до 1700 очков, при этом они часто колдуют страшные заклинания (например, окаменение!). Некоторые имеют специальные атаки, в том числе уничтожающие броню игрока (и защититься от этого невозможно, magic resistance не помогает).

На дне, в Санктуме, живёт ужасающий жрец в жёлтой шёлковой маске. И он действительно ужасающий.

Что я могу кратко посоветовать тем, кто решит пройти этот вариант NetHack?

1. Ознакомиться с соответствующими статьями NetHackWiki:

nethackwiki.com/wiki/DNetHack
nethackwiki.com/wiki/User:Chris/dNetHack/Rule_C...
nethackwiki.com/wiki/User:Chris/dNetHack/Pointe...
nethackwiki.com/wiki/Standard_strategy_-_dNetha...

Следует учесть, что многие сведения там устарели, но с этим я, скорее всего, что-нибудь сделаю через некоторое время.

2. Учиться пользоваться защитными знаками. Это будет помогать до конца игры. Механика нетривиальная, но будучи освоенной, она становится мощнее Elbereth. Так, знаки на полу рисуются со 100% шансом. А знаки, вырезанные на оружии, не деградируют со временем, что даёт надёжную защиту от морских монстров, к примеру. То, от чего в ванильном NetHack пострадали очень многие.

3. Помнить, что следующие вещи практически необходимы для прохождения: free action, drain resistance, средства для многократного лечения окаменения, ring of sustain ability (почти бесполезное в ванили). Также минимальное число здоровья для комфортной игры не 150-250, как в обычном NetHack, а минимум 500! И это если у вас есть half physical damage+half spell damage. Иначе лучше иметь 700+ хп. Если у вас будет acid resistance, это тоже сильно поможет.

4. Играть исключительно в версию, куда интегрирован Pokedex-патч. Он позволяет просматривать все характеристики моба на экране. На сервере ascension.run/ такой патч установлен. Поскольку документирован данный вариант довольно плохо, а новых монстров много, этот патч становится большим подспорьем.

5. Использовать code-diving, т.е. чтение исходников игры. В прииинципе, пройти можно и так (если есть Pokedex), но лично мне без данной методики было бы трудно. Я непрерывно просматривал исходники одним глазом (а другим -- нетхаквики). Так и прошёл.

Я тщательно документировал прохождение, что вылилось в 140 кб текста. Этот текст требует серьёзной обработки. Я этим рано или поздно займусь и тогда сделаю сагу о прохождении, а также несколько спойлеров по dNetHack. Пока предоставляю желающим дневник прохождения в сыром виде:
pastebin.com/CmBuZ05M

TTYREC соответствующих серий расположены вот тут: ascension.run/userdata/zHz/dnethack/ttyrec/ . Соответствующие даты помечены в дневнике в формате ===[YYYY-MM-DD]=== . На 90% дневник повторяет то, что я выкладывал в телеграм-конференции t.me/runethack . Дополнено это только некоторой служебной информацией, также исправлено несколько моих ошибок, связанных с недопониманием геймплея; скорее всего есть ещё ошибки, я исправил только то, что обнаружил случайно. Исправлены ошибки с номерами серий и проставлены даты, что должно немного улучшить юзабилити.

Описание каждой серии снабжено разделом "итоги", содержащим основные события серии, а также "что я узнал нового" (первые несколько серий этого раздела не содержат), содержащим обнаруженные мной отличия от ванильного NetHack.

Теперь у меня 9 вознесений, 8 на серверах ( scoreboard.xd.cm/players/z/zHz.all.html ) и одно локальное.

@темы: NetHack