WSL2でDCSS Webtile1人プレイ
この記事はRoguelike Advent Calendar 2022の1日目の記事です。
adventar.org
ざっくり自己紹介
NetHackや変愚蛮怒、Dungeon Crawl Stone Soup(以下DCSS)などのローグライクを遊んでいました。最近あまりプレイできていませんが……
また、趣味の一環としてDCSSのオンラインプレイサーバーを運用したりしています。
WebTiles - Dungeon Crawl Stone Soup
オンラインプレイサーバーの問題点
DCSSのオンラインプレイサーバーは非常に便利です。ありふれたブラウザのみでアクセスでき、自分で管理する必要もありません。
他人のプレイも観戦できますし、ランキングも残ります。
しかし、「他人にプレイを見られるのはちょっと……」という感想もそこそこありました。
なので、「ローカルのコンピュータで自分専用のプレイサーバーを簡単に立ち上げ、思う存分プレイする」手順を今回は紹介します。
WSL2をインストールする
DCSSのサーバーはLinux上で動いています。そこそこ前までWindowsPCの上でLinuxを動かそうとすると仮想PCソフトをインストールして、Linuxインストールして、それから……みたいないろいろ手順が必要だったため、慣れていないと遊ぶ前にやる気が枯渇してしまいがちです。
WSL2(Windows Subsystem for Linux 2)を使うことで、そこらへんの手順の簡略化を図ります。*1
下準備としてタスクバーの検索フォームから「Windowsの機能の有効化または無効化」を検索し、「Linux用Windowsサブシステム」「仮想マシンプラットフォーム」の2カ所にチェックが入っているかを確認します。入っていなければチェックを入れます。
Windowsキー+Xを押して「Windows PowerShell(管理者)」を起動します。「このアプリがデバイスに変更を加えることを許可しますか?」に「はい」を押します。
PowerShellのウィンドウが立ち上がってコマンド入力待ち状態になるので、インストールコマンドを打ちます。
wsl --install
インストールが終了したら、Microsoft Storeから「Ubuntu 22.04.1 LTS」を検索し、こちらもインストールします。「開く」を押します。
Linuxの画面が立ち上がります。
Enter new UNIX username: New password: Retype new password:
使いたいユーザー名(半角英数で)、パスワード(2回)を入力します。
Welcome to Ubuntu 22.04.1 LTS (略) (ユーザー名)@(マシン名):~$
と表示されたらひとまず完了です。
Linux設定もろもろ
プログラムのアップデート
sudo apt update && sudo apt upgrade
パスワードが要求されるので入力します。"Do you want to continue? [Y/n]" と表示されるので"Y"を入力します。
ビルドに使うプログラムをまとめてインストールします。
sudo apt install build-essential flex bison libsdl1.2-dev libsdl-image1.2-dev libncurses-dev ccache binutils-gold python3-pip
手打ちだと面倒なのでWindows Terminalを使ったほうがいいかもしれません……
sudo apt install python3.10-venv python3 -m venv dcss cd dcss
python仮想環境を作ってその中に入ります。
source ./bin/activate
python仮想環境を有効化します。プロンプトの頭に(dcss)が付きます。
pip install pyyaml tornado
使用するpythonライブラリを仮想環境内にインストールします。
git clone --recursive -b stone_soup-0.29 https://github.com/crawl/crawl.git dcss-0.29
ソース一式をダウンロードします。今回はDCSS 0.29を使います。
cd dcss-0.29/crawl-ref/source notepad.exe AppHdr.h
Windows側のメモ帳でファイルを開いて編集できます。
// #define DGAMELAUNCH ↓ #define DGAMELAUNCH #define DGL_MACRO_ABSOLUTE_PATH ↓ // #define DGL_MACRO_ABSOLUTE_PATH
2カ所修正します。
make WEBTILES=y SAVEDIR=saves
ビルドします。
python3 webserver/server.py
サーバーを起動します。(Ctrl+Cで停止します)
http://localhost:8080/#lobby にブラウザでアクセスします。
[Register]のリンクをクリックしてユーザー名とパスワードを設定し、ログインします。
[Play trunk]を押せばゲームが開始します。(edit rc)を押すことで設定ファイルが編集できます。
簡略化といいつつそこそこ長くなってしまいました……まあ備忘録として誰かの役に立てば幸いです。
次回はInfyさんの「好きなところを語る①:Cogmind」です!