ちょっとご無沙汰しておりましたが、この度「イプシロン(Ypsilon)」という名前のソフトをリリースしました。
これはピンボールを遊ぶためのソフトではなく、ピンボールゲームを作るためのソフトの基盤になるものです。
そうです、アレです、AppleIIで見たアレを作るための最大の難関に挑んだソフトです:D
イプシロンの概要はこちら。
http://www.littlewingpinball.com/contents/ja/ypsilon.html
こちらはインターネットのスキームのニューズグループに流したリリース情報です。
http://groups.google.com/group/comp.lang.scheme/browse_thread/thread/929af95f9d27ef2c
さて、コンストラクションシステムの開発にはいくつかの要素が必要なのですが、GUIでパーツを配置したりワイヤリングしたりサウンドを関連付けたりといったことは実は簡単なのです。リトルウイングではエンジェルエッグ(1996)からそういったツールを作って使って開発を行っています。しかし問題はピンボールのゲームルールの記述にあります。
本格的なピンボールのルールはかなり複雑で、これをC/C++で間違いなく記述するのはかなり大変です、またGUIで記述するグラフィカルな言語だけでは書ききれないでしょう。さらにリトルウイングではWindows, Mac, 家庭用ゲーム機、ゲームセンター用のゲーム機向けにピンボールを開発することがあるため、それらに共通するコンピュータ言語システムが理想的です。リトルウイングが自社タイトルに使用するシステムとコンストラクションシステムが同じ基盤になってこそシステムに高い信頼性を得られると考えるからです。
そこで独自に言語を実装することを考え、様々な候補の中からScheme言語を選び「イプシロン(Ypsilon)」に着手したのは4年前になります:p
Schemeを選んだのは当初実装が簡単な言語であると考えたこと(これは勘違いでした:p、きちんと全部作るのは大変だと思います)、ガベージコレクション機能があるのでメモリーリークという見つけにくいバグがなくなること、マクロ機能によりピンボール用ドメイン固有言語を作りやすいこと、きちんとした規格仕様書があること(言語の設計からはじめると本末転倒になりそうだから)、などの理由からです。
途切れ途切れに開発していたので4年もかかってしまいましたが、なかなか良いものができたと思っています。これからピンボール向け機能を作り込んで行くという段階ですが、もしSchemeを知っていたり興味がある方は是非試してみてください。すべてのソースコードを含むファイルは下記からダウンロードすることができます。
http://code.google.com/p/ypsilon/
ドメイン固有言語: ウィキペディアhttp://ja.wikipedia.org/に「ドメイン固有言語」の項目があります。
「イプシロン(Ypsilon)」はYoshikatsuの「Y」から取った名前です。わたしは特に車の好きな人ではありません:p
– Fujita