[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/10 12:02 / Filesize : 200 KB / Number-of Response : 649
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Javaゲーム作成総合スレ



1 名前:名前は開発中のものです。 [2008/10/28(火) 18:23:40 ID:2CMNNHdH]
Javaでゲームを作ろうと思っている人、今作っている人等が情報交換するためのスレです。
2Dのスレはありましたが、総合スレがなかったので立てました。
2D,3DどっちでもOKで、グラフィックス、アルゴリズム、お勧めサイト等、内容も自由です。


544 名前:名前は開発中のものです。 mailto:sage [2010/02/23(火) 12:19:00 ID:4oRWxveO]
俺より先にゲーム作らせないために悩ませてるの!

545 名前:名前は開発中のものです。 [2010/02/24(水) 00:49:51 ID:r64JoLGK]
ゲームのシーンごとにkeylistenerを持たせようとしてるんだけど・・・
そのキーリスナーはシーンオブジェクトへのアドレスを保持していて、そのシーンも
キーリスナーへのアドレスを保持している。そうすると、コンストラクタの中だけでは変数の
初期化ができなくなる。なんかきれいに繕う方法ってない?

546 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 01:16:08 ID:6Ou921by]
・循環依存とか相互依存になってるならそれをなくす。
・初期化を遅延する

547 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 10:15:55 ID:vFuKqqgG]
初心者がCでゲーム組むとか、おれが初心者の頃なら途中で挫折してただろうな
モチベーション維持のためにも画面に画像を簡単に表示できる環境が良いんでないかい
画面で絵が動くの見るとやる気出てくるよ

548 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 10:51:51 ID:vsS19SCg]
>>545
参照(ポインタでもいい)と言わずにアドレスと表現してるところがよくわからん。

549 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 12:06:51 ID:6tuyCZnA]
せめてハンドルって言ってほしかったな

550 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 18:49:45 ID:0XfxFTST]
>>547
初心者向けの参考書を見ると専用のライブラリを使っているので心配ないと思うよ。
画像を表示させるのも数行のコードを書くだけで実装できる。
Win32APIやDirectXは言語とは別の問題だし、初心者がいきなり覚える必要は無いしね。

551 名前:名前は開発中のものです。 mailto:sage [2010/02/24(水) 22:51:58 ID:V52UY3a7]
もうWinMainはいやだお・・・。
NN5でいやというほどコンパイルしたお。

552 名前:名前は開発中のものです。 mailto:sage [2010/02/25(木) 00:51:18 ID:2BiifXD1]
Javaおすすめ
JDKの中にGUI関連のツールも含まれているからJavaだけ勉強すればとりあえずゲーム作れる




553 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 00:19:42 ID:JpqAtdnH]
iPhoneはあるけどAndroidのスレってないよね
ここでやればいいの?

554 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 09:03:22 ID:tyywBe4S]
>>553
GoogleAndroidアプリ作成part2
pc12.2ch.net/test/read.cgi/tech/1253197333/

ゲ製板には無いね。
まあiPhoneスレも過疎ってるし需要が無いんじゃない?

555 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 12:01:11 ID:3XLimM0d]
とりあえず、JDK6とeclipseインストールした
これから何をすればいいんだろ?

556 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 13:18:28 ID:tyywBe4S]
目標を立てる。
それによって次に何をすべきかが変わってくるので。

557 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 13:33:04 ID:XM9i9EyX]
>>555
とりえあず、作りたいものを具体的に考えてみて、
こことかで javagame.skr.jp/
近そうなものや、役立ちそうな機能を探してみては?

そこのサイト、実行できる jar の中にソースコードあったと思うし、
簡単なやつを eclipse 上で動かしてみるとか。


558 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 13:56:26 ID:I97vF7We]
555じゃないけど、入門用の書籍を選ぶのが難しいな。
>>557のサイトで紹介されてる本をアマゾンのレビューで見てみたら
微妙な評価だし。

559 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 14:12:19 ID:sXZ2vpwQ]
Javaでゲーム作ってる有名どころの洋書全部漁ればいい。
google book searchでlimited previewくらいできるだろ。

560 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 17:15:15 ID:lw1I8SRq]
>>555
まずはキャラクターをカーソルキーで動かしてみてはどうだろう

>>558
参考書籍みてみたが確かにあんまりよくないのが多いね


言語自体がはじめてなのかゲームプログラミング自体が始めてなのか
どっちもはじめてだと多少厄介だが、目標を高くしないなら大丈夫か

EclipseよりNetBeansのほうがライブラリへのクラスパス設定された
実行可能jarが自動で作られるので楽な気もするが


しかしみんなやさしいな

561 名前:名前は開発中のものです。 [2010/02/27(土) 18:32:56 ID:HySRugFq]
宣伝age リプレイ機能を実装した

www10.ocn.ne.jp/~shinod/game/java/Baller0.00016.zip

俺の場合は3Dゲームを作りたかったので,JOGLをインストールするところから始めたなぁ.

562 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 18:52:42 ID:6MkUCZcn]
学生時代勉強したサーバサイドjavaの知識だけでゲームも組めたよ
"だけ"といってもネットで情報収集はしたけど参考書の類は特に使ってない
基礎さえ身につけば応用で何でも作れるんじゃないかと



563 名前:名前は開発中のものです。 mailto:sage [2010/02/28(日) 02:12:26 ID:dzeS6sZN]
Graphics2DのdrawImageが重いって話が上にあったけど
JDK 1.5 -> 1.6 の流れでかなり早くなったはず。

ほどほどの2Dゲームなら十分だと思うよ

564 名前:名前は開発中のものです。 mailto:sage [2010/02/28(日) 17:08:33 ID:YamdAbFz]
デフォで無効化されてる描画用オプション有効にすれば1.5でもほどほどならでる。

565 名前:名前は開発中のものです。 mailto:sage [2010/02/28(日) 17:27:40 ID:1xNPxTI/]
こんなつぶやき見たいな適当な書き込みにレスありがとうw
せっかくのご好意なので、返信


>>557
最初に色々と読んでみた
ドラクエクローンはゲームループから入力処理、描画まで色々と参考になりそうだね

>>560
Javaはちょっと使ってる
でも、大きなソフトウェアの一部分を言われるままに作成してるので、わけわかめ
Webアプリだったので、Swingとかキーボードやマウスの入力処理は初体験
ゲームプログラミングはもちろん初めて
まあ、コツコツやってみるよ

NetBeansは面白そうだけど、eclipseが主流ならそっちを使いたいな
NetBeansの方が明らかにゲーム製作に向いているなら考えるけど

>>563
いいこと聞いた
ここ見ると色々なフレームワークがあるみたいだけど、勉強めんどうなんだよね
JDKの機能だけでそれなりのものが作れるなら、俺の作りたいのは大戦略とか信長の野望みたいなゲームなので問題ないかな


566 名前:名前は開発中のものです。 mailto:sage [2010/02/28(日) 20:01:54 ID:9UtHy1EC]
>>563
1.5ののdrawImageが遅いっといっても初心者向けでまずそれが問題になるレベルではないだろう
ハードウェアアクセラレーションが効く描画が少ないってだけだ
遅いDXライブラリとかでも普通に使われてるよね

むしろJava2Dはαブレンディングが弱いほうが致命的

>>565
そういったタイプのゲームなら1.3以上なら問題なし

使い慣れてるIDEでかまわないよ
NetBeansはダブルクリックで実行可能なJarが作りやすいというだけ

ただ環境設定画面とかSLGならメイン画面以外のウインドウの描画等はSwingつかったほうがいいかな
環境設定等の定型的な画面ならNetBeansが圧倒的に有利という話にはなるが
必要になったときでいいと思う

567 名前:名前は開発中のものです。 mailto:sage [2010/02/28(日) 20:38:39 ID:bA//nrm1]
よく分かんないんだけど、
αブレンディングが弱いってよく言われるけど
それって誰かが自前で重ね合わせルーチンとか
書けばいいだけのことじゃなくって?

568 名前:名前は開発中のものです。 mailto:sage [2010/02/28(日) 20:46:02 ID:9UtHy1EC]
確かにピクセル単位で処理は可能
ただし、ハードウェアアクセラレーションは効かないからアクション系はきついんだ

VolatileImageはVRAM側へ配置するので(というかJavaSE6から積極的にVRAM使う)
ソフト描画との相性は最悪

というわけでほとんどの人はOpenGLへいく

569 名前:名前は開発中のものです。 mailto:sage [2010/03/01(月) 01:52:26 ID:D+/GcsWx]
-Dsun.java2d.ddforcevram
-Dsun.java2d.translaccel

-Dsun.java2d.ddscale
でおk

570 名前:名前は開発中のものです。 mailto:sage [2010/03/01(月) 02:42:29 ID:VHqqtoLd]
αブレンディングというか、特殊な合成が弱い。
画像のスクリーン合成(1-(1-src)(1-dst))はゲームのエフェクトで良く使うけど、Java2Dでは使えない。
自前で処理を書いても、遅すぎて使い物にならない。他のライブラリに頼るしかない。
この話題>>150-200あたりでも出たな

571 名前:名前は開発中のものです。 mailto:sage [2010/03/01(月) 07:27:10 ID:W0xt/zd5]
java3Dでゲームを作ろうとしているんですけど、市販されているゲームのポリゴンと、Geometrryクラスで定義したポリゴンって何か違いがありますか?
何かイメージと根本的に違う様な気がします・・・

572 名前:名前は開発中のものです。 mailto:sage [2010/03/02(火) 23:07:42 ID:Ex3WWwU3]
tet



573 名前:名前は開発中のものです。 mailto:sage [2010/03/02(火) 23:13:38 ID:hmyMCdfx]
お前さんが3Dにどういうイメージが抱いているか知らんが、
java3dのgeometryはかなり「実際の処理」に即しており合点がいく。

「市販されているゲーム」ってのは一体何だ…。市販のゲームは
末端で行われる原始的な処理を、見てる人にイメージし易いように
高度な変換を加えているだけのものだ。イメージだけで
いきなりあんな美麗な物体を描けるようにはならない。

いくらjava3dでも、末端で行われているdirect3dなどの
実際の3D計算方法をまったく知らない状態では厳しいぞ。

msdn.microsoft.com/ja-jp/library/aa515581.aspx
とりあえずこの4つの項目くらいは目を通しておくんだ。
俺はmanaged DXから入って、かなり読みやすかったのでこれが一番
分かりやすいだろう。

ブレンディングに関してはそもそもハードウェアアクセラレーションの
効かない場所でやるべきじゃない。自前処理でjavaだと遅いからc++なら
早いかって言ったらそこまで速くはない。結局openglなりd3dなりの
恩恵下で計算するのが一番速いんだから、言語を問わず
画像処理は2dであっても3dを利用しましょうということになる。

>>519が本当なら、そもそも2dのアクセラレーションは推奨されないこと
になる。

javaでゲームを作る場合、javaアプレットにするつもりがないなら
必ずGTGEなりjoglなりjava3dなりの3dデバイス系を利用することを
絶対に勧める。というかそれ以外で動きの多いゲームを作るのは
不可能だぞ。

574 名前:名前は開発中のものです。 mailto:sage [2010/03/02(火) 23:43:45 ID:keRp0vK6]
>>573
一番の問題は>>570だけかな。

速度に関しては今のJava2DはDirect3DやOpenGLでアクセラレーションがきいている。
ただし、VMの実装次第だし、どこがきくのかといったドキュメントは無いはず。

Java2Dはアクセラレーションの効きかたを意識しないで使えるのが利点ではあるが
ゲームだとそうはいっていられないのが厳しいところ。

ただ、2Dゲーなら速度的にはブレンディングの種類が少ないこと以外では問題にはならないね。

「必ず」というのはいいすぎで、不可能ではないよ。

ただしJavaSE6 update10以上必須ね。
これより前だと回転拡大縮小系はアクセラレーションきかないから、いっきに処理速度が1/100とかになる。

通常のJavaの実行速度も大幅に上がってるしアプレットでもJNLPかけるようになったので
update10未満使う理由はないのだけれども。Vistaの不具合回避したらすごいよいものになったというのが笑える。

575 名前:名前は開発中のものです。 mailto:sage [2010/03/03(水) 00:23:02 ID:Ft2QLlFC]
u10からOpenJDK6の成果が本格的にマージされて確かに実行速度は上がったがバグもかなり増えたぞ。

576 名前:名前は開発中のものです。 mailto:sage [2010/03/03(水) 01:15:37 ID:4e2irmLH]
どんなバグなのか具体的に

577 名前:名前は開発中のものです。 mailto:sage [2010/03/03(水) 02:48:16 ID:bM8RSZ0B]
公式のBTS全部見ろよ。
OpenJDKのパッケージがあるlinuxの適当なコミュニティにも上がってるぞ。
毎度のこと量があるのにスレに貼れる程度の具体的なバグなんてここに貼っても意味はない。


578 名前:571 mailto:sage [2010/03/03(水) 03:06:07 ID:/DdOkaZg]
>>573
有難う

579 名前:名前は開発中のものです。 mailto:sage [2010/03/03(水) 08:52:43 ID:4e2irmLH]
J2SE 5.0はサポート期間が終了してバグあっても放置だからもうJavaSE 6つかうしかないだろう
でもupdate10未満も大量にバグがあってupdate10以降で直ってるのも大量にあるのがな

でもゲーム程度で問題になるバグなんてまずないだろ

580 名前:名前は開発中のものです。 mailto:sage [2010/03/06(土) 15:16:24 ID:9hs0NXi7]
明日、韓国からのテロ攻撃の第2波があるかもと言う情報が・・・。
下手したら週末にまた2chが落ちるかもしれないね
 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄
     ∧_∧
    <丶`∀´>     ∧_∧
    /     \   (    ) はぁ?黙ってろ在日w 
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽ 氏ねよクズ   \|  (    ) 
  |     ヽ           \/     ヽ. 祖国に帰れよ
  |    |ヽ、二⌒)        / .|   | |
  .|    ヽ \∧_∧    (⌒\|__./ /

581 名前:名前は開発中のものです。 mailto:sage [2010/03/07(日) 02:52:45 ID:mJhS8YgC]
jinputでアプリケーションの起動中にジョイスティックの追加/削除を検知する事って出来ますか?
ControllerEnvironmentにControllerListenerを追加してもイベント飛んでこないす。

582 名前:名前は開発中のものです。 mailto:sage [2010/03/07(日) 11:20:32 ID:YVbfusWB]
とりあえず、以下のコード読んで勉強してる
・ドラクエクローン(javagame.skr.jp/index.php?%A5%C9%A5%E9%A5%AF%A5%A8%A5%AF%A5%ED%A1%BC%A5%F3)
・シヴィライゼーションクローン(www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4328&lngWId=2)

これらが、理解できるようになったら俺の目指すシミュレーションゲームも作れるだろう
Swingはよくわからんが(てか、JavaのGUI自体初体験だが)、ドラクエクローンの動作を見ると、メッセージWindowも自前で製作しているみたいだし、勉強せんでもよさそう

がんばるぉ^^




583 名前:名前は開発中のものです。 mailto:sage [2010/03/07(日) 12:38:46 ID:8J4pTqVT]
>>582
下のリンク先、見れないんだが。

584 名前:名前は開発中のものです。 mailto:sage [2010/03/07(日) 15:17:28 ID:yFiVhkjz]
>>583
末尾の括弧をURLに含めてるとか

585 名前:名前は開発中のものです。 mailto:sage [2010/03/07(日) 15:18:39 ID:YVbfusWB]
>>583
最後に")"をつけちゃったから、それがURLの一部にされていると思われ
URLから")"消してみて

それはそうと、他にも読んでおいたほうがいいソースコードあったら教えてね^^

586 名前:名前は開発中のものです。 [2010/03/07(日) 20:31:59 ID:seQ6S77i]
宣伝age 弾の軌跡を描画するようにしてみた

www10.ocn.ne.jp/~shinod/game/java/Baller0.00023.zip

見た目は派手になったけど,処理が重くなった.

俺の場合,OpenGLの本とか衝突判定の本とかは読んだけど,
他の人のソースコードとかはあまり見てないな.

587 名前:名前は開発中のものです。 mailto:sage [2010/03/07(日) 21:08:52 ID:EoGWWfXW]
>>585
GOFのデザインパターンやっとくといいよ
ストラテジー、メディエーター、シングルトン、ファサードあたりを
意識すると上達が早くなる

588 名前:名前は開発中のものです。 mailto:sage [2010/03/07(日) 22:21:35 ID:4Rnyo7gg]
GOFぱっと見で理解できんならオブジェクト指向の利点を知ると良いね
するとGOFを見たこと無くても無意識にデザパタを適応していたりする
でもまあリファクタリングの勉強は最後でもいいはず
動くゲームを完成するまでの気力維持の方が大変だw

589 名前:587 mailto:sage [2010/03/08(月) 09:38:02 ID:0N3PdWPF]
俺の経験則としては、デザインパターンなしで
テトリス以上のゲーム作るのは無理だと思う

たとえばSwingを始めた>>585は、分離されたGUIコンポーネントや
イベントリスナーをどうつなげたらよいかについて困惑するはず

引数で無数に参照を渡す力押しとかでも不可能ではないけど
それじゃやっぱりコード書く楽しさがない

590 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 20:38:45 ID:fOUjfaLl]
>>589
構造化プログラミング主体の頃の人間だったおれは、
デザインパターンを知らんでも作れたんだが・・・・。

C言語ライクなJavaプログラミングだったけどな。

591 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 21:37:40 ID:InSeFkGY]
こういっちゃ悪いがデザインパターンについて何か勘違いしてる
OOPの理解とデザインパターンの適応は別物だぞ
デザインパターンは使える状況なら使ったほうが良い物ってわけでもないし
テトリス以上の複雑なゲームとなるとパターンがまんま適応できる状況がまず少ない
以上現役奴隷の勝手な意見

592 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 21:53:19 ID:3O0fgwI4]
>>584
被っちゃいましたね^^

>>586
自分より遥にレベル上の方みたいですね
自分は古いかもしれませんが地味に2Dでがんばっていきます
お互いがんばりましょう

>>587-591
GOFはとりあえず読みました
半分も理解したか怪しいですが
とりあえず、ゲーム作るうえでは、入力なり出力なりのインタフェース切って、場面ごとに実装するクラス作ろうかなーっと漠然と考えてます
まだ、他人のコード読んでばっかりで、一行も書いてないのでどうなるかわかりませんがw


それはそうと、Javaでゲーム作りますがなにか?のページ見ていて思ったのですが、ゲームループはwhile文で自作するのが常道ですか?
TimerTaskがあると思うのですが、使わないのでしょうか?
while文の中で、遅延を考慮してたりして、結構がんばってるように感じたのですが、TimerTaskはその辺美味くやってくれるもんじゃないんですかね?




593 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 10:57:20 ID:QEiU+L36]
>>5
auのオープンアプリの関連スレ無いですか?
オープンアプリ作る人が集まるスレ

594 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 13:07:17 ID:B2aHv/Xn]
>>593
CLDC+MIDP+携帯電話用Javaスレッド part 9
pc12.2ch.net/test/read.cgi/tech/1249357352/

595 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 14:15:07 ID:lYcMPodi]
java.util.Timerはスケジュールできなかったらタイマースレッドじゃなくてその場で実行する。
それすら実行できなかったらそのタスクは実行されなかった気がする。
あとスケジューリングの精度もそんなに厳格じゃなかったはず。
それでもいいならjava.util.Timerでいい。
でも、java.util.Timerつかうよりは並列ライブラリで自分の要件実装するんじゃないだろうか?

596 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 15:54:48 ID:QEiU+L36]
>>594
どーもです。
オープンアプリでゲーム作ってる人のスレは無いってことっすね・・・残念ですぅ

597 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 16:49:21 ID:gD7fhvY3]
おまえの目は節穴か

598 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 18:00:12 ID:QEiU+L36]
だって、プログラム板のローカルルールでゲームの話題禁止なんですもの


599 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 21:13:35 ID:EB7b1hko]
>>594の板で大丈夫じゃないかと思うよ
過激な自治厨もいないしゲームプログラムの話題も出てるし

600 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 22:10:21 ID:i+0eeHLE]
>>592
問題ないよ

処理落ち等の実装は人によるけど、TimerTaskで実装するのではなくここでは時間管理だけして、
そこから他のスレッドをコントロールするのが理想かな

垂直同期とって60fps、処理落ちも垂直同期単位という昔ながらのアプリのような挙動がほしい場合はね



それ以外ならTimerとTimerTaskで問題なし
repaint()使っているようなものなら正直TimerもswingのTimerでいいと思う

601 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 13:10:34 ID:/NB3Vbw/]
確かThread.sleep()でループを組めば、javaのバージョンによっては
windowsの高精度タイマーを利用するのでより品質の高いループが組める
はずだ。現に俺はsleep()で100fps以上の高分解能ループを組めている。

ループをあまり組んだことがないなら「timer 分解能」あたりで
一度ググっておくことをお勧めする。多くのwindowsではTimerでも
60fps回せるんだが、別に60fpsを回せることが保障されているわけでは
ない。ディスプレイのリフレッシュレートも影響するのかもしれないが、
ユーザの環境では35fpsになったり70fpsになったりするかもしれない。

whileでループ組んでいるというのがどういう状況か知らんけど、
それはwhile内部にwait()する区画があって始めて成り立つことだ。
初歩的なことだがビジーループなんて絶対に組んではいけない。

602 名前:名前は開発中のものです。 mailto:sage [2010/03/10(水) 14:31:21 ID:nBH9suJo]
>>601
XP前期くらいの古い話になるけど
Windows98SEではちゃんと30FPSで動いていたゲームがXP(2000だったかも)で20FPSくらいに
なってしまい原因が分からず悩んでいた時期があった
推測だけどデフォルトではタイムスライシングが16msになってて、ゲームを30FPSで動作ささせる
ために1フレームを33msにあわせようとすると48msになってしまってたんだと思う

メディアプレイヤーを起動していると精度が上がることを見つけて、自前のアプリケーションを起動し
timeBeginPeriodを呼び出しておくと同様の効果があることを確認し、それをユーザのマシンで
再現する方法を探してたよ
FLASHを一度でも再生したブラウザのプロセスが残っていると精度も上がったままになり、
IEの場合はbgsoundタグに空のmidiファイルを設定しておくという泥臭い逃げ手もあった
Windows以外のOSで試したことはないけど、どうなってるのかなぁ



603 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 11:52:23 ID:gsQzKt2E]
昔はSystem.currentTimeMillisの精度が10〜20msecで困ったな。
sleepは時間通りに動いていたかもしれないけど、対応しようがなかった。
今はnanoTimeで1msecの精度が出せるから良いね。

604 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 13:14:15 ID:I816Pm6U]
え、まともにnanoTime動くのSunだけじゃないの?Windows7とかだと動くの??

605 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 15:31:52 ID:+KPkzeB4]
10000くらいの要素があるとして、
Map(HashMap)で全要素にアクセスするのって十分に遅いと思う?
List(ArraryList)と両方に要素を詰めておいて片方が苦手な面は
スレッドでごまかしたほうがいいかな


606 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 19:26:06 ID:I816Pm6U]
十分に早いと思うんだがなぁ。
やってみた?
要素を取ってからの処理がが1ms掛かってりゃ、隠蔽できるレベルと思うんだが。

607 名前:名前は開発中のものです。 mailto:sage [2010/03/11(木) 23:54:00 ID:zhaRJbEJ]
1万要素くらいならおれは速度よりメモリを気にする。
10万とかなら考えるが。

608 名前:名前は開発中のものです。 mailto:sage [2010/03/12(金) 01:20:42 ID:fx5pN5+0]
>>604
まともってのがどの程度を意味するのか分からないけど、
XPでnanoTimeを実験したときは1ミリ秒くらいの精度は出たよ。

609 名前:JAVA初心者 mailto:sage [2010/03/12(金) 10:17:17 ID:6GJM5qHr]
JOGLをインストールして実行したら
「jogl.jar で制限されているためアクセスできません」
って出た
jogl-1.1.1a-windows-i586.zipの中のやつをコピーするだけではダメなのですか?

610 名前:名前は開発中のものです。 mailto:sage [2010/03/12(金) 22:17:40 ID:cuwPqo48]
ム板の初心者スレに行け

611 名前:名前は開発中のものです。 mailto:sage [2010/03/13(土) 11:54:22 ID:ft4sD9tE]
>>604
WindowsでもsunのVMなら
currentTimeMillisも1msの精度でてる

nanoTimeは高精度カウンタつかってるんでちゃんと1ms以下でてるっぽい
そのかわり特定の時刻はわからないけど、ゲーム系なら問題は無いな

Sleepとかタイマイベント系+nanotime使ったビジーループが最も高精度だけど、
そこまで必要な場合むしろ垂直同期をしたほうがいいと思うんだ

612 名前:名前は開発中のものです。 mailto:sage [2010/03/13(土) 15:41:37 ID:kP+vCyl1]
そこまでする理由はなんだい?
格ゲーでも作るの?



613 名前:名前は開発中のものです。 mailto:sage [2010/03/14(日) 01:12:44 ID:/KubzB8G]
>>612
16.66msのつもりが32msになっていた、なんて精度だとライトなアクションゲームどころか
コマンド選択式RPGのエフェクトすらまともに表示できないと思う

614 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 01:15:48 ID:a35EGBlP]
でも市販されてるPCゲームの精度なんてそんなもんじゃん
猫ぐらい目が良くないと一般ユーザでは気付かんレベルじゃないかね

615 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 11:37:48 ID:lWMLrUhP]
2Dゲーはほとんどの場合フレームスキップ起こさないから精度はいつだって気になるものさ
3Dのほうが精度はいらない

ティアリングも2Dのほうが気になるしね

616 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 13:33:05 ID:DUGGcEaK]
3D格ゲーマーなめんなよ!!

617 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 19:56:42 ID:a35EGBlP]
2DPCゲームも盛んだった約10年以上前のintelのチップセット統合グラフィックコントローラには
主にゲーム中などの高負荷描画時に意図的にフレームスキップする機能が組み込まれていたけど
見て分るレベルじゃなくてほとんど気にならなかった思い出があるよ

618 名前:名前は開発中のものです。 mailto:sage [2010/03/22(月) 22:54:58 ID:lWMLrUhP]
i810ってハードで勝手にフレームスキップするのか?

619 名前:名前は開発中のものです。 mailto:sage [2010/03/27(土) 11:17:41 ID:CAF7oz9b]
ゲーム用のactiveXインストールさせておいてアンインストールの時に消さないのはクソゲー

620 名前:名前は開発中のものです。 mailto:sage [2010/03/27(土) 13:42:08 ID:tZ9gJAWE]
>>619
スレ間違えてるぞ

621 名前:名前は開発中のものです。 mailto:sage [2010/03/27(土) 22:43:26 ID:AvjpVtCq]
>>615
ふ〜ん。よく知ってるね。ネット(笑)で調べたんだ?

622 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 02:01:26 ID:vG829dZf]
アプレットの2Dの戦術シミュレーションゲームをAWTで書いてて
加算合成とかやりたい程度なんですが、
JOGLとかライブラリ使ったら結構早くなるものなんでしょうか?
標準APIしか使ったことないんですが、使うとしたらJOGL一択?



623 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 16:23:12 ID:dUxWoyHG]
加算合成ならBufferStorategyとJava2Dのシステムプロパティー有効にすれば標準ライブラリでいける

624 名前:名前は開発中のものです。 mailto:sage [2010/03/28(日) 17:33:06 ID:vG829dZf]
ありがとうございます
すいません、調べてみたら、BufferStrategyってアプレットから使えなくないですか・・・?

テクスチャで2Dの描画だけできれば十分なんですが、
drawImageのような処理はどう実装するのが普通なのでしょうか?

とりあえずJOGLについて調べてみたのですが、
特定の画像を読み込んだテクスチャごとに、予め指定した各々のz座標にまとめて描画
という風なものしか思いつきません・・・

625 名前:622 mailto:sage [2010/03/29(月) 01:33:25 ID:SqZ8R8TT]
OpenGLを理解するところから始めようと思います
失礼しました

626 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 17:04:23 ID:YLmAQvrk]
>>623
詳細希望
どうやるの?

627 名前:名前は開発中のものです。 mailto:sage [2010/03/29(月) 17:07:28 ID:tAa/9ZD/]
>>624
素のAppletを使う必要性が現時点で無いわけだから、
JAppletを使うわけにはいかんの?

とはいってもかなり作法が違うから、今から変更できないってのなら
わからんでもないが。

628 名前:名前は開発中のものです。 mailto:sage [2010/03/30(火) 16:45:14 ID:ANScytkg]
>>627
JAppletでCanvasを描画するって方法があったんですね!
アプレットでBufferStrategy使えました。ありがとうございます
BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので
自前のダブルバッファリングと切り替えるようにしたのですが、
スマートな方法はありませんか?

システムプロパティの方は、
Appletから設定出来るのかどうか分かりませんでした

629 名前:名前は開発中のものです。 mailto:sage [2010/03/30(火) 17:22:35 ID:5VmsakM5]
>>623
半透明合成はAlphaCompositeでアクセラレーション効かせれるけど、
加算合成はどうすれば標準ライブラリで速度出せるの?

630 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 13:50:19 ID:ynx77+er]
>>628
BufferStrategyのせいで処理落ちしてるとは思えない。
たぶん、GCのせいだよ。
結構でかいメモリを使い捨てにしてるんじゃないかな。
で、GCのタイミングを制御してないと。

まぁ、ゲームとかサーバサイドじゃないとGCが気になること無いんだけどね。
GCの情報をログに吐かせてチェックしたら良いよ。

631 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 14:16:29 ID:e2SekH7a]
>>630
たまに描画アクセラレーションが効いてない状態になるのとGCは関係ないと思うぞ

632 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 14:31:05 ID:ynx77+er]
>>631
描画アクセラレーションが効いてないって話はどこから?



633 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 14:34:10 ID:e2SekH7a]
>>632
> 4,5回の起動につき1回程度、酷く処理落ちするので
原因はわからんけど同じようなことが起こった事あるから

634 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 17:20:45 ID:ynx77+er]
俺はそういうことは無いなぁ。

しかし、俺が読み間違えてた部分があるな。
>BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので
は、4,5フレームごとに処理落ちすると言うことかと思ってた。



635 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 20:30:53 ID:6whusFO/]
問題に直面してる本人が原因をある程度特定しないことにはなんとも
新人の頃当たった上司は不具合の原因を完璧に特定して理詰めで説明
せんとソース触らせてくれなかったなぁ

636 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 22:31:41 ID:fTTvzrRQ]
たぶん昔の俺と同じミスしてんじゃないかな。「ひどく処理落ちする」
ってのはどうやって計測してるの?Timerを使って計測する限り大抵の
環境で60fps以上のループを回せないので(Timerの分解能でググれ)、
17ms以下の時間を計測できないことになる。つまり処理の時間を計測
すると「0msと17msが交互に出てくる」という現象が起こる。この
17msを処理落ちと思ってしまっているのでは。

結構前に書いた気がするけど、どんなにVolatileImageで高速化したところで
その前処理である「drawImage()」がjavaでは(というか最近の言語では)
絶望的に重いので、よほど小さい画像か低いfpsじゃない限り
drawImage()で再描画回すのは無理だよ。画面全体の再描画は無理なので、
一部だけにしないと。

だから「複数の画像をテクスチャであらかじめ読み込んでおいて、それを
3D空間上で順番に表示する」ということになるのよ。
drawImage()はリアルタイムで使用してはいけない。
だから3Dデバイス無しで動きの多い2Dの描画は無理。java以外の2Dゲームも
最近はほとんどこの処理で描画している。

アプレットでjoglやjava3dやGTGEを使いたい場合は、「あらかじめモジュールを
プレイヤーに各個インストールしておいてもらう」か「java web startを使用
する」かの2択になる。私はアプレットに興味がないので
知りたければ自分で調べて…。

637 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 23:01:06 ID:e2SekH7a]
drawImageが絶望的に重いってのが理解できないんだがどういうこと?

638 名前:名前は開発中のものです。 mailto:sage [2010/03/31(水) 23:51:25 ID:T6Q4zys0]
これやればアプレットから起動できる。
mailsrv.nara-edu.ac.jp/~asait/open_gl/Jogl/jogl.htm#section341

639 名前:名前は開発中のものです。 mailto:sage [2010/04/01(木) 01:30:29 ID:yUfE9csc]
>>630
>>636
具体的に書かなくてすみませんでした
「ひどく処理落ちする」というのは、
普段1フレームの処理が10〜40ms程度なのが、200〜300くらいになります
createBufferStrategy、getBufferStrategyをやり直しても直らず、Appletを起動し直さないとダメでした
ハード依存のせいで不安定なのかな、などと勝手に思ってましたが、よく分かりません

とりあえずGCのログ調べてみます
ありがとうございました

640 名前:名前は開発中のものです。 mailto:sage [2010/04/01(木) 13:06:54 ID:UAXZ1fUj]
>>636
java6update10でもそうなる?
アクセラレーションの効き方がupdate10以降全然違うよ。

641 名前:名前は開発中のものです。 mailto:sage [2010/04/19(月) 16:58:19 ID:DE/oWF3W]
Javaで3dソフトレンダラー作ってるんだがテクスチャマッピングが糞重い。
テクスチャ無しの時と比べて3倍近く重くなる・・・
ピクセル単位でマテリアルの色とテクスチャの画像の色とを乗算してるんだが、
速くする方法はないだろうか・・・

642 名前:名前は開発中のものです。 mailto:sage [2010/04/19(月) 22:44:06 ID:EBaRhPkl]
ソフトだとそんなもん。srcとdestのバッファが2次キャッシュに収まっているうちは早いのでそれを意識するしかない。
符号なし精度やSIMD直接発行したくなるけど、せいぜいマルチスレッドしかないね。



643 名前:名前は開発中のものです。 mailto:sage [2010/04/23(金) 14:30:02 ID:+jF/jVEW]
VolatileImageと-Dsun.java2d.accthreshold=0組み合わせるとか

644 名前:名前は開発中のものです。 mailto:sage [2010/04/23(金) 17:11:32 ID:qX+XOmtR]
3Dで思ったんだけどブルームてどういうふうに実装するの?
高輝度部分と重なる物体の輪郭をぼかせばいいの?
CGで木漏れ日とか表現してる人はどうやってんだろう。

645 名前:名前は開発中のものです。 [2010/04/24(土) 16:15:02 ID:wWfiheja]
マルチスレッドで組んだことないけど、
レンダラーの場合はどのあたりをマルチスレッドにすべきだろう?
やっぱ座標変換より描画処理か?

646 名前:645 mailto:sage [2010/04/24(土) 16:17:32 ID:wWfiheja]
ごめ、、sage忘れた

647 名前:名前は開発中のものです。 mailto:sage [2010/05/06(木) 15:54:54 ID:sWIFt/qs]
>>644
それ用にテクスチャを作っとくことが多いんじゃ?
んで加算合成とか
専門じゃないからよく分からんが

648 名前:名前は開発中のものです。 mailto:sage [2010/05/08(土) 01:32:27 ID:OfzVRu2e]
ゴーストやレンズフレアならテクスチャ使うこともあるけど
ブルームだけならレンダリング後のイメージ処理じゃないかな。
HDRIでレンダリングして一定以上の輝度の部分を抜き出して
ぼかしたあとに加算合成するとかそういうの。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<200KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef