去年の12月7日にまさかの新バージョン3.6.0がリリースされたNetHack。それから1年経ったのでその後の状況で興味があったことを書いてみる。
(これはRoguelike Advent Calendar 2016 7日目の記事です。)
新しくなったこと
NetHackが新体制になって一番驚いたのは、開発中のソースがGitHubに公開されるようになったこと。 NetHackと言えば伽藍モデルの代表みたいなところだったのに…。 ということで現在GitHubにあるソースを3.6.0リリースと見比べてみる。
例によって:
- 種族
- 職業
- クエスト
- 特殊レベル
- モンスター
の数なんかは無変更。パラメータは微妙に変わっているものもある。そしてまた.desファイルが少し拡張されてて、CASE文みたいなのが追加されている。
細かい変更点は例によってdoc/fixes36.1にまとめられているのだけど、例によって長い(現時点で559行)ので、軽く眺めて興味深いものをいくつか。 (ちなみにfixes36.0はサクシャさんによる和訳が分かりやすい。)
"wielding Demonbane prevents demons summoning friends"
デーモンベーンと言えば外れ聖器の代表だったけど、これってかなりの強化じゃなかろうか。悪魔が悪魔を召喚して大騒ぎ、ってのが防げるし。 その他のベーン系も多少強化されてるので使い道ができるかもしれない。
"naming Sting or Orcrist now breaks illiterate conduct"
実際にはこれ使うことはまずないんだけど、「あれって実際に書いてるんだ」という驚きがあった。
新しくなっていないこと
今どき大きめのソフトウェアなら新規機能を実装する開発ブランチとバグ修正のみを行う保守ブランチを分けるのが普通だと思うのだけど、NetHackは昔ながらのスタイルで、現在のソースも大量にバグ修正が入りつつも新規機能もどんどん取り込んでいる。 これってリリースがなかなかできなくなる原因で、実際3.4.3のまま12年リリースがなかったのもこれのせいもあると思うんだけど、ここは変えるつもりはないらしい。
一応インタビューでは「次のバージョンがいつ出るかは分からないけど、少なくとも今回ほどは掛からないよ」って言ってるけど、若干疑わしい気がするよね。
ところでJNetHackは?
なかなかリリースできていなかったのだけど致命的なバグとかもあったので現状で一旦3.6.0-0.7をリリースしました。
手元ではなかなか十分なテストができないので、気付いたことがあればどしどし新規チケット登録して頂けると助かります。よろしくです。