- 1 名前:名前は開発中のものです。 [2008/10/28(火) 18:23:40 ID:2CMNNHdH]
- Javaでゲームを作ろうと思っている人、今作っている人等が情報交換するためのスレです。
2Dのスレはありましたが、総合スレがなかったので立てました。 2D,3DどっちでもOKで、グラフィックス、アルゴリズム、お勧めサイト等、内容も自由です。
- 110 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 03:33:47 ID:gKO864oZ]
- Java2Dの何をがんばって欲しいんだよ。十分だろw
- 111 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 08:50:12 ID:Bv4Ttm4f]
- ぶっちゃけると5.0では速度上昇とかほとんどないよ
言語的にかなり良くなったのは確かだけど 6はゲームに関係なく大幅にパフォーマンスアップしてるからいいとして >>110 ちょっと前のレスくらい読めないか
- 112 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 10:58:28 ID:nPp8TJ7O]
- 1.4から5.0で大分変わっただろ。6が変わりすぎなだけで。
5.0だとString周りの最適化がイマイチだったからソースによっては大して変わらんが。
- 113 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 21:36:16 ID:Bv4Ttm4f]
- 5.0はVMはあんまりいじってないよ
言語関係の変更が大きいからAPIもあんまりいじらなかった
- 114 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:26:03 ID:KKKNBhB4]
- 個人的な感想では、5.0は「バグらなくなった」
総称型と拡張forのおかげで、collectionが格段に使いやすくなった印象がある。
- 115 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 00:06:35 ID:1M59rG1U]
- コレクションとかObject型なんていまどきありえんだろ・・・
すでに5.0だって製品終了移行期間だというのに
- 116 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 16:43:59 ID:TN+SZTza]
- なんでもいいので、Javaゲーム製作の話を聞かせてください
- 117 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 21:22:31 ID:jS/QiwxG]
- javaでゲーム作ってるがMIDPだしなぁ
- 118 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 23:32:28 ID:XGbF8guL]
- 話っていうより、まず皆さんのゲームを見せてください。
- 119 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 03:16:44 ID:MfbHcy6i]
- オープンにできる奴前提なスレが欲しければ、そういうスレを別途立てる意義があると思いますよ
人集まるかどうかは責任持てませんので、このスレの勢いあたりを参考にどうぞ
- 120 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 16:55:29 ID:8ZFUOkVn]
- >>117ですがBSDでADVエンジン作ってますが何か?
- 121 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 17:21:51 ID:tDB84xdv]
- そういえば数年前に月山プロジェクトってのがあったような
- 122 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 17:25:24 ID:omChvuvp]
- vectorにまだあるよ
- 123 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 22:03:07 ID:6TEXMRk9]
- >>121
なにそれ? ググってもよくわからないです
- 124 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 22:14:22 ID:Fa0s+wiT]
- ググッたら一番上にvectorが出てくる。
ググり方が悪い
- 125 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 22:39:51 ID:6TEXMRk9]
- >>124
すみません 出てこないんですけど、、、 鮫島事件みたいなもんですか? 月山プロジェクト javaとか月山プロジェクト vectorでググってもそれっぽいのでてこないです よろしければURLを教えてください
- 126 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 23:13:14 ID:99CIASbr]
- ttp://www.google.co.jp/search?hl=ja&q=%E6%9C%88%E5%B1%B1%E3%80%80java&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
なんでこの程度のことが出来ないんだ
- 127 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 23:29:52 ID:Il05ibjt]
- 懐かしいな。どこかの雑誌で読んだ記憶が。
- 128 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 23:48:13 ID:6TEXMRk9]
- >>126
そんなに怒らないで下ちゃい>< vectorから本家へのリンクが切れてるね もう、プロジェクトぽしゃったのかな?
- 129 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 23:59:03 ID:hs4jebv4]
- とっくの昔に消えてるがGPLならソース残してくれよ
- 130 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 16:23:29 ID:fQUpb2IM]
- jsgrid.hp.infoseek.co.jp/j3d/index8.html
これ使ったことある人いたら、使い勝手の良さとか教えて下さい。
- 131 名前:名前は開発中のものです。 [2008/12/18(木) 16:29:55 ID:5+hYGmku]
- スレ違いじゃボケ!!
- 132 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 22:10:19 ID:mg8VfrHv]
- 動いてるゲームを見せてほしいのだ。
自分のじゃなくてもいいから、凄いヤツ。
- 133 名前:名前は開発中のものです。 [2008/12/18(木) 22:16:27 ID:5+hYGmku]
- だからスレ違いじゃ!!
ここはゲームを作成するスレじゃ!!
- 134 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 05:47:06 ID:ll2XIugg]
- だって、Javaのゲームなんて全然見かけないじゃん。
ここで「Javaでゲーム作ってる」みたいな話してるけど、 実際は誰も作ってないんじゃないの? って疑問なわけ。
- 135 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 07:18:19 ID:DyRt92vu]
- いくらでもあるだろ
- 136 名前:名前は開発中のものです。 mailto:sage [2008/12/19(金) 12:58:35 ID:oxoM9XoW]
- 有名な、Javaアプレットのマリオ
ブラウザで遊べる www.mojang.com/notch/mario/ ※音注意
- 137 名前:名前は開発中のものです。 [2008/12/19(金) 21:45:07 ID:f7nCI5ip]
- 只今、プログラミングのできる人材を急募しています。以下に当てはまればどなたでも対象となります
1:Javaが使える(専門学生でも可能な範囲) 2:プログラミングが好きな方 仕事内容を簡単に説明すると、携帯アプリを開発する事です。報酬、勤務日数・勤務時間、勤務地などは直接お会いしてご相談させて頂くこととし、極力ご都合に合わせて柔軟に対応してまいります。ご相談時にお会いする場所としまししては都内の六本木とさせて頂きます 少しでも何か質問・興味がごさいましたら下記のアドレスまでメッセージをお待ちしてます。宜しくお願いします taniguchi_iii3@yahoo.co.jp
- 138 名前:名前は開発中のものです。 mailto:sage [2008/12/20(土) 00:31:58 ID:RcoayKqr]
- >>137
ギャラ書けよ
- 139 名前:名前は開発中のものです。 mailto:sage [2008/12/20(土) 01:14:36 ID:t79yXi4L]
- 2chで急募とかどんだけ切羽詰まってんだかw
不景気だろうが世知辛い愚行
- 140 名前:オナカ(;´Д`)スイタ [2008/12/20(土) 01:37:42 ID:kxdPfTn6]
- 時給5万なら
- 141 名前:名前は開発中のものです。 mailto:sage [2008/12/20(土) 03:54:22 ID:F7xU+Sg4]
- つうかマルチうざい
- 142 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 01:14:54 ID:0ycqBLMt]
- なんか、javaでゲーム製作のためのキラーフレームワークみたいなの出ないかな
C#だとゲーム用フレームワーク何個かあるよね javaだとGTEGは開発止まっているっぽいし、jMEは期待したけど公式みてもよくわからんし
- 143 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 01:25:58 ID:2HNvbm7d]
- java版のXNAが出ればいいんだな。
javaでゲームって海外ですらほぼ趣味の領域なのにそんなもんは出ない気がする。
- 144 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 08:23:01 ID:0ycqBLMt]
- >>143
そうだとしたら残念 でも、javaだとDIコンテナとかWebアプリケーションフレームワークとかよく使う領域だとオープンソースのフレームワークが何個も乱立してるじゃないですか それ以外でもあまり使わない領域でSOA関連でもSCAとかJBIとかあるし、、、 だから、ゲーム関連でも1,2個フレームワークがでてきてくれて、そのうちの1個がスタンダードになってくれると嬉しいなと思った C#よりjavaの方がその手のフレームワークは多い気がする
- 145 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 14:06:03 ID:zTRJkVsL]
- 1,2個ならGTGEとjMEがあるじゃないか。
というかjava.dev.netのgameの項にいくつもホストされてるじゃないか。 ていうかjavaでゲーム作るなら自分で下層のフレームワーク作らないか? 俺はそれ使ってるんだが。
- 146 名前:名前は開発中のものです。 [2009/01/02(金) 09:54:41 ID:FHD5Wl49]
- あ、ちょうどいいや。自己宣伝。
sites.google.com/site/gorogoronyan/Home たまたま久しぶりにプログラムを書いていたもんで。 一点透視図法による自動車シミュレータのサンプル。 このあたりまではJavaでもできる。
- 147 名前:名前は開発中のものです。 mailto:sage [2009/01/02(金) 22:05:34 ID:NzuwmyZb]
- ピクセルごとにやると限界がみえてくるよね。結局メイン・メモリのアクセスが問題なんだけど。
最近思うんだけど、ピクセルごとにやるのってゲーム(アニメーション)というよりも画像処理・画像解析なんじゃないの? それと一点法だけど公式をみると比率で出してるけど、もしgpuやopenglなどのハードに頼らない従来の方法(つまりGraphics2D) でやるなら、ベクトル方程式でやるのが妥当だと思うんだけど。
- 148 名前:名前は開発中のものです。 mailto:sage [2009/01/02(金) 22:10:39 ID:NzuwmyZb]
- それと、SSEとかJNIの方も実験してみたけど、ループでまわしてテストするとJVMが落ちて使えないしこのバグの原因も良く分からないし、
バグ潰しに時間使うのバカらしいから結局JNIでSSEは諦めた。一応mingwのgccを使って。 それにFPUと比べて、SSEでやると高々2倍ぐらい処理が早くなる程度でGPU(やOpenGL)に比べるとそんなにうまみもないし、 けっきょくCPUとFPUに頼るなら、擬似3Dは試験・実験程度が限界かと思う。無理して3D化するなら品質もFF7ぐらいかな。 Java3DとかJOGLとかのハードにアクセスできるライブラリじゃないと楽しむ目的のゲームは無理だと思う(Javaはプログラミングしやすいから擬似3Dなら実装実験にはいいけど)。 まあ、頑張ってアルゴを考えちゃう人もいるんだけど、そういうのはライブラリとハードで既に実現されているわけで、もし実験目的じゃないならその労力は別のところで使えばいいんじゃないかな。
- 149 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 13:05:01 ID:t9akt5LC]
- >>146
3D化ってこうやってやるんですね。参考になりました! 遠近法以外に3D化する方法って他にあるんですか?
- 150 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 15:28:53 ID:Am4P4YsQ]
- 何もわからなければ普通にJOGLとかJava3D使ったほうがいいと思う
- 151 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 15:35:49 ID:ghOEma/D]
- ええっ!そんな・・・
Javaだと数学公式で書いてあっても結構実装しやすいんですね。
- 152 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 16:40:07 ID:Fpl4xlxf]
- 2Dゲームの話もしませう
- 153 名前:名前は開発中のものです。 mailto:sage [2009/01/07(水) 01:01:16 ID:Klul6qgz]
- >>152
アルファブレンディング使わないのなら Java2Dだけで十分使えるようになった。 u10以降。 標準APIだけでここまでよくなったのはすばらしいが、 せめて加算合成だけでも実装して欲しかったなぁ。
- 154 名前:名前は開発中のものです。 mailto:sage [2009/01/07(水) 01:54:21 ID:f23xR0rU]
- 自分でブレンド処理クラスとか加算合成クラスとか作るとそんなに遅いんですか?
ピクセル単位でやるわけでu10でそのような処理用クラス用意したとしても結局同じだと思うんですけど。
- 155 名前:名前は開発中のものです。 mailto:sage [2009/01/07(水) 02:33:37 ID:H12DUZW9]
- ハードウェアアクセラレーションがきかねぇって話をしてるんじゃないか?
- 156 名前:名前は開発中のものです。 [2009/01/07(水) 15:09:28 ID:RZ4OcdR7]
- >147
146の者です。 鋭いですね。 元がゲーム屋さんではなくて、画像処理屋さんなもんで。 3D関連にうといので実験的に作ったのですが、 本格的な話になるとPC上ではJavaよりはC#、C#よりはC++ という話になるんでしょうね。
- 157 名前:名前は開発中のものです。 mailto:sage [2009/01/07(水) 16:18:55 ID:LMBDGvZd]
- いやJOGLで十分できるから
- 158 名前:名前は開発中のものです。 mailto:sage [2009/01/07(水) 23:45:14 ID:9SF/8/R3]
- 2Dとか3D以前に基本的なゲームループの話とか場面管理とかクラス構成の話もしてください
- 159 名前:名前は開発中のものです。 mailto:sage [2009/01/07(水) 23:52:14 ID:XuNNcZQw]
- >>156
いや、君のHPの説明は結構参考になったよ。素直なコードだし、数学・物理の公式をコード化するのとか得意なんじゃないか? ただHPにあったけどjvm上自動で行う、配列のindexチェックで遅くなるという主張はただの妄想でしかない。たしかに20マイクロ秒ぐらいは違うだろうけどw 画像処理(CGとか非リアルタイムも)が得意なら、まずJavaで実験用コード・レファレンス実装して、これをハードに組み込みするという流れになるかもしれない。 その処理コードをハードに組み込みとか会社規模でやるんじゃないなら、PC(個人向け)ではもうすぐ環境が整うだろうけど、gpuやdirectx, openglのハード(ベクトルユニット)でやるようになると思う。 ベクタライズに多少書き直すことになるけど、PGする側からみれば結局は昔からあるコンパイラ最適化技術「ループ展開」の発展版でしかない。 pc.watch.impress.co.jp/docs/2008/1225/loilo.htm GPGPU対応動画編集ソフト「Super LoiLoScope」がパッケージ販売 こんなのも出始めたから一般PG向けにそれら計算ユニット(ハード)が使える環境が整うまではあと2年ぐらい必要なんじゃないか? といっても画像処理は分岐だらけだろうから、従来のようにピクセル毎でチマチマでもあまり差はないけど。 ただ、ベクトルユニットが使えるようになるとプログラミングスタイルやアルゴリズムが少し変わると思う。 リアルタイム処理(つまりあまり厳密じゃなくかなり適当でいい処理なもの)なら今なら普通にOpenGLが旬だし、2年ぐらいならJava3Dも来るかもしれない。
- 160 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 00:01:36 ID:tf5zZsbW]
- 一言で言えばJOGLでおk
- 161 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 00:24:34 ID:IHwS1EtB]
- それと、sseも試行錯誤の末Javaからつかえるようになったけど、1.2-1.5倍、場合によっては1.7倍ぐらいかな。
よくエンコードソフトとSSE対応批評でこれだけ違うってのと大体同じ。 new float[1024]ぐらいまでなら普通にforでdst[k]+=src[k]とたいした差はなかった(高々1.1の向上程度)。 アセンブラも含めてかなり文書(英語)を読まないと使えるようにならないけど、苦労した割にはそれほど恩恵はないかな。 [16*16]程度の小さいブロックでforで処理すれば済むし、実際にはピクセル画像処理(アルファを使ったブレンドも含めて)は native vectorization_mul (dst=new float[300*300], src=new float[300*300]); とか、[300*300]など大きな塊(画像)を一度にマスク処理するようなことはしないからなぁ。 それと、intel ネイティブなのも痛いかな。opengl やgpu だとintel以外でも使えて汎用性高いし 専用ユニットだから[300*300]とかならsimdはそっちのシフトしていくような気がする(ゲームとかストリーミングとかのリアルタイム性なもの)。 一応[300*300]とかだと1.6倍ぐらいSSEの方が早いんだけど、intel用にチューニングするには結構苦労する。 この用途でのsseはgpuが普及するまでのつなぎ(5年ぐらいかな)かもしれない。 浮動小数FPUと同じくコンパイラ・言語がサポートしちゃえば楽なんだけど今のSSEの普及率はFPU程普及してないし言語・ライブラリのサポートはまだまだなのかもしれない。 これからのプログラムは画像・映像加工処理が多くでかいデータ量を一度に扱う必要があるから、5年後のsseはfpuと同じく気がつかないで使ってるとかになるんじゃないかと思う。 sseをjavaで使えるようにするにはム版のjniスレに試行錯誤を少し書いといた。 sseはintel ネイティブ機能なんだけど、だれかブログとかでまとめといて。
- 162 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 00:29:33 ID:IHwS1EtB]
- >>156
C++ってことなないよ。ライブラリはCで作るかもしれないけど、それを使うのはC++やJavaでも言語はあまり関係ない。複雑なのじゃなきゃruby(でOpenGLのAPIラップしたクラスを作って)でもいいんじゃない? つまり今ならJavaでやるならJOGLで十分。 実際SWTみたくOpenGLやDirectXのAPIをJNIでラップしてあるだけだし。C++とJavaの差では、800マイクロ秒ぐらいの差はあるかもしれないけど。
- 163 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 00:58:26 ID:qJ7iXp4o]
- だからなんでJOGLでおkな話をそう長々といちいちレスするんだ。一人で喋ってて楽しいのか?
- 164 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 02:07:06 ID:22rtTB5l]
- ソフトレンダならもちろんマルチコア対応してるよね?
- 165 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 03:13:55 ID:IHwS1EtB]
- >>163
てか、おまえ誰だよ。何も作れないくせにJOGLの宣伝部長かww
- 166 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 04:00:12 ID:vFqRA9Ny]
- 無能が能書きたれるのはどこも一緒だなw
- 167 名前:名前は開発中のものです。 [2009/01/08(木) 04:06:29 ID:IHwS1EtB]
- >>163
じゃJOGLでおkなことを長々と語ってくれないか? おまえみたいな無能じゃ無理かw JOGLていうよりもOpenGLすら使ったことないんだろうww
- 168 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 07:19:56 ID:4pdEl9iG]
- >>154
自前のCompositeを使うと、内部でGeneralCompositePipeという物が使われる。 sun.java2d.pipe.GeneralCompositePipeの88-89行目を見ると、 dstIn = dstRaster.createChild(x, y, w, h, 0, 0, null); dstOut = dstIn.createCompatibleWritableRaster(); となっている。この時確保されるdstOutのサイズはw×hではなくて、dstRasterと同じサイズになる。 (java.awt.image.Rasterのソースを参照) 多分開発者は、createCompatibleWritableRaster(w,h);と同じ結果を期待していたんだと思う。 そのせいで、大量のメモリの確保を何度も行う事になる。何度も。 しかも、大きい図形は内部で32×32に分割して描画しているからメモリを確保する回数がさらに増加する。 これではアクセラレーション以前の問題。 どう見てもバグだけど、誰もゲームに使わないからか特に問題にならず、一向に修正されない。 描画に使う一時的なRasterは一々確保せずにキャッシュを使ってほしいけど、面倒だったのか毎回確保してる。 だから、自作Compositeをゲームに使いたいなら、Graphics2Dを使わず自分で処理するのが無難。 英語が得意なら、バグを報告して修正を待つ手もあるけど。 あと、Composite内で使うgetPixels()やsetPixels()も妙に遅い気がする。 sun.awt.image.DataBufferNativeが怪しい。自分の所だけかもしれないけど。
- 169 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 12:20:24 ID:exKmWyW7]
- >>168
だからその程度の技術力しかないなら、普通にJava API(高度に抽象化したAPI)を使えばいいよ。 確かjdk1.5ではBufferedImageは全てキャッシュされるって書いてあったから、その指摘も数年で色あせるんじゃないか?w そもそもjava.awtパッケージなのに、内部実装sun.*パッケージのソースにいちゃもんつけてるし、結局おまえじゃ何も出来ないだろww そんなにこだわりあるならネイティブ向けパッケージ使え。タコがw >>163 それと、JOGL(OpenGL)はAPIであって、GPUとかSSEはハードであって、上ではハードの話が書いてあるんだけどこの区別ついてる? 君の作ったOpenGLを使ったゲームを出してみ。
- 170 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 12:40:43 ID:exKmWyW7]
- 何度読んでもツッコミどころ多いな。
一般人程度の知識しかなく大してハード(メモリやCPU)のこと知らないのによくここまで妄想して大口たたけるものだと感心するよ。 そこまでJava/JVM(高度に抽象化したプラットフォーム)にこだわりがあるなら、まずは各ユニットの仕様知り各ハードの役割とか勉強したらどうだ? バスとかいっても何のことか分からないでしょ。ハードのことをとことん知ると、java.awtも含めて君の指摘する文句たらたらのアプローチになるから。 内部に思い入れなくアルゴリズムの研究するだけなら、Javaらしく、良い子はBufferreImage.getRGBを使え。w
- 171 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 19:22:31 ID:4pdEl9iG]
- >>169
(´・ω・`)?
- 172 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 19:59:44 ID:yiuTB4qR]
- もうさぁ、そういうのどうでもいいからさぁ。
ゲームを見せてよ。 みんなそんなに語ってるんだから、凄いゲームいっぱい作ってるんでしょ? どーなのよ? それとも、ゲームは作れないけど知識は凄いよ! みたいなことアピールしてるだけ?
- 173 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 21:24:31 ID:GSLhRqng]
- 最近Javaアプレットで作られたすげーゲームって何かないですか?
刺激にしたいです
- 174 名前:名前は開発中のものです。 mailto:sage [2009/01/08(木) 21:43:50 ID:4pdEl9iG]
- 突然喧嘩口調のレスが来たから何事かと思って変なレスしてしまった。ただの人違いか。
特に>>170が誰宛なのか判らずに悩んだ。>>168はjoglの人とは別人なんだけど。 >だからその程度の技術力しかないなら、普通にJava API(高度に抽象化したAPI)を そのJava APIの話が>>168。java.awt.*とjava.awt.image.*を参照。 あと、「だからその程度の技術力」の根拠詳しく。joglの人と間違えたんだと思うけど。 >確かjdk1.5ではBufferedImageは全てキャッシュされるって書いてあったから、その指摘も数年で色あせ createCompatibleWritableRasterは0で初期化したラスターを返す。(これは仕様) つまり、憶測通りBufferedImageがキャッシュされるとしても、 全画面を黒く塗り潰す処理を何度も実行したのと同じ負荷がかかる。 これを防ぐには、無駄な領域を確保せず、staticなソフト参照を使って使い回す必要がある。 それにはGeneralCompositePipeの修正が必須。数年で色あせてくれるんなら助かるんだけど。 >そもそもjava.awtパッケージなのに、内部実装sun.*パッケージのソースにいちゃもんつけてるし、結局おまえじゃ何も出来 java.awt.image.Rasterの方は修正すると既存のプログラムに影響しうる。変更は望めない。 sun.java2d.pipe.GeneralCompositePipeの内部処理を変更するべき。 あと、デバッグツールによりsun.awt.image.WritableRasterNative.setPixels()が遅い事が分かっている。 DataBufferNativeが関係している可能性がある。これは自分の環境が悪い可能性が高いけど。 何もできないのは同意。これを修正できるのはVMの開発者だけ。バグ報告も自力じゃ無理。 あと、BufferdImage.getRGBのソースを見たけど、内部で同じメソッドを呼んでいるから速度は大して変わらない。 >>172 ゲームのエフェクト等に有効な加算合成がJava2Dに搭載されていないから、 自前でCompositeを用意して解決しようとしたら異常な遅さで困った。 一番重い筈のcompose()の中身を全部コメントアウトしても尚遅いまま。 なかなか原因が分からず、苦労している内にGeneralCompositePipeのバグに到達した。 AlphaComposite以外を使うと異常に遅くなるのは主にこの手抜き実装のせい。 この事を話す機会が無かったからつい。ゲームは作れないけど知識は凄いよ。
- 175 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 00:21:25 ID:5u2RDdW1]
- AlphaCompositeはハードウェアアクセラレーションあるから自前のは勝負にならない
標準APIで加算合成実装してもらう以外に方法がないのでJOGL使うのが一番無難
- 176 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 00:23:05 ID:KcPxsY0I]
- どうでもいいから黙ってろ。
- 177 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 00:27:02 ID:5u2RDdW1]
- >>176
お前が荒らしか
- 178 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 02:08:32 ID:TyEo4JkI]
- だから、その程度の知識しかないなら内部にさわるのは止めとけ。
おまえはよく人のソースを読んだりしてるようだからどちらかといえば公式どおりの素直なコードを書くほうが向いていてるんじゃないか? 内部の職人技コードにはついて来れないだろう。さっそく >これを修正できるのはVMの開発者だけ とかついて来れないじゃん。バグ報告はパラダイスでフォームどおりに書くだけだろ(英語)。 俺の場合はたしかキャプチャーのバグ話で送ったけど担当者から丁寧な返事がきたぞ。 つまりおまえ技術力、知識、教養は、ウンチクだらけで実際はたいしたことないってこと。 中途半端な知識しかないのに「ウンチク電波」を垂れ流すのやめてくれないか?
- 179 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 02:29:19 ID:TyEo4JkI]
- それと、javaで、それもGraphics2Dで作る限り速くなるはずはないな。
たとえおまえが言うウンチクの場所(getRGBやclass Raster)が改善されたとしても、ゲームとして10倍50倍速くはならないだろ? Java2Dでも複雑なテクスチャや画像を貼り付けたり、頻繁にpaintをしないなら、今のCPUの力技ではゲーム上全く問題ない。 まさかJava2Dだけで、PS3並みのゲームを作ろうと意気込んでないか?wそれ、おまえの妄想だからw ゲームでも何でも3Dの場合は、画像処理とは考え方が違うし加算合成が速い・遅いとか(ソフト上アルゴリズム上の問題は)関係ないから。 Compositeが遅いとかも、1画像(1フレーム)の処理に3秒以上かかるとかじゃないだろ? アニメーションにすると遅いって言うなら、それはおまえが画像処理(静的処理)とゲーム(リアルタイム性)の区別がついてないで、 同じ手法(考え方)でやってるのが問題。おまえは、知識が凄いんじゃなくて、おまえは頭が固く、ウンチクの塊だって気がつけ。 どうせ、おまえが書くコードなんかifばっかりなんだろ。w >>170はIDのとおり>>168だろ。IDでつながってるのから分かるだろwおまえが無能だってことが書いてある(笑)
- 180 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 02:46:49 ID:TyEo4JkI]
- gpgpu専用画像ソフトのリンクあるけど、販促デモ(動画)みてないの?
たぶん、今までの画像とかゲーム・アニメーション(リアルタイム)の処理することに対する考え方が全く変わるから。 それに、既存のC++とかC#(DirectX)と同じ土俵(従来のコンソール型のゲーム)だとJavaは全く不利になるけど、 それ見ると、Javaでゲームを創るていう方向性(どういうゲームを作りたいのか)も変わるんじゃないか。 純粋なゲームは従来どおりOpenGL/DirectXとかのゲーム向けAPIでいいわけで、Javaで言うゲームの場合はそういった純粋なゲームとGUIとの垣根がなるなるんじゃないかな(これもグーグルマップみたいなWeb 2.0なのかww)。
- 181 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 05:08:37 ID:+ySW3WLq]
- >>175 アクセラレーション以前に重大な問題(バグ)がある。それを解決すれば一応使えるレベルにはなる。
>>178-180 言ってる事はまともなのに何故か微妙に喧嘩腰。2chでは非常に珍しいタイプ。 職人技コードとバグ報告とウンチク電波の関係は謎だけど、とりあえず報告しておいた。サンクス。 あと、RasterやgetRGBはともかく、GeneralCompositePipeのバグは数十倍の差が出る。というか出た。 それから、別にPS3みたいなゲームを作りたいんじゃなくて、 折角Compositeの様な仕組みがあるんだから有効活用したいと思ってただけ。>>174の後半参照。 流石に1フレームに3秒はかからないけど、0.3秒はかかる。つまり約3fps。これじゃゲームは無理。 composeの中身を全部コメントアウトしても尚3fps。でもAlphaCompositeを使うと60fps。 バグの影響が出ないようにウィンドウサイズを描画範囲と同じサイズにしたら自作Composeでも60fps。 この時点で、アルゴリズムの問題じゃない事が分かる。処理を省略しても遅いから。 >>170は確かに自分宛だけど、わざわざ分割する意味が分からなくて悩んだ。 とりあえず、何でさっきから散々に言われてるのかは理解した。 自分は「遅い」を「とても我慢できない遅さ(3fps)」という意味で使ったけど、 相手は「遅い」を「なんかもたつく程度(25fps位?)」と解釈してた。 それで、「お前のアルゴリズムが悪い。それを一々VMのせいにするな」と。 具体的な遅さを説明しなかった自分が悪いんだけど。
- 182 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 08:25:45 ID:hGRghaTr]
- >>181
ここはゲームに関係したもんじゃないと、君のウンチク自慢でしかないってこと リアルタイムなわけで、1ピクセルごとにチマチマやるような手法じゃ通用しないってこと知らないだろ。 チマチマを否定するつもりはないけどゲームではあまり関係ないし、そのうちアルファブレンド関係全て(フィルター処理)はGPUの手法になるよ。 アルゴの実験ならJava2D、Java3Dを画像処理に応用したいならストリープ・プログラミングでも調べてみたら? 今までのプログラミングの概念が全く変わってしまい、君のような石頭オジサンがスカスカのスポンジに変わっちゃうからw といっても、ゲームとかアニメーションとか君は作れないから無理かぁ(笑)
- 183 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 11:22:16 ID:+ySW3WLq]
- >>182
だから、この遅さは「1ピクセル毎にチマチマ」以外に大きな原因があるんだって。60fps→3fpsが異常なのは分かるだろ。 報告テンプレのためにあれこれ検証した結果、VolatileImageの部分をBufferedImageにすれば、とりあえず解決する事が分かった。 BufferedImageのサイズを大きく変更すると、描画範囲が変わらないのに少し重くなるから、一応バグはあるようだけど。 GPUの事は知っているけど、Javaの標準機能でやりたくて。 贅沢を言わなければ1px毎にチマチマやっても平気。不具合に遭遇したら話は別だけど。 問題は解決したし、さっきから長文の応酬でスレが流れているからこの辺で。 ところで相手をオジサン呼ばわりって事は学生? 自信満々の態度から経験豊富な本職のプログラマーだと思ったんだけど。口調が違うから別人?
- 184 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 12:48:54 ID:QZjHz82j]
- バク見つけたらさっさとバグパラダイス(英語)で報告しとけ。
それぐらいもできない奴が不満たらたらウンチクたらたら書くな。いしあたまw
- 185 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 13:29:36 ID:5u2RDdW1]
- >>179
2Dゲーだけならu10で実用的になったのにゲームで多用する加算合成がないというオチが非常につらい あと速度は真っ先に考えるところだと思う VGAサイズで60fpsとかは普通はやりたいと考えるだろう Java2Dのハードウェアアクセラレーションの範囲が大幅に増えたのにソフト演算が入った瞬間に速度大幅低下はつらい >>183 そのバグはu7以下とu10以上でも同様の結果?フレームレートだけだとあいまいすぎるから μ秒単位でだしてみたら?
- 186 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 15:30:52 ID:z+PbZ31H]
- へんなのに居座られたもんだな。
- 187 名前:名前は開発中のものです。 [2009/01/09(金) 15:49:56 ID:IMX83G6u]
- >>185
画像処理してるわけじゃないだろ。そんな凄いゲーム作るんならJava2Dにもうこだわるのやめたら? どうせVGAサイズで60fpsなんて作れないくせにwwwいしあたま君ww
- 188 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 15:55:43 ID:IMX83G6u]
- もう一度いっておくけど、ゲーム作りと、作るための言語(ライブラリ)は全く関係ない。
GPUだと、1600*1200で60fpsとか余裕だけど、ハードのこと全く知らないでしょ? なーんにも作ったことない石頭君は、そのあたりのことを石頭にしっかり叩き込んでおくように!
- 189 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 17:46:15 ID:5u2RDdW1]
- >>187,188
ソフトレンダが入らないのなら60fpsは余裕 だから標準API以外で実装されてないと困るという話なのにどういう解釈してるんだ? 別に60fpsがすごいゲームの基準じゃなくて最低限余裕でクリアすべき部分だから的外れだよ
- 190 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 18:50:38 ID:IMX83G6u]
- >>189
まずは君が造ったゲームを見せてみろ
- 191 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 20:10:47 ID:A42kGE1w]
- >>189
ゲームだと論点以外の場所に突っ込み入りまくりなのが目に見えてるんで、 何か単純なサンプルとかないですか? 自分でも何か作ってみようとは思ってますけど。
- 192 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 20:28:01 ID:c22YgjhL]
- 久しぶりにJavaゲーム製作スレに来たら盛り上がっていて嬉しいでちゅ
と書き込もうと思ったら、ものすごい荒れてて怖いでちゅ>< みんな、仲良くするデちゅ><
- 193 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 21:48:12 ID:A42kGE1w]
- サンプル作ろうとしたけど思った以上に面倒だな、いきなり挫けそう orz
- 194 名前:名前は開発中のものです。 mailto:sage [2009/01/09(金) 23:26:09 ID:5u2RDdW1]
- 独自のCompositeの検証だから適当にスプライトを大量に描画すればいいだけかと
- 195 名前:名前は開発中のものです。 mailto:sage [2009/01/12(月) 18:38:55 ID:mr8XBnrs]
- >>185
fpsが極端に落ちるのは、多分VMじゃなくて自分のGPUの問題。 (VolatileImageを使用していた所をBufferdImageに変更したら大幅に回復した) この事に気付かないで、他に原因があると思い込んで調査していていたから、色々勘違いしてしまった。 あと、GeneralCompositePipeのあの部分は別にバグではなくて、Rasterの方が間違っているだけみたい。 (実際に使われているsun.awt.image.IntegerInterleavedRasterクラスでは修正されていたので無関係) BufferedImageのサイズを大きく変更した時の処理速度低下についてだけど、Compositeに関係なく発生する。 けれど、特に異常なメモリ確保増大とかは無かったし、実害は無さそう。 結局、バグを修正しても遅いまま。これ以上は無理だろうし諦める。
- 196 名前:名前は開発中のものです。 mailto:sage [2009/01/14(水) 19:05:48 ID:1dMbEFvl]
- だからハードウェアアクセラレーションが使えないのを選択した時点で速度に文句を言うのはやめよう
- 197 名前:名前は開発中のものです。 mailto:sage [2009/01/14(水) 19:06:42 ID:1dMbEFvl]
- あとVolatileImageのほうが遅いのは当たり前だろうと
- 198 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 01:10:49 ID:QGVWGr/M]
- >>194
でも、加算半透明のための独自のCompositeって、自分のような日曜プログラマにはけっこう面倒。 自分もJava2Dでゲーム作ってるけど、加算半透明はもう諦めたよ。
- 199 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 22:40:17 ID:4j18g83I]
- 色々なサイトのjarファイルを解凍して中身のファイルを見てたんですけど
ファイルの中に「.au」形式のファイルがあって、データベース的な使い方をしているみたいなんですけど このau形式のファイルはどうすれば中身が見れますか?
- 200 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 23:30:29 ID:x/IpCzLr]
- >>199
それ音声ファイル ttp://ja.wikipedia.org/wiki/Sun%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
- 201 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 23:42:54 ID:4j18g83I]
- >>200
ありがとうございます しかし、これは拡張子は音声ファイルみたいなんですけど、音声じゃなくてデータが入ってるみたいなんです 極窓で調べてみても拡張子[?]と表示されてしまいます
- 202 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 23:50:13 ID:p68rochj]
- 音声じゃなくてデータってどういう日本語だ
ファイルの先頭バイト列みてみるとか、再生してみたの?
- 203 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 00:12:31 ID:8dtQepqc]
- はい、バイナリエディタで中身を見たところ音声ファイルの場合は「.snd」で始まっていますが
他のデータベースとして扱っているファイルは拡張子がauなのに「J2SNK」、「G2SNK」、「5」などになっていて 再生なども試みましたが、やはり再生できないみたいです
- 204 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 00:46:13 ID:/MSlJ2ya]
- ファイル形式なんて作ったやつの勝手なんだから、分かるわけないじゃん。
- 205 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 17:11:20 ID:SAejBv5P]
- そのjarファイルを直接見ない限り流石に分からないな・・
- 206 名前:名前は開発中のものです。 mailto:sage [2009/01/23(金) 00:42:49 ID:50T1jj13]
- 遠近法とか3D化の続きはやらないんですか。楽しみにしてたのに (;_;)
- 207 名前:名前は開発中のものです。 mailto:sage [2009/01/23(金) 21:18:05 ID:MGKxcb91]
- 3Dとか2Dの画面効果の話より基本的な場面管理やクラス構成について参考になるページやソースコードありませんかね?
本格的にjavaでゲーム作る勉強したいので教えていただけると嬉しいです
- 208 名前:名前は開発中のものです。 mailto:sage [2009/01/24(土) 03:33:32 ID:Ul1ReSTO]
- そういうのはJava特有でもないしJavaに関係ないのでは?
そういえばゲーム作りをJavaから始めるなら英語のページが参考になるかな。 日本語のそういうサイトは皆無だけど、OpenGLが使える人が増えてくると今後は個人でやってるJava言語解説と同じくゲーム解説のページも増えていくんじゃないかなと思うけど。 3Dとかの話題は、ベクトルも含めて理論的なところはライブラリはあまり関係ないし、ゲームに特化して昔から先行していたDirectXよりの解説が多い。 結局パズル以上のゲームを作る気ならネイティブの機能に頼ることが多くなるからDirectXのAPIと係わることになるよ。 どうせ無理してLinuxやMacで作るわけでもないだろうし。
- 209 名前:名前は開発中のものです。 mailto:sage [2009/01/24(土) 09:28:59 ID:OAGtgkS/]
- >>208
レスありがとうございます >そういうのはJava特有でもないしJavaに関係ないのでは? そうなのかも知れませんが、自分はまだまだ未熟でjavaとverilog以外のコードがよく読めないのです ネット徘徊しているとC++のサンプルコードはよく出てくるのですが、業務でC++使う予定が無いので、できればC++の勉強するよりjavaでコード読んでいきたいのです javaのコードも出てくるには出てくるのですが、アプレットのものが多く、swing使っているものが少ないように思えます(自分はswing使いたいです) >結局パズル以上のゲームを作る気ならネイティブの機能に頼ることが多くなるからDirectXのAPIと係わることになるよ。 自分が作りたいのは画面周りはしょぼくてもルールで勝負するRPGやシミュレーションです そうすると、画面周りは大した機能を必要としないので、ネイティブ機能は使わないつもりです >どうせ無理してLinuxやMacで作るわけでもないだろうし。 MacはともかくLinuxでは動作するようにしたいですね 最終的(10年後?)にはLinuxのなにかのディストリビューションに入るくらいを目的にしてます(無理かな) もう少し、情報収集してみます
- 210 名前:名前は開発中のものです。 mailto:sage [2009/01/24(土) 12:00:16 ID:r3jrmAji]
- ぶっちゃけると画像描画さえ出来ればいいからSwingであるとかAWTであるとかは関係ない
実際JOGL使ってもGLCanvas使ったほうがいいしね
|

|