DXライブラリとJava
DXライブラリとJava
DirectX環境によって同じ2Dゲームでもjavaのほうが速度が速い事はあるんでしょうか?
DirectXを利用したゲームを行うと、必ずパソコンの音がうるさくなって動作が鈍くなります。
3DはDirectXが必須みたいな感じですが、同じ内容のゲームでそこまでグラフィックのレベルが高く
ないならばjavaのほうが良いですかね?
DirectXを利用したゲームを行うと、必ずパソコンの音がうるさくなって動作が鈍くなります。
3DはDirectXが必須みたいな感じですが、同じ内容のゲームでそこまでグラフィックのレベルが高く
ないならばjavaのほうが良いですかね?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
メモリが足らない可能性はありませんか?
そのうるさい音がHDDから出ているのなら、メモリが足らないと思います。
あと実際に「javaのほうが良いですかね?」と比較できるゲームがあるのでしょうか。
そのうるさい音がHDDから出ているのなら、メモリが足らないと思います。
あと実際に「javaのほうが良いですかね?」と比較できるゲームがあるのでしょうか。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
まったく同じゲームなら、ある特定の条件を除けばDirectXの方が早いです。
特定の条件は、DirectXに対応できていないハードウェアでは逆に遅くなる(CPUがエミュレートするため)可能性はあります。その場合はDirectX版のほうが負荷が高いかと。
DXライブラリの出すLog.txtを貼ってもらうと大体の動作状況は分かりますよ。
特定の条件は、DirectXに対応できていないハードウェアでは逆に遅くなる(CPUがエミュレートするため)可能性はあります。その場合はDirectX版のほうが負荷が高いかと。
DXライブラリの出すLog.txtを貼ってもらうと大体の動作状況は分かりますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリとJava
スピードの差というのは、2Dでも顕著なのでしょうか?
具体的にどうjavaが遅いのか知りたいです、ネットでは遅い遅いと聞くので。
確かゲームボーイはjavaですが、遅いとは思いません。
具体的にどうjavaが遅いのか知りたいです、ネットでは遅い遅いと聞くので。
確かゲームボーイはjavaですが、遅いとは思いません。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
描画するもの次第です。クーゲルシュライバー さんが書きました:スピードの差というのは、2Dでも顕著なのでしょうか?
具体的にどうjavaが遅いのか知りたいです、ネットでは遅い遅いと聞くので。
確かゲームボーイはjavaですが、遅いとは思いません。
半透明が多いとDirectXやOpenGLには勝てないと思います。
Windows上のjavaは結局のところWin32APIかDirectXかOpenGLを使って描画するしか無いのですが、同じ描画システムを使った場合ネイティブなC言語の方が早くなります。
まぁ、プログラムの組み方が悪かったらjavaが勝つ場合も有り得ます。
と言うことでC言語のDirectXのゲームとjavaのゲームがOpenGLを使っていた場合、描画の仕組みが違うのでどちらが早いかとか評価に困ります。
ハードウェア次第と言えるかもしれません。
今までの所、ハードウェアの仕様も不明ですし、そのjavaのゲームも不明ですので何とも比較しようがないといった感じでしょうか。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
Androidの間違いでは?クーゲルシュライバー さんが書きました:ゲームボーイはjavaじゃなかったかもしれません、すいません。
ちなみにAndroidにもC/C++の開発環境はありますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
ゲームボーイ初代はZ80系マイコンでアセンブラですよ。クーゲルシュライバー さんが書きました:ゲームボーイ(初代)ですね。最近はAndroidなんですか。
【補足】
ゲームボーイは、1989年に発売。
Javaは公開されたのが1995年。
【補足の補足】
javaが動く携帯のものはガラケーからですね。
iアプリってやつです。
No: 7も読んでくださいね~。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリとJava
>Windows上のjavaは結局のところWin32APIかDirectXかOpenGLを使って描画する
softyaさん、Win32APIとDirectXやOpenGLって同列なんですか?
どんな関数も最終的にはWin32APIになるって勝手な僕の思い込みだったのかな…
softyaさん、Win32APIとDirectXやOpenGLって同列なんですか?
どんな関数も最終的にはWin32APIになるって勝手な僕の思い込みだったのかな…
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
はい。Win32APIを経由せずに画面に書き込めるのでDirectXやOpenGLには高速性があります。クーゲルシュライバー さんが書きました:>Windows上のjavaは結局のところWin32APIかDirectXかOpenGLを使って描画する
softyaさん、Win32APIとDirectXやOpenGLって同列なんですか?
どんな関数も最終的にはWin32APIになるって勝手な僕の思い込みだったのかな…
その代わり、Win32APIの描画とは喧嘩する可能性がありますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリとJava
DXライブラリを3年使っていてjavaもDXライブラリも同じ仕組みのライブラリだと思ってました...
DirectXがOSの機能、win32apiを使わないって事は、実行時はOS自体を全く使わない事ですよね?
そんなことができるなんて全然知りませんでした。
DirectXがOSの機能、win32apiを使わないって事は、実行時はOS自体を全く使わない事ですよね?
そんなことができるなんて全然知りませんでした。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
まぁ、DirectXも今となってはOSの一部です。Vista以降のOSが使ってますからね。DirectXも立場的にはWin32APIの拡張です。
OpenGLはマイクロソフトと独自に発展してます。
Win32APIとDirectXとOpenGLは、全てグラフィックドライバと直接インターフェイスしていますよ。
ちなみにjavaがWin32APIとDirectXとOpenGLなのかは使うライブラリ次第です。
java2DだとWin32APIで、LWJGLなどを使うとOpenGLです。他にも色々ライブラリはあって、DirectXのもあったはず(うろ覚え)。
java自体がC言語で書かれているので、高速性が必要なライブラリの場合、部分的にはJNIで呼び出すC言語/C++で書きます。
「Java Native Interface - Wikipedia」
http://ja.wikipedia.org/wiki/Java_Native_Interface
【補足】
※ ビデオカード次第ですが、WindowsVista以降はOpenGLもWin32API(GDI)もDirectXでラップした機構で動いている様です。つまり、まずDirectXありきです。
OpenGLはマイクロソフトと独自に発展してます。
Win32APIとDirectXとOpenGLは、全てグラフィックドライバと直接インターフェイスしていますよ。
ちなみにjavaがWin32APIとDirectXとOpenGLなのかは使うライブラリ次第です。
java2DだとWin32APIで、LWJGLなどを使うとOpenGLです。他にも色々ライブラリはあって、DirectXのもあったはず(うろ覚え)。
java自体がC言語で書かれているので、高速性が必要なライブラリの場合、部分的にはJNIで呼び出すC言語/C++で書きます。
「Java Native Interface - Wikipedia」
http://ja.wikipedia.org/wiki/Java_Native_Interface
【補足】
※ ビデオカード次第ですが、WindowsVista以降はOpenGLもWin32API(GDI)もDirectXでラップした機構で動いている様です。つまり、まずDirectXありきです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリとJava
softyaさん詳しくありがとうございます、OSを介さないってことはDirectXのセキュリティとかはどうしてるんでしょうか?気にすることないですか?
動作スピードよりライブラリの仕組みのほうに話が移った感じになってすいません。
動作スピードよりライブラリの仕組みのほうに話が移った感じになってすいません。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DXライブラリとJava
セキュリティですか? 詳しくないですがビデオカードのドライバが担当しているはずです。
※ 正確にはドライバ自体にはWindowsOSのセキュリティ機能が絡んでいます。
ビデオカードでセキュリティ上問題に成るのは著作権保護の有る漫画とか映画とかTVの再生中でしょうかね。
そっちは詳しくないんでよく分かりません。
【補足】
OSを介さないと言うのは語弊があって、Win32APIを介さないだけでWindowsOSはアチコチに潜んでいます。
ドライバもWindowsOSの監視下です。
※ 正確にはドライバ自体にはWindowsOSのセキュリティ機能が絡んでいます。
ビデオカードでセキュリティ上問題に成るのは著作権保護の有る漫画とか映画とかTVの再生中でしょうかね。
そっちは詳しくないんでよく分かりません。
【補足】
OSを介さないと言うのは語弊があって、Win32APIを介さないだけでWindowsOSはアチコチに潜んでいます。
ドライバもWindowsOSの監視下です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DXライブラリとJava
いまはJava2DもDirect3Dの機能を使っています。
デフォルトでDirect3Dですが、OpenGLやソフトウェアエミュレーションに切り替えることもできます。
パソコンの音がうるさくなるというのは、無駄にCPU使用率が上がっているのではないでしょうかね。
そうであればプログラムの組み方次第なので、必ずというのは不思議ですし動作が鈍くなるというのも謎です。
ウチにはJava版とDirectX版でまったく同じ内容のゲームソフトがあります。
中身は古いアーケードゲームで、速度的にはJavaが不利ですが、コンテンツとしては問題ないレベルのものです。
どちらを起動しても特に違いはなく、うるさくなったり鈍くなったりすることもありません。
DirectXはグラフィックだけではないので単純に比較はできませんね。
Javaだとキーボード入力を変換するフリーソフトなどを併用しないとゲームコントローラーを使えませんしサウンド周りも弱いですし。
デフォルトでDirect3Dですが、OpenGLやソフトウェアエミュレーションに切り替えることもできます。
パソコンの音がうるさくなるというのは、無駄にCPU使用率が上がっているのではないでしょうかね。
そうであればプログラムの組み方次第なので、必ずというのは不思議ですし動作が鈍くなるというのも謎です。
ウチにはJava版とDirectX版でまったく同じ内容のゲームソフトがあります。
中身は古いアーケードゲームで、速度的にはJavaが不利ですが、コンテンツとしては問題ないレベルのものです。
どちらを起動しても特に違いはなく、うるさくなったり鈍くなったりすることもありません。
DirectXはグラフィックだけではないので単純に比較はできませんね。
Javaだとキーボード入力を変換するフリーソフトなどを併用しないとゲームコントローラーを使えませんしサウンド周りも弱いですし。
Re: DXライブラリとJava
実質的に何もしないプログラムでも組み方次第で簡単にCPU使用率を100%にできます。
そういうプログラムを動かすとウチのマシンも途端にファンの回転が速くなります。
動作が鈍くなるというのはアンチウィルスソフトとか関係してる可能性はないでしょうかね。
そういうプログラムを動かすとウチのマシンも途端にファンの回転が速くなります。
動作が鈍くなるというのはアンチウィルスソフトとか関係してる可能性はないでしょうかね。
Re: DXライブラリとJava
デバイスドライバはウィンドウズが規定する設計モデルで作られるので、OSの管理下にあります。
グラフィックドライバであればいまはWDDMという設計モデルが使用されます。
また署名によるバイナリの改ざんなどのチェックが行われ、チェックをパスしないと読み込まれない仕組みもあります。
Win32 APIはGDIを指していると思いますが、GDIはディスプレイ以外にもプリンターなど描画可能デバイスを抽象化しています。
Direct3Dであればグラフィックボード専用のAPIという意味でDirectです。
アプリケーションがデバイスを制限なしに自由に直接叩けるという意味ではありません。
グラフィックドライバであればいまはWDDMという設計モデルが使用されます。
また署名によるバイナリの改ざんなどのチェックが行われ、チェックをパスしないと読み込まれない仕組みもあります。
Win32 APIはGDIを指していると思いますが、GDIはディスプレイ以外にもプリンターなど描画可能デバイスを抽象化しています。
Direct3Dであればグラフィックボード専用のAPIという意味でDirectです。
アプリケーションがデバイスを制限なしに自由に直接叩けるという意味ではありません。