OneShotをmacOS上でプレイする
OneShotをmacOS上でプレイする方法をメモしておきます。 良いゲームなのでみんな買おうね!
以下の手順はネタバレを含む気もするので可能であればバイナリ公開を目指します。
ゲームのデータファイルのダウンロード
Steamで購入した後、SteamCMDなりwineなりを使ってゲームファイルをダウンロードし、$HOME/Library/Application Support/Steam/steamapps/common/OneShot
以下に配置します。
SteamCMD - Valve Developer Community
ゲームエンジンのビルド
OneShotはmkxpというフリーのRPGツクールクローンを改造したものをエンジンとして採用しています。
さらに、ここからフォークしてmacOS上で起動できるようにしたフォークであるsynglechanceが存在します。
一方、synglechanceは一部のゲーム機能が動作せず、完全なプレイは不可能です。そこで、synglechanceからフォークしてそれらの機能を実装しました。
ビルド時の注意点としては、SDL_soundが特殊なものであること、Rubyにパッチを当てる必要があることです。この2つのライブラリのコンパイルは以下のコマンドで行えます:
$ make -f make-thirdparty.mak
残りの依存ライブラリはhomebrewなどを利用して入れることができます。その後、以下のコマンドを実行することでビルドが可能です:
$ ./make-oneshot-mac.sh
Journalのビルド
OneShotが正常に動作するためにはJournalも必要になります。こちらもオープンソースでの再実装(途中)が公開されているので、きちんと動作するようにフォークしました。
ここで、pip上のpyinstallerはpyqt5と相性が悪いので、修正バージョンをインストールする必要があります:
$ pip3 install https://github.com/bjones1/pyinstaller/archive/pyqt5_fix.zip
また、Journal用の画像を_______.exeから取り出す必要があるのですが、この実行ファイルはupxによって圧縮されているので、展開した後に抽出する必要があります。
$ brew install upx $ upx -d _______.exe
展開後にResourcesExtractなどをwineで起動し、ビットマップをimagesディレクトリに抽出、pngに変換してからpyinstallerでバンドルにします。
$ python3 renameandconvert.py $ pyinstaller journal.spec --onefile --windowed
出来上がった_______.appも$HOME/Library/Application Support/Steam/steamapps/common/OneShot
以下に配置します。
あとはOneShot.appをダブルクリックすると起動します。