
お礼は必ず書きますのでどなたか教えてください。
今趣味で2Dゲームプログラムを色々と作っています。
最近2Dでは物足りなくなってきたので
3Dプログラミングを勉強していきたいなと思っているのですがDirectX Graphics と OpenGL
どちらを勉強しようか悩んでいます。
シューティング、RPG、通信プログラムなどを普段作っています。
今、2人で出来るなんちゃってオンラインゲームも完成したところで
将来オンラインゲームを自分で作れたらなと思っています。
今大学4年生で、去年授業でほんのちょっとOpenGLをかじりました。しかし難しくてほとんどわかりませんでした・・。
こんな私にオススメなのはどちらでしょうか?
(1)RPG,シューティング、などのゲームプログラムを通信プログラムも含めて作りたい
(2)PS2などで作られているソフトはOpenGLよりほとんどがDirectXで作られていると聞きましたがそうなのでしょうか?それはなぜですか?
(3)書籍などが充実しているのはどちらでしょうか?ウェブでの解説などがあればそちらでも。
(こちらの方がわかりやすく書いてある本があるなど)
結局この2つはどう違うのかが知りたいです。
どなたかお詳しい方教えてください。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
OpenGL/DirectXどちらも似たようなもので同じように使えますが。
。。。あくまでも目的によって選ぶ事になるでしょう。1.色々なOS/PCで動かしたいならOpenGL
DirectXはどんどんバージョンが更新されており、
少し古いWindowsでは、動かない事が良く有ります
(当たり前ですが)。
==>
Windowsの古い物をDirectXでサポートしようと
したら最新のDirectX9は使用でずに、古いDirectX5
程度のAPIしか使用出来ませんでした。
OpenGLは変わらない(?)ので、結構動きます。
またOSを問いませんし。。
2.最新の機能を使いたいならDirectX
上記1.の逆ですね。最新PCで最新機能を使い、
最高性能の描画を目指すならDirectXですね。
少し遅れてOpenGLの拡張機能としてGPUメーカが
ライブラリィーを出してきますが。。。
(PS1)
個人的には、初心者にはOpenGLが簡単かも??
資料はあまり有りません(変わっていない)
(PS2)
どちらにしろ、覚える事は大して変わらないので、
どちらかに決めてやってみれば良いと思います。
(PS3)
資料はDirectXが多いですね。
なるほど、OpenGLは更新されていないということはいつまでたっても古い機能しかない・・?
それなのにDirectXと同等の機能があるとはすごいですね・・。
最新の機能を追及したいものですよね、やっぱ。
資料は多いほうがサンプルなども見る事が出来ると思うので助かります。
ありがとうございました。
No.6
- 回答日時:
OpenGLはグラフィックライブラリ
DirectXは総合ライブラリ
(音周りからコントローラ周りまで一括で
しかもネットワークがらみのライブラリもある)
>(2)PS2などで作られているソフトはOpenGLよりほとんどがDirectXで作られていると聞きましたがそうなのでしょうか?それはなぜですか?
そもそもPS2でDirectXは使えませんから
No.4
- 回答日時:
no.3の者です。
ライブラリが用意されていると、ちょっとした3Dポリゴンを移動させるプログラムでも1から書くとかなり長い命令を書かないといけないけど、あらかじめライブラリ登録されてる関数を使えば数行でokとかで済みます。
まぁ、PS2とかXBOX360はゲーム専用機なのでライブラリ関係とか開発環境はお金&ライセンス登録すればいい環境が整うのでいいんですけどね。(^^;
自分も一時期ゲームソフトのプログラマーになりたいと志望してましたが、現在は他の職業に就いてて、趣味程度でゲームを作りたいと思って書籍を買っては勉強してました。(地方に住んでるのでゲーム会社は近くにありませんが)
実車での自動車でのサーキット走行や飛行機が好きなので、そういうレースゲームやフライトシミュレーションゲームを作ってみたいと思うんですけど、最近は作るよりもPS2のグランツーリスモ4とかにのめり込んでしまって、もうレース場でサーキットに行かないでも良くなってしまいました。(^^;
ライセンス登録ってものすごくかかりますよね・・お金が^^;
ライブラリの充実度は2者でどのように違いがあるのでしょうか?
DXライブラリというライブラリを使わせてもらっていますがライブラリが1~9くらいまでやってくれるので
楽々超楽チンでプログラミングさせていただいています^^;
やはり3Dプログラミングは夢ですね~><
No.3
- 回答日時:
(1)RPG,シューティング、などのゲームプログラムを通信プログラムも含めて作りたい
DirectXがいいでしょうね~~。
いろいろライブラリが揃っています。
(2)PS2などで作られているソフトはOpenGLよりほとんどがDirectXで作られていると聞きましたがそうなのでしょうか?それはなぜですか?
やはりライブラリが揃っているからではないでしょうか。
(3)書籍などが充実しているのはどちらでしょうか?ウェブでの解説などがあればそちらでも。
(こちらの方がわかりやすく書いてある本があるなど)
DirectX関連の書籍はかなり販売されてるのでお勧めは「DirectX9.0 3Dアクションゲームプログラミング」です。バイオハザード風のゲームをつくるにはいいかもしれないです。
本当はネット対戦プログラムが出来るようにと思って買ったのですが、それに関する記述は今回は見送られていました。(新刊があれば対応してるかも。)
ご回答ありがとうございます。
ライブラリがそろっているというのがどういうことでしょうか?
便利な関数が詰まっているという事でしょうか?
やはり関数がいろいろある方がアクションなどの表現もしやすくなるのでしょうね。
書籍が充実している方がやはりいいですよね。
DirectXの本チェックしておきますね!
No.2
- 回答日時:
簡単にいうとDirectX GraphicsはMicrosoftが作ったWindows限定のライブラリ群であるDirectXの中の一つ。
OpenGLは名前は忘れましたがどこかの会社がつくったOSに依存しないライブラリのことです。
なので、WindowsだけでなくUNIX系やMacなどで動くことを目標とするならば必然的にOpenGLになります。
Windowsだけで動くことを目標とするならば、これは自分の主観ですが、DirectX Graphicsの方がいいように思われます。
OpenGLは特殊効果よりもポリゴン数、つまり特殊な効果を使うよりポリゴン数を増やして複雑な3Dを表現してね、っていう感じなのでゲームなどを作るのだったら特殊効果に優れているDirectX Graphicsの方がいいと思われます。
ただ自分の使った感想では、DirectX Graphicsの方はMicroSoftが独自に定義した型のオンパレードだったり、設定が面倒に感じましたが、OpenGLの方がコードがすっきりしているような気がしました。
なのでどちらもやってみて後は好みで決めればいいと思います。どちらもこれから廃れているものではないと思うのでどちらもやって損はないように思います。
なるほど、確かにOpenGLはRinuxでプログラミングしました。
色んなOSで使えるという事は重要ですね。
ポリゴン数によって表現する方法と、特殊効果によって表現する方法にわかれるというのは知りませんでした。
それにMicroSoftが独自に定義した型のオンパレードというのは想像ができそうです・・。
なるほど、コードをすっきりさせたいのも大きいです。
ありがとうございました。
No.1
- 回答日時:
ゲームならDirectX。
画質よりも速度を優先して高速に描画します。OpenGLはCGやCADなどでよく使われますが、多少遅くとも正確に描画します。
PS2は独自の形式だと思いますが、XBOXはDirectXと互換性があるようです。Direct3DのX形式をそのままXBOXの開発でも使用できます。
あ、そうですよね。
PS2は独自の言語を使っていて、それをシェアにして失敗したとか聞いた事がありました・・。
違ったかな?
OpenGLは正確だとよく聞きますね。
しかしよく意味が分かりません。
ではDirectXは正確じゃないの?
書いた処理は必ず行われるものじゃないのか?
と思ってしまいます。
ゲームならDirectXなのですね。
確かに速度を求める処理が私のプログラムの中にもあります。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- その他(プログラミング・Web制作) VBA 1 2023/01/19 16:19
- オンラインゲーム 15年位前?のロボットをプログラムしてアリーナで戦うゲーム 1 2022/06/08 22:32
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
- その他(プログラミング・Web制作) 大学一年でVBAのプログラミングを勉強しているものです。来週の情報の授業で以下の問題のプログラムを勉 4 2023/01/19 16:15
- その他(教育・科学・学問) 「技術(テクノロジー)」と「工学(エンジニアリング)」の違いについて 5 2023/02/03 09:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python urlopen error について...
-
Windows Media Playerを開くと...
-
C++ 標準ライブラリの実際の中...
-
システムコールと標準ライブラ...
-
iCloudフォトライブラリ内の画...
-
Dreamweaverのライブラリが反映...
-
32768以上の乱数を作りたいので...
-
unix-c と linux-c の違いは?
-
DirectX Graphics と OpenGLっ...
-
C# EXCELセルの入力規則設定に...
-
Access2000のVBAでSHA-256ハッ...
-
本格的なGUIを作るのにおすすめ...
-
esp32のble
-
C++で開発可能なリアルタイムCG...
-
VHDLの記述についての質問です
-
declaration of 'index' shadow...
-
勝手に別の音楽が流れるアマゾ...
-
ライブラリ作成時のグローバル...
-
WAVE⇔MP3のためのライブラリ
-
pygame.error: File is not a W...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows Media Playerを開くと...
-
Google ColaboでGUI作成
-
本格的なGUIを作るのにおすすめ...
-
python urlopen error について...
-
Dreamweaverのライブラリが反映...
-
ライブラリ作成時のグローバル...
-
マウスのクリックを自動で
-
C++ 標準ライブラリの実際の中...
-
グローバルサイトのフォームバ...
-
unix-c と linux-c の違いは?
-
静的ライブラリから静的ライブ...
-
C# EXCELセルの入力規則設定に...
-
ISOイメージの作成方法について
-
【iTunes】CDをiPhoneに取り込...
-
WAVE⇔MP3のためのライブラリ
-
iPhoneのカメラロールへ画像を...
-
sleep関数
-
MFC/C++ sprintf の代わりに <<
-
VB.NET Blowfishで文字列を暗号化
-
設定ファイルを扱うライブラリ...
おすすめ情報