0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Animate CC で HTML5 ベンチマークアプリを作って TinyUnity / EgretEngineと比較する

Last updated at Posted at 2019-01-16

やりたいこと

こちらの各HTML5ゲームエンジンの比較がよくまとまっています
https://cloud.tencent.com/developer/article/1075163

このベンチマークと同じものを動かしてみたいと思いAnimate CCでプロジェクトを作り動かしてみました

この記事とほぼ同じ方法で画像オブジェクトを数千~数万個動かして、Egret / Tiny Unityの性能を超ざっくりみてみたい。

手順

プロジェクト作成

image.png

新規ドキュメントを「ゲーム」種別→「最高」プリセットで作成します

空のプロジェクト

image.png

画像を配置する

画像ファイルをステージにドラッグ&ドロップする。
image.png

シンボルに変換する

image.png

シンボルの名前をtestにする

image.png

キーフレームを作成する

初期化用のキーフレーム1、回転処理用のフレーム2、計測&ループ用のフレーム3を作成する。

image.png

ループさせるために回転処理用のフレームにrunというラベルをつける。
image.png

ソースコードエディタを開く

レイヤー及びキーフレームを選択して「F9」
image.png

グローバル

image.png

global
var N = 10000;
var objects = [];

var executedFrames = 0;
var startedTime = currentMillis();

function currentMillis() {
	return (new Date()).getTime();
}

image.png

フレーム1 初期化

image.png

frame1
var stage =  new createjs.MovieClip(); 
stage.name = "stage";
this.addChild(stage);
executedFrames++;

for (var i = 0; i < N; i++) {
    var o = new lib.test();
	o.x = Math.random() * 1024;
	o.y = Math.random() * 968;
	o.name = i.toString();
	stage.addChild(o);
	objects.push(o);
}

フレーム2 回転

frame2
for (var i = 0; i < N; i++) {
	var o = objects[i];
	o.rotation = (o.rotation + 1) % 360;
}

image.png

フレーム3 ループ&測定

frame3
executedFrames ++;
if (executedFrames % 100 == 0) {
	var nowTime = currentMillis();
	var elapsedTime = Math.floor(nowTime  - startedTime) / 1000;
	var fps = Math.floor(executedFrames/ elapsedTime);
	console.log(fps, executedFrames, elapsedTime);
}

this.gotoAndPlay("run");

image.png

まとめ

あくまでも手元のパソコン(X280 / Chrome)でのテストですが、TinyUnityは5FPSですがEgretEngineは60FPS近く、Animate CCは10FPS弱で安定してでます。

ソースコードはこちらから
https://github.com/motoyasu-yamada/HTML5-Benchmark-201812

image.png

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?