NetHack / Rogueのつくりかた


ダンジョン生活を極め、最近マンネリだと感じる諸兄には、
遊ぶ楽しみだけでなく、
今度は創作する楽しみを味わうのも一興かと。


INDEX




JNetHackの作り方 / Windows編

 JNetHackのソースコードのコンパイルについて。

 JNetHack自体が英語版NetHackに対するパッチとなっている。unix上でこのパッチ当てにはその名もずばり「patch」というソフトを用いる。で、Windows上でどうやって英語版NetHackのソースにパッチを当てて日本語化するかというのがまず問題となる。

 私の場合は、古いバージョンのJNetHack 1.0.3 for Windows95の時には、まずPC-UNIX上でpatchを実行してからそのファイルをWindowsに持ってきた。だが、これとは別にUNIX上で使う文字コードの問題が発生する。ShiftJISコードではpatchがたしかうまくいかなかったので、JISコードで動作させたと思われる。使用したpatchのバージョンとかは不明。ちょっと昔のことなので記憶に自信はないが。で、Windows上で、nkfでShiftJISコードに変換を行った。

 コンパイラは、Microsoft製Visual C++ 4.0 Standard Edition(日本語版)を用いた。DOS用の16bitのCコンパイラの時にはNetHackをコンパイルするのは非常に困難なことであったらしいが、32bitのコンパイラでは特に技術的に難しいことはなかった。ファイル名もDOS上の8+3文字という制限がなく、UNIXの長いファイルが使用できるし、int型が16bitという制限もないし、メモリも十分に使うことができる。まるでGNU C Compilerをまんまパクったのではないかと思えるほどである。

 ちゃんと全ソースをコンパイルするにはコンパイラ・コンパイラのyaccとlexというツールが必要である。最近では既に処理が済んだソースも付いてくるので、必須ではなくなったようだ。昔からDOSで愛用してきたkmyaccを用いた。あとlexはどこかで拾ってきたと思うが、思い出せない。後述のCygWin32のflexを使ったかも知れない。yaccの代わりにbyaccだとかGNUのbisonでも構わないと思われるが。これらはまだ試していない。

 最近、CygWin32というCygnus Solutionsという会社が作ったWindows上でGNUのツール群を動かそうというソフトがある。しばらく前まではGNU-Win32というように呼ばれていた。GCCだとかflexやbisonが動くというので、バージョンbeta18の時にJNetHackのコンパイルに使ってみようとしたのだが、うまくいかなかったはずである。patchはうまく動くようなので、そのへんは活用している。
(bisonとflexについてはCygWinの物よりも、Windowsへ移植された物の方がうまく動くようである。JNetHackでなく、別件で試しただけであるが。)



JNetHackに独自要素を組み込む


 沼田一成氏によるNetHackの日本語版JNetHack 1.0.5.xにおいて、元の英語版から大きな変更が加えられている。Figher(戦士)というクラスの追加である。Valkyrie(ワルキューレ)と似てないこともないが(女戦士という点ではだが)。 Fが極めて特殊であるのは、美少女戦士セーラームーン(by 竹内直子)という少女漫画作品の登場人物や設定を持ち込んでいることである。クエストの迷宮の目的は幻の銀水晶を奪還することだったりする。

 美少女戦士セーラームーンはTVアニメ化され、アニメ版が本来の幼い女性視聴者ばかりでなく広くオタク層にまでブレイクした作品である。
 JNetHackにこれを入れるのには賛否両論あったようである。まあやったもの勝ちというか、ぜんぜんオッケーである。
 ただ、こういう流行物は風化するのが早いので要注意だろう。JGとかに入っている(?)こともあり、定番のゲームとして割と長い期間に渡って配布され続けるだろうから、なおさらである。

 (また、英語版NetHack TNGにおいては、Geekというクラスが追加されている。Geekとはハッカーのことである。ゲーム内容が内容なので、あまりサイバーパンクな雰囲気にはならないが、独自の世界を作っているというか、いい味を出していると思う。)

 セーラームーンだとかがオッケーということなら、他にもまだ色々とやってみるべきことは多いと思われる。



データ分離版ローグ


 1992年に、「データ分離版ローグ」というソフトが伊藤康史氏によって作成されている。太田純氏によって日本語化された「ローグ・クローン2日本語版」をベースに、ゲーム中で使われるモンスターやアイテムの名前や各種のメッセージを外部のテキストファイルから読み込むように改造されたものである。気に入らない訳語だとかを差し替えるという需要があったのではと、その程度に当時の私は考えていた。この改造が真に意味するところに気がつかなかったのである。

 1999年1月に、風の谷のガンダルフ氏らによって「Leaf Rogue」という上記のデータ分離版ローグ用のデータが作成され、公開されている。このデータは、その名の示すように、Leafというソフトハウスの一連のパソコン用ゲームの世界観をベースにして作られたデータである。詳しくは下記に示すリンク先を参照されたい。
 こういう応用もアリかと大いに驚いたとともに目からウロコが落ちた思いである。
 → リンク: 「Leaf Rogueサポートページ」 , 「一次配布元サイト

Leaf Rogue
Leaf Rogue の スクリーンショット


 Leafによるビジュアルノベルの「雫」, 「痕」, 「ToHeart」等がLeaf Rogueの元ネタなのであるが、これらのゲームの登場人物をRPGに使うということについては先例がある。同社によるミニゲーム集「初音のないしょ」に収録されている「Leaf Fight '97」というRPGが存在する。おそらくこのLeaf Fight '97に触発されてLeaf Rogueが作られたのではないかと思われる。
 他にも、「GURPS(ガープス)」という汎用のテーブルトークRPGシステムに対するサプリメントでLeafのゲームの世界観を実装するという例も存在する。
 → リンク: 「ガープス・ミクスト リーフス」 , 「リーフの神殿
 (また、RPGとは少し異なるが、「Magic: The Gathering」以降に巷で流行しているトレーディングカード・ゲーム化もされている。)

 特に、「電波」と呼ばれる超能力を扱った作品の「雫」と、「鬼」の血脈を扱った作品の「痕」は、RPGに向いたストーリーであると言えるだろう。 とはいえ、これをRogueと結びつけのは、なかなか考え付かないことだと思う。
 この路線で、Tacticsというソフトハウスの「MOON」, 「One - 輝く季節へ」等を元ネタにした「Tactics Rogue」というものも作られているようである。

 作り方は簡単で、テキストファイルを編集するだけである。 スペースオペラ、ホラー、サイバーパンク等、何でもアリであるので、チャレンジし甲斐があるのではないだろうか。



余談

 前節にてテーブルトークRPGについて触れたのであるが、その辺の補足。

 (以下書き中)

 TSR社 「Dungeons&Dragons (ダンジョンズ&ドラゴンズ)」
 GDW社 「Traveller (トラベラー)」
 Chaosium社 「Call of Cthulhu (クトゥルフの呼び声)」
 Stieve Jackson Games社 「GURPS(ガープス)」

 Wizard of the Coast社 「Magic: The Gathering」

 ホビージャパン社「RPG Magazine」誌が、「GAMEぎゃざ」誌に雑誌名変更。





JNetHackのページに戻る
ホームに戻る