最適化
グラフィックスメソッド

モバイルのための最適化実用ガイド

このガイドは、モバイルゲーム開発する新しい開発者のためのもので、モバイルデバイス上でスムーズに実行する、誰もが圧倒されるような新しいモバイルゲーム、または既存のプロジェクトの移植のいずれかを計画しているか試作している開発者のためのものです。古い PC やネットブックをターゲットにして「モバイルゲーム」または「ブラウザーゲーム」を作る方々ためのレファレンスとしても有用だと思います。

最適化は広範囲に渡るトピックで、それはあなたのゲームに多くを依存します。このガイドは、段階的なガイドとしてよりもむしろ、スムーズに製品を保証するための手引きまたは参照として読んでいただけるとよいかもしれません。

すべてのモバイルデバイスは等しく作られているわけではない

ここでの情報は、初代 iPad、iPhone 3GS と第 3 世代 iPod Touch の上で使われている Apple A4 チップセットのレベルのハードウェアを前提としています。Android 側は、Nexus One、または Android 2.3 ジンジャーブレッドを実行する Android モバイルのほとんどを意味します。これらのデバイスは、平均すると 2010 年の初期にリリースされました。アプリケーションがよく出回っている市場では、これらのデバイスは旧式で、動作が遅いのですが、市場の大部分を占めるためサポートしなければなりません。

はるかに遅いものがあり、また、はるかに高速なモバイルがあります。モバイルデバイスの計算能力は、驚くべき速さで増加しています。モバイル GPU の新世代が前世代より 5 倍速くなると聞くことはあります。PC 産業と比較して、急速 です。

Apple のモバイルデバイスの技術仕様の概要については、iOS ハードウェアガイドガイドページを参照してください。

あなたが将来、一般的になるであろうモバイルデバイス用、または今現在のハイエンドデバイス用に開発したい場合あなたはより多くのことをさせられるようになります。未来のハイエンドデバイスを参照してください。

iPhone 3G、や iPod touch の第 1 世代、第 2 世代のような非常に性能の低い端末は性能が限られており、最適化のためにさらに多くのことに注意する必要があります。しかし、これらのデバイスをアップグレードしていない消費者が購入するアプリとなるかどうかについてはいくつかの疑問があります。あなたが無料アプリを作っている場合を除くと、古いハードウェアをサポートする価値がない可能性があります。

最終ステップ以外でデザインの最適化を考慮するということ

英国のコンピューターサイエンティスト、マイケル· A ·ジャクソンは、彼のプログラム最適化ルールのために、しばしば引合いに出されます:

プログラム最適化の第一法則:最適化するな。プログラム最適化の第二法則(上級者限定):まだするな。

彼の理論的根拠は、どれだけ高速なコンピューターがあり、その速度がどれくらい急に増加しているか、と考えると、あなたが何かをプログラムするならば、それが十分に速くなるという可能性があるということでした。そのほかに、あなたはあまりにも重度に最適化しようとすると、物事を過剰に複雑にするか、自分自身を制限するか、またはトン単位のバグを作るかもしれません。

しかし、モバイルゲームを開発している場合は、別の考慮することがあります:今、市場に出ているハードウェアはコンピューターと比較して非常に制限されてます。私たちがそのコンピューターを使って、単にデバイスの性能を越えて動作しない何かを作成するリスク、最初から最適化して、複雑化しすぎるリスクと一緒に作業することになります。

このガイドでは、我々は、軽々しく適用しそうになるような状況に対して、最適化が大いに役立つだろうな状況を指摘します。

最適化:プログラマだけでなく

アーティストはまた、プラットフォームの限界とそれを回避するために使用する方法を知っている必要があります。そうすれば、彼らは作業をやり直す必要もなく、報われる創造的な選択をすることができます。

ゲームデザインがアトモスフィアやライティングを呼び出してテクスチャへベイクする代わりに、描画する場合、アーティストに多くの責任があります。 何でもベイクできるときはいつでも、リアルタイムレンダリングの代わりに、アーティストはベイクするコンテンツを生成することができます。彼らは技術的な制限を無視して自由に作業することができます。

スムーズなランタイムのゲームをあなたの膝に落とし込むデザイン

この 2 ページはゲームパフォーマンスの一般的な傾向の詳細を示し、あなたのゲームを最適化するベストの設計方法、または、あなたがすでに生産に入っているなら、物事を最適化する必要がありどのように直感的に把握できるかを説明します。

早期かつ頻繁にプロフィール

最適化がパフォーマンスの大きな向上に報われるか、あなたの時間を無駄するか、あなたが見分けるのに役立つため、プロファイリングは重要です。レンダリングは、別のチップ( GPU )上で処理される方法のため、フレームをレンダリングするのにかかる時間は、CPU にかかる時間プラス GPU にかかる時間ではなく、2 つでより長くなるものではありません。CPU がものごとを遅くしているならば、シェーダーを最適化することはフレームレートを上昇させないことを意味し、GPU がものごとを遅くしているならば、物理とスクリプトを最適化することはまったく助けになりません。

多くの場合、ゲームの異なる部分、異なる状況では異なった実行がされるので、ゲームの一部が原因でスクリプトに 100 ミリ秒のフレームが発生する可能性があると、レンダリングされている何かのためにゲームの他の部分では減速が発生する可能性があります。だから、少なくとも、あなたは、あなたのゲームを最適化しようとする場合、すべてのボトルネックがどこにあるかを知っている必要があります。

Unity プロファイラー

Unity の主なプロファイラーは、iOS や Android や Tizen をターゲットとするときに使用することができます。それを使用する方法についての基本的な手順については、プロファイラーを参照してください。

内部プロファイラー

内部プロファイラーは 30 フレームごとにテキストを吐き出します。それはあなたが物事を遅くしているそのゲームの物理、スクリプトまたはレンダリングなど側面を把握しやすくしてくれ、あまり詳細には触れません。例えば、そのスクリプトまたはそのレンダラーが犯人です、と。

それを動作させる方法、動作の詳細については ビルトインプロファイラーでのパフォーマンス測定ページを参照してください。

プロファイラーはほとんどの時間をレンダリングに費やしたことを示している

プロファイラーは、ほとんどの時間はレンダリング以外で費やされたことを示す

目次

最適化
グラフィックスメソッド