NetHackJPは、ローグライクゲームの金字塔 NetHack5.0 を日本語で快適にプレイできるようにすることを目的とした非公式プロジェクトです。(対象OSはWindowsとUbuntu(WSL)のみ)
Windows GUI版 Nevanda_5.0.0_32x32タイル使用
Windows curses版。`OPTIONS=windowtype:curses,align_message:right`指定
Windows tty版
Linux X11版 デフォルトタイル使用
Linux Qt版 PixeHackタイル使用
---
さっそくダウンロードしてNetHackを日本語で遊んでみてください!
ゲームをプレイするには、GitHubのReleasesページ からビルド済みのZIPファイル(Windows用およびLinux用)をダウンロードしてください。
※Android版をプレイしたい場合はGoogle PlayのDartHackのページからインストールしてください
※最新の開発版をプレイしたい場合はご自身でビルドする必要があります(ビルド方法は後述の「開発者向け情報」を参照してください)。
※参考 : NetHack 5.0.0 Windows Port
-
ダウンロードしたZIPファイル(
NetHackJP-5.0.0-*-windows.zip)をすべて展開してください。 (※ZIPファイルの中にファイルがある状態で実行ファイルを起動しないでください) -
必要であれば、ご自身の環境に合わせてNetHackの設定ファイルを編集してください。 NetHackに関連するフォルダの場所と名前は、次のコマンドで確認できます。
nethack.exe --showpath
設定は
.nethackrcを編集してください。一度NetHackを起動すると、nethackrc.templateからコピーされて自動作成されます。 その後、作成された%USERPROFILE%\NetHackJP\.nethackrcを編集してください。 -
次のどちらかのファイルを起動してください。
NetHack.exe(コンソール版)NetHackW.exe(GUI版)
-
GitHubのReleasesページ から最新の
NetHackJP-5.0.0-*-linux.zipをダウンロードしてください。 -
ターミナルでZIPファイルを解凍し、展開されたフォルダへ移動します。
unzip NetHackJP-5.0.0-*-linux.zip cd NetHackJP-5.0.0-*-linux
-
必要に応じて実行権限が付与されているか確認・付与してください。
chmod +x nethack nethackX11 nethackQt nethack.bin
※ GUI で Qt 版(Qt6)を使用する場合は、別途
fcitx5-frontend-qt6パッケージ(IM 入力用)と CJK フォント(fonts-noto-cjk)の導入を推奨します。 -
次のいずれかのスクリプトを起動してください。
./nethack(コンソール版 TTY / ncurses)./nethackX11(GUI版 X11 - 黒背景・白文字表示)./nethackQt(GUI版 Qt6 - 日本語入力はQT_IM_MODULE=fcitxを自動設定)
※ GUIモード起動時に日本語や墓石の文字が白四角(豆腐文字)で表示される場合は、環境に日本語 CJK フォントパッケージを導入してください(例: sudo apt update && sudo apt install -y fonts-noto-cjk)。
WSL / Linux で X11 版(./nethackX11)を起動し、#名前 #記念碑 #虐殺 等で日本語を入力する場合、別途 XIM(インプットメソッド)サーバの設定が必要です。
- fcitx5 環境(Ubuntu / Debian 系の現行デフォルト)の場合:
sudo apt install -y fcitx5 fcitx5-modules fcitx5-mozc fcitx5-frontend-gtk3 # ~/.bashrc に追加(ログインシェルでも確実に効くよう ~/.profile にも) export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export SDL_IM_MODULE=fcitx # WSL (WSLg) の場合は Wayland との競合を防ぐため以下で起動: fcitx5 --disable=wayland,waylandim -d # 通常の Linux X11 の場合: # fcitx5 -d
- ibus 環境(従来の Ubuntu):
export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XMODIFIERS=@im=ibus ibus-daemon -drx
- X11 版を起動:
起動直後に stderr に
XAPPLRESDIR=./playground ./playground/nethackW
XIM: connected to input methodと出れば fcitx5/ibus との接続に成功。XIM: XOpenIM failedと出る場合は上記環境変数やデーモンの起動状態を確認してください。
※ 起動時に XIM: XOpenIM failed ... falling back to XLookupString (ASCII only) と表示された場合でも、英語/ASCII の入力は動作します。fcitx5 を起動後に新しいターミナルで起動してください(既存ターミナルでは ~/.bashrc が読み込まれません)。
.nethackrcに設定できる各種オプションやゲーム内容に関する説明は、Guidebook_JP.txtを参照してください。
Windows版およびLinux(X11)版では、ゲーム内での日本語入力・表示に対応しています。以下の項目で日本語と英語のどちらも使用可能です。
- 主人公キャラの名前
- アイテムやモンスターへの命名(名前付け)
- 階層ごとのメモ
- 「願い(wishing)」の指定
- 「虐殺(genocide)」の指定
- 魔法のマーカーでの書き込み(巻物・呪文書)
- データベースの検索
- その他いろいろ
| 機能 | 日本語入力の例 | 英語入力の例 | 補足 |
|---|---|---|---|
| 願い (Wishing) |
祝福された+2虐殺の巻物耐毒の魔除けスピードブーツグレーター・デーモンの死体7個の魔法のマーカ |
blessed +2 scroll of genocideamulet versus poisonspeed bootscorpse of greater demon7 magic markers |
祝福・呪い、強化値、個数、状態(死体・缶詰・像など)を含めて指定できます。「鑑定」や「スピードの靴」等のJNetHack慣用句も認識します。 |
| 虐殺 (Genocide) |
マスター・リッチ銀色ドラゴンマインド・フレイヤLnone または nothing |
master lichsilver dragonmind flayerLnone または nothing |
モンスターの種族名やシンボル文字(クラス記号)を指定します。none や nothing、空入力等で虐殺を拒否(不虐殺の誓いを維持)できます。 |
| 魔法のマーカー (Writing: 巻物) |
識別 または 識別の巻物解呪 または 解呪の巻物虐殺 または 虐殺の巻物鑑定(JNetHack互換)コンテキスト・スイッチ(外見ラベル) |
identify または scroll of identifyremove cursegenocideELBIB YLOH(外見ラベル) |
白紙の巻物に対して使用します。正式名(「識別」等)だけでなく、未識別時のラベル名やプレイヤーが付けた名前(call名)でも書き込めます。 |
| 魔法のマーカー (Writing: 呪文書) |
識別 または 識別の呪文書火の玉 または 火の玉の魔法書連鎖雷撃 |
identify または spellbook of identifyfireballchain lightning |
白紙の魔法書に対して使用します。「呪文書」「魔法書」のどちらの表記でも認識します(※呪文書は識別済みの名前でのみ書き込み可能です)。 |
NetHack はテキスト(ASCII文字)だけでなく、美しいグラフィック(タイル)でプレイすることも可能です。
※NetHack 5.0対応のタイルセットを使用する必要があります
- 好みのタイルセットをダウンロードし、BMP形式に変換します。
- 参考リンク
.nethackrcを開き、以下の例のように設定を追記または修正します。OPTIONS=map_mode:tiles OPTIONS=tile_file:Nevanda_5.0.0_v2_32x32.bmp OPTIONS=tile_width:32 OPTIONS=tile_height:32
tile_file: 使用する BMP ファイル名(または絶対パス)を指定します。tile_width/tile_height: タイルのピクセルサイズ(例: 32x32 なら32)を指定します。
- 相対パスで指定する場合、実行ファイル(
NetHack.exe/NetHackW.exe)と同じフォルダに置くのが確実です。 - サブフォルダに置く場合は
OPTIONS=tile_file:tiles/your_tiles.bmpのように相対パスで指定できます。
Linux版 (X11 GUI) でも、Windows版と同様に好みのタイルセット画像(XPM形式等)を .nethackrc で柔軟に指定できます。
- 好みのタイルセット(XPM形式等)を用意し、実行ディレクトリ(解凍したフォルダ内)に配置します。
.nethackrcを開き、以下の例のように設定を追記または修正します。OPTIONS=windowtype:X11 OPTIONS=map_mode:tiles OPTIONS=tile_file:x11tiles_32.xpm OPTIONS=tile_width:32 OPTIONS=tile_height:32
tile_file: 使用するタイル画像ファイル名(またはパス)を指定します(省略時は既定のx11tiles)。tile_width/tile_height: 1タイルのピクセルサイズ(例: 32x32 なら32)を指定します(省略時は画像サイズから自動判定)。- X11 リソース(
NetHack.ad/~/.XresourcesのNetHack.tile_file,NetHack.tile_width,NetHack.tile_height)での指定も可能です。
NetHackでは、ゲーム内のメッセージに合わせてお好みの効果音(WAVファイル)を鳴らすことができます。
- 効果音として使用したいWAVファイルを用意し、任意のフォルダ(例:
sounds)に配置します。 .nethackrcを開き、以下の設定を追記または修正します。# 効果音ファイルが置かれているフォルダの絶対パスを指定します SOUNDDIR=C:\path\to\NetHackJP\sounds # SOUND=MESG "メッセージの正規表現" "ファイル名" 音量(0-100) SOUND=MESG "(ド♪)" "se_squeak_C.wav" 100 SOUND=MESG "地雷が爆発した[!!]" "sepack/sepack_12_damage_floor.wav" 100 SOUND=MESG "は(上|下)の階へ逃げた[!!]" "sepack/sepack_23_escape.wav" 100
SOUNDDIR: WAVファイルが格納されているベースとなるディレクトリを指定します。SOUND=MESG: メッセージに対する効果音のマッチング設定です。"メッセージの正規表現": ゲーム内で表示されるメッセージ(正規表現が使用可能です)。"ファイル名": 再生するWAVファイル名(SOUNDDIRからの相対パス)。音量: 0〜100 の数値で指定します。
GUI版(NetHackW.exe)では、ステータスウィンドウやメッセージウィンドウの配置とサイズを自由にカスタマイズできます。特にステータスウィンドウを左右に配置した際、項目を縦に並べて表示する機能が追加されています。
.nethackrc を編集して以下のオプションを組み合わせます。
-
ステータスウィンドウを縦並びにする
OPTIONS=align_status:left(またはright) を指定すると、ステータス項目が縦1列に並びます。 ※HP/最大HP、魔力/最大魔力、レベル/経験値は自動的に同じ行にグループ化され、見やすく表示されます。 -
ウィンドウサイズを個別に指定する 以下の専用オプションを使用して、メッセージウィンドウとステータスウィンドウのサイズを独立して設定できます。
msw_msg_cols/msw_msg_rows: メッセージウィンドウの幅(列)/ 高さ(行)msw_stat_cols/msw_stat_rows: ステータスウィンドウの幅(列)/ 高さ(行) ※従来のterm_cols/term_rowsも使用可能ですが、複数のウィンドウで異なる値を設定したい場合は上記の専用オプションを使用してください。
# メッセージウィンドウを上側に6行分で表示
OPTIONS=align_message:top,msw_msg_rows:6
# ステータスを右側に幅15文字分で表示(縦並び)
OPTIONS=align_status:right,msw_stat_cols:15設定例が .nethackrc(または nethackrc.CUI、nethackrc.GUI)に記載されていますので、そちらも参考にしてください。その他の詳細なオプション等については Guidebook_JP.txt を参照してください。
ゲーム起動時に、セーブファイルが存在すればファイル一覧を表示し、その中から選択してゲームを再開できます。
名前を入力する際に空入力(Enterを押すだけなど)を10回繰り返すと、セーブファイル一覧が表示されます。
また、セーブデータから職業、種別、性別、属性を読み取るようにしました。オリジナルでは名前だけしか読めない場合があったのを暫定処置的に修正しています。なお、オリジナルがこの処理を変更・修正されればそれに追従する予定です。詳細はDEVELOPMENT.mdに記載しています。
このプロジェクトは個人によって開発・保守されています。 もし本プロジェクトが気に入ったり、今後の継続的な開発を応援したいと感じていただけた場合は、 任意の支援(チップ)をいただけると大変励みになります。
※開発活動への支援は上記のボタンや本リポジトリの「Sponsor」ボタンから行えます。
開発者ビルドの手順、オブジェクト名ローカライズ方針、翻訳時のポイントやGit運用メモなどの開発者向けの情報は、DEVELOPMENT.md を参照してください。
本リポジトリは、オリジナルの NetHack 同様、NetHack General Public License に準じます。 ライセンスに関する詳細な情報は以下を参照してください。
- ライセンス本文: dat/license
- サブモジュール等の第三者コンポーネント: THIRD_PARTY_NOTICES
- JNetHack: 言わずと知れたNetHack日本語版の偉大なる総本山
- NetHack-wasm-webUI: ブラウザでプレイできる。日本語はリアルタイムに翻訳(変換)して表示している。
- NetHack-brass: 3.4.3ベースを日本語化してさらにいろいろ改造したもの
- NetHack-cn: NetHack中国語版
- …他にあれば追記する
- hackaholic: 通称「墓堀」
- NetHack Wiki
- NetHack Spoilers
- NetHack学習環境(NLE): NetHackを強化学習対象とするためのインターフェース
- nethack-mcp: 生成AIがNetHackをプレイするためのMCPサーバ
- NetHack-electron: electronでリッチなUIを実装
- …他にも見つけたら追記する