たいとるめんどう [プログラム関係]
JavaScriptなゲームエンジンちょっとずつ作ってます。
とりあえず、今日は加算表示や透過表示をできるようにしました。
Javaでこういうのできるエンジンつくろうとしたこともあったんですが、
ハードウェアの力を借りられないので上のSSみたいに2000個もスプライト表示すると
FPSが一桁になったりして使い物にならなかったり。
反面、ハードウェアの力を借りられるC++だと加算透明で2000個表示しても
Core2Duo2Ghzの20%程度しかCPUパワー使わないのですごい満足。
スプライトの移動処理はJavaScriptで記述するんですが、
こいつも予想してたより軽快に動いてくれてなにより。
一応プログラミング的なメモ。
・ビルボードの描画はDrawPrimitiveUPを使用。最初Primitiveを使おうと思ったけど、
毎回頂点情報転送するとかえって重い。使い方が間違ってるのかも。
どちらにせよPrimitiveUPで今のところ十分な速度出てるので問題なし。
・メモリが時間と共に食いつぶされてくのは勝手にJITのせいだと思い込んでたけど、
たんにv8::HandleScopeを利用してないせいだった。最低でもゲームループの頭で
HandleScopeつくっとかないと、JavaScriptの一時変数がどんどんメモリ食ってく。
最終的にメモリリークで落ちる。
TODO:
・テクスチャを扱うためのオブジェクトを容易。
・キー入力を受け取るためのJavaScriptオブジェクトを用意する。
・二倍描画できるようにする。(フルスクリーンは対応済み)
・配布する時を考えて、リソースとJavaScriptソースをパックする方法を考える。
・音関係は後回し。多分そんなに大変じゃないよね。
at 2011-7-23 3:56 | Comment(0)