プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
条件を変更してパフォーマンス測定
開発中のメイン画面
以前に比べてパフォーマンスが大幅に向上した。しかし数を増やすとサブPC環境では厳しそうだ。



◎以前と同じ条件で測定

まずは、シェーダーインスタンスの効果を確認するために、以前と同じ条件で比較測定しましょう。
(城36、柵20、木(1種類)20本×20、兵士10人×100部隊)

以前と同じ条件でパフォーマンス測定

○メインPC(移動ユニット無し)
fps:58.95 → 60.02
Bar 0 Update Avg.:0.01 → 0.02ms
Bar 0 Draw Avg.:14.91 → 8.40ms
Bar 1 mainMap Avg.:6.70 → 6.10ms
Bar 1 mapobjectManager Avg.:8.02 → 1.93ms
Bar 1 unitManager Avg.:0.00 → 0.00ms

○メインPC(移動ユニットあり)
fps:29.94 → 57.03
Bar 0 Update Avg.:2.40 → 2.25ms
Bar 0 Draw Avg.:26.50 → 9.39ms
Bar 1 mainMap Avg.:6.07 → 6.37ms
Bar 1 mapobjectManager Avg.:7.79 → 1.71ms
Bar 1 unitManager Avg.:12.46 → 1.14ms

マップオブジェクト(城、柵、木)は4倍、ユニット(兵士)は10倍早くなりました。

ユニットは全て板ポリUVアニメです。モデルがシンプルなので効果が大きかったようですね。



◎サブPCで測定

○サブPC(移動ユニットあり)
fps:29.79
Bar 0 Update Avg.:6.72ms
Bar 0 Draw Avg.:10.58ms
Bar 1 mainMap Avg.:0.76ms
Bar 1 mapobjectManager Avg.:5.85ms
Bar 1 unitManager Avg.:3.49ms

サブPCでは、これぐらいの条件が丁度良いみたいですね。これ以上増やすとゲームに影響が出そうです。

メインPCと比較すると、地形描画がやたら速くてUpdateが遅いです。通常のグラボはこんな感じなのでしょうか?



◎条件を変更してパフォーマンス測定

条件を変更してパフォーマンス測定

条件を変えてみました。
(城36、柵20、木(7種類)20本×100、兵士10人×200部隊)

○メインPC(移動ユニットあり)
fps:55.91
Bar 0 Update Avg.:3.27ms
Bar 0 Draw Avg.:12.07ms
Bar 1 mainMap Avg.:6.18ms
Bar 1 mapobjectManager Avg.:3.64ms
Bar 1 unitManager Avg.:2.07ms

通常は兵士数や部隊数が減るはずですが、今後簡易モデルが増えるでしょうから、メインPCをターゲットと考える場合は、これぐらいがバランス良さそうですね。


○サブPC(移動ユニットあり)
fps:1.97
Bar 0 Update Avg.:15.25ms
Bar 0 Draw Avg.:19.78ms
Bar 1 mainMap Avg.:0.77ms
Bar 1 mapobjectManager Avg.:12.18ms
Bar 1 unitManager Avg.:6.26ms

うわ~メチャ重!
ここまで増やすと、サブPCでは完全にアウトですね。もう少し早くならないかなぁ…。



◎サブPCのパフォーマンス

この後、ミップマップを生成したり、木の方向画像UVアニメをやめて通常のビルボードにしたりしてみましたが、殆ど効果無し。この様子だと、UVアニメの描画パフォーマンスはかなり良さそうです。

問題はUpdateで、部隊の移動処理とモデル単位のアニメ制御(タイマー更新等)ぐらいしかしてないのに、100部隊(1000兵士)で7.5msになってしまいます。移動処理は暫定なので洗練されたコードではありませんが、しかし今後思考ロジックや各種チェックなど大量のコードを追加する予定なのに、今からこの調子では先が思いやられます。

Pentium4-1.66GHzって、こんなに遅かったっけ?



◎今後の開発方針について

今回の感触からすると、サブPCレベルの環境をサポートするのはかなりキツそうです。

折角シェーダインスタンスで「一応動く」状態になったので、もう少し様子を見ますが、こだわり過ぎてまた開発が遅れるのも嫌なので、とりあえずユニット数は少なめ(上限100部隊)として開発を進めます。


機能を一通り実装して一段落したら、再度パフォーマンスをチェックします。サブPCレベルの環境のサポートはその時に結論を出しますが、それまではあまり考えないようにします。つまり「サブPC環境に合わせて企画上のスペックを下げたりしない」ということです。



◎次回予告

次回から企画の話になります。いつもと違う見せ方を考えているので、ゆるゆるとご期待ください。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

秒間60フレームだと1フレーム16.7ms、サブPCのUpdate()15.25msはいくらなんでも遅過ぎますね。と言っても、メインPCと同じバイナリなんでしょうけど…。バックグラウンドでなんか動いてたりして?(苦笑)

やっぱり遅すぎですよね?

>バックグラウンドでなんか動いてたりして?
私もそう思って、PC再起動を含めて3回測定しました。念のため今日もやってみましたが、Updateは13~16ms(2~7fps)ぐらいでした。

ユニット数を増やすと効率が悪いコードが含まれていると思いますが、それでも同じバイナリがメインPCで60fps近く出るので、やはりちょっとガッカリしますね。

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。