ONIGIRIについて
ONIGIRIはプログラミング言語Scalaで書かれた2Dゲーム制作のためのライブラリです。内部はJava2D、Swingを利用しており、2Dゲームを作る上で良く使う機能や処理を用意しています。ウインドウを出したり、メインループを実装したり、絵を読み込んだり、アニメーションさせたりと言った部分を簡単なAPIで処理できるようにしており、非常に少ないコード量でゲームプログラムの雛形を作ることができます。
というのは建前で、Scala勉強してみるついでに書いてみるか~とある日思い立ってなんとなく思い込みと妄想だけを糧に作りました、作っています(現在進行形)。
とまぁ、こんな感じの文章でこのページがそれらしく見えるようになったかな(ぁ。 具体的には、以下のようなコードでキー入力受付やメインループを備える秒間50フレームのウインドウを出せます。最後の引数をtrueにすればフルスクリーンになります。
でも、なんか遅い気がする。スプライト300個出したりすると処理しきれなくなる。BufferStrategy使って、compatibleなBufferedImage作って~としてるんですが、何か良い方法他にあるのかな……。
import onigiri._ object GameMain { def main(args:Array[String]):Unit={ new GameWindow(640,480,32,50,false) } }
Scalaについて
ScalaはJava仮想マシン上で動作する簡潔な言語です。.NET FrameworkやAndroid上でも実装が進められています。 関数型言語とか色々書かれているけど、ふつーにオブジェクト指向言語的に使えて、対話型のインタープリターでの実行も可能なので、お手軽っぽい感じがします。だからきっとお手軽です!
実装状況と予定
version0.3が最新版です。version0.3では、文字列描画処理、レイヤーもどき、アニメーションスプライトなどの機能を追加し、いくつかのバグを修正しています。
実装済み
機能 | 実装バージョン |
---|---|
レイヤー機能 | version 0.3 |
文字処理機能 | version 0.3 |
データ保存・読込機能 | version 0.3 |
アニメーションスプライト機能 | version 0.3 |
ウインドウ/フルスクリーン表示 | version 0.1 |
キー入力 | version 0.1 |
メインループ機能 | version 0.1 |
スプライト機能 | version 0.1 |
実装予定
以下のリストは、これから実装する予定のものです。というか妄想です。
- サウンドAPI
- ジョイスティックAPI
- データ暗号化・複合API
- 画像エフェクト機能
- 2D物理エンジン
- 3D描画用API