さくらんぼのlambda日記

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

Common Lispゲーム開発環境構築(Lisp実装の選定)

Lispの実装(インタプリタ/コンパイラ)には複数の実装が存在しています。ゲームの開発には以下の2種類がお薦めです。

SBCLはユーザのシェアが大きい処理系です。特徴としては速度が早いのが特徴です。
CLISPはユーザのシェアがそこそこ大きく移植性に優れている処理系です。これはCLISPは実行形態として仮想マシンを利用して実行されるから高い移植性を確保できているのだと思われます。

なお、シェアなどの情報は(http://xach.livejournal.com/271794.html)を参考にしました。

この2種類以外にもLisp処理系自体の選択肢は多数あります。しかし、以下の事項を考慮し2種類に絞っています。

  • lispbuilder-sdlが簡単&無料で利用できるか
  • (とりあえず)64bit Windowsでも動作するか
  • ノウハウが簡単に得られるか?

それぞれの項目については、以下で詳しく見ていきます。

lispbuilder-sdlが簡単に&無料で利用できるか

ゲームを作るには、音楽、絵を表示する必要があります。それを実現するためのライブラリとしてlispbuilder-sdlを想定しています。このライブラリが正式にサポートしているものとしては

  • SBCL
  • CLISP
  • Clozure CL
  • ECL
  • Lispworks (商用)
  • Allegro (商用)

があります。
ここでは、無料のものの、SBCLCLISP、Clozure CL、ECLが候補です。

(とりあえず) 64bit Windowsでも動作するか

Windowsでの動作についてですが、先程選択したもの4つのうち

  • Clozure CL

は、64bitと32bitでバイナリが違うせいでlispbuilder-sdlを利用する際に問題があります。
Windowsで利用できる処理系としてはSBCLCLISP、ECLの3種類になります。

ノウハウが簡単に得られるか?

http://xach.livejournal.com/271794.htmlのサイトを見ると
シェアがECLは低すぎます。情報収集時に困ると考えられます。

処理系まとめ

ここでは、Lisp処理系を3種類の観点で評価を実施しました。その結果が以下の表です。

lispbuilder-sdl対応 Windows対応 シェア
SBCL o o o
CLISP o o o
ECL o o x
Clozure CL o x x

いくつかの処理系のなかから、SBCLCLISPがゲーム開発には適しているとここでは結論づけておきます。