赤宿 = Red Inn

素人の試行錯誤と2Dローグライク制作 (GUI)

r/rldevのチュートリアルをやる ~ Part1

内容

 Roguelike Tutorial Revisedのlibtcod編をやっていく。今回はPart 1のみ。最近慣れてきたCLI上で、シェルやGitを使っていく。そちらがメインで、簡単な解説付き。

注意点

 チュートリアルの参照先の環境構築法が古い

 使用されているlibtcodpyは導入が難しく、メモリリークの危険性もある。代わりに、python-tcodCLIで手に入れて使う。libtcodpyと互換性があるAPIのため、共通のチュートリアルに沿うことができる。

 そもそも、Rogue BasinにもPython3 + libtcod (python-tcod) のチュートリアルがある(Python2ではなく)。こちらでは、vshの仮想環境にライブラリを入れている。

 また、libtcodには、Sprite等が無い。もしもGUIのゲームを作るなら、PyGameなどにUIを任せ、libtcodはModelのEngineとして使う。または、全く別の環境で作る。

 今回はAscii風画面のゲームを作って満足する予定なので、python-tcodで問題無かった。

環境構築 (Mac向け)

 パッケージマネジャ経由で入れるだけで済む。仮想環境ではなくグローバル環境に入れた。

Python3 + pip3

 ターミナルを開く。python --versionを入力しEnterを押すと、初期のMacでは2系を示すはず。

$ # Homebrewが無ければインストール
$ brew --version || ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ # Python3が無ければインストール(pip3も付いてくる)
$ python3 --version || brew install python3

 ||演算子については、man shman bashに載っている。manで起動されるページャ(less)の操作法は、hキーから見られる。

python-tcod

 pipでインストールすれば、パスが通り、すぐに使えるようになる。(import tcodとできる)

$ pip3 install tcod

 ライブラリ用のフォントをこちらからダウンロードしておく。今回は、チュートリアルで使用されているフォントを使う。(フォントの規格に合わせた設定が必要な模様)

VS Code(エディタ)

 .pyファイルを編集している内に、補完(予測)が利くプラグインをエディタに勧められ、気づけばリッチな環境になっていた。

Vimでコーディングする機会は無いかもしれない。

Git

 初期でMacに入っているものは最新版ではない。この際、Homebrewで新しく入れた。

$ git --version
<古いバージョン>
$ brew install git
$ git --version
<新しいバージョン>

 チートシートを刷る。出力を着色するように設定しておく。

$ git config --global color.ui auto
$ git config --list
credential.helper=osxkeychain
...
user.name=...
user.email=...
color.ui=auto

Coding

 Part1 Drawing the '@' symbol and moving it aroundをやっていく。

Git

 git initで現ディレクトリを初期化。

サブコマンドに補完を利かせる

 この記事が参考になる。(ただし、.bash_profile内でsource ~/.bashrcとしておく必要があると思う)

$ sudo find / -name git-completion.bash

 fishシェルでは、特に設定は要らなかった。

.gitignore

 監視から除外するファイルを設定するファイル。gitによって自動的に利用されるが、特に.gitignoreを編集するコマンドは無い。自分で書いた。

$ cat << EOS > .gitignore
> .DS_Store
> __pycache__/
> EOS
$ ls -AF
.git/    .gitignore

 here documents <<を使って書いてみた。where式に近いと思う。

module管理

 Python3には名前空間があるとか。今回は__init__.pyを設置した。

ファイル管理

 git add現在のファイルの状態をコミット予約する。ファイルの移動・削除はgit mvgit rm経由で行う。(継続した履歴を付けるため)。

 実はgit guiGUIツールを起動できるみたい。ファイルの移動などは、GUIの方が楽そう。でも先にCLIを身につけてみる。

git commit

 Part 1を終えた段階で記録を付ける。@を動かせるようになった。

f:id:samba_4e:20181226170515p:plain

 今後も習得をCLIに絞る方向性で行く。