2012-01-21 4 views
1

私は、Alternativa3D 7.8エンジンを使用してAS3でコーディングされたゲームに取り組んでいますが、これで実現することを望んでいたFPSはなく、私は完全に理解しようとしています。私は、シーン内の3Dオブジェクトを持つことはパフォーマンスに非常に負荷がかかることがありますが、私は非常に限られた数の3Dオブジェクトしか使用しておらず、それぞれのオブジェクトのポリゴン数は比較的少ないと考えています。ローフラッシュAS3のパフォーマンス

私はシーンの実際のレンダリングの上にこれを引き起こすメモリリークのようなものがあるのだろうかと思います。

コードの中でどのようにパフォーマンスが分散しているのかを見て、これを引き起こしている特定の領域があるかどうかを確認する方法を知りたいと思います。私は通常、自分のコンピュータ上で約10-15FPSしか得ていません。できるだけ定数20-24またはそれ以上を得たいと思います。

+4

私は誰がコードを見ることなく、あなたの質問に答えることができるとは思いません。自分でテストする必要があります - コードの一部を無効にしてフレームレートに影響を与えるかどうかを確認し、他のパーツを無効にしてフレームレートなどを調べると、ボトルネックがどこにあるのかが分かります。 –

+4

良いスタートは8.xエンジンを使用することです、それはハードウェアアクセラレーションされたStage3Dを使用しているようです。 7.xは純粋にソフトウェア上で動作し、間違いなく数分の1の遅さで動作します。 – grapefrukt

答えて

1

私はこの質問を必ずしも明確にする必要はないと考えていますが、それは少し幅があります。 OPは、AS3アプリケーションの一般的なパフォーマンスに関するヒントを求めています。

コードを見ずに特定のポインタを渡すことはできませんが、より一般的なヒント/トリックを提供することは可能です。ここにいくつかの分析、かなり一般的です:

あなたのパフォーマンスの問題は、あなたの3Dとは関係ないと思います。ゲームの世界が画面上に現れた瞬間も、マウスの動きが非常に遅くなりますが、瞬間私はそれを一時停止しますが、フレームレートは改善されます - あなたには、すべてのフレームで多くの繰り返しと計算をしていることがわかります。

私はこれから始めるでしょう:メインのゲームループの中で計算的に集中するループがありますか?例えば、私はあなたが海面水で作業しているのを見て、それが大陸に影響するのを見ています - すべての水のプロパティをすべてのフレームで計算するようなことをしていますか?

3Dオブジェクトは単なる点の集合であるため、多くの「3D」オブジェクトを持つことは必ずしも問題ではありません。あなたは次元を追加していますが、3Dオブジェクトがこの種のパフォーマンスを引き起こすほどに集中しているわけではないので、2Dオブジェクトよりも配置に集中しています。私は彼らがあなたの問題だとは思わない(私は間違っているかもしれないが)。

代わりに、実行している計算の種類です。ループを探して、コメントアウトできるものを見つけ出し、即座にパフォーマンスを向上させてから、一度孤立させると、それらの計算の出力をキャッシュすることで、すべてのフレームで再計算する必要がないことがわかります。

乾杯、 メガバイト