OpenGLの勉強を続けるか、DirectXに切り替えてゲーム業界に就職するチャンスを増やすべきですか?[閉まっている]


29

OpenGLとLinuxを使用してグラフィックプログラミングを学んでいます。私はほとんどの概念にかなり精通していますが、私の知識をさらに深め、最終的にはゲーム開発、特にゲームエンジン開発のキャリアを追求したいと思います。

これまでのところ、ほとんどのゲームスタジオはDirectXを使用してWindows用のゲームを作成しているようです。

編集:OpenGL対DirectXの質問が以前ここで尋ねられたことは知っていますが、私が望む視点で答えが見つかりませんでした。

編集2:すべての応答/コメントを読んだ後、OpenGL / GLSLを使用してグラフィックスをさらに掘り下げていくことにしましたが、APIの基本を理解するために、DXでも試してみます。あなたが私に与えてくれた答えと洞察に感謝します。


この質問の一般化されたバージョンは、programmers.stackexchange.comでいくつかの良い答えをもたらすかもしれません...
Macke

1
基本的に、HLSLを一度も行ったことのないOpenGLの人から、DXシェーダーのより細かい点を教えられました。「フラグメントシェーダー」が「ピクセルシェーダー」を意味することを知っている限り、概念はほとんど同じです; P
drxzcl

IIRC、DirectXはバージョン8または9でOpenGLにかなり似たものになりました。それ以前は、DirectXは不必要に使いにくいと批判されることがありました。APIはまだ異なりますが、一般的なアプローチはかなり似ているはずです。免責事項-私はどちらの専門家でもありません。
Steve314

@Macke-キャリアに関するアドバイスはトピック@プログラマーから外れています。これはおそらく、あまりにも具体的であるが、一般的なキャリアの質問には、@話題になります(現在はエリア51で提案されている)専門の事項に行くと、このSEサポートすることにコミットしてください
チャド

圧倒的な確率は、グラフィックプログラマーではない業界に参入しても、1つのAPI、他のAPI、両方のAPIを知っているか、まったく知らないかは重要ではありません。それを超えて、会社とプロジェクトに依存します。D3DはPCスペースでより一般的に使用され、GL | ESはモバイルスペースで完全に支配的であり、コンソールはすべて独自に学習できない独自のAPIを使用します。
ショーンミドルディッチ

回答:


28

本当に関係ありません。特にピクセルシェーダーが標準になった今、コアコンセプトは両方で同じです。そして、ほとんどのゲームはマルチプラットフォームであるため、おそらく両方の言語で同様の機能のサブセットを使用するでしょう。glslまたはhlslでシェーダーを記述できる限り、問題ありません。

そうは言っても、そこにある「ゲームエンジン開発」ポジションの数は少ないです。ほとんどの企業は市販品を使用しています。存在するそれらのポジションについては、それらのさらに少数がエントリーレベルです。ほとんどのエントリーレベルのゲームプログラマーは、すべて抽象化されているため、グラフィック関連のコード(シェーダーを除く)を記述しません。


1
最もエントリーレベルのプログラマーは何をしますか?大、中、小のスタジオですか?
クアジイルファン


1
より一般的な答えを追加するために、私の経験では、ジュニアプログラマーはゲームプレイ、UI、HUDから始め、そこから作業を始める傾向があり、ゲームプレイは人気のあるエントリーポイントです。
JuniorDeveloper1208

私の経験では、アセット統合メニューとUIはさらに一般的なエントリポイントです。
コヨーテ

皆さん、ここのコメントでその特定の質問について長いスレッドを始めないでください。これらは私がリンクした質問に対する完全に良い答えです。
テトラッド

10

それはすべてあなたが望む/得る仕事に依存します。おそらく、DXが重要なPC市場での仕事について考えるでしょう。ほとんどのAAA企業は、APIが非常に特殊なコンソール市場を目指していることを覚えておいてください。

たとえば、PS3にはOpenGL ES実装に対する独自の拡張機能があります。

OpenGLはモバイル分野で成長しています。現在、Windows Phone 7を除くすべての最新プラットフォームで利用可能です。

現在、このスペースではOpenGL ESのみが使用可能です。しかし、OpenGL 4およびDX11のサポートにより、より強力なPowerVRチップが登場します。

OpenGLのスキルはゴールドです。DXに再変換して、それを必要とするジョブを実行できます。ただし、当面の間は、OpenGLが利用可能なデバイスとプラットフォームの量において重要であることを忘れないでください。


編集:さらに、既存のエンジンを使用する企業が増えており、多くの場合、コアゲーム開発者でさえ、低レベルAPIからますます選別されています。特定のプラットフォームでバグや奇妙な動作に直面しているときは、ネイティブAPIについて十分な知識を持っている方が常に良いです。しかし、それはすべて概念に帰着し、他の人が指摘したように、コアのDXとOpenGLは同じ概念の知識を必要とします。


編集:既にOpenGLおよびおそらくシェーダーに精通しているので、OpenCLを試してみてください...このAPIは、並列コンピューティングの次の大きなものになる可能性があります。

OpenCLカーネルはOpenGLと相互運用可能で、OpenGL開発者にとって理解しやすいデータ型を使用しているため、これについて言及しています。それを見て、素晴らしい一般的なコンピューティングソリューション(たとえば、現在、弾丸物理学に統合されている)で経験を積むことができるかどうかを確認してください。


OpenGLは業界標準であり、他のライブラリやAPIに影響を与えました。その重要性を無視しないでください。しかし、他方では、あなたは1つのことで停止するべきではありません。私があなたなら、OpenGLとDirectXを抽象化するより高いレベルのAPIとエンジンを見るでしょう。
コヨーテ

OpenCLに精通しています。私はサイドプロジェクトに取り組んでおり、物理エンジンを構築しています(初歩的で、主に学習目的)。OpenCLを少し使用して高速化しましたが、まだ驚くべき結果は得られていません(場合によっては悪化させた)
-adivasile

それは良い試みの兆候です;)弾丸エンジンの実装を見てください。とにかく、あなたのプロジェクトで頑張ってください。
コヨーテ

7

同意するのは、どのAPIを学習するかは問題ではないということです。基本的な概念を知ることが重要です。

ゲーム開発を見ると、Windowsが唯一のターゲットプラットフォームではありません。私が聞いたように、Appleはターゲットプラットフォームとして成長していますが、コンソールも非常に重要です。通常、コンソールには独自の専用グラフィックスAPIがあります(私たちは単に気にするためにそうしていると思います)。コンソールAPIは、DirectXよりもOpenGLとの共通点が多い傾向がありますが、それでも大きな違いはありません。

あなたに合ったものを選びましょう。


1
XBoxはおそらくDirectXの方法を詰め込んでいます...
マッケ

はい、PS3はPSGLを使用します。しかし、X360はDirectXをPC上にあるまま使用しましたが、それについてはわかりませんが、推測に過ぎません。
クアジイルファン

私はXboxの経験はありませんが、Wikipediaによると、そのAPIはDirectXに基づいています。PS3では、PSGLは利用可能なAPIの1つにすぎません。
-mrbinary

X360は、DX9に近いAPIを使用しますが、比較的少量の比較的高速なメモリがあるという事実に対応するために、いくつかの癖があります。
drxzcl

6

ゲーム開発教授の視点はどうですか?

OpenGLの基本がダウンしている場合、古いプラットフォーム(特にXP)は新しいグラフィックスをサポートしていないため、互換性のためにDx9が開発で使用されているDirectXの世界(DXに移行することに注意) Dx10およびDx11のパイプライン。(これは、Dx9で開始し、Dx10で違いを確認し、次に進捗状況に応じて11に変更することをお勧めします)また、より丸みを帯びたものになります。

理想的には、HLSLとCGである程度の時間を費やすことをお勧めします(これらの2つの異なるシェーダー言語は実際には同じ言語です(一方はMicrosoftによってブランド化され、もう一方はNvidiaによってブランド化されています)頂点およびフラグメント(ピクセル)シェーダーの仕組みを理解しますあなたとあなたが仕事に行くゲーム会社にとって大きな資産になります(あなたがAIコードではなくレンダリングシステムまたはサブシステムに取り組んでいると仮定します;-)

Ogre3Dは、両方のグラフィックサブシステム(OpenGL / DirectX)をサポートするオープンソースレンダリングエンジンであり、多くのゲームで使用されています...ソースは無料で利用できるため、OpenGLの呼び出しと呼び出しの違いを比較して楽しむことができますDirectX。

また、OpenGLでしばらく時間を過ごしたので、近い将来に爆発するようなWebGLを使用することをお勧めします。

お役に立てば幸いです!


少なくとも近い将来には、WebGLが将来爆発するとは言いません。プラグインなしでブラウザで3Dをレンダリングするもう1つの方法です。
クアジイルファン

製品にHTML5およびJSサポートを追加している主要ベンダー(Visual Studio)や、AdobeがEdgeを展開している企業(HTML5 JS Flashキラー?)によって、ハードウェアアクセラレーションを活用するWebベースのコンテンツがさらに多く見られると思います。
ロバートフランス語

4

私は最近、John CarmackがDirectXを推奨していることを読みました。Microsoftはしばらくの間、openGLに追いついたという単純な事実により、競合する製品を作成し、OpenGLの人々がDirectXを許可する委員会で設計と議論に時間を費やしている間に、彼らは競争力を高めました洗練されるようになり、作業しやすくなりますが、openGLに固執します。

http://www.tomshardware.com/news/john-Carmack-DirectX-OpenGL-API-Doom,12372.html

グラフィックス全般が好きかどうか、そしてそれが何のためかは、埋め込みスペースで何が起こっているかを考慮する別のオプションかもしれません。

LinuxとWinCEの両方を使用して、組み込みスペースで作業しています。私は元Ford SYNCアーキテクト(6年間在籍していました)でしたが、現在はGMのCUE(GMのFord SYNCに対する回答)に取り組んでいます。Ford SYNCはopenGLまたはDirectXを使用しません。代わりに、フォードはFlash&Actionスクリプトを選択しました。ボンネットの下でFlashが何をするかはわかりませんが、遅いです。JD Powersの評価は低かった。GMのCUEはすべてLinuxおよびopenGL ESであり、GM CUEには新しいiMXプロセッサーが搭載されていますが、Linux上のopenGLでのアニメーションのパフォーマンスは驚異的です。CUE / openGLははるかに高速です。繰り返しになりますが、FordはAdobe Flashを使用してシステムを不自由にしました。

したがって、ゲームに参加したいが、競争的な性質を心配しているが、この種の仕事が好きなら、履歴書を広げるオプションを見てください。少なくとも組み込みの世界では、WinCEがDirectXをそれほど使用していないように見えるのは私の経験でした。(WinCEには、その理由の一部であるNTとは少し異なるAPIがあります)。OpenGLは組み込みの世界のどこにでもあり、人々はタブレット、自動車のインフォテインメントが現在注目されている、そしてもちろんスマートフォンなど、もっと多くのことをしています...


埋め込みスペースについて言及する場合は+1。組み込みシステムのグラフィックスについては考えていませんでしたが(モバイルプラットフォームを除く)、少し調査を行った結果、検討する価値のある選択肢であることがわかりました。私は数年前に組み込みプラットフォームに興味を持っていましたが、他のものが邪魔になったので、私はそれをかなり早い段階で放棄しました。
-adivasile

2

履歴書では、どちらに特化したかに関係なく、両方で働いたことを伝えることができると思います。

私がそう言うのは、何でもそうであるように、特定のポイントを超えたAPI /構文の知識よりも一般的なテクニックに関するものだからです。何かをすることができ、自分のやり方を知っている必要がありますが、両方のAPIに巨大なものを実装する必要はありません。(つまり、スケーリングされないO(n * m)...)。APIを少し知っていて、さまざまなテクニック(つまりO(n + m))を知っているとうまくいきます。

もちろん、より高度なAPIの知識があることを示すため、DXで「高度な」操作を行った場合もボーナスを獲得しますが、どのような場合でも、ボックスの接続方法を知っていることを証明するために高度な技術が必要です(無視することあなたがそれを成し遂げるために言わなければならない特定の魔法の言葉)。

実際には、API(3dまたはそれ以外)、またはプログラミング言語と同じです。


1

DirectXは習得が難しいため、スキルが向上することがわかりました。通常、Directxはボードメーカーからより優れたサポートを受けていますが、マイクロソフトはこれらの進歩を活用するためのそれほど多くの更新プログラムをリリースしていません(ハードコアゲーマーの一部のサブセットのみが実際にそれらのボードを使用しています)。ゲーム開発に関しては、すべての主要なゲームプラットフォームは独自のグラフィックエンジンを使用しています... xbox-> DirectX Box :) 3Dの概念、メッシュ、ライティング、変換などを知ることは、すべての人にとって同じスキルです。


DX9-ishと「モダン」なopenGl(glBeginを使用しない)の概念的な違いはほとんどありません。2つのうちの1つが他の2つよりも「簡単」または「難しい」理由について、あなたの考えに感謝します。
drxzcl

1
私は実際にOpenGLの方が本当に基本的な基本を理解するのが簡単だと感じていますが、VBOとシェーダーに移るとすぐに、D3Dははるかに簡単になります(拡張機能がないため、より広範なハードウェアベースでも一貫性が高まります)。
マキシマスミニマス

それも私の経験なので、質問です。
drxzcl

1

片方を知っていれば、もう片方を簡単に手に入れることができます。

OpenGLを知っていれば、スマートフォン(AndroidとiPhone)に加えてwin / Linux / mac向けに簡単にプログラムできます。

DirectXはWin / Xboxのみです。したがって、Xboxをターゲットにしたくない限り、より多くのプラットフォームをターゲットにできるので、OpenGLにとどまると思います。


-4

OPENGLが好きです。たとえば、モバイルオペレーティングシステムであるAndroidがOPENGLを使用しているとします。OPENGLプラットフォームに基づいて開発された非常に多くのゲームエンジンがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.