Split」出場チーム情報をお届け。今シーズンの覇者となるのはどのチームかなぜ新スタジオなのか。eスポーツ選手をいかにしてサポートしているのかフォーナインズがゲーミンググラス「PLAIDe」(プレイド)を立ち上げた理由とは。「レジェンド・オブ・ルーンテラ」デッキガイド。STRANDING」の世界をより理解するための“運び方”ガイド姿の見えない世界中のプレイヤーと緩く助け合う。STRANDING」のインプレッションをお届け注目のムービー20周年を迎えた「スペースチャンネル5」開発陣が集結。2019]ティガレックスやバフバロの狩猟に挑戦。HTML5でゲームベンチマークを取ってみようライター:Veki4月28日にenchant.jsを使用したゲーム制作の記事を掲載し,かなり大きな反響をいただきました。今回は,ゲーム制作の話ではありませんが,HTML5とJavaScriptでは,どれくらいのゲームパフォーマンスが期待できるのかというあたりについてまとめてみましたので参考にしてください。前回作ったサンプルプログラムを,最初にスマートフォンで実行してみたときは,あまりの遅さにちょっと衝撃を受けたのですが,PCでもWebブラウザを変えてみると,かなりばらつきが出ることが分かりました。JavaScriptのベンチマークテストはそれなりに行われているのでしょうが,実際のところ,どれくらい「ゲームに使えるか」という観点からのものは,ほとんどないようです,そこで,前回のゲーム部分をそのままベンチマークテストに作り変えてみました。変更内容の主な部分は,乱数を自前で処理するようにしたこと,フレームレート表示を出したこと,自機の操作を自動化し,そして自機を無敵化したこと,フレームレートの上限やオブジェクトの上限を上げたことなどです。ついでに,うっかり処理し忘れていた自機のショットでのサウンド部分も改善しておきました。今回使用した擬似乱数の分布サンプル上記の変更点のうち,乱数部分だけ簡単に解説しておきます。JavaScriptで乱数を使用すると,必ず使用時の情報で初期化されるので毎回同じ結果を得ることができません。今回の用途からすると,ちゃんとした乱数でなくても,ある程度バラバラな数値が毎回出てくるような式があれば代用できますので,乱数の精度にはこだわらずに適当なものを使ってみました。具体的にいうと,今回使用したものは,((rnd0+111111111)%711111111+(rnd1+311779947)%855399351+(rnd2+55399351)%911144477)%999999999;という式で,適当な数字を毎回加算して適当な数字で剰余を取ったものを三つ加算して必要桁数になるように剰余を取るという感じです。最初は,もっと簡単なものにしていたのですが,まさかの精度不足でおかしな動作になってしまい,乱雑度と桁数を上げました。1回前の結果がrnd1,2回前の結果がrnd0,3回前の結果がrnd2に入っています(変な順ですみません)。分布の仕方は右上図のような感じになります。操作はできません手元の機材で計測してみました計測に当たっての注意点ですが,これはWebブラウザを使ってゲームのページを開いたときに,どれくらいの速度で実行できるかというのを調べるためのテストですので,普段使っているサービスを停止したり,セキュリティソフトを切ったり,ドライバを外したりせずに,普段使っている環境のままで試してください。ブラウザのプラグインを外しまくったりもしないように。それらを一つ一つ外して負荷を確かめるようなやり方もお勧めです。HTML5でのゲーム環境で,好ましくない要素が洗い出されるかもしれませんので。計り方の目安としては,OSを再起動し,1分ほど放置してスワップなどが安定するのを待ちます。次にWebブラウザを立ち上げ,ベンチマークのURLを開きます。開いたら,Webブラウザを全画面に拡大し,その時点でF5キーで再読み込みを行います。あとはSTARTボタンを押してじっと眺めてください。ヘッドフォンなどでの,サウンドの確認もお勧めいたします。音が安定して出ているか,プチノイズが入っていないか(効果音自体のクオリティは高くないので,音がクリアでないのは正常です)などを確認してください。Twitterアカウントをお持ちの方は,CPU名,Webブラウザ名,画面サイズとスコア,そしてこの記事のURLを入れて記事にツイートしていただけると,多くの人の参考になるのではないかと思います。以下,手元にあるPCで計測したPC用Webブラウザ各種での参考結果を提示しておきます。環境の基本情報は以下のとおりです。310M画面解像度:1366×768ドットちなみに,数値は100秒間のフレームレートの合計値となっています。前半は低オブジェクト数ですが,中盤になるとかなりオブジェクト数が増えていきます。値を100で割ると,平均フレームレートとなります。enchant.jsの標準状態は15fps設定ですので,2000程度あればかなり重いゲームでもそれなりに動くかと思われます。滑らかな動きのゲームでは30fps設定以上が望ましく,4000〜5000以上のスコアがほしいところです。1859計測してみてパフォーマンスでかなりの差が出たことはグラフからも一目瞭然ですが,それ以外に音声処理での差がありました。IE9はほぼ問題ありません。Chromeは音が途切れがちになります。音声が途中から出なくなることもありました。Firefoxでは,音声の多重化がまったくされていないようです。プチノイズも発生しています。これは音声切り替え時に一度音声をミュートせずにつなぐと多発する現象で,音声処理の初歩的な対処不足が窺えます。Safariでは,処理の仕方によっては音声が出ない場合がありましたが,ベンチマークでは一応ちゃんと出ているようです。Operaも一応ちゃんと音が出ているようですが,やや途切れがちに聞こえます。ゲームにとって音は必須といえる要素ですので,HTML5のAudioオブジェクトの互換性などがもっと重視されることを望みたいところです。