ONIGIRI

A 2D game development library in Scala

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
inserted by FC2 system