DXライブラリとJava

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
クーゲルシュライバー

DXライブラリとJava

#1

投稿記事 by クーゲルシュライバー » 10年前

DirectX環境によって同じ2Dゲームでもjavaのほうが速度が速い事はあるんでしょうか?
DirectXを利用したゲームを行うと、必ずパソコンの音がうるさくなって動作が鈍くなります。
3DはDirectXが必須みたいな感じですが、同じ内容のゲームでそこまでグラフィックのレベルが高く
ないならばjavaのほうが良いですかね?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリとJava

#2

投稿記事 by softya(ソフト屋) » 10年前

メモリが足らない可能性はありませんか?
そのうるさい音がHDDから出ているのなら、メモリが足らないと思います。

あと実際に「javaのほうが良いですかね?」と比較できるゲームがあるのでしょうか。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クーゲルシュライバー

Re: DXライブラリとJava

#3

投稿記事 by クーゲルシュライバー » 10年前

Vectorで無料のシューティングゲーム(java制)とかダウンロードして実行するんですが、
何の問題もありません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリとJava

#4

投稿記事 by softya(ソフト屋) » 10年前

まったく同じゲームなら、ある特定の条件を除けばDirectXの方が早いです。
特定の条件は、DirectXに対応できていないハードウェアでは逆に遅くなる(CPUがエミュレートするため)可能性はあります。その場合はDirectX版のほうが負荷が高いかと。
DXライブラリの出すLog.txtを貼ってもらうと大体の動作状況は分かりますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クーゲルシュライバー

Re: DXライブラリとJava

#5

投稿記事 by クーゲルシュライバー » 10年前

スピードの差というのは、2Dでも顕著なのでしょうか?
具体的にどうjavaが遅いのか知りたいです、ネットでは遅い遅いと聞くので。
確かゲームボーイはjavaですが、遅いとは思いません。

クーゲルシュライバー

Re: DXライブラリとJava

#6

投稿記事 by クーゲルシュライバー » 10年前

ゲームボーイはjavaじゃなかったかもしれません、すいません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリとJava

#7

投稿記事 by softya(ソフト屋) » 10年前

クーゲルシュライバー さんが書きました:スピードの差というのは、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

#8

投稿記事 by softya(ソフト屋) » 10年前

クーゲルシュライバー さんが書きました:ゲームボーイはjavaじゃなかったかもしれません、すいません。
Androidの間違いでは?
ちなみにAndroidにもC/C++の開発環境はありますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クーゲルシュライバー

Re: DXライブラリとJava

#9

投稿記事 by クーゲルシュライバー » 10年前

ゲームボーイ(初代)ですね。最近はAndroidなんですか。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリとJava

#10

投稿記事 by softya(ソフト屋) » 10年前

クーゲルシュライバー さんが書きました:ゲームボーイ(初代)ですね。最近はAndroidなんですか。
ゲームボーイ初代はZ80系マイコンでアセンブラですよ。

【補足】
ゲームボーイは、1989年に発売。
Javaは公開されたのが1995年。

【補足の補足】
javaが動く携帯のものはガラケーからですね。
iアプリってやつです。

No: 7も読んでくださいね~。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クーゲルシュライバー

Re: DXライブラリとJava

#11

投稿記事 by クーゲルシュライバー » 10年前

>Windows上のjavaは結局のところWin32APIかDirectXかOpenGLを使って描画する

softyaさん、Win32APIとDirectXやOpenGLって同列なんですか?
どんな関数も最終的にはWin32APIになるって勝手な僕の思い込みだったのかな…

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリとJava

#12

投稿記事 by softya(ソフト屋) » 10年前

クーゲルシュライバー さんが書きました:>Windows上のjavaは結局のところWin32APIかDirectXかOpenGLを使って描画する

softyaさん、Win32APIとDirectXやOpenGLって同列なんですか?
どんな関数も最終的にはWin32APIになるって勝手な僕の思い込みだったのかな…
はい。Win32APIを経由せずに画面に書き込めるのでDirectXやOpenGLには高速性があります。
その代わり、Win32APIの描画とは喧嘩する可能性がありますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クーゲルシュライバー

Re: DXライブラリとJava

#13

投稿記事 by クーゲルシュライバー » 10年前

DXライブラリを3年使っていてjavaもDXライブラリも同じ仕組みのライブラリだと思ってました...
DirectXがOSの機能、win32apiを使わないって事は、実行時はOS自体を全く使わない事ですよね?
そんなことができるなんて全然知りませんでした。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリとJava

#14

投稿記事 by softya(ソフト屋) » 10年前

まぁ、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ありきです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クーゲルシュライバー

Re: DXライブラリとJava

#15

投稿記事 by クーゲルシュライバー » 10年前

softyaさん詳しくありがとうございます、OSを介さないってことはDirectXのセキュリティとかはどうしてるんでしょうか?気にすることないですか?

動作スピードよりライブラリの仕組みのほうに話が移った感じになってすいません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリとJava

#16

投稿記事 by softya(ソフト屋) » 10年前

セキュリティですか? 詳しくないですがビデオカードのドライバが担当しているはずです。
※ 正確にはドライバ自体にはWindowsOSのセキュリティ機能が絡んでいます。
ビデオカードでセキュリティ上問題に成るのは著作権保護の有る漫画とか映画とかTVの再生中でしょうかね。
そっちは詳しくないんでよく分かりません。

【補足】
OSを介さないと言うのは語弊があって、Win32APIを介さないだけでWindowsOSはアチコチに潜んでいます。
ドライバもWindowsOSの監視下です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

クーゲルシュライバー

Re: DXライブラリとJava

#17

投稿記事 by クーゲルシュライバー » 10年前

セキュリティはドライバによって監視されてて、Win32api以外のOSの部分もちゃんと活動してるんですね。
良くわかりました。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: DXライブラリとJava

#18

投稿記事 by ISLe » 10年前

いまはJava2DもDirect3Dの機能を使っています。
デフォルトでDirect3Dですが、OpenGLやソフトウェアエミュレーションに切り替えることもできます。

パソコンの音がうるさくなるというのは、無駄にCPU使用率が上がっているのではないでしょうかね。
そうであればプログラムの組み方次第なので、必ずというのは不思議ですし動作が鈍くなるというのも謎です。

ウチにはJava版とDirectX版でまったく同じ内容のゲームソフトがあります。
中身は古いアーケードゲームで、速度的にはJavaが不利ですが、コンテンツとしては問題ないレベルのものです。
どちらを起動しても特に違いはなく、うるさくなったり鈍くなったりすることもありません。

DirectXはグラフィックだけではないので単純に比較はできませんね。
Javaだとキーボード入力を変換するフリーソフトなどを併用しないとゲームコントローラーを使えませんしサウンド周りも弱いですし。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: DXライブラリとJava

#19

投稿記事 by ISLe » 10年前

実質的に何もしないプログラムでも組み方次第で簡単にCPU使用率を100%にできます。
そういうプログラムを動かすとウチのマシンも途端にファンの回転が速くなります。

動作が鈍くなるというのはアンチウィルスソフトとか関係してる可能性はないでしょうかね。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: DXライブラリとJava

#20

投稿記事 by ISLe » 10年前

デバイスドライバはウィンドウズが規定する設計モデルで作られるので、OSの管理下にあります。
グラフィックドライバであればいまはWDDMという設計モデルが使用されます。
また署名によるバイナリの改ざんなどのチェックが行われ、チェックをパスしないと読み込まれない仕組みもあります。

Win32 APIはGDIを指していると思いますが、GDIはディスプレイ以外にもプリンターなど描画可能デバイスを抽象化しています。
Direct3Dであればグラフィックボード専用のAPIという意味でDirectです。
アプリケーションがデバイスを制限なしに自由に直接叩けるという意味ではありません。

閉鎖

“C言語何でも質問掲示板” へ戻る