JavaScriptでゲーム製作する時の最適化ノウハウ

86 views
Skip to first unread message

nakamura001

unread,
May 22, 2011, 3:40:31 AM5/22/11
to Akiba.js
nakamura001です。

「最適化のノウハウ有るよ」「最適化の資料知ってるよ」などの
情報をお持ちの方は是非是非、教えて貰えると嬉しです。

取りあえず、自分からはこんな感じ。

・iPhone/iPadのSafariで高速に画像を描画する方法
http://d.hatena.ne.jp/nakamura001/20110421/1303410412

・SafariのCanvasで小数点を含んだ位置に描画すると処理速度が落ちる(高速化するには整数の位置に描画)
http://d.hatena.ne.jp/nakamura001/20110522/1306048249

英語のサイトですが http://sebleedelisle.com/ で紹介されている
最適化手法はどれもクオリティが高くてお勧めです。

後、こちらは投稿が2年前と少々古いのですがSlideShareのこちらの
JavaScriptの最適化のスライドなども良かったです。
http://www.slideshare.net/madrobby/extreme-javascript-performance
~~(1 * "12.5")の話なんかは今だともっと良い方法が見つかってる部分なども
有りますが概ね役立つかと思います。

他にもJavaScriptのコードのパフォーマンス比較の為のプログラム投稿サイト、
jsPerf( http://jsperf.com/ )も良いです。

先ほどの ~~(1 * "12.5") による少数の整数化処理のもっと処理が速い書き方の
比較なども投稿されています。
http://jsperf.com/math-round-vs-hack/3

取りあえず、今はこんな所です。
また何か見つけましたら投稿しますのでみなさんも何か見かけましたら
投稿お願いします。

nyamadan

unread,
May 22, 2011, 10:22:28 AM5/22/11
to Akiba.js
お世話になってます、にゃまだんです。
とても参考になりました。

少数の丸め方ってなかなか独特な書き方があるんですね、驚きました。

あとtry - catchの有無の影響が無視できなさそうな気がしました。
何も考えずにtry - catch書かないほうが良さそうですね…。

---

ここからちょっとした情報です。

少し前の話ですがGoogle I/OのWebGLセッションでパフォーマンスを上げる方法が紹介されていました。
Chihiro Itoさんがまとめてくださっています。
http://webos-goodies.jp/archives/webgl_session_at_google_io_2011.html

Canvasを拡大したり、requestAnimationFrameを使ったりはWebGLでなくても多少効果あるかと思います。

また、セッションのQ&Aもまとめられていますので参考になるかもしれません。
http://games.greggman.com/game/webgl-techniques-and-performance/

nakamura001

unread,
May 24, 2011, 12:59:06 PM5/24/11
to Akiba.js
nakamura001です。

安易に try - catch はダメらしいですね。その辺り、開発版と
リリース版で良い感じに切り替えれる開発環境とか有ると
良いんですけどねぇ。

> 少し前の話ですがGoogle I/OのWebGLセッションでパフォーマンスを上げる方法が紹介されていました。
> Chihiro Itoさんがまとめてくださっています。http://webos-goodies.jp/archives/webgl_session_at_google_io_2011.html
そう言えば、I/Oの動画もJSゲーム向けのがいくつか有りますよね。
それぞれ、1時間弱有るのでちょくちょく見ないとなぁ…

セッションのQ&Aはノーチェックでした。情報ありがとうございます。

hakobera

unread,
May 25, 2011, 8:24:35 AM5/25/11
to Akiba.js
hakobera です。

最適化の話は面白いですね。
第2回勉強会の一つのネタになりそうです。

なんとなく感じているのは、10~20年くらい前の最適化(というか速度稼ぎ)の手法が、
JavaScript だとまだまだ有効なんですよね。
紹介されている記事にも書いてありますが、ループのアンロールだとか、
三角関数テーブル(sinテーブル)だとか、インライン展開だとか、なんか懐かしいです。

最適化で思い出したのですが、
JavaScript に特化したのだと uupaa さんの msgpack.js は最適化の塊で眺めてると面白いです。

http://code.google.com/p/uupaa-js/source/browse/trunk/0.8/src/misc/msgpack.js

あと、Google I/O だと ゲームは GWT で書いてあるものが多かったような印象が。
GWT は敬遠してたけど、ゲーム作るために学習するのはありかも思ってきています。

http://www.google.com/events/io/2011/sessions/gwt-html5-a-web-developers-dream.html
Reply all
Reply to author
Forward
0 new messages