このセクションでは、モバイルの開発者が、速く実行されるようにコードを書き、ゲームを構築する方法を示しています。ここでコアとなるアイデアは、実際にはゲームデザインと最適化は、独立したプロセスではなく、ゲームを設計しているとき、あなたがする決定次第で、楽しさと高速な作業の両方を得ることができます。
プレイヤーが一度にスクリーン内で 1 発だけ発射が許されることをタイマーの代わりとして、弾をミスしたか否かにかかわらずにリロードの早さをコントロールされた古いゲームをあなたは覚えているかもしれません。このテクニックは、object pooling と呼ばれ、メモリ管理を簡素化し、作られたプログラムはより滑らかに実行されます。
スペースインベーダーの作者は、少しの RAM を持っていただけでした。そして彼らはプログラムが利用可能であった以上のものを割り当てる必要がないだろうことを確実にしなければなりませんでした。彼らはプレイヤーが毎秒一回弾を発射する場合、リロード(再装填)時間を半秒に減少させるパワーアップを提供し、プレーヤーができるだけすばやく発砲する場合、多くの発射を割り当てるのに十分なメモリ空間があることと、ショットのすべてができるだけ長い時間生きることを、確実としなければならないでしょう。それはおそらく問題を引き起こすでしょうから、その代わりに、彼らはちょうど 1 発の発射体を割り当て、それを残しました。発射体が死ぬとすぐに、非アクティブ化し、再び発射された時に再配置され、アクティブ化されます。しかし、それは常にメモリ内の同じ空間に住んでおり、周囲に移動したり、絶えず削除して再作成する必要はありません。
これはほとんど現実的でありませんが、それが楽しいことが起きます。エイリアンの侵略が地面に近づくとテンションはクライマックスの瞬間に解放され、フィルムまたは文学におけるクライマックスと似ています。インベーダーの近接は、熟達したプレイヤーにとっては、ほぼ瞬間的にリロードする時間を与えます。そして、彼らは奇跡的に完璧な時間の間、ショットボタンを連打することにより、地球を守ることができます。よいゲーム・デザインは、インタラクティブな物語とそれのすべてを動かす背景技術の間の奇怪な空間に生きています。このすばらしく、楽しく、効率的なものを詰め込んで計画するのは難しいです。なぜなら、コード・ロジスティックスとユーザーの対話は、2 つのひどく異なる、深い凝り性のもので、これを一緒に新しい何かと楽しみを合成するために、多くの思考と実験がされます。
おそらく、ゲームのあらゆる面の相互作用とモバイルハードウェアでのすばらしいプレイを同時に計画することはできません。それはあなたが実験している間、2 つが調和するところで偶然“逸品”が現れることはありそうです。しかし、あなたが配備するつもりであるハードウェアで、あなたのコードが動く方法の確実な知識を持つことは進行の助けになります。あなたがオブジェクトプーリングが優れている理由について詳細な技術的説明を参照したい、そして、メモリの割り当てについて学びたい場合、私たちの スクリプトの最適化ページを参照してください。
あなたがゲームの作業を始めており、一度にたくさんのアクションと派手な物を詰め込んで、プレーヤーに印象を与えたいとします。どのようにそれらの事を計画しますか?あなたは、どれだけ多くのコイン、多くのゾンビ、多くの敵対車、その他ゲームの条件等の限界がどこにあるか知っていますか?それはすべてあなたがどのようにゲームをコードにするか次第です。
一般的に、簡単な方法またはもっとも一般的かつ汎用性の高い方法でゲームのコードを書くならば、あなたは割とすぐにパフォーマンスの問題に陥ります。あなたがより多くのゲームを実行するための特定の構造やトリックに依存するほど、限界はより拡大します。あなたはスクリーン上でより多くのものを詰め込むことができるようになります。
2D のゲームで 2 次元に限定されるリジッドボディ 発射体のリジッドボディ * インスタンス化とデストロイを多く使う。 * 収集品やキャラクターのための多くの個々の 3D オブジェクト * フレームの毎の演算実行。 * あなたの GUI や HUD のために OnGUI の使用
スクリプトの最適化ページを参照してください。