Dive Into Source Code
この記事は Roguelike Advent Calendar 2013 の24日目の記事です。
今回の記事は「Roguelikeゲームのソースコードを読んでみよう、読みやすくする環境を整えてみよう」について書いてみます。
ソースコードのダウンロード
商用・同人ゲーム用でないRoguelikeゲームの多くがソースコードを公開しています。置いてある場所はsourceforge、github、自前サイトなど様々ですが、好きなタイトルのソースコードをダウンロードしてみましょう。
プログラムを完全に理解するにはC言語等の知識が必要ですが、特に知識がなくても読める部分(*bandのlib/edit/以下とか)もたくさんありますので、ダンジョン探索の合間の気分転換がてらにいかがでしょうか。
※Macでのやり方は(持ってないので)今回解説しません。
Windowsで
個人的にはDevasというソフトを使っています。→ ダウンロードページ
複数のフォルダから正規表現検索でき、動作もそこそこ軽いのでおすすめ。好みの外部エディタでファイルを開くこともできます。
ソースコード全体を読むのにはやや力不足ですが、特定のメッセージの周辺を探すには十分です。
他にもこんな便利なソフトあるよ! という人は是非教えてください。
Linuxで
伝統的なgrepではこんな感じですが:
% cd include % find . -type f -print | xargs egrep -n "Hallu[[:alpha:]]+"
ack-grepというツールを導入することで、さらに見やすく検索することができます。
% ack-grep "Hallu[\w]+"
ack-grepの導入は以下の通りです。
; apt-getでのインストールの場合 # apt-get install ack-grep ; YUMでのインストールの場合 # yum install ack
ブラウザで見る 〜GNU Global編〜
% cd nethack-3.4.3 % gtags ; GPATH, GRTAGS, GSYMS, GTAGSが生成される。 % htags --alphabet --line-number --symbol --xhtml ; HTMLディレクトリが生成される。これを適当なHTTPサーバで公開される場所に置く
ワンクリックで変数や関数の定義場所に飛ぶことができます。
また、emacsやvimなどエディタとの連携も可能です。
GNU Globalの導入は以下の通りです。
; apt-getでのインストールの場合 # apt-get install global ; YUMでのインストールの場合 # yum install global
ブラウザで見る 〜OpenGrok編〜
すいませんがOpenGrokのインストールに手間取ってるので後で追記します……
まとめ
ソースコード読むだけでもけっこう楽しいのでレッツチャレンジ。
次回予告
飛び入りの方が誰か入らない場合@deskullさんになると思います。