ビジネスアプリやリファレンスアプリの開発に慣れています。今、私はiPhoneゲームをしなければなりません。私を助けるためにあなたが共有できるヒントは何ですか:
- プロジェクトの範囲を理解する
- 成果物の定義
- ゲームプレイおよびその他のパラメータの指定
- 開発工数の見積もり
- ゲームのテスト
大きな質問ですね。ありがとう!
ビジネスアプリやリファレンスアプリの開発に慣れています。今、私はiPhoneゲームをしなければなりません。私を助けるためにあなたが共有できるヒントは何ですか:
大きな質問ですね。ありがとう!
私の答えは、あなたが探していたウォーターフォール方法論の回答に従っていないということです。なぜなら、計画、設計、実装、およびテストを行う前に、ゲーム プログラミングのスキルを学ぶ必要があると思うからです。ゲームプログラミングは、ビジネスプログラミングや他の分野とはまったく異なります。
ゲームのプログラミング経験がないため、iPhone でのゲームはもちろん、ゲームのピリオドをプログラミングする前に、いくつかの概念を学ぶ必要があります。
これらのいくつかは、3D ゲームをプログラミングしているか、2D プラットフォーム スタイルを使用しているかによって異なります。
OpenGL ES 最初に学ぶ必要があるのは、OpenGL ES プログラミング言語です。これは基本的に、3D プリミティブの描画を可能にする 3D API です。2D ゲームをコーディングしている場合は、高速化のために GPU を使用するため高速であるため、これを使用する必要があります。Google には、まず始めるべき優れたチュートリアルがいくつかあります。
ベクトル演算 3D を行う場合は、3D ベクトル演算について学習する必要があります。ベクトルは、基本的に、ゲーム、カメラの視線方向、キャラクターの位置、速度、衝突検出などのすべてに使用されます。2D ベクトル (x,y) 2D ゲームのプログラミングには、z コンポーネントを差し引いたものが必要です。
衝突検出 ボールが壁に当たったことをどのように知ることができますか? 答えは衝突検出です。Sphere to Sphere、 AABB、OOBB、Convex Hulls、Triangle Mesh など、多くの形式の衝突検出があります。
AI 敵に自分のプレイヤー キャラクターを攻撃させるにはどうすればよいですか? 人工知能は、NPC/敵にインテリジェントな決定を下す能力を与えるために不可欠なもう 1 つの大きな分野です。AI は if else ステートメントのように単純な場合もありますが、通常は有限ステート マシンまたはファジー ロジックを有効にする必要があります。
パスファインディング 敵を避けて障害物を動かしながら、ポイント A からポイント B にキャラクターを移動させたい場合は、パスファインディング アルゴリズムを使用する必要があります。スター (A*) は最も人気のあるものの 1 つです。
シーン グラフ 一度に 10 ~ 20 人以上の敵を画面に表示したい場合は、動的な描画、ロジック、およびリソースの作成と削除を管理するシーン グラフをコーディングする必要があります。ポリモーフィズムとは何かがわからない場合は、ゲーム オブジェクトが順守することが不可欠であり、シーン グラフと結びついているため、それを知る必要があります。
物理演算 の位置、速度、加速度、重力、光線はすべてベクトルを使用して表現されるため、ゲームをコーディングするには物理演算をブラッシュアップする必要がある場合があります。ニュートンの運動の第 2 法則 F=MA (力 = 質量 * 加速度) から始めます。Bullet、ODE、Newton、Tokamak などのオープン ソースの物理エンジンを使用すると、作業が簡単になります。つまり、これらの物理ルールを自分で作成する必要はありません。
Objective-C++ これはオプションですが、推奨されます。C++ を知らない場合、これは本質的に C++ と Objective-C の混合物です。私はコア ゲーム エンジンとプログラミングに C++ を使用する傾向があります。これは、C++ の速度と、C++ でサード パーティのライブラリを利用できるためです。
サウンド サウンド が必要な場合は、Apple が提供するシンプルなオーディオ フレームワークをそのまま使用できますが、3D ポジショナル オーディオには、より優れたものが必要になります。FMOD SDK for iPhone を学習することをお勧めします。@Stowelly が述べたように、FMOD には商用配布のライセンスが必要ですが、他にもロイヤリティ フリーのものを探すことができます。
ゲーム エンジンを使用する 現時点では、iPhone で利用できるゲーム エンジン があり、ゲームをより簡単に実行できます。あなたの場合は、上記の概念を学ぶ必要がありますが、より高速になります。
私が知っているいくつかのゲームエンジンを次に示します。
Unity3D これはおそらく、私が知っている中で最も人気のあるものです。Unity は、Mac 上でコードを記述し、Windows/Linux/Mac OS X 用にコンパイルできる PC/Mac ゲーム エンジンです。iPhone のビルドが他のプラットフォームと直接互換性があるとは思えません。あなたは新しいプロジェクトを始めました。ただし、このエンジンの商用展開コストは 199 ~ 399 ドルです。
Cocos2D これはオープン ソースの 2D ゲーム エンジンで、多くのゲームに役立つ可能性があります。一見の価値があります。Google コードでホストされています。
ここにチェックアウトする他のいくつかがあります:
ビジネス アプリとゲーム、特にモバイル デバイスの主な違いは、パフォーマンスの重要性です。フォームを作成してユーザー入力を待つアプリは、その間何もしていない可能性があります。一方、ゲームループは常に進行しており、おそらく多くのことを行っています。ビジネス プログラマーはこのような考え方に慣れていませんが、ゲームはバッテリーの電力を消費します。信じられないかもしれませんが、ゲームをどのように実装するかは、バッテリーの消費速度に大きな影響を与えます。
それで、1 つの質問は、あなたが「開発しなければならない」このゲームは何ですか? 数独なら心配いりません。リアルタイムの 3D 宇宙戦なら話は別ですが。
ビジネス アプリが iPhone 上にある場合は、おそらく 100% Objective-C を使用していたでしょう。(デスクトップで C# または Java アプリを実行している場合は、独自のメモリを管理することを歓迎します。) Objective-C のランタイム型管理は複雑なゲームには遅すぎると言う人がいます。Cocos2D やその他のエンジンを使って OK のゲームを作る人もいますが、これもゲーム次第です。C++ またはストレート C のみを使用するプロの開発者もいます。