さくらんぼのlambda日記

lambdaちっくなことからゲーム開発までいろいろ書きます。

lispbuilder-sdlのインストール(CLISP編)

続いてCLISPの場合について説明します。
CLISPではSBCLと違って若干手間がかかります。

ASDFのインストール

CLISPではSBCLで標準添付のASDFというシステムが利用できないのでインストールします。ASDFCommon Lispではデファクトスタンダートといって良いライブラリなどの定義/読み込みのためのシステムです。

上記ファイルをDLし、CLISPをインストールしたディレクトリの下にsiteフォルダを作成しコピーして下さい。

lispbuilder-sdlのダウンロード

まずは、lispbuilder-sdlの公式サイト(http://code.google.com/p/lispbuilder/)から、バイナリをDLします。
このリスト(http://code.google.com/p/lispbuilder/downloads/list)から以下の10個(!)のファイルをDLして下さい。

  • win32-lispbuilder-sdl-gfx-binaries-2.0.13.tgz
  • win32-lispbuilder-sdl-ttf-binaries-2.0.9.tgz
  • win32-lispbuilder-sdl-mixer-binaries-1.2.11.tgz
  • win32-lispbuilder-sdl-image-binaries-1.2.10.tgz
  • win32-lispbuilder-sdl-binaries-1.2.14.tgz
  • lispbuilder-sdl-ttf-0.3.0.tgz
  • lispbuilder-sdl-mixer-0.4.tgz
  • lispbuilder-sdl-image-0.5.0.tgz
  • lispbuilder-sdl-gfx-0.7.0.tgz
  • lispbuilder-sdl-0.9.8.1.tgz

lispbuilder-sdlのインストール

ASDFをコピーしたsiteディレクトリにDLしてきたlispbuilder-sdl関連のファイルを全て展開します。
展開途中に同じファイルが存在するため、上書きするかなど聞かれると思いますが、全て上書きしてしまって問題ありません。

lispbuilder-sdlにパスを通す

CLISPからlispbuilder-sdlが認識出来るように設定ファイルを作成します。
ホームディレクトリに.clisprcというファイルを作成し、以下のように記述して下さい。

;; [CLISP]はCLISPをインストールしたディレクトリ
(load (compile-file "[CLISP]\\site\\asdf.lisp"))
(require :asdf)

(dolist (dir (directory "[CLISP]\\site\\*\\"))
  (pushnew dir asdf:*central-registry* :test #'equal))

;; load lispbuilder-sdl
(asdf:operate 'asdf:load-op :lispbuilder-sdl)
(asdf:operate 'asdf:load-op :lispbuilder-sdl-binaries)

なおホームディレクトリの位置が分からない場合は、clispを起動して以下の関数で確認できます。

> clisp
...
Welcome to GNU CLISP X.Y (YYYY-MM-DD) <http://clisp.cons.org/>
...
[1]> (user-homedir-pathname)
#P"C:\\Documents and Settings\\Your Name\\"

CFFIと関連ファイルのインストール

lispbuilder-sdlが利用するCFFIと関連ファイルをインストールしておく必要があります。

上記ファイルをDLし、CLISP直下のsiteディレクトリに展開して下さい。

これでインストール作業は完了です。

lispbuilder-sdlの動作確認

SBCLの場合と同様にCLISPを起動して

(asdf:operate 'asdf:load-op :lispbuilder-sdl-examples)
(sdl-examples:mandelbrot)

とすることで動作確認することが出来ます。

WindowsでのSBCLとCLISPのインストール

SBCLCLISPは公式のサイトにインストーラが置いてあります

インストーラを実行すると、適当な場所にインストールしてくれます。

インストールが完了したら、コマンドプロンプトを起動して、clispとかsbclとタイプすればLisp処理系が起動します。起動の確認はしておくと良いと思います。

ちなみに、こうして起動したLispは補完ができなかったり、履歴の機能が無かったりと色々辛いです。SLIMEを使うと補完、履歴などが利用できるのでそちらを使うことをオススメします。

lispbuilder-sdlとは?

ゲームを作るためには、マルチメディアの機能が必要となります。
マルチメディアの機能の例としては

  • ウィンドウの表示
  • 画像の読み込みと表示
  • 音楽データの読み込みと再生
  • ゲーミングデバイス(ジョイパッドとか)の入力

などがあります。

これらのマルチメディア機能を提供するライブラリとして、ここではlispbuilder-sdlを採用します。
SDLというC言語用のマルチメディアライブラリがありますが、lispbuilder-sdlはそのSDLLisp向けのラッパーライブラリです。

なお、この手順はCLISPSBCLで大分違うので分けて説明します。

lispbuilder-sdlのインストール(SBCL編)

ここではSBCLを使うひとのためのlispbuilder-sdlインストール方法について説明します。

lispbuilder-sdlのダウンロード

まずは、lispbuilder-sdlの公式サイト(http://code.google.com/p/lispbuilder/)から、バイナリをDLします。
このリスト(http://code.google.com/p/lispbuilder/downloads/list)から以下の10個(!)のファイルをDLして下さい。

  • win32-lispbuilder-sdl-gfx-binaries-2.0.13.tgz
  • win32-lispbuilder-sdl-ttf-binaries-2.0.9.tgz
  • win32-lispbuilder-sdl-mixer-binaries-1.2.11.tgz
  • win32-lispbuilder-sdl-image-binaries-1.2.10.tgz
  • win32-lispbuilder-sdl-binaries-1.2.14.tgz
  • lispbuilder-sdl-ttf-0.3.0.tgz
  • lispbuilder-sdl-mixer-0.4.tgz
  • lispbuilder-sdl-image-0.5.0.tgz
  • lispbuilder-sdl-gfx-0.7.0.tgz
  • lispbuilder-sdl-0.9.8.1.tgz

lispbuilder-sdlのインストール

SBCLをインストールしたディレクトリにsiteというディレクトリを作成して、そこに先程DLしてきたlispbuilder-sdl関連のファイルを全て展開します。
展開途中に同じファイルが存在するため、上書きするかなど聞かれると思いますが、全て上書きしてしまって問題ありません。

lispbuilder-sdlにパスを通す

SBCLからlispbuilder-sdlが認識出来るように設定ファイルを作成します。
SBCLをインストールしたディレクトリにsbclrcというファイルを作成し、以下のように記述して下さい。

(require :asdf)

;; [SBCL]はSBCLをインストールしたディレクトリ
(dolist (dir (directory "[SBCL]\\site\\*\\"))
  (pushnew dir asdf:*central-registry* :test #'equal))

;; load lispbuilder-sdl
(asdf:operate 'asdf:load-op :lispbuilder-sdl)
(asdf:operate 'asdf:load-op :lispbuilder-sdl-binaries)

ファイルを作成して、上記内容を記述すればlispbuilder-sdlの設定完了です。

CFFIと依存関係ファイルのインストール

次に、lispbuilder-sdlが利用するCFFIと関連ファイルをインストールしておく必要があります。

上記ファイルをDLし、lispbuilder-sdlと同じ場所(SBCL直下のsiteディレクトリ)に展開しておいて下さい。
これで、インストール作業は完了です。

lispbuilder-sdlの動作確認

SBCLを起動して、以下のフォームを入力してみて下さい。lispbuilder-sdlのサンプルが動作するはずです。

(asdf:operate 'asdf:load-op :lispbuilder-sdl-examples)
(sdl-examples:mandelbrot)

動作しましたか?
動作しなかった場合は設定ファイルや展開場所を確認してみて下さい。