iOSまたはAndroidでTowerDefenseのようなゲームを作成する場合、OpenGL ESを広範囲に使用する必要がありますか?それとも、ジオメトリ変換、稲妻、プリミティブシェイプの描画などの他の機能を使用せずに、単にテクスチャを使用していますか?次に、ゲームをアニメーション化するためにスプライトシートのみを使用している場合、OpenGL ESを使用せずにネイティブプラットフォームが提供するライブラリに固執することはできますか?たとえば、iOSでは、UIImageViewクラスのアニメーションメソッドを使用してアニメーションを実行します。
1 に答える
これは非常に複雑な質問であるため、決定的な答えはほとんど得られません。
要するに、ゲームを行うために OpenGL に触れる必要はまったくありません。
あなたが説明するすべての方法は機能しますが、さまざまな利点と欠点があります。Android の組み込みフレームワークについて簡単に説明します。
標準ビュー (FrameLayouts など) を使用する: フレームワークはほとんどの作業 (アニメーション、Z 並べ替えなど) を実行できますが、奇妙なレイアウト エラーや驚くべきパフォーマンス ヒットが頻繁に発生します。これは、基本的にゲームの UI フレームワークを熟読しているためです。ただし、非常に単純なゲームの場合は、これで十分かもしれません。
キャンバス ペインティングを使用する: Android には、優れたかなり高速な 2D グラフィックス ライブラリが含まれています。ゲームに使用でき、多くのゲームに十分なパフォーマンスを発揮します。ただし、すでに多くのことを自分で行う必要があり (Z ソート、アニメーションなど)、一部のハイエンド効果はまだ実現できていません。
OpenGL ES: 最高のパフォーマンス、ほとんどの選択肢。幸運を祈ります。ゼロから始める場合、最も単純なものを画面に表示する前に、やるべきことがたくさんあります。一方で、他のアプローチではほぼ不可能なことができます。また、複数のプラットフォームでコードの一部を再利用することもできます。
Renderscript: 私の経験では、OpenGL を直接操作するよりも学習曲線が急勾配になるという点でさらに悪いです。
つまり、最初にゲームを設計してから、複雑になりすぎずに十分な機能を提供するフレームワークを決定します。
最後に:すべての配管工事を自分で行うのではなく、既存のゲーム エンジン (Unity など) を検討してください。必要なものはほとんどすべてそこにあります。さらに、これらのエンジンの一部はクロスプラットフォームでも動作します。一度ゲームを作成すれば、iOS と Android で公開できます!