2

意思決定の問題について助けてほしい。

私は初心者のビデオゲームプログラマーです。Flash、Unity、Android ゲームを開発でき、CryEngine も少し知っています。また、将来的には 3D ビデオゲームを開発したいと考えています。

そこで、C/C++ で動作するビデオ ゲーム ライブラリを学ぶことにしました。しかし、Allegro、OpenGL、または別のライブラリを学習する必要がありますか? それとも、直接 DirectX プログラミングの学習を開始する必要がありますか? Allegro プログラミングを学ぶことは有用 (良い基礎) ですか、それとも単に時間の無駄ですか?

4

2 に答える 2

6

しかし、Allegro、OpenGL、または別のライブラリを学習する必要がありますか?

何よりもまず: OpenGL はライブラリではありません! それの「L」はかつてライブラリを意味していましたが、「レイヤー」としてバックロニムにする方が良いです。なぜなら、それが最近の OpenGL の本当の姿だからです: プログラムとグラフィックス ハードウェアの間のレイヤーです。

OpenGL はゲーム エンジンではなく、ゲーム グラフィック ライブラリでもありません。OpenGL は低レベルの描画 API です。これを使用して、点、線、および三角形を派手な方法で描画できます。しかし、OpenGL にはシーンやオブジェクトなどはありません。これらはすべて、ゲーム エンジンによって実装される必要があります。ゲームエンジンを書くのは大変な作業です。本当にこれをやりたいなら、1 年前にリリースされた Doom3 のソース コードを参照することをお勧めします。

于 2013-04-13T00:04:49.410 に答える
3

Allegro は OpenGL とはほとんど関係がありません。

Allegro は、基本的な 2D グラフィック プリミティブ、ユーザー入力、テキスト、サウンド、タイマーなどを提供する単純なゲーム開発のための基本的なフレームワークです。Allegro では OpenGL を使用できますが、厳密で特殊な統合はありません。

OpenGL は、グラフィックスに特化した低レベル API です。

Unity と CryEngine を既に知っている場合は、それらに固執してください。それらの機能のほんの一部でも、OpenGL を使用して自分で実装するのは非常に困難です。これは、好奇心や低レベルでの仕組みを理解するためであっても、OpenGL を学ぶべきではないという意味ではありません。

DirectX はプラットフォームに制限があり、ほとんどのゲーム プラットフォームが DX をサポートしていることは事実ですが、ARM モバイル プラットフォームは増加傾向にあり、DirectX はそれらのプラットフォームでは動作しません。OpenGL は、D3D が提供するほとんどすべてのものに対応でき、より移植性が高いため、Windows ゲームだけに集中している場合を除き、投資する価値のある API です。それなら、もう少し使いやすい D3D を学ぶのが理にかなっています。

Unity を含む多くのゲーム エンジンは、グラフィックス API を抽象化し、ターゲット プラットフォームが提供するものを最大限に活用します。

また、OpenGL は Windows 8 の「メトロ」モードでは使用できないことに注意してください。そのため、メトロ モードで高度なグラフィックスが必要な場合は D3D を使用するか、ANGLE を使用して、エミュレートされる OpenGL のより基本的なサブセットに固執する必要があります。 D3D の上に ANGLE を配置します。

于 2013-04-13T00:04:57.417 に答える