以下はその手順です。
- 手順1:線形代数を学ぶ
- ステップ2:C++(または好きな言語)を学ぶ
- ステップ3:数学エンジンの開発
- ステップ 4: コンピュータ グラフィックスを学ぶ
- Step 5: OpenGLを学び、多くのプロジェクトを行う
- Step 6: デザイン パターンを学ぶ
- Step 7: レンダリングエンジンを開発する
- ステップ 9: 計算幾何学アルゴリズムを学ぶ
- Step 10: 物理エンジンを開発する
- ステップ11:ゲームの開発、テスト & 繰り返し
- 始めるための本
- Basic Math Basic Machine Basic Machine Basic Machine Basic Machine Basic Machine Development Basic Machine
手順1:線形代数を学ぶ
まず、線形代数を学びましょう。 いいえ、中学校で習う代数のことではありません。 ベクトルや行列のような線形代数の概念です。 ベクトルや行列の演算、特に内積、外積、空間変換の学習に力を入れましょう。
ステップ2:C++(または好きな言語)を学ぶ
次に、プログラミングの方法を学びましょう。 C++を学ぶことをお勧めします。 この時点では、コーディングの専門家である必要はありません。 しかし、クラス、メソッド、継承、ポリモーフィズム、カプセル化については学んでおいてください。
ステップ3:数学エンジンの開発
次に、ベクトル、行列、コーディングの知識を使用して、数学エンジンを開発します。 ドット積、クロス積、空間変換などの演算は、ゲームエンジン開発で広く使用されます。
ステップ 4: コンピュータ グラフィックスを学ぶ
ここからが楽しい部分です。 コンピューター グラフィックスの概念、特にレンダリング パイプラインとシェーダーに精通することです。 OpenGL APIのコーディングと使用は今のところ避けてください。 OpenGL APIは、コンピュータグラフィックスの概念の知識が乏しいと、理解するのに戸惑います。
Step 5: OpenGLを学び、多くのプロジェクトを行う
Computer Graphicsの概念に慣れたら、OpenGL APIとOpenGL Shadersについて学びます。 なるべく多くのプロジェクトをこなしてください。 キャラクタのレンダリング方法、キャラクタの回転と平行移動の方法を学びましょう。 テクスチャリングとライティングがOpenGLでどのように機能するかを学びます。 繰り返しますが、これは楽しい部分であり、できる限り多くのプロジェクトを行うことをお勧めします。
Step 6: デザイン パターンを学ぶ
ゲーム エンジン開発者になるための次のステップは、API アーキテクチャを学ぶことです。 ゲームエンジンは、レンダリング、物理演算、数学演算のすべてを引き受けるAPI、フレームワークにすぎません。 モジュール化され、柔軟で、保守可能で、適応性のある API を開発することが最も重要です。
APIを開発するためには、デザインパターンを学ぶ必要があります。 最も一般的なデザインパターンは、Singleton、Observer、Strategy、Composite、Factoryなどである。
Step 7: レンダリングエンジンを開発する
この段階では、線形代数、コンピューターグラフィックス、OpenGL、デザインパターンの知識を組み合わせて、レンダリングエンジンを開発する準備が整っていることになります。 物理エンジンを開発するのに物理学者である必要はありませんが、ニュートンの運動の法則と、それがルンゲクッタ アルゴリズムなどのアルゴリズムを使ってどのように実装されるかを知っている必要があります。
ステップ 9: 計算幾何学アルゴリズムを学ぶ
ゲーム エンジンは、衝突検出がなければゲーム エンジンとは言えません。 衝突検出システムを開発するには、GJK、BVH、Sutherland-HodgmanなどのComputational Geometryアルゴリズムについて学ぶ必要があります。 これらのアルゴリズムは、衝突が発生したかどうか、どこで発生したか、どのオブジェクトが最も衝突しやすいかを検出するために使用されます。
Step 10: 物理エンジンを開発する
上記のアルゴリズムに精通したら、衝突検出システムを備えた物理エンジンを開発できるはずです。
ステップ11:ゲームの開発、テスト & 繰り返し
おめでとうございます、あなたは今ゲームエンジンを手に入れました。 できる限り多くのゲームを開発し、ゲームエンジンをテストしてください。 バグを修正し、新しい機能を実装し、ゲームを開発し、それを繰り返すのです。
始めるための本
始めるための本のリスト:
3D Math
- 3D Math Primer For Graphics and Game Development
Rendering Engine
3D Math