福澤テクノロジー

おっさんプログラマーが、主に技術的な話をするブログ。

ゲーム機用スクリプト言語

昔は、ゲーム機に乗せるスクリプトは自作するものだった。

僕も10年前のプロジェクトでスクリプト言語を作った。

ゲームに特化した言語で、データ型も4種類しかなかったが、プログラマでなくても

イベントや演出を作ることができ、スクリプト言語の持つパワーを感じた。

もっとうまく設計された言語を使えば、ゲームの生産性向上に大きく寄与するはずだ。

ゲーム内ではなくツール用としてはperlrubyを使っていたが、こういった強力な

言語がゲーム内でも使えるようになれば、開発スピードも上がりそうだ。

 

残念ながら会社が傾いて多くの社員がリストラにあい、僕も会社を離れることになって

この時作った言語を発展させる事にはならなかった。

 

転職先の会社で、新たにスクリプト言語を作ることになった。

会社の業務として作るのだが、作った言語の著作権を自分のものとする契約を結んだ。

(かなり大きな代償と引き換えだった。)

 

こうして作ったのが、Hayat言語だ。MITライセンスで公開している。

https://github.com/FUKUZAWA-Tadashi/Hayat.git

PSPNintendo DS 上で動作させた実績があり、製品として出荷されたものにも含まれている。

トレーディングカードゲームのような複雑なシステムを Hayat上で構築してちゃんと

動いていたし、開発していて結構さくさく作れた。HayatでなくC++で全部作っていたら

ものすごく大変だっただろう。

 

しかし、現在ではHayatは使わずにlua,squirrel,mrubyなどの他の言語を選択する方が良いだろう。

Hayatは一人で作っていたため改良のスピードが遅く、言語仕様としてはちょっと

面白いものになったと思うのだが、動作速度の点でかなり見劣りがする。

オープンソースにするのが遅すぎた。

元々rubyライクなものにする目標で設計したので、mrubyが出てきた現在となっては

Hayatを選択するメリットは無くはないものの、少ない。

 

結論は、ゲーム機用スクリプト言語としては今後は mruby を採用するといいんじゃないかな、という事。

 Nintendo や SCE が、開発ツールの中に最初から組み込んでくれるのがベストだと思う。

なんなら僕が組み込みの仕事をやりたいんだけど、どうですか Nintendoさん、SCEさん。