
これまでのところ、私たちは結果に絶対に満足しており、インターネット上の人々もそれらに満足していると言わなければなりませんが、同じスタイルで別のゲームを始めるよりもむしろ拷問を受け入れたいと思います。
理由は簡単です。結果は素晴らしいものになりますが、実際には遅いワークフローを見つけるのは困難です。 最初のゲームの場合、これは非常に正常であり、作業は無限に続き、プロセスを楽しんで、レッスンを学習します。 しかし、将来的には、5年に1回よりも頻繁に1つのゲームをリリースする価値があります。

他の人が私を信じていない場合は、理由をリストします。 Unity3Dで古い学校の等尺性戦略を作成することを考えているなら、それらを研究することをお勧めします。

Unityを使用する際には、準備が整っていて、提案されている(通常は非常に有用な)最適化手法をすべて知っていると確信しています。 それらを新しいゲームに適用し、何度も何度もフェイルオーバーするときです。
- シーンに深さが必要な場合は、バッチ処理を忘れてください。 同じスプライトとマテリアルを持ち、異なる深さ(Z軸に沿って、または並べ替えレイヤー内)に位置し、それらの間にいくつかのオブジェクトがある(そしてこれが頻繁に起こる)2つのオブジェクトでさえ、それぞれに1つの描画呼び出しが必要です そして、制限はありません。 PSこのため、モバイルプラットフォームでのゲームのリリースは忘れてください。
- 三角形の数が怖いために3Dではなく2Dを好んだ場合、アルファチャネルでスプライトを使用する場合、三角形がはるかに少なくなるとは思わないでください。 アルファチャネル、つまり不均一なアウトラインを持つスプライトも、 多くの三角形と頂点を使用できます。
- 常にアトラススプライトPoT(Power of Two)を使用します。 特に、大きな解像度と高いレベルのスケーリングが必要な場合、これだけでゲームがディスクオーバーフロー(最終アセンブリの前にUnityにテクスチャをパックすることを忘れないでください)とビデオメモリを節約できます。 オブジェクトにさまざまな方向のアニメーションフレームが多数ある場合、PoTアトラスをディスクに保存できるわけではありませんが、Mortal Kombat Xよりも少ないスペースを使用する可能性があります。
- 数学の問題に備えましょう。 平面カメラで3Dに似た遠近法の軌道を、それを見る直交カメラでシミュレートする必要があるとします。 それは可能ですが、最初は思われるほど単純ではありません。
- アニメーションがベースのアニメーションよりも少し複雑な場合、別の大きな問題が発生します。 それらをいくつかのサブアニメーションに分割しない場合(それらを制御するために厄介なアニメーターが必然的に作成される)、たとえば、兵士によって攻撃が行われた場合はどうなりますか? したがって、彼は打つ準備をしており、フレームXは損傷を引き起こしたり、打たれた音を再現したりするはずです。 さて、これが発生したときにゲームに伝えるのはどうですか? 唯一の合理的な方法は、アニメーションにイベントを追加することです。これまでのところ、すべてが正常に見えます。 しかし、最初の1つの大きな問題はそれほど明白ではありません。 当然、ゲームロジックをFixedUpdateで実行する必要があります(その場合、信頼性と決定性があるため)が、アニメーションは単純な更新で実行されます。 差し迫った問題にすでに気付いていますか?
- 常に MIPテクスチャリングをオンにします。 自問しないでください、マシンでそれをしてください。 ゲームのズームレベルが同じでない場合は、MIPテクスチャリングをオンにします。 MIPテクスチャリングを有効にすると、テクスチャのサイズが大きくなることを忘れないでください(MIPテクスチャの生成時に1024x1024のテクスチャがあると仮定すると、Unityはバージョン512x512、256x256などを作成します)。 MIPテクスチャリングを教えるつもりはありませんが、それが何であるかを知る必要があります。
- オブジェクトプールを作成します。 プロセッサの負荷を軽減しようとしている場合、多くのInstantiateおよびDestroy呼び出しはあなたの親友ではありません!
- Unity物理学が好きですか? 重力に一貫性がなく、ゲームワールドのシミュレートされた垂直軸と調整することは不可能です。 まあ、人生は不公平です。

最後に、要約すると:
- 多数の描画呼び出しを避けることはほとんど不可能です。 呼び出しをレンダリングすると、プロセッサにボトルネックが発生し、FPSが低下する可能性があります。 解決策は、ゲームロジックに関連するすべてのものをできる限りスマートかつ簡単にすることです。 コルーチンを使用して、すべてのフレームではなく、たとえばxフレームに1回実行できる操作があるかもしれません。 可能であれば、ゲームをバッチ処理用に最適化しますが、多くのことはできないことに注意してください。
- 大きなテクスチャと大きなスプライトアトラスには、ビデオメモリが大量にロードされます。 これを忘れずに、常にターゲットプラットフォームでのゲームの最高のパフォーマンスを目指して努力してください。 もちろん、最近のコンピューターは数年前よりもはるかに強力ですが、最も強力なPC専用のゲームを作成しないと(おそらくそうではありません)、1 GBを超えるビデオメモリを使用するのは夢中になります。
- 非常に優れたアニメーター/ 3Dアーティストをチームに集めます-スプライトアニメーションはミスを許さず、Unityに到達したときに制御できません。
- アセットストアの2Dアセットを注意深く調べます。 数ドルで苦労する多くの時間を節約する多くの資産があります。 したがって、それらを購入するのは理にかなっています。
- 必要に応じて、開発に加えて、私生活に時間を置いて、ゲームを別のスタイルでプレイする方が良いでしょう。
- Unityプロファイラーはあなたの親友です。 必要なだけ時間をかければ、100倍の報酬が与えられます。
まあ、この記事にリストされているほとんどの問題に対処しなければならない難しい週があったかもしれません。 たぶんこれは楽観的な見方をする助けにはならなかったかもしれませんが、ここ数日で私たちは大きく改善したことを認めます。

何かを間違えた場合は、自分が正しくないことを証明し、何か改善できることを示すリンクを外してください。 自分が間違っていたことを本当に願っています。ゲームをさらに最適化する新しい方法を見つけたいです。