スキルを向上させたい/何か新しいものを試したいのですが、3Dから始めたいと思います。C ++を使用した3Dでのプログラミングの開始を読みましたが、エンジンに関する質問があります。
- エンジンは何をすべきですか?私はそれが3D API(すなわちOpenGLまたはDirectX)の上にある抽象化層であることを知っていますが、正確に何をすべきでしょうか?
スキルを向上させたい/何か新しいものを試したいのですが、3Dから始めたいと思います。C ++を使用した3Dでのプログラミングの開始を読みましたが、エンジンに関する質問があります。
回答:
ゲームエンジンは低レベルのグラフィックスAPIから抽象化されていると言っているのは正しいですが、本格的なゲームエンジンはさらに多くのことを行います。
ゲームエンジンは、ゲーム開発に関するすべてを簡単にすることを目的としています。それぞれ独自の独自の機能を備えていますが、一般に、グラフィック、オーディオ、入力、シーン管理、衝突検出、数学、および一般的な有用なユーティリティの簡単な抽象化レイヤーを提供します。物理APIのラッパーとプラグインを提供するものもあれば、AIサポートを備えたものもあります(主にFSM、経路探索、および-現在のトレンド-動作ツリーに限定されます)。それらの多くは、クロスプラットフォーム機能をサポートし、誇りに思っています。
ゲームエンジンの目的は、ユーザーがゲームを簡単に作成できるようにすることです。最初からゲームを作成する際の小さな煩わしさを処理したり、ライブラリに合わせてライブラリをインストールして独自のラッパーを作成したりする必要はありませんゲーム。
多くのエンジンがありますが、グラフィックエンジンとゲームエンジンの違いに注意してください(たとえば、Unityはゲームエンジンで、Ogreはグラフィックエンジンです)。
私はこのテーマに関する2冊の本を持っていますが、それらはこのテーマに関する良い概要を提供します:
David H Eberlyによる3Dゲームエンジンアーキテクチャ
Mike McShaffryによるゲームコーディングの完了
完全なプロのゲームエンジンを作成するために必要な深い知識を得るために各コンポーネントについて複数の本が必要になるので、それらはあまり深くありませんが、コンセプトを非常によく説明していると思います。
ゲーム開発を始める場合は、エンジンを作らないでください。次のページを参照してください:http : //geometrian.com/programming/tutorials/write-games-not-engines/
エンジンを正しく動作させるには、注意が必要です。たくさんのゲームを書くと、しばらくして再利用可能なコードがたくさんあることに気付くでしょう。それを使って、あなたを助けるためにあなた自身の個人的なエンジンを作ることができます。そして、多くの(完全な)ゲームをあなたのベルトの下に置くことは、単一のエンジンよりもはるかに印象的です。
お役に立てば幸いです。
レイ
Rayの答えに追加:エンジン(ゲーム、グラフィック、オーディオなど)は、基になるAPIとのやり取りを容易にするだけでなく、ゲームに固有の機能を実装します。例:シェーディングモデル、3Dサウンド。
特にゲームエンジンの場合:ゲームオブジェクト、リソース(メモリ、スレッド、他のすべてのエンジン)、およびモジュール間通信を管理します。ゲーム構造、スケーラビリティ、および柔軟性を提供します。これは、重要なプロジェクトには不可欠です。
ゲームエンジンとは何かについて、特にiPhoneおよびAndroidプラットフォームのコンテキストで詳細なチュートリアルを作成しました。ゲームエンジンのさまざまな部分の例、UI、グラフィックス、サウンド、物理学、パーティクルエフェクトなどの詳細な説明を含めました。チュートリアルはここから入手できます:ゲームエンジンとは何ですか?。役に立てば幸いです。