Javaでゲーム作成 2本目at GAMEDEV
Javaでゲーム作成 2本目 - 暇つぶし2ch443:名前は開発中のものです。
06/10/10 21:10:32 Z6Vg5wVI
自分で言っといてなんだけど、公開鍵の応用でいいんだよね。

1.互いに乱数のハッシュを送りあう
2.乱数の実体とあるならば追加のコマンドを送りあう
3.実体とハッシュを照合する
4.互いの実体を合算したものを元に処理を進める

多少重そうだけどこれなら実際に通信があるのは1と2の送受信でよい。
でもまあランキング戦とかには使えないよなぁ。

444:初歩的なことでスマン
06/10/12 20:16:43 iUCUCn7d
j2sdkとJava3Dを入れてみたんだけど
3d絡みのDemoプログラムが無いっぽい。
ググってみたけど付いてきてるはずなんだけどなー

j2sdk下にはwireframeのサンプルプログラムしかないし
それとも他に入れるべきソフトがあるのかしら
少なくともjava3d-1_4_0_01-windows-i586.exeには入ってないですか?

445:名前は開発中のものです。
06/10/12 23:35:22 LKwsUKW6
joglやりましょうよ。
java3dは抽象度たかすぎ。

446:名前は開発中のものです。
06/10/13 02:39:03 zPaEQQ16
マックでも動くなら

447:名前は開発中のものです。
06/10/13 03:55:03 S+VaDlj1
ゲーム用途ならJava3Dやめとけ
あとでなくぞ
JOGLにしとけ



448:444
06/10/13 16:45:36 vmtvD3zz
>445>446>447
そうします。ありが㌧

449:440
06/10/13 20:32:45 /GHVYosk
OSXのJava5.0って完成度高い?

450:名前は開発中のものです。
06/10/13 20:33:34 /GHVYosk
おっと、何故か番コテが残ってた。てか復活した?w

451:名前は開発中のものです。
06/10/13 22:17:57 GU1W4jxT
さわってないけどおかしいという話は特に聞いてないな


452:名前は開発中のものです。
06/10/14 00:08:50 NtWi6K2U
これからはdirectxじゃなくてjoglやろうぜ
URLリンク(61.215.215.33)

453:名前は開発中のものです。
06/10/14 02:31:13 MGTxKfzz
Sun本気でゲームやるならジョイパッドいい加減対応してくれ


454:名前は開発中のものです。
06/10/14 02:52:06 ZM4Zxtns
>>453
JOGL, JOAL, JInput と一通り用意されていたりする。

が、JInputの使い勝手と品質は、アレゲです(約1年前試用)。

455:名前は開発中のものです。
06/10/14 03:02:31 MGTxKfzz
JOGLにしてもそれらのライブラリぜんぶ標準じゃないし
基本的なヒューマンインターフェースデバイスは標準にしないと意味ないのに

456:名前は開発中のものです。
06/10/14 06:59:51 nYtGilm6
OpenGLに関してはJava6で標準だろ
入力デバイスがアレなのは、Win以外がアレだからでしょ

457:名前は開発中のものです。
06/10/14 07:22:45 1AUmoz7r
>>449
 1.4.2と比べて何が変わったのやらという感じ。

458:名前は開発中のものです。
06/10/14 07:48:07 nYtGilm6
>>452
RuneScapeとかいうのは4.5億も売り上げがあるのか
そういやTibiaってのもグラはしょぼいが潤ってたらしいしな

459:名前は開発中のものです。
06/10/14 10:21:48 MGTxKfzz
>>456
VMが一部環境用にアクセラレーションとして使ってるだけで標準実装とはちがうはずだが


460:名前は開発中のものです。
06/10/14 11:53:22 r+tdu3ZM
ところで
JInputを使おうとするとArrayIndexOutOfBoundsExceptionが出るのは自分だけだろうか…

461:名前は開発中のものです。
06/10/14 15:16:14 MGTxKfzz
JInputの日本語資料ゼロか・・・こりゃ普及せんな

462:名前は開発中のものです。
06/10/17 23:44:15 46k9HZL6
Input Method Frameworkの使い方がドキュメント読んでもいまいち良く分からないw
BufferStrategyと日本語入力を組み合わせるならこれしかないと思うんだが。。。

Swingベースに切り替えようかな、Java6からJOGLがPanel化されるんでしょ。

463:名前は開発中のものです。
06/10/18 13:58:55 YpbpZhIP
BufferStrategytと日本語入力の問題はDirectXとかでも同じだからな
Panelのは速度が遅いはずだが改善されたんか


464:名前は開発中のものです。
06/10/19 00:32:10 nGTITlbS
>>462
自前描画している日本語入力対応エディタのソースを見てみると良いかもしれない。

465:名前は開発中のものです。
06/10/27 07:07:03 Yr57x8PW
CopyOnWriteArraySetなどの並行APIを試してみたけど
結局STGとかだとLinkedListで十分なんだと分かっただけだった。

466:名前は開発中のものです。
06/10/27 07:15:14 xDAg32vR
マルチスレッドでつくってんの?

467:名前は開発中のものです。
06/10/27 07:28:53 Yr57x8PW
マルチコアへの自動的な最適化とか面白そうだなと思ってね。
でも並行APIはiteratorによるremoveにたいして適正の在るのがなくて辞め。

468:名前は開発中のものです。
06/10/27 08:40:24 xDAg32vR
こんな会社があったんですね。。。
URLリンク(www.cyberstep.com)

469:名前は開発中のものです。
06/10/27 08:51:15 phd+j6pm
>>488
マルチプラットホーム化が容易とうたってる割にGetAmpedRもC21もWindowsのみ対応なんだな‥‥

470:名前は開発中のものです。
06/10/27 12:18:12 v3In4esC
2Dゲームで個人レベルで作れるものでマルチコアが生きる分野ってあんまりないかもね
超連射みたいにソフトレンダなら明らかに効果があるがそれはシステム構築を楽しむためくらいしか・・・

471:名前は開発中のものです。
06/10/27 23:11:57 Yr57x8PW
スタンドアロンなゲームは「余ったリソースは捨てるリソース」なんだなと思ったよw

472:名前は開発中のものです。
06/10/30 15:12:29 VjSo8VCQ
JOGLって凄いんだな

473:名前は開発中のものです。
06/10/30 15:57:55 Sn/Y/O/E
ん?

474:名前は開発中のものです。
06/10/30 18:47:16 Gg9zo7Zm
だたのOpenGLのラッパ
びっくりするくらいオブジェクト指向もくそもねぇ

それだけに触ったことある人ならそのまま使える

475:名前は開発中のものです。
06/10/30 21:46:59 AwvN98hH
Graphics2DオブジェクトそのものがGCの原因になるから
フルGCの発生回数を特定シーンごとに0に押さえるみたいな方法って不可能?

476:名前は開発中のものです。
06/10/30 23:24:45 Gg9zo7Zm
Graphics2Dのものによるかな
ゲーム用途なら基本はGraphicsだけで収まる範囲にすること

アクセラレーションがきくタイプは負荷はたいしたことない

あとフルGCやりたくないなら使用メモリを把握した上でコンカレントGCに変更することや
シーンがはっきりと分けれていたりするなら切り替え時にFullGC入れてみるとか

477:名前は開発中のものです。
06/11/08 22:10:52 nrOch+Qr
URLリンク(www.youtube.com)
これJavaでできてんの!?すごい

478:名前は開発中のものです。
06/11/08 22:17:38 /VhjzjqX
ムービーからだとフレームレートとかようわからんし、
あちらの人は固定フレームレートにこだわらないからねぇ

まずはパッドを標準ライブラリで使えるようにしないとね
表示もだ大事だけど入力がないとどうしようもない

479:名前は開発中のものです。
06/11/09 01:22:54 C3JWOVJ7
specforce
chrome作ったところが2005年ごろ作ったみたい。
ページ開いたらBGMが流れるので注意。
URLリンク(www.specforcethegame.com)

かなり品質の高いFPSゲームだと思う。


480:名前は開発中のものです。
06/11/09 02:09:01 yu7HeJLH
これって、Javaサーバーに使えますかねぇ
URLリンク(www.hikakuserver.com)

普通のレン鯖でメモリ8GBも載ってるのがあるなんて
さっきまで知らなかった・・・(´・ω・`)

人柱キボン


481:名前は開発中のものです。
06/11/11 11:19:53 C9CXGr4F
URLリンク(www.puppygames.net)<)
URLリンク(www.agency9.com)<)
URLリンク(www.chromethegame.com)<)
URLリンク(home.halden.net)
GroundFX
URLリンク(www.javagaming.org)
URLリンク(www.oddlabs.com)<)
URLリンク(www.jpct.net)
URLリンク(www.jmonkeyengine.com)<)
ホッケーのゲーム
URLリンク(www.wurmonline.com)<)
URLリンク(www.crystalsquid.com)<)
URLリンク(www.puzzlepirates.com)

482:名前は開発中のものです。
06/11/11 11:45:18 C9CXGr4F
>>481>>477に出てくるゲームのURLね
このうち、開発に役立ちそうなのは多分
URLリンク(www.imilabs.com)<)
URLリンク(www.javagaming.org)
URLリンク(www.jmonkeyengine.com)<)

しかし、面白そうなゲームが山のようにあるな

483:名前は開発中のものです。
06/11/11 13:07:20 HZB9qJCG
java, javax系でAudioClipより表現が豊かなサウンド用インタフェースってありませんか?
AudioSystemやMidiSystemを上手くラップしたいんだけど、AudioClipじゃ物足りない印象

484:名前は開発中のものです。
06/11/11 13:35:38 bJZMO9on
なんでAudioClipがでてくるんだよ
JavaSoundカワイソス

485:名前は開発中のものです。
06/11/11 13:41:41 HZB9qJCG
君一行目しか読んでないでしょ

486:名前は開発中のものです。
06/11/11 18:45:04 oHATF8vt
2行目が一致しないから仕方ないだろ
JavaSoundがでてくるなら問題はないのに

487:名前は開発中のものです。
06/11/12 03:04:56 FcOUrdTF
正直、あちらさんのゲームを見せられて、すごい、すごいと言われても、も一つピンとこねえな。
あちらさんはアセンブラかましたりとか平気でやるからな。
日本人でJavaでFPSを作ってる人っていないの?

488:名前は開発中のものです。
06/11/12 06:49:35 1OH5pVw5
>>487
Javaでどうやってアセンブリ言語を使うのだ

489:名前は開発中のものです。
06/11/12 07:28:17 0f+TtNLb
JNIの事を言ってるんじゃ無いか?

490:名前は開発中のものです。
06/11/12 08:23:03 +OD3pyxM
ここにいる人だけど、その多くは、Javaで本格的にゲームを作った事が
ない人だろう。
各種Docで知識は豊富だけど、ただ読んで覚えてるだけ。
ゲームの開発経験はないだろう。

Java実行コードのスピードは、部分部分で比較するとC++と大差なく
見えるけど、全体のアプリとして組み立てると、その漏れてた部分の遅さが
積み重なれて顕著となり、システム系ならば許容できるけど
シビアなタイムが必要となるゲームじゃとても使えなくなる
上の洋ゲーも間違いなくそのコアにJNIをふんだんに使ってるよ。
そうなると、それはJavaであってもJavaの範囲外ってことだ

491:名前は開発中のものです。
06/11/12 08:26:03 +OD3pyxM
>>ただ読んで覚えてるだけ

ってのは、その知識をもとに小規模なテストアプリを作成して
その結果で判断する事も含まれてる

492:名前は開発中のものです。
06/11/12 10:16:17 5sSMIo0r
増えてきた本格派JAVAゲーム
URLリンク(61.215.215.33)

こんな記事あったよ。日本のゲーム業界でJava使ってるとこってあるの?教えて業界人。

493:名前は開発中のものです。
06/11/12 10:38:02 wvoDMNwq
>>490
javaのPrduct系ゲーム開発経験者ですか?
それとも勘でいっている?

当方、確かに経験ないので今いちわからないんだけど
コード量が増えるとメモリリークが増えるから
PureJavaじゃ使いもににならないといいたいの?




494:名前は開発中のものです。
06/11/12 16:48:08 sIeJXGua
>>486
おまえは何を言ってるんだ?

495:名前は開発中のものです。
06/11/12 21:12:28 RoytZnjF
>>490
> ここにいる人だけど、その多くは、Javaで本格的にゲームを作った事が
> ない人だろう。
で、おまいはJavaで本格的にゲームを作成したことがあるのか?

>その漏れてた部分の遅さが
>積み重なれて顕著となり、システム系ならば許容できるけど
>シビアなタイムが必要となるゲームじゃとても使えなくなる
VMのGC処理が良く問題になるだけであって、コード本体の実行スピードには問題ない

> 上の洋ゲーも間違いなくそのコアにJNIをふんだんに使ってるよ。
間違いなくとか勝手に推測で断定されても、完全な間違いなんだが。

RuneScapeはPureJavaで作成されている。
その他のゲームで利用されているJNIも、
OpenGLやDirectInputを直接呼び出すだけの利用。

デタラメも大概にしてくれ。

496:名前は開発中の者です。
06/11/12 21:43:38 BPHT/7vm
LWやメタセコで作ってXファイルで吐いた3DモデルをJava側で読み込むツールとか、キャラのモーションを登録してJavaで読み込ませるツールとか、どこかで公開してるのかな?
そういうのがないと、素人には3Dゲームなんて、とても作れない。

497:名前は開発中のものです。
06/11/13 00:19:13 i1RxyPEd
>>494
JavaSound理解してないやつ乙

498:名前は開発中のものです。
06/11/13 01:47:03 xomXll6Q
お前がインタフェースベースな設計を知らないだけだろw

499:名前は開発中のものです。
06/11/13 19:04:22 jHwlfoAH
AudioClipってもっとも低機能で使い勝手の悪いものなんだが
それをほしいといわれても困る

500:名前は開発中のものです。
06/11/13 23:23:32 YBTvT9dR
ローダつくろうと思ってるんだけど、どのローダ書くのがいいかな?
1.メタセコ
2.ブレンダ
3.Xファイル
Xのローダ書いとけば一番無難?
自分、右手系でPG書いてるから変換が面倒くさそうだけど。
みんなはどんな感じ?

501:名前は開発中のものです。
06/11/14 06:53:06 t9hh4M26
>>499
それより良いインタフェースはないかと聞いてるだけでは?

502:名前は開発中のものです。
06/11/14 06:56:22 t9hh4M26
てか質問の意図を理解してない以前に設計知らないだけみたいだな

503:名前は開発中のものです。
06/11/14 09:51:06 v38jtkOO
あれ質問の意図がわかるやつのほうが頭どうにかしてるとおもうぜ・・・
本人ですか

504:名前は開発中のものです。
06/11/14 17:34:18 wMYc2bpW
Javaでゲーム作るとき
描画ってどうしてる?


505:名前は開発中のものです。
06/11/14 19:15:20 KGaPDyoT
2Dなら普通にJava2D+BufferStrategy
フルスクリーン時は垂直同期取るのに対してウインドウモードは取らないという点に注意してね

506:名前は開発中のものです。
06/11/14 23:35:47 N+Lhd8Zl
初めてアクションゲーム作ってるんですが
画像を半透明にしたりパレットデータを換えるときどうしてますか?
できればリアルタイムで処理させたいのですが
いい方法が見つかりません。RGBImageFilterではImageを得るまでが面倒で動作も不安定でした。
PNG形式のbyte列を直で変更して毎フレームImageに変換も遅そう
助けてください

507:名前は開発中のものです。
06/11/14 23:48:08 t9hh4M26
>>503
普通にわかるが?

508:名前は開発中のものです。
06/11/15 00:19:12 kbx8RzUW
>java, javax系でAudioClipより表現が豊かなサウンド用インタフェースってありませんか?
なぜAudioClipと比較したインターフェースにこだわる?Lineとかいってほしいということか?


>AudioSystemやMidiSystemを上手くラップしたいんだけど、AudioClipじゃ物足りない印象
JavaSound理解しているならまったく問題ないし、そこでなぜAudioClipが出てくるか不明。
同じインターフェースにこだわりたいのならともかく音量調整も出来ないようでは使い道なし。

~System系は5.0から大幅に使いやすくなったので迷うようなことはないと思うのだが。
普通に自分で好きなインターフェースで作りなさいとしかいえない。

509:名前は開発中のものです。
06/11/15 00:21:40 kbx8RzUW
>>506
Java2Dは使ってみた?通常合成なら大丈夫。
ハードウェアアクセラレーションはきかないからXGAで常時60fps維持したいとかだと厳しいけど。


510:名前は開発中のものです。
06/11/15 00:21:42 VX1VJ6O9
「同じインターフェースにこだわりたい」んだろ、もういいよ

511:名前は開発中のものです。
06/11/15 00:39:05 kbx8RzUW
こだわるならこだわるでAudioClip実装すればいいだけなんだけど。

512:名前は開発中のものです。
06/11/15 00:45:16 VX1VJ6O9
うざw そのインタフェースじゃ物足りないってんだからループするだけだろ
無いなら無いってだけなのに何引っ張ってんだか

513:名前は開発中のものです。
06/11/15 01:38:20 VX1VJ6O9
Java6になっても非Winの透過アクセラレートは無しなのかな。
まあ非Winを切り捨てても何の問題もないが。

514:名前は開発中のものです。
06/11/15 07:10:33 EhAiNbIT
>>509
それってGraphics2Dのことですか?
時間ができたら調べてみます。

515:名前は開発中のものです。
06/11/15 13:57:28 zHfv0gGD
>>512
だからこそあの質問が意味不明なのだ。
1行目と2行目と一致しない。

>>513
JavaSE5.0も現実的にアクセラレーションきかない。
openGLモードだと描画がバグバグだし、
Direct3Dモードだと描画方法によってレンダリング品質が変わるため使えない。

>>514
それだけじゃないけどね。
URLリンク(java.sun.com)

516:514
06/11/15 23:56:59 EhAiNbIT
>>515
バッファストラテジというのを導入してみたんですが、といってもほとんどコピペで理解してないんですが
Graphics2D.drawImage(Image,AffineTransform,Observer)でキャラを拡大したらGraphicsのdrawImageで描いた
ブロックの画像に縦縞ができてしまったんですが、どうすればいいでしょうか?必要ならできるだけ答えます
みなさんはバッファストラテジをどう使ってるのか教えていただけると助かります。

517:名前は開発中のものです。
06/11/16 00:11:55 RzG/81yb
これDirectX使って描画するからビデオドライバに問題があると崩れる場合がある。真っ当な環境なら問題は出ない。

とはいえ、アクセラレーションが利く描画じゃないようなのでその影響があるとは考えにくい。
コードと環境と加工前の画像と加工後の画像をアップしてもらえばわかるかも。

Graphics::drawImageでの拡大だとどんなかんじ?

518:名前は開発中のものです。
06/11/16 00:37:17 A0r/2s0Y
>>515
>だからこそあの質問が意味不明なのだ。
>1行目と2行目と一致しない。
お前日本語学校からやり直した方がいいぞw

519:514
06/11/16 07:35:27 DvgKUdTk
>>517
環境は何を書けばいいですか?今まで気にしてなかったもので…

520:名前は開発中のものです。
06/11/16 10:21:23 HdufXzqB
作ってみたけど微妙('A`)
ネットで対戦だから一人じゃバランスもとれず適当、せっかく作ったから遊んでください。
URLリンク(cattaka.myhome.cx)

521:名前は開発中のものです。
06/11/16 12:59:05 GPsbxADW
>>519
そもそもWindowsなのか、フルスクリーンモードなのかウインドウモードなのか
ビデオチップやドライバ等

ところでGraphics::drawImageによる拡大は問題なさそうなの?それが先決か。

522:名前は開発中のものです。
06/11/16 13:01:06 GPsbxADW
>>518
具体的な対応取らない荒しはかえれ
最近ずっとJava関係荒らしてるのお前だろ

523:名前は開発中のものです。
06/11/16 23:02:33 A0r/2s0Y
AudioClipがinterfaceなのを知らないのか
デザインパターンを知らないのか
日本語を知らないのかどれだい?

524:514
06/11/17 18:00:42 7Zpg5IH1
>>521
OS:Win98
ウィンドウモード
Graphics::drawImageでは縞はでませんでした。
バッファストラテジはそんなに効果があるんですか?
今一速くない気がします…

525:名前は開発中のものです。
06/11/17 18:50:02 gSEH6ifA
>>524
速度に関してはソフトウェア描画になる部分とアクセラレーションがきく描画と分かれる。
拡大縮小やαブレンドはソフトウェア描画になる。

Graphics::drawImageによる拡大描画は大丈夫なのか・・・。
画像のロードの仕方とかにも結構左右されるっぽいけど、そのへんどうなってるかな。
あと256色モードとか16bitカラーモードが原因になる可能性もある。

転送元imageはBufferedImage使ってると思うけど、そのカラーモードはフレームとあわせてある?
抜き色があるかとか細かいこともある。

フレームレート命のアクションゲームならできるだけアクセラレーションがきく描画を選択したほうがいいよ。
あとは画面サイズが大きすぎないこと。

まとめると
・画像のロードの仕方
・デスクトップの色数
・実際に問題の出るコードと画像

526:514
06/11/17 19:08:46 Lt0Wj0UY
>>525
画面は24bitでした。転送元imageというのがいまいち分かりません…
今まで携帯でしか作って無かったので、、、
あとこういうゲームに特化してJAVAの解説してるとことか無いですかね?
人に見せられるもんじゃないですけどソースアップしました。
URLリンク(park21.wakwak.com)

527:名前は開発中のものです。
06/11/17 21:47:35 6OJGRcli
まずぱっとみpaintイベントに描画ロジックが書いてあるようなきがするが、
通常paintイベントに対して処理は行わない。

repaint呼び出すところを自前のメソッドを呼び出すようにかえて、
paintメソッド名をそれにあわせて書き換えよう。

キー入力をビットに割り当てているのを見ると、他の言語でゲーム自体は作ったことあったのかなとおもた。

Skeruというクラスがわからないのでなんともいえないな。

画像のロードはImageIOを使うと柔軟にロードできるよ。わざわざバイト配列をロードするとか必要ない。
その際に画像バッファは現在のビデオの解像度と合わせると高速に転送が出来るけど、それはまた後の機会に。

これってフレームのサイズ固定で描画しているようだけれども、タイトルバーの高さとかふちの大きさは
同じWindowsでもバージョンや環境によって大きく異なるからしないほうがいい。

pack()やsetVisible()したあとにインセットを取得して本来ほしいサイズにそれを足して処理する。

528:514
06/11/17 23:51:15 83DvLp/B
>>527
お返事ありがとうございます。
>repaint呼び出すところを自前のメソッドを呼び出すようにかえて、
>paintメソッド名をそれにあわせて書き換えよう。
playに変えました。

>キー入力をビットに割り当てているのを見ると、他の言語でゲーム自体は作ったことあったのかなとおもた。
まあ、ボチボチですが

>Skeruというクラスがわからないのでなんともいえないな。
これはいらないクラスです。うっかりしてました。
画像とか変更したソースとかさっきのURLにアップしておきます。

>画像のロードはImageIOを使うと柔軟にロードできるよ。わざわざバイト配列をロードするとか必要ない。
>その際に画像バッファは現在のビデオの解像度と合わせると高速に転送が出来るけど、それはまた後の機会に。
やってみましたけど、こんなんでいいんですかね。

>これってフレームのサイズ固定で描画しているようだけれども、タイトルバーの高さとかふちの大きさは
>同じWindowsでもバージョンや環境によって大きく異なるからしないほうがいい。

>pack()やsetVisible()したあとにインセットを取得して本来ほしいサイズにそれを足して処理する。
やってみました。


529:名前は開発中のものです。
06/11/18 00:24:13 3XstkAv5
>>pack()やsetVisible()したあとにインセットを取得して本来ほしいサイズにそれを足して処理する。
>やってみました。

これ、取得した後にそのサイズを足してsetSizeするってことね。
320*240とかを描画サイズにしたい場合それプラス余白部分。
もちろん、描画する際の起点もその分ずらす。

あとは時間管理だろうか。
sleepは固定でのウエイトが入る。つまりメインループの処理時間の差があった場合に考慮されていない。
普段は10msで動いていたとしたら1ループは30msだろうけど、これが5msだったり15msだったりすると・・・。
したがってがくがくするのを防ぐためには一定の速度でまわす必要がある。
30msでループさせるなら処理に5msかかったら25ms停止、処理に15msかかったら15ms停止というようにね。

だいたいでいいのなら一番簡単なのはjava.util.Timerを使う。TimerTaskとあわせてね。
メインループのほうをwait()で停止させて、TimerTaskからnotify()で起こすといい。

あとこのスレと前スレを一度全部見ておいたほうがいい。

530:514
06/11/18 16:22:37 09nqBb7g
言われたところは大体やりました。ただTimer系がまだいまいちわかりません
サクっとでいいんで説明してもらえたら助かります。
あとJAVA2Dなら画像のパレット替えやフィルタリングもできるんですよね?

531:名前は開発中のものです。
06/11/18 16:36:52 qC5zAejN
タイマーはここみるといいよ。
URLリンク(www.javainthebox.net)
ほかにも櫻庭さんのサイトはJava関係の重要なのが多いから関係のありそうなところ見といたほうがいい。

描画に関してはアクションゲームで60fpsを目指すのなら複雑なことはしないほうがいいよ。
あらかじめ使用するパレットがわかっているなら画像ロード後にそれらのImageを生成したほうがいい。
あくまでもいわゆる画像をスタンプのように貼り付ける場合はやいから。

RPGとかで30fpsくらいでいいのならいろいろと出来ると思うよ。
Java2Dを詳しく書いた書籍ってあったかな・・・。まずはJava2Dのマニュアルをよんでみよう。
少なくともJDKのJava2Dサンプルくらいはすぐできるから。

532:514
06/11/18 17:44:49 Zk4f2vJN
>>531
ありがとうございます。
Timerは分かってきたんですが、上にある
>メインループのほうをwait()で停止させて、TimerTaskからnotify()で起こすといい。
の書き方が分かりません…。
あと、キャラクター・エフェクト・特殊ブロックなどの処理部分を一つのクラスにまとめて中で
switch文分岐して処理させようかなーと思ってるんですが、こういうやり方だと遅くなったりするんでしょうか?
座標や状態変数なんかはメインループのある方のクラスに持たせれば、敵にくっついてく敵とかが作れそうですよね。
一応JAVAなのでポリモーフィズムも考えたんですが、数が数なだけに多すぎるので辞めたんですが

画像も予め用意したらその分メモリ食われて遅くなるってこともありますよね?
いかんせんJAVAでのメモリの使われ方が良く分かって無いのでどこかで損してる気がします…

533:名前は開発中のものです。
06/11/18 19:54:34 ZKUyfd27
wait、notifyはObjectにあるメソッド。これはJavaの基本中の基本なので勉強するといいよ。
APIドキュメントよんでごらん。ざっくりというとwaitはスレッドを停止させてnotifyで起こすという感じ。
マルチスレッド使ってるのでこの辺基本を抑えないと大変なことになる。

参考
URLリンク(www.nextindex.net)

switchだろうが複雑な分岐だろうがCPUだけが処理するようなものは速度的に問題にはならない。
ネックになるとすれば16bitCPU時代くらいでJavaSEとは関係ない。

最初はざっくり作ってリファクタリングをゆっくりやるといいよ。IDE使えば手軽に見通しよくなるし。
オブジェクト指向等も徐々に勉強していきながらでいい。


534:514
06/11/18 22:14:54 Bis6pJQA
>>533
wait()とnotify()意味は半分ぐらい分かったのですが、いまいち調べても
欲しいサンプルが見つかりません…。色々試してはいるんですがなかなか
動いてくれません。ヘタレで悪いんですがゲームで使う時のwait、notify
のコードをちょろっと書いて貰えないでしょうか?

ただ分岐は多くてもいいというのはホッとしました。丁寧なレスありがとうございます。
助かります(^^;。

535:名前は開発中のものです。
06/11/18 23:55:20 ZKUyfd27
基本中の基本だけにしらべればいくらでもサンプルコードが出てくると思うのだが。


536:514
06/11/19 10:56:55 1IKPzYYc
Timer/TimerTaskとwait/notifyを組み合わせられないんです。
どうやったらTimerTaskで周期的にnotifyできるのかとかSynchronizedを付けるべきところとか
探し方が悪いのかも知れないんですが

537:名前は開発中のものです。
06/11/19 13:54:05 dZdtxI9w
自分はこんな感じで実装しているが、間違っていても知らない

public class Hoge extends Thread{

  private boolean processStop = false;
  private WakeTask wakeTask = new WakeTask();

  public void start(){
    super.start();
    new Timer().scheduleAtFixedRate(wakeTask, 0, WAKE_TIME);
  }
  public synchronized void run(){
    while(true){
      game();
      try{
        wait();
      }
      catch(InterruptedException e){
        e.printStackTrace(System.err);
        break;
      }
    }
  }
  private synchronized void awake(){
    if(!processStop) notify();
  }
  private class WakeTask extends TimerTask{
    public void run(){
      awake();
    }
  }
}

538:名前は開発中のものです。
06/11/19 20:11:00 8MYA5LfB
>>536
URLリンク(www.y-adagio.com)


539:520
06/11/19 23:41:03 yvfHZIx2
今頃鯖のポート解放忘れてるのに気がついた。
何がしたいんだよ俺・・・・orz

540:名前は開発中のものです。
06/11/20 00:56:56 mU6Ad/cq
リアルタイムシミュレーションでネット対戦できるゲームをjavaで作りたいのですが、参考になるサイトありますかね?
ちなみに自分は今までCで数値シミュレーションを生業としてきてGUI関係はよくわかっていません。
勉強できるサイトがあるとうれしいです。
よろしくお願いいたします。

以上

541:名前は開発中のものです。
06/11/20 01:19:17 8PZEbpO9
ものすごい初心者な質問なんだけど、
普通のゲームってソフトとかクライアントとかをダウンロードするじゃない?
JAVAゲームの場合、ブラウザから直接開始するけど、
読み込み時間みたいのがかなりかかるんじゃないのかな?
音楽もいちいちMP3をダウンロードすることになるの?

542:名前は開発中のものです。
06/11/20 01:42:07 HqvpBzdY
>>540
シミュレーションが、物理シミュレーションかシミュレーションゲームか不明
GUIプログラミングは簡単なので立ち読みか普通のサイト見れば良いのでは
URLリンク(www.javadrive.jp)
URLリンク(www.hellohiro.com)

543:名前は開発中のものです。
06/11/20 15:21:51 107nEDGg
>>541
Javaのプログラムってのはアプレットだけじゃないよ。
通常のアプリケーション等もあるし、一度ダウンロードしたらアプレットはキャッシュからとってくることも出来るし
WebStartはバージョン等が変わってなければすべてキャッシュファイルからとってくる。

そもそもC等で作ったアプリだって同じだぞ。ネット経由でダウンロードするように作ってあるなら。
バックグラウンドスレッドでガンガン落としていけばあまり問題はなさそうだが。

544:名前は開発中のものです。
06/11/26 21:31:48 vp/Awfnk
話題が無いがage
無限にステージが生成されるマリオっぽいゲーム「Infinite Mario Bros」
URLリンク(gigazine.net)

545:名前は開発中のものです。
06/11/26 23:34:43 o/jL46vw
>>544
Wurm Online の中の人が製作しているみたい?
ソース付きだし勉強になりそうだ。

546:名前は開発中のものです。
06/11/27 18:13:24 QR83lXnt
VolatileImageとMemoryImageSourceって一緒に使えますか?

547:名前は開発中のものです。
06/11/27 18:15:01 IAG3BIQ8
使えるけど、後者は使う意味ないぞ
1.1時代の互換性のためだけの遺産だから

548:名前は開発中のものです。
06/11/27 18:52:38 QR83lXnt
詳しく教えてください
VolatileImageでピクセル操作とかできますか?

549:名前は開発中のものです。
06/11/27 21:03:56 OAwnVtrw
VolatileImageは画面モードにも夜がVRAMをさすと思っていい。
VRAM直書きはメインメモリ直書きに比べて非常に遅いので出来てもやらないほうがいいのは常識。

メモリ上のImageを扱うなら1.2以降はBufferedImageを使う。最初にピクセルフォーマットをきめて
配列で扱えること、出来上がった画像を何度もコピーする場合アクセラレーションが自動的に適用される。


550:名前は開発中のものです。
06/11/27 21:56:18 L4SNxotk
>>547
いや、実際にはMemoryImageSourceが一番素直な「フレームバッファ」
で使いやすい。BufferedImageは、メモリ上の配列と直接関連付けられ
ないのが致命的(ピクセル列に見立てたint配列を操作すれば直ちに
対応するImageに反映されるという意味での「Buffered」でなければ、
Rasterなどという扱いにくい邪魔者が出てくるだけでまったく意味が
ない。まだMemoryImageSourceの方がまし)。


551:名前は開発中のものです。
06/11/27 23:13:58 OAwnVtrw
ゲーム用途だとダイレクトにピクセルを扱う場合8bitか16bitにしないと速度的に問題が出るから
BufferedImageでそういう指定するのが一番だと思うし、ピクセルフォーマット合わせる場合
GraphicsConfiguration使うだろ?

問題あるのか?short配列アクセスとか簡単に出来るから便利だと思うんだが。

552:名前は開発中のものです。
06/11/28 22:11:57 WdzF4q7Z
>>544
それすごいな
pure javaだけでここまでできるの?

553:名前は開発中のものです。
06/11/28 22:46:49 jI1vxm7H
>>552
2Dなら余裕
あとは根気等

ただグラフィックなどあからさまなパクリはいかんね

554:名前は開発中のものです。
06/11/28 22:52:55 dIaLfStB
>>552
署名なしで動くアプレットだから当然、pure javaです。

携帯で普通にドラクエが動いている世の中だからな。
出来るかどうかはプログラマの腕次第だと思うよ。

555:名前は開発中のものです。
06/11/29 08:24:09 SF7yfmPu
>>551
>問題あるのか?short配列アクセスとか簡単に出来るから便利だと思うんだが。

いや、だからその配列の内容は一度変換・コピーしないとImageとして表示できないんだよ。
自分でRGBを数値として処理する配列を取ると、一度それをMemoryImageSourcre/BufferedImageを介して変換しないと描画可能なImageが得られない。
そして、そうしたRGB配列のImage化には一発でできて余計な機能がないMemoryImageSourceの方が使いやすい。
Win32のDIB/DIBSectionのような機能(直接描画可能なフレームバッファを配列として取得できるImage)があれば楽だし、変換や不要な配列の二重確保が入らない分性能上も有利なはずなんだけどね。
BufferedImage(あるいは各種変換機能を削除して単純化したMemoryImageクラスでも新設して)でピクセル列の配列を直接公開してくれれば良いのだけど。

あと、int配列から作ったMemoryImageSourceで速度的な問題って感じたことないぞ。
Pen3+845GEのマシンで100以上のキャラクタ描いてもまったく問題にならなかった(100FPS以上)。


556:名前は開発中のものです。
06/11/29 12:28:42 E1GsFmbf
>>555
ラスター使うから同じじゃね?

557:名前は開発中のものです。
06/11/29 13:28:43 SF7yfmPu
>>556
ラスターは邪魔だよな……。
BufferedImageのような各種変換機能付きImageを作るなら、まず単純なフレームバッファ用意してその上位版という位置づけにして欲しかった。
BufferedImageも内部には直接画面に転送する32ビット配列(Win版は32ビットDIBSection+独自のアルファ処理?)持っているんだろうし。


558:名前は開発中のものです。
06/11/29 13:56:50 E1GsFmbf
ピクセルフォーマットが同じだとDDBで転送するだろうから速度は速いはず。
MemoryImageSourcreは任意のピクセルフォーマットで扱うとき大変じゃない?

559:名前は開発中のものです。
06/11/29 16:21:44 SF7yfmPu
>>558
いや、BufferedImageはWinではDIBSectionじゃないの。
一応「バッファ」もっているし、アルファ処理対応だから。
ラスター要求されたときのためにもメモリ上にフレームバッファが必要なはず。

そういえば、もう何年もWin32APIにしろJavaにしろフルカラー32ビットフレームバッファ(DIB/DIBSection/MemoryImageSource)の速度的な不満は感じたことないな。
ピクセル単位の処理はフルカラー32ビットで行うのが一番楽(1ピクセル1DWORD)だし描画時の性能も十分。


560:名前は開発中のものです。
06/11/29 22:03:00 r/0kDPlo
BITMASK指定でバッファ作ればDIBと思われる動作速度じゃないよ。

561:名前は開発中のものです。
06/11/29 22:06:29 r/0kDPlo
32bit単位でのアクセスは非常に遅い。

IntelCore等最新のCPU使っていてもVGAクラスになると処理速度が間に合わない。
2次キャッシュのサイズ等を考慮してぎりぎりといったところか。
QVGAなら32bitカラーはぎりぎりいけるかな。

PentiumM1GHz/Pentium42GHzクラスのマシンを動作対象にしようとすると
QVGA-16bppくらいしか選択肢はない。


562:名前は開発中のものです。
06/11/30 17:09:31 TUwNRJc1
>>559
そんな馬鹿な。2Dの画像転送速度で比較すると

BitBlt(WinGDI) > TransparentBlt(WinGDI) > AlphaBlend(WinGDI)
>> copyArea(Java2D) >> drawImage(Java2D)

なのですが。確かに小さい画面サイズならそれだけ差はなくなるけど
まともなゲームの画面サイズにすると、その遅さが浮き彫りに

563:名前は開発中のものです。
06/11/30 17:14:30 TUwNRJc1
>>559
失礼。フレームバッファの単語を読み飛ばしてました

564:名前は開発中のものです。
06/11/30 18:04:42 NwbsHHlf
Java2DアクセラレーションはDirectXも使っていたり複雑だけど
通常の矩形転送以外はアクセラレーションきかねぇんだよな
しかも頻繁にGCがおきやがる

JOGLアクセラレーションに期待
5.0だとDirect3Dモードはひどいし、OpenGLモードはもっとひどいし

565:名前は開発中のものです。
06/12/01 10:00:02 A/U7d6+m
JAVAって画像ファイル形式にGIFしか使えないってマジですか?

566:名前は開発中のものです。
06/12/01 10:14:43 LDltEBVY
マジではありません

どんな画像ファイル形式でも使えますよ

567:名前は開発中のものです。
06/12/01 11:37:19 LC+/aYM5
Java素人なのですがなんとなく作ってみました!
未だにアプレットの作り方すらよーわからんです。(^^ゞ
URLリンク(perfect-logic.net)


568:名前は開発中のものです。
06/12/01 17:10:48 IDdYaP0u
結構作りこんでありますねぇ。
某ゲームを彷彿させて萌えましたw
ところでシステムがアーケードっぽいのはなぜなんでしょう?

569:名前は開発中のものです。
06/12/01 17:16:25 LC+/aYM5
感想ありがとうございます~。
アーケードっぽいのは私がアーケードゲーム好きだったので、なんとなくそれっぽくしただけなんです。(^^ゞ

570:名前は開発中のものです。
06/12/01 23:36:55 o1acqxN9
>>567
ちょっ
これで素人とは言わせないぞ
どこのプロだ?

571:名前は開発中のものです。
06/12/02 00:01:56 WxTjtQSm
>>570
こんばんわ。
ホントにJavaでものを作って公開するのは初めてですよ~。
一度くらい仕事でJavaってみたいです。(^-^)
ちなみにゲーム歴は結構長いです。インベーダー時代からやってます♪

572:名前は開発中のものです。
06/12/02 05:50:16 8WxMFuvR
適当な推理だけど、
中堅ソフトメーカーの社員で、30代半ばから40台。
開発現場から管理職に昇進したものの、なんか以前より暇でムズムズしてる人。
最近のゲームは、はっきりいってぬるぽ杉て殺意すら覚えている。
乗り越える壁があってこそ面白いゲームと考えてる。
マーケティングにその事をこぼした際今時流行らないと一蹴され、このゲームを
作り始める直接のきっかけになった。


なんてね。

573:名前は開発中のものです。
06/12/02 09:32:54 wBc7JJHR
>>572
36~40の割には顔文字やら音符やらずいぶん軽いな
そんなもんなのかね

574:名前は開発中のものです。
06/12/02 10:03:44 YSW2q7Ho
>>572

>乗り越える壁があってこそ面白いゲームと考えてる
は当たっているかもしれません。
後は…ちょっと違うかな。(^^;
最近のゲームは普通にやりますし、プログラム技術も見てますよ~。
(素晴らしいの一言です。とても一人では作れるわけ無いですね)

このゲームを作ったきっかけは、昔ナムコの某塔を登るゲームの
二作目(ただ飛ぶだけのヤツ)にガッカリして、自分ならこう作る
かなぁとずっと思ってて、Javaでなんかグラフィックをいじる
ソフトを作ってみるかと思ったキッカケがあったときに
それを実行移した感じですね。
年々仕事がハードになるので、息抜きに作った感じです。(^^;

575:名前は開発中のものです。
06/12/02 10:09:23 OMk/eHpK
(^-^)とか(^-^)/とか(^-^)/~は30台でも使う人いるな


576:名前は開発中のものです。
06/12/02 10:37:29 TVj7JnE/
>>567
URL見てスルーしてたが結構凄いじゃん

577:名前は開発中のものです。
06/12/02 11:10:40 YSW2q7Ho
>>576
ありがとうございます~。
周りにJavaのグラフィックやゲームフレームワークについて
お話できる人がいない上に、プレーしてもらえるゲーマーが
殆どいない状況だったので、ここに晒してみた感じです。w

578:名前は開発中のものです。
06/12/02 13:20:11 A/80wyG1
俺もURLみただけでアプレットかなんかかとおもってスルーしてた

単純でもDEMOがあるのがすばらしいな
結構DEMO作るの面倒なんだよな

579:名前は開発中のものです。
06/12/02 16:34:43 Q74I213y
>>567
初期化時の画面のこだわりは恐ろしいものがありますな。
ゲーム自体もかなり作りこんであるので、ちとびっくりしました。

>>574
「飛ぶだけのやつ」はシリーズでいうと3作目ではないかと。
2作目は「塔を降りる」やつではないかと。
スレ違い失礼。

580:名前は開発中のものです。
06/12/02 16:49:36 YSW2q7Ho
>>578
DEMOがあるとなんか昔のアーケードっぽくていいかな?
と思いました。(^^)
あと、最初の方の面は宝の出し方が故意にノーヒントにしてあるので、
デモプレーで分かるようにしてみました。

>>579
感想ありがとうございます♪

二作目はイシターでしたね。三作目が正解です。www
書き込んだ後に思い出して反省していました。(^^ゞ

581:名前は開発中のものです。
06/12/02 17:06:52 w9uTYl/6
>>567
JAVAなのにブラウザから直接はじめられないの?

582:名前は開発中のものです。
06/12/02 17:12:22 YSW2q7Ho
>>567
Javaの素人なのでアプレットの作り方とか知らないんです。
エントリポイントが違うくらいの違いであれば作ることができそうですが、
ちゃんと作る気力が無くて...orz

583:名前は開発中のものです。
06/12/02 17:46:49 w9uTYl/6
embedとかで埋め込めなかったっけ?
普通に作りこんであるだけに起動が面倒なのは惜しい。

584:名前は開発中のものです。
06/12/02 17:50:35 YSW2q7Ho
ほほぉ。そんなのがあるんですね。φ(.. )メモメモ
今度勉強してみようかな。

585:名前は開発中のものです。
06/12/02 20:54:16 A5BBW3gR
>>582
つゲームのパネル化&AppletとFrameへの貼り付け


586:名前は開発中のものです。
06/12/02 21:53:27 NlWQrbtL
マニフェストでMain-Classを指定してるみたいだからjarアーカイブの関連づけをjavaかjavawに関連づけてたらダブルクリックで実行できるだろ。

>>567
起動~リソースの読み込み~タイトル画面移行に掛かった時間を標準出力に吐いてくれたらうれしい


587:名前は開発中のものです。
06/12/02 22:03:33 g+e0ZUOZ
>>567
連投スマン
これってAWT?
-Dswing.aatext=true
でアンチエイリアスが効いてないような気がするんだけど・・・

588:名前は開発中のものです。
06/12/02 22:23:32 YSW2q7Ho
みなさんありがとうございます~。
アプレットにも対応してみようかと、mainのクラス(ActionGame extends JFrame)
とは別にAppletのクラス(ActionGameApplet extends JApplet)を作って、
appletviewer使って実験してみたのですが、私のスキルが足りなくて、
途中で画像の読み込みとか(?)でヌルポになってしまいました…
(トレースは表示されましたが、時間が無くて具体的にどの辺りかが
あんまり分かっていません。あと内部でJPanel(JFrameに貼りついている
MainScreen)を作っているのですが、
これがアプレットに貼り付かないみたいで別ウィンドウが出て
しまいました...)
なものでアプレット化は当分無理そうです。ごめんなさい~。m(_ _)m

>>586
これ位は私でもできるような気がしますが、必要な理由に興味が
あります。何故でしょう?(^^ゞ

開発環境はbash, vi, antで開発していたので、
シェルで普通にパラメータを指定して起動みたいな感じで、
ダブルクリックとかあまりやっていませんでした。
(Windows XPとかだと、jar=ZIPファイルで中を展開ってイメージが
あったもんで...)

589:名前は開発中のものです。
06/12/02 22:53:32 m+FwCpVx
アフォな解凍ソフトが jar まで解凍拡張子として関連付けしている
場合があるから、Windows向けに下記のランチャーソフトをお勧め

URLリンク(launch4j.sourceforge.net)
URLリンク(www.ne.jp)

590:名前は開発中のものです。
06/12/02 23:02:38 lFDLhCqW
jarはダブルクリックで実行がデフォ
あふぉなアーカイバは無視しておけ

591:名前は開発中のものです。
06/12/02 23:04:51 lFDLhCqW
>>588
画像読込部分はりソース読み込みならおかしくなるとは思えないけどどういうコード使ってるの?

592:名前は開発中のものです。
06/12/02 23:08:50 YSW2q7Ho
>>591
読み込みよりもダブルバッファのイメージ生成でコケてました。(^^;
Component.createImage APIです。
…トレースを見ていたら、

[Action game start]
Game initializing...
Image create error.
Framework initialize failed. error(-1)
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
at java.security.AccessController.checkPermission(AccessController.java:427)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
at java.lang.Runtime.exit(Runtime.java:88)
at java.lang.System.exit(System.java:868)
at ActionGameApplet.init(Unknown Source)
at sun.applet.AppletPanel.run(AppletPanel.java:378)
at java.lang.Thread.run(Thread.java:595)

とかなっていたので、もっと根本的におかしいのかも知れないです。
(HTMLの書き方とかからしてとか)
嗚呼、スキルの無い悲しみ…orz

593:586
06/12/02 23:31:14 g+e0ZUOZ
IDが変わってるだろうがプロバイダの仕業だから気にしないでくれ

>>588
レス早いねありがと。
javaはVM向けのオプションをいじり倒すとかなり最適化出来るんだがマシン構成やらプログラム側のGCの発生頻度やらその他諸々の癖で結構指定するオプションを見極める必要がある。

んで効果を手軽に確認するのに初期化処理とかリソースの読み込みに掛かった時間が分かるとめあすになるかと思って。


あと思ったんだがJavaVMじゃなくてJavaアプリケーション側の実行時引数って普通-Dオプションで渡さない?swingだけだろうか?


ダブルクリックでjar実行なら最近のGUIOSならJavaVMに関連づけがデフォだからwinやMacOSXならいじる必要ないと思う。

linuxとかCUI混在は知らん。
上で言われてる通りバカなアーカイバがjarをZipとして云々はデフォ設定に直せばおk

winでjar=zipとして解凍って思い込みはIEがHTTPからダウンロードする時MIME-TYPE見てないせいで云々に関係するからOSがバカなだけ。

ド素人ならJarを何も考えずにクリックして見るのが普通と思う。解凍は意図的にする。

長かったな参考になっただろうか

594:名前は開発中のものです。
06/12/02 23:49:58 lFDLhCqW
>>592
System.exitがどっかにかいてあるとか?
あれはアプレットだとセキュリティ違反


>>593
GCはインクリメンタルGCnにするとフルGCが大体消えて快適になる
5.0ならパラレルGCなので大丈夫

-Dはパラメータ用ではない。用途が違う



595:名前は開発中のものです。
06/12/02 23:55:17 YSW2q7Ho
>>593
どうもです。(^^)

>んで効果を手軽に確認するのに初期化処理とかリソースの読み込みに掛かった時間が分かるとめあすになるかと思って。
参考になりました。φ(^^ )メモメモ
ということで時間を見つけて入れてみますね。
エンディングまで行った時にもTotal Play時間も入れておこうかな。

-Dswing.aatext=true パラメータは知らなかったのでググッてみたのですが、
これはテキストにアンチエイリアスがかかるとか紹介されていました。
ビットマップの転送にもアンチエイリアスがかかるのかも知れないのですが、
私も試したらNGでした。ちなみにゲーム中に表示される文字は全て
ビットマップです。

596:名前は開発中のものです。
06/12/02 23:58:03 YSW2q7Ho
>>594
System.exit書いてあります!
アプレットの時はコレが書いてあるだけでNGなんですね。φ(^^ )メモメモ

597:名前は開発中のものです。
06/12/03 00:11:31 Weooalfd
ブラウザでプレイできるようにしてくれ~

598:名前は開発中のものです。
06/12/03 00:19:26 7tbgDbUF
>>597
すみません~。スキルがなくて…orz

System.exit止めたらExceptionが消えましたが、Component.createImage(w,h) API
でイメージが生成できないのは解消できずです。orz
newしたJPanel(Component)はヌルポでは無いのに…

599:名前は開発中のものです。
06/12/03 00:28:03 JGG55Wof
>>597
アプレットはずっと動き続けるものだからね
破棄はブラウザ閉じたりページ移動したりユーザーの意思によってのみされるわけだ

>>598
エラーメッセージは?


600:名前は開発中のものです。
06/12/03 00:36:40 7tbgDbUF
>>599
598で述べたJPanelは私のチョンボでした。
アプリケーションのmain関数でインスタンス生成するのと同じように、
アプレットのInitの中でActionGameAppletをインスタンス生成していました。
(インスタンスが二重になってしまっていて、おかしくなっていました)

今はjar内のイメージ(最初にフォントを読み込みます)の読み込みエラーになり始めました。

Image load error. (/images/text_font.png)
java.lang.NullPointerException
at TextScreen.initialize(Unknown Source)
at God.initialize(Unknown Source)
at ActionGameApplet.init(Unknown Source)
at sun.applet.AppletPanel.run(AppletPanel.java:378)
at java.lang.Thread.run(Thread.java:595)

コードはこんな感じです。

 // イメージを読み込みます
 Toolkit toolkit = Toolkit.getDefaultToolkit();
 Image srcImage = null;
 URL url = God.getURL(fileName);
 if(url != null) {
  srcImage = toolkit.getImage(url);
 }
 if(srcImage == null) {
  System.out.printf("Image load error. (%s)\n", fileName);
  return null;
 }

filenameがjar内の/images/text_font.pngにあたります。

601:名前は開発中のものです。
06/12/03 00:37:20 JGG55Wof
しかしアプレットだとVMにたいして細かい制御ができないしパフォーマンスも下がるし制限多いんだが
アプレットにこだわるのはどういうことだろうね

WebStartアプレットならまだましか

602:名前は開発中のものです。
06/12/03 00:44:09 JGG55Wof
>>602
肝心の例外が出てる行はどこ?
ツールキットでのロードってことは読込完了するまでまってる?
画像ロードはImageIO使ったほうが楽だと思うよ
リソースのストリームから呼び出すようにね

あとソースファイルが多いので1つのディレクトリに全部展開するよりは階層構造にしたほうがいい
viとかでは管理できないレベルかと

リファクタリング使えるIDEつかえばドラッグアンドドロップで自動的にクラスの移動ができる
もちろん使われている場所も全部問題なく変更される

ここまでの規模になるとたいしたことなくともIDE必要だと思うよ
antも全部自動生成してくれるし

603:名前は開発中のものです。
06/12/03 00:52:36 aNPfAlfu
>>594
-Dはシステムプロパティの方だった・・・orz

ユーザープロパティはProperties#loadで自分でプロパティファイル毎拾わないといけないんだったな。

>インクリメンタルGC~
それは言えてる。けどインクリメンタルGCはフルGCのコストとは比べ物にならなくても常に少しのCPUパワー消費が増してるからハードウェアアクセラレーションが効かない現状だと貧弱PCだと辛いかと思ってさ。

あとメモリ使用量とかも調節したいし。


CPUが2つ見えてればサーバーVM使いたいんだけど・・・(°ω°)

>>595
-Dswing.aatextは将来のDeskTopJavaのサポートを強化するためにSE5.0で先行実装された非公開のオプション。アプリケーションレベルでテキストをアンチエイリアスしてくれる。com.sun.java.swing.SwingUtikities2のソースを読むと幸せになれるかもしれない。

だが、知らないなら余り触れない方が良い。


文字はビットマップなのか。それならJava2Dの仕事。SDK5.0の「java2Dのグラフィックスとイメージング-J2SE5.0でのJava2Dの新機能 or Java2Dテクノロジのシステムプロパティ」が参考になるが現段階では充てにならん。SE6~7辺りに期待。

>>596
ブラウザにプラグインされてるVMを勝手に終了させられたらブラウザは迷惑だと思うw



604:名前は開発中のものです。
06/12/03 00:53:47 7tbgDbUF
>>602
根源は
URL url = God.getURL(fileName);
というところでした。
この関数は、sun.applet.AppletClassLoader.getResource(filename)
としていて、ここでNULLになっているみたいです。
(結果、if(srcImage == null)がnullになるという感じです)

ImageIOというのもあるんですね。ためになります~。
EclipseとかカッコイイIDEを使いたいというのもあったのですが、
何分勉強する時間が無くて、最初はHello Worldから始めて、
グラフィックをちょっと描いてみる→ここまでに至りました。
この辺、言語や開発の仕方を覚えていく過程としてはかなりいい加減です。
(この言語が本職で無いからどーでもイイヤみたいな感じだったとでも
いいましょうか...(^^ゞ)

605:名前は開発中のものです。
06/12/03 00:57:25 JGG55Wof
>>603
サーバーVMはスループットはよくなるけどレスポンス悪化するのでゲームじゃ今のところ使えない
クラスロード時にコンパイルが出来るなら別だがそういうVMはないはず

それにインクリメンタルGCは5.0でトレインGCからパラレルGCに変更になったので大丈夫だよ
トレインアルゴリズムは非常の遅くて1GHzくらいでも60fps維持は結構きつかった
一応隠しオプションでトレインにかえれるけどだれもつかわないね、あれは


606:名前は開発中のものです。
06/12/03 01:01:12 JGG55Wof
>>604
リソース読むときコードにクラスローダ直書きってこと?

IDEはわからないのであればNetBeansお勧め
セットアップしてすぐに使えることと覚えることが少ないのがぐー
新規にプロジェクト作ったらsrcフォルダにそのままソースをぶっこむだけでおわる

それに補完等があるからIDEは便利だよ
コンパイルしなくても構文にエラーがあればリアルタイムに表示してくれるし

607:名前は開発中のものです。
06/12/03 01:06:14 7tbgDbUF
>>606
>リソース読むときコードにクラスローダ直書きってこと?

いえ、最初にgetClass().getClassLoader().getClass()してます。(^^ゞ
アプレットの時は"sun.applet.AppletClassLoader"で、
アプリケーションの時はお詳しいと思うのでご存知のように、
"sun.misc.Launcher$AppClassLoader"
みたいになりました。

IDEはもう少し時間が取れたら試してみようかな…

608:名前は開発中のものです。
06/12/03 01:20:39 aNPfAlfu
>>605
パラレルアルゴリズムってそんなにパフォーマンス改善されてるのか。

>>サーバーVM~
そういやこれアクションゲーだったな。
俺ADVエンジンしか作れないからレスポンスいらねw

でもlinuxだとデフォでサーバーVMが起動するからゲームのパフォーマンスさげてるって事か。


ところでswingで書けばアプレットでもアプリケーションでもどっちでも起動できるが>>604がdemoのSwingSet2のソースを理解出来るかどうか。

swingサポートしない古いMSVMはセキュリティの面からも切り捨てでw

#MSVMはJITだけが取り柄だな

609:名前は開発中のものです。
06/12/03 01:41:17 JGG55Wof
>>607
リソース周り少し調べればたぶん解決すると思う
ストリームのほうつかってみたら?

あとファイルをjarの外に出すという方法もあるね
あとでパッチ当てるの楽になるし開発中のときはデバッグに楽かも

まぁリソースは別のjarとかにしておくのが正解か
WebStart等とかんがえるならね

>>608
あとGC自体1.4から5.0で見える範囲でパフォーマンスアップしている

Swingかどうかって関係ないのでは?
awtでもアプレットとアプリは併用可能

フルスクリーン等実装してることから1.4以上が必須なわけだし
あとはOggあたりをループ再生していればいいね

linuxは32bitならサーバークラスマシン検出しないとデフォはクライアントだと思うんだけど
64bitはクライアント版はなし

610:名前は開発中のものです。
06/12/03 01:54:36 7tbgDbUF
>>609
色々と調べたら、アプレットでのjar内のリソースの読み込みは
セキュリティポリシーの問題で難しそうに感じました。
(それで合っているのか分かりませんが...)

本来は提案で言われたとおり、jarを外に出すとかWebStart等が
いいのかと思いますが、流石にそのパワーが無いので、
一旦これで凍結にしようかと思います。
(所詮適当に作ったサンデープログラムプロゲームですしね。www)

----
本来はオフラインで周りに聴ける人とかいれば、色々と相談したい
ものなのですが、残念なことにJavaエンジニアが側に一人も居ないので、
なんかきっかけがあったらまたゴソゴソとトライしてみようかと
思います。

スレの流れを見ていると、上級Javaエンジニアの方が二人程
私の相手して頂いたように見受けられます。
色々とテクニカルなキーワードを教えてもらって、
かなりタメになりました。ありがとうございます!( ´▽`)ノ

>>皆様
クソゲーではありますが、純粋にレトロ風なアクションゲームを
楽しんでいただけると幸いです。(^^)
URLリンク(perfect-logic.net)

611:名前は開発中のものです。
06/12/03 03:06:12 YF8PnGLn
自分が書いたJar内のリソース読み込みプログラム
アプレットでも大丈夫
/resourceフォルダ以下にこれとリソースを入れておけば良し


package resource;
import java.io.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class ContentsReader {
  public InputStream getInputStream(String fileName){
    return getClass().getResourceAsStream();
  }
  public BufferedImage getImage(String imageName){
    BufferedImage image;
    try{
      image = ImageIO.read(getInputStream(imageName));
      return image;
    }
    catch(IOException e){
      e.printStackTrace(System.err);
    }
    return null;
  }
}

612:名前は開発中のものです。
06/12/03 03:16:48 fVWUDxZS
確か、Jar関連のプログラミングは、
ClassLoader#getResource
Thread#setContextClassLoader
辺りを使えば大体何とかなったな

613:名前は開発中のものです。
06/12/03 12:38:36 YF8PnGLn
>>611のコードが間違っているが見なかったことにする

614:名前は開発中のものです。
06/12/03 12:49:00 SWYB2VRJ
>>610
楽しんで作ってるうちが一番だと思うよ
だからアプリケーションでのみだが問題ない

仕事で作るとなるとそれはそれは・・・

とりあえずこのスレを1から読んでみることをオススメする

615:名前は開発中のものです。
06/12/03 21:46:13 7tbgDbUF
>>614
斜め読みですがこのスレを一通り見てみました。(^^)
私がコーディングしていて通ったような悩みを他の人も
遭遇していたりして、もっと早くこのスレに来ていればなぁと
思いました。

本職はWin,LinuxのC++/Asm系なので、この言語の高級感
(というかライブラリの充実度)は萌えだったのですが、
仕事となると色々と知らないといけないガイドラインが多そうで
大変なんだろうなぁとシミジミです。

616:名前は開発中のものです。
06/12/03 21:55:02 /gdh39Xl
前スレのほうが中身はあったようなきがしたけどまぁ出来上がってるから関係ないね
あとは音楽でもはいっていれば十分かと

できればジョイパッド対応ってところだけどJNIはいるからめんどくせーかな
まぁC本職なら十分楽だろうけど

Javaはネット周りが楽なのでネトゲの鯖から採用され始めてきて最近はクライアントにもきてるみたい
ネトゲは運用がはいるからパッケージと違って保守性って大事だからね

617:名前は開発中のものです。
06/12/03 22:29:48 7tbgDbUF
>>616
>あとは音楽でもはいっていれば十分かと
そうなんですよねぇ… ちょっとMIDIで作ったのですが、
プログラムや絵よりも難産で当分無理かなぁという状況です。
(外部ファイルで設定できるとはいえ、開発者の作曲のスキルが…orz)

>できればジョイパッド対応(ry
最初Windows上にcygwin入れて、JNIをサンプルで作ってみて、
エントリポイント関数ができたので、さて作ってみるかと思ったのですが、
その直後「JoyToKey」という素晴らしいソフトを見つけてしまったので、
作成意欲がゼロになりました。
(私は"PCで遊ぶゲームはキーボード"で育ったので、自作ゲームは
キーボードでクリアする方が簡単となってしまい、この辺があんま考慮
されてなかったりします。m(_ _)m)

昔、日経Linuxとかで携帯ゲーム開発のコストの記事かなんかを
みたことあるのですが、技術者のスキルに比べて開発費用が激安で
回収が厳しいとか書いてありました。Javaで簡単に作れる時代になった
とはいえ、これで保守/運用とかあると厳しいんだろうなぁと感じました。

618:名前は開発中のものです。
06/12/04 00:23:03 TAJliEjW
キーボードでもいいんだけど、同時入力が出来ない場合が多いからね
しかもこのキーとこのキーが同時に入力できないってのはキーボードによって違う
アクション系では致命的

619:名前は開発中のものです。
06/12/04 00:50:11 rOxIjnLZ
>>618
>キーボードでもいいんだけど、同時入力が出来ない場合が多いからね
>しかもこのキーとこのキーが同時に入力できないってのはキーボードによって違う
φ(.. )メモメモ
これって、キーボード的(ハードウェア的)にですか?
OSのキーボードデバイスドライバ的ですか?('=,VMのイベント的ですか?)
(恐らく後者とは思っていますが...)

自作のゲームはサンプルなので、左右とジャンプしか行わないためか、
幾つかのPCでキーボードプレーしても、このような感覚に出会った事が
なかったです。

とても勉強になります。

620:名前は開発中のものです。
06/12/04 02:19:17 oYP8msvX
URLリンク(ja.wikipedia.org)

621:名前は開発中のものです。
06/12/04 03:05:27 rOxIjnLZ
あー、ハードウェア的でしたか…(^^;
JoyToKeyのようなソフトウェアはキーイベントをOSに発行するから、
こーいう問題はないのかもなぁ…

622:520
06/12/04 04:42:32 8QL/yjCh
キーボードのタイプにもよるだろうけど左上+スペースが反応しないね。


623:名前は開発中のものです。
06/12/04 04:43:21 8QL/yjCh
そしてミス、漏れはこのスレの520じゃない

624:名前は開発中のものです。
06/12/13 12:04:19 nFrd+DMR
JavaSE6がでたが、単純に高速化してるなー

625:名前は開発中のものです。
06/12/13 16:07:46 tbX8caYj
ニューラルネットワークの学習に使ってるけど
同じことさせて11.701sec→9.815secで速くなってた。
処理の内容はほとんどが浮動小数点演算だけどGUI周りはどうなんだろ?


626:名前は開発中のものです。
06/12/13 19:05:49 nFrd+DMR
GUIもはやいっぽい。
特に今までアクセラレーションがなかったWindows以外の環境でもアクセラレーションきくようになったのは大きいかと。

627:名前は開発中のものです。
06/12/14 08:23:31 U6gTfVOR
windowsだけど1600x1200のタイル描画で普通に60fpsがだせるようになった
5.0で同じことやっても10fpsいかなかったし、
6.0はjavaゲームの本当のスタート地点になるかも

628:名前は開発中のものです。
06/12/15 18:08:34 Ihq+GcpE
まじか
じゃあ俺もこれからアプレットのゲームつくってみよ

629:名前は開発中のものです。
06/12/15 23:17:44 e9fBCpQh
デスクトップ環境の強化ってどういう意味?
Javaアプリケーションが高速ってこと?

630:名前は開発中のものです。
06/12/16 16:06:00 p9tzPmLY
>>627
2Dの事?
今までが遅すぎただけ。アルファブレンド固定なせいもあるけど
しかし、今頃になってようやくって感じだな。

ロジックの速度も上がってるけど、コレクションクラス群はどう?
JavaがC++で劣るのはGCのみ、と言ってる人がいるけど
ロジックのコアとなるCollectionAPIの遅さを考慮してないから話にならん。
STLは、ヘボ設計だけど速度はあるからそれだけ実用に足りるがね。

631:名前は開発中のものです。
06/12/17 00:02:03 SYIGKUNN
>>627が何の描画で早くなったのか知りたいな

今回JREにServerVMが付属してないからJDKのJREほうでやってみたら
ServerVMのほうがコンパイルに時間がかかってかくかくになるくせに
ClientVMと同じ性能しか出てない

これはClientVMがServerVMにスループットでも追いついたということか


632:名前は開発中のものです。
06/12/17 14:55:12 iXhkS4tF
へーマジか

633:名前は開発中のものです。
06/12/17 15:17:19 hjNOU8u3
新しいJava2DレンダリングエンジンとJOGLの統合
URLリンク(journal.mycom.co.jp)
URLリンク(weblogs.java.net)

とか

ClientVMのレジスタ割り当てアルゴリズムが変更された
URLリンク(weblogs.java.net)

あたりが影響している感じ

634:628
06/12/17 15:47:07 EcLAzrob
速さがよく分からなかった。
パソコン買い替えるか・・・

635:名前は開発中のものです。
06/12/17 20:16:45 +LUNIpol
流れ読まずに質問するが、vjpってどう扱えば良いのだろうか?
さっきS!アプリの開発環境を落として来て動作テストを行なおうとしたら、jadを直接読み込めないんだよ。
焦ったぜ……
このテストさえクリアすればようやく公開だってのに……

636:名前は開発中のものです。
06/12/17 20:23:17 +LUNIpol
おお、ありがとう。
そうか、疑似端末でインストールして動かすのか……
盲点だったぜ。

637:名前は開発中のものです。
06/12/17 20:58:57 Lz0Pt1eB
これはどういう流れなのだ・・・

638:名前は開発中のものです。
06/12/17 22:19:40 zMoxVD1I
俺も新型エミュにはあれ? と思ったよ
何しろexeだったし…
つーかバッドバージョンインフォメーションてなんだよ。1.5だからか?

639:名前は開発中のものです。
06/12/17 23:17:36 +LUNIpol
>>673
ん? 君には見えないのか。
アドバイスをくれたあの人が……

いや、どうやら俺にだけ見えるらしい……忘れてくれ……


ところで、初心に帰ってゲーム制作を1から学び直せるサイトってどこかないだろうか。
出来たものが何故かバグだらけで非常にむかついたんだ。
自分でもぐぐって探してみたんだが、どうにもPC用講座ばかり引っ掛かる……
というかサウンドノベルでバグ出す自分って一体……orz

640:名前は開発中のものです。
06/12/17 23:52:05 +BHAw/PJ
Developing Games in Java
URLリンク(www.amazon.co.jp)

641:名前は開発中のものです。
06/12/17 23:59:57 Lz0Pt1eB
>>639
最初から大掛かりなの作ろうとしてないか?

昔のBASIC時代と同じく手軽に作れる小粒のアクション系つくってみたら?

642:名前は開発中のものです。
06/12/27 23:40:47 L0eM1Y3J
>>567
[Action game start] (Start time:略)
Game initializing...
MIDI sequencer device open error...
Framework initialize failed. error(-5)

あら・・・動かない。

643:名前は開発中のものです。
06/12/28 00:49:15 0S10EeXq
>>642

こんばんわ、567の作者です。

初めてみる症状です…
JavaのMidiSystem.getSequencer()にて例外が起きているみたいです。
PCのサウンドシステムにMIDI環境は揃っているでしょうか…?

644:名前は開発中のものです。
06/12/29 00:25:15 9nXP6CjO
サウンドバンクはこのプログラムには入ってるの?
JDKはサウンドバンクの一番小さいやつははいってくるけど、JREには1.4以降はいってないはずだよ
それを読み込むプログラムはどうしてるの?

それがないとすれば動かないのが普通
一部環境(JDK入れた人)では動く、が正解

645:名前は開発中のものです。
06/12/29 02:30:52 0wIkKd8m
>>644

すみません。サウンドバンクという概念自体を理解してないでAPI使っています。(^^ゞ
なので、回答としては「恐らくプログラムには入っていない」ような気がします。

以前、インスコしたばかりのWindows 2000上にJRE5.0を入れて動いたのを
確認したことはあったのですが、もしもJRE1.4以降にそれが入っていないと、

 Sequencer midiSequencer = MidiSystem.getSequencer();
 midiSequencer.open();

みたいなことができないようであれば、JDKもついでにインスコしていた
のかもしれません。
(他の開発環境ではないマシンはネットカフェでJDKが入っていないと
思われるXPマシンで動かしたことがある程度です)

とりあえず642さんに動かして遊んでもらいたいところではあるので、
どうしたらよいもんやら...

646:名前は開発中のものです。
06/12/29 10:23:30 M9cmQJF8
>>645
JDK入ってても現象でてます。

647:名前は開発中のものです。
06/12/29 14:03:17 0wIkKd8m
>>646

こんにちわ。

う~ん。ちょっと環境の詳細が分からないとちょっと対応が難しそうですね。
(OS、サウンド環境、Java環境、etc...)
こちらで現象が確認できない(同一環境が揃わない)と、どうやって
対処して良いものか...

あと、他の方が作成したMIDIを鳴らすサンプルプログラムとかで、
発声するかとか知りたいところです。
それでも同じような例外が発生するようでればPC(Java)環境、
そうでなければ私のプログラムが問題ということになりますね。
(私がJavaの素人なので後者とは思いますが...)

なんか他の良いMIDIサンプルないですかねぇ。
(MidiSystem.getSequencer().open();してそうなやつ)

648:名前は開発中のものです。
06/12/29 14:26:02 M9cmQJF8
>>647
実行したら死んだ。
Sequencer midiSequencer = MidiSystem.getSequencer();
midiSequencer.open();

javax.sound.midi.MidiUnavailableException: MIDI OUT transmitter not available
at com.sun.media.sound.AbstractMidiDevice.createTransmitter(Unknown Source)
at com.sun.media.sound.AbstractMidiDevice.getTransmitter(Unknown Source)
at javax.sound.midi.MidiSystem.getSequencer(Unknown Source)
at javax.sound.midi.MidiSystem.getSequencer(Unknown Source)
at midi.MidiTest.<init>(MidiTest.java:21)
at midi.MidiTest.main(MidiTest.java:14)

諦めます。

649:名前は開発中のものです。
06/12/29 15:15:29 aT7rJMam
とりあえず僕がBGMの再生用に使ってるクラスはこんな感じ。
URLリンク(www.vipper.org)
BGMBundleにシーケンス一式溜め込んでおいてランダムに再生するだけの物です。
手元にWindowsとLinuxの両方の環境あるけどどっちでも動いてます。


650:648
06/12/29 15:59:11 M9cmQJF8
>>649
やっぱり
this.sequencer = MidiSystem.getSequencer();
の部分で死ぬ

どうやら俺の環境に問題があるらしい。
何かにデバイス横取りされてるのかな。
Java Media Framework関係は普通に鳴ってる・・・。

651:648
06/12/29 18:23:49 M9cmQJF8
AudioClip play()も問題なし・・・。
こんな現象もあるんだ~と感心。
今後の参考にします。

652:名前は開発中のものです。
06/12/29 18:41:28 0wIkKd8m
>>648

オアー。環境スか...(´д`;
そのうち環境が整ったらプレーしてみてください。m(_ _)m
(ステージも結構あるので、80'sのアクションゲーム好きでしたら
楽しめると思います)

でわ。

653:名前は開発中のものです。
06/12/29 20:26:04 aT7rJMam
URLリンク(bugs.sun.com)
これかな?
Evaluationの部分を適当に訳してみる:
>指定されたサウンドカード(SoundMAX Digital Audio)はハードウェアMIDIポートを持っていないので
>Javaのソフトウェアシンセサイザーを使うことになります。
>標準ではJavaSE JREはソフトウェアシンセサイザーのサウンドバンクをインストールしませんが、
>しかしサウンドバンクが利用可能でなければシーケンサはソフトウェアシンセを使用しません。
>このためシーケンサは使用可能なアウトプットデバイスを見つけることが出来ないので失敗します。
>したがって新しいJavaSoundDemoのためにRFEの写しとしてCRを閉じて、
>それらのケースを詳細に取り扱うべきです。

最後の一文がよくわからんかったけど
JRE普通にインストールしただけじゃ
Java付属のサウンドバンクが入らないから入れろってことだね。
ただWindows側でソフトウェアシンセって持ってなかったっけ?


654:名前は開発中のものです。
06/12/29 23:56:59 J80FO9qV
>>648
がうごかないっていうのはライブラリの問題だと思う
マルチコアだと動かないとかよくあるから環境を書いたほうがいいと思う

655:名前は開発中のものです。
06/12/30 10:34:14 HoTiFon7
マザー:gigabyte GA-965P-DS3
CPU:intel Pentium D 930 BOX(一個)
サウンド:オンキヨー SE-90PCI
OS:Win2000SP4
JDK:JDK5、JDK6(どっちもダメだった)

関連性があると思われるインストール済みソフトウェア
Audio Deck
JMF1.2

MIDIはWindowsMediaPlayerに関連付けられている状態

656:名前は開発中のものです。
06/12/31 10:14:46 1VGXvsjp
お前らのゲーム音源はMIDIですか、それともAUですか。

657:名前は開発中のものです。
06/12/31 21:54:30 p+8prPoH
BGMはMIDI、効果音はau使ってます。

658:名前は開発中のものです。
07/01/01 02:10:42 6EV+wqWa
BGMはOggVorbis、効果音はWAV
これデフォでしょ

659:名前は開発中のものです。
07/01/01 02:43:23 moAKmPyK
>>655

JMFのコンフリクト
URLリンク(forum.java.sun.com)

sound.jar(またはjmf.jarも)を
lib\extから(またはclasspathからも)除外。

660:名前は開発中のものです。
07/01/04 22:53:24 KxRY1/gx
サウンドバンクを配布するってのもだるいな・・・。
配布する際は使ってるライブラリも含める?
それともインストールを促す?

含めると、そんなライブラリ持ってるわい!って言う人いるだろうな。
かといって含めずに「動かないんですけど」って問い合わせが来ると対応が大変だし。
なんか良い方法ないかな。

661:名前は開発中のものです。
07/01/04 23:04:33 CqSR8cXM
散々注意書きする

662:名前は開発中のものです。
07/01/05 00:53:20 CKZiJJtc
アプレットなら普通にHTTP経由でダウンロードすればいいだけでは?
アプリなら適当にファイル同梱すればいいし

別にJREにはいってる必要はない


663:名前は開発中のものです。
07/01/05 09:23:58 EoheASy3
>>662
その「適当にファイル同梱」の事を言ってるんジャマイカ。

664:名前は開発中のものです。
07/01/05 12:02:21 CgA1l96c
>>663
再配布可能物なんだから問題ないだろ?
それが問題になるなら画像やサウンドファイルなど他のリソースも問題になるってことだぜ?

665:名前は開発中のものです。
07/01/06 10:57:57 51STjwfV
色々な視覚効果を試行錯誤中なんだが
いい感じのエフェクトはないかね?

URLリンク(www.durius.com)
URLリンク(hp.vector.co.jp)

666:名前は開発中のものです。
07/01/06 15:14:07 r24lOWtw
エフェクトに対してJavaと何の関係があるのかと
それにゲームによって使い方違うだろ

667:名前は開発中のものです。
07/01/06 18:29:48 nMuYdedC
自分も視覚効果について考えていたけど処理速度の都合上
あんまり無茶するとフレームレートががた落ちになるのがネックだね。
sun.java2d.openglやsun.java2d.d3dのオプションで
OpenGLやD3Dのアクセラレーションが効くのはいいけど
環境や処理によってアクセラレーションが
効いたり効かなかったりするからあんまし過信できないかな。
というかアクセラレーションが効かないだけならいいけど、
D3Dだと拡大縮小が以上に時間かかるバグがあったり、
OpenGLだと色が化けたりでまだ実用には少々難ありっぽい。
(どちらも本家のバグレポートにあった)

とりあえずDirect3D向けの視覚効果テクニックから
軽そうなのだけをJavaに引っ張る予定。

668:名前は開発中のものです。
07/01/06 23:14:26 CAKGleIT
OpenGLによるJava2Dアクセラレーション期待していたらぜんぜん話にならなかった(DirectDrawのほうがまし)から
JOGL使ってOpenGLそのまま使うのが今は一番現実的かな

669:名前は開発中のものです。
07/01/06 23:36:13 cnJipY2O
URLリンク(www.balmunc.jp)

MMORPGをJavaで作るそうです。
説明によるとサーバーもクライアントもJavaみたいです。
どこまでいけるのやら?

670:名前は開発中のものです。
07/01/07 00:06:10 NntNHMAa
>>669
ブラウザ上で動くオンラインゲームってのは面白そうだな。
Javaのメリットも生かせそうだし、何より金の臭いがプンプンするぜー!!

671:名前は開発中のものです。
07/01/07 11:19:46 6B2D6r/d
ホームページビルダーですか(笑)

アドレス見て.hackを思いだした

672:名前は開発中のものです。
07/01/09 03:31:44 EAQZbwWj
javaじゃ無いけど、SecondLifeのクライアントソースがオープンソースになった
URLリンク(secondlife.com)

673:名前は開発中のものです。
07/01/09 21:58:25 HlHNM13x
>>669
オモシロそうだね。

しかし、いまどき手作りサイトはきつくないか?
せめてCMSを使ってほしい。
xoops, joomla, pukiwikiあたり。




674:名前は開発中のものです。
07/01/10 10:31:16 1y6WyCtf
FrameとSwingの違いってなんです?

675:名前は開発中のものです。
07/01/10 13:02:27 CY2D89Rv
AWTはFrameやDialog等を含む
SwingはJFrameやJDialog等を含む

つまり比べている単位が違う


676:名前は開発中のものです。
07/01/10 16:06:33 CUOEf+p3
XOOPSはバグだらけだしコミュ荒れまくりだしトラブル起きまくりだし半分死んでる

677:名前は開発中のものです。
07/01/10 19:51:15 1y6WyCtf
>>675
ありがとうございます

678:名前は開発中のものです。
07/01/10 20:45:36 oWjZFBCd
>>673
ネットゲームを作ってるけどユーザー登録と認証のデータベースを
一々作らなくてもXOOPSとかのに便乗してしまえばいいことに気がついたよ。
でもXOOPSは荒れてるのか、残念。


679:名前は開発中のものです。
07/01/10 23:47:17 ssMCF7LR
>>669
試みは面白いけど
ブラウザMMOである必要があるかってのが不明だし
見た感じ完全な素人ぽいし、何をやりたいかってのがわからないから微妙だな

680:名前は開発中のものです。
07/01/11 00:27:37 mphLe0zy
>>679
Javaだからブラウザとは限らないと思う。
むしろブラウザでアプレットでも動いて、
WebStartやJavaアプリケーションだったら
他の機能も使えるとかだったら面白いと思う。
ただ募集で人を募ってるにしてはちと情報が足りないよねぇ。


681:名前は開発中のものです。
07/01/11 00:56:40 NgTbegp6
>>669
どこかでみたなって思ってたら BOTNEWSの人のサイトじゃん。

682:名前は開発中のものです。
07/01/11 08:07:23 S2vx2eJV
ラグナロクw

683:名前は開発中のものです。
07/01/11 14:53:51 Yd1G/kpu
.hackを思い出すようなURLだな

684:名前は開発中のものです。
07/01/11 21:55:18 5qUJXaj7
皆様こんばんは。JAVA初心者です。
JAVAゲームを作りたいのですが、どこかのサイトでフロッピーに一括DLできるようなところはありませんでしょうか?
プログラムはもう出来ていて、あとは入力すれば出来るような簡単なゲームで良いんです(テトリスなど)。
皆様ご存知でしたら大変申し訳ないんですが教えてくれませんでしょうか…?

685:名前は開発中のものです。
07/01/11 22:02:28 +EVEwFD/
申し訳ありませんが意味が分かりません。もう少し易しい日本語で書いてください。

686:名前は開発中のものです。
07/01/11 22:29:11 XoWa/QNu
ここ
URLリンク(javagame.main.jp)

687:名前は開発中のものです。
07/01/12 03:00:48 STRKeNbN
そのサイトすごくいいんだけど
もちっと泥臭いJavaに限った情報を集めたサイトが欲しいなー


688:名前は開発中のものです。
07/01/12 05:51:25 h6iNVB6D
どの程度Javaを理解してるかにもよるな。
とりあえずお前さんが書いたソースをどっかにあげてくれ。

689:名前は開発中のものです。
07/01/12 18:19:58 +JdArOF0
Imageのサイズを取得することが出来ないんですが何故でしょうか
image.getWidth(this);でいけますよね?-1が返るんですけど

690:名前は開発中のものです。
07/01/12 19:13:52 k6cliGBg
>>689
Javadocより
> abstract クラス Image は、グラフィカルイメージを表現する
> すべてのクラスのスーパークラスです。
> イメージは、必ずプラットフォーム固有の方法で取得してください。
ベクトルイメージとかもひっくるめてのスーパークラスだから
ピクセルの概念をImageは持ってない。
BufferedImageとVolatileImageはピクセルベースのイメージで
サイズの概念を持ってるからサイズの取得ができるよ。


691:名前は開発中のものです。
07/01/12 20:07:18 STRKeNbN
>>688
ソースは公開してるけど、ここに紹介すれば
そんなサイトを君が作ってくれるの?


692:名前は開発中のものです。
07/01/12 20:32:46 h6iNVB6D
別に作ってもいいよ。
で、どこで公開してるの?

693:名前は開発中のものです。
07/01/12 22:41:44 hpZMXN0I
>>669
おもったんだけど、この理屈で言うんだったら、
ネトゲーのクライアントはアプレットでつくるより
Flex(ActionScript)で作ったほうがよくないか?
開発環境無料だし。

JREをインストールさせるより90%以上普及している
Flash使ったほうがよいかと。
(サーバサイドはJAVAでいいと思うが)

てかそういうゲーム誰か知らない?


694:名前は開発中のものです。
07/01/12 22:46:22 k6cliGBg
>>693
JREをインストールさせることが面倒なのは同意だが、
サーバーとクライアントで別々の環境にすると
今度は通信プロトコルの統一が面倒なのよねぇ。


695:名前は開発中のものです。
07/01/12 22:51:00 STRKeNbN
>>692
実名でやってるから2chに晒すつもりはない

とりあえずGraphics2Dの最適な描画について
まとめたドキュメントが日本語で読みたい
この方法は高速で、この方法は低速ですというのを
使ってるJDKのバージョンに合わせて知る方法があればすごく助かると思う

例えば画像の描画だけの場合でも描画面積のみ考えればいいのか、
そこでImageの描画回数はどのくらい影響するのかとか
src->dest間の色深度の違いでどのくらい影響があるのかとか
そういうのは試してみないとわからんし
結局は個人の常識とかノウハウに埋もれてたりする
みんながみんなの開発日記やソースを読める訳でもないから勿体無い

696:名前は開発中のものです。
07/01/12 23:55:12 4K5O+ZTo
>>693
Flashで作る場合、試行錯誤で作り上げていくの難しいからまずはJavaででも問題はないと思う
それにほとんどのMMOhaアプリケーションセットアップ型だし、ランタイムのみってのはメリットはあるだろう
WebStartつかえば差分パッチとか入れることも出来るし、キャッシュさせることも出来る

UDPTCP直接バリバリつかうようなアプリだとFlashきつくね?
HTTPだけ使うようなのならいいと思うが、ターゲット考えれば暗号化とかのいたちごっこ打破も目的に入ってると思うし

697:名前は開発中のものです。
07/01/13 00:04:09 wpmqZDm6
てか、2ch閉鎖すんのか。。。


698:名前は開発中のものです。
07/01/13 01:06:04 En3FXRLQ
>>695
そういうのはいいだしっぺがやるもんだと思うぞ。
自分のノウハウをまとめたサイトをどこかで立ち上げて、その後、皆に協力を依頼するなりしてみたら?
いくらなんでも自分は何もせず、他人に頼りきりってのは虫が良すぎだろう。
こんなのが欲しい、あんなのが欲しいと言ってるだけではどうにもならないんじゃ無いかな。
まず自分が動こうぜ。

699:名前は開発中のものです。
07/01/13 01:21:57 dd/POorY
Java2Dの場合まずアクセラレーションがきくかきかないかの判断が最重要
いまだとJOGLでアクセラレーション前提のほうがよさげ

700:名前は開発中のものです。
07/01/13 01:58:25 2t7E5/JS
>>698
そういうのを言いだしっぺ厨って言うんだよ

顔が見えないからといって人をクレクレ厨呼ばわりするような君の為には
javadocもドキュメントもフレームワークも永遠に書かないと心に決めた

というか実際そういう需要ってあんの?

701:名前は開発中のものです。
07/01/13 02:40:35 En3FXRLQ
だってお前、何もしてないじゃん。
まとめサイトが欲しいって言ってるだけじゃん。
欲しいものがあるのに何故自分から行動を起こさない?
まず何か行動を起こそうぜ。

俺の為に書くんじゃないよ。
自分の為、みんなの為に書くんだよ。
自分が培ってきたノウハウを他人に見せるってのはそういう事。
ここの連中、お前の質問に答えてくれてたよな。
俺じゃ無く、そいつらの為に書く気は無いか?
それとも最初から自分のノウハウをまとめたサイトなんぞ作る気は無くて、何かと言い訳して逃げたいだけか?

サイトを作るか?それとも作らないのか?どっちだ?

702:名前は開発中のものです。
07/01/13 02:42:11 Xgompw9t
むしろ閉鎖しようかと…

703:名前は開発中のものです。
07/01/13 02:46:35 En3FXRLQ
>>702
実際にサイトを運営してるのか?
よければ詳しく事情を聞きたいんだが。

704:名前は開発中のものです。
07/01/13 02:49:01 2t7E5/JS
>>701
なんか自己啓発セミナーみたいだぞ
もうちょっとトーンダウンしろよ

705:名前は開発中のものです。
07/01/13 02:51:13 En3FXRLQ
>>704
で?
結局、サイトを作るのか?それとも作らないのか?どっちなんだ?

706:名前は開発中のものです。
07/01/13 02:59:43 2t7E5/JS
寄稿するくらいならできるけどサイト運営まで手を回すつもりはないな
自分は自分でやってる事沢山あるし
でも例えば gamedev.org の Java コーナーにみんな書く気があったら
自分も何かしら書きたいけどね
ただ重要なのはそういう雰囲気であって、やる気だけで上手くいく問題とは思わないよ

707:名前は開発中のものです。
07/01/13 03:22:10 2t7E5/JS
あーJavaでゲーム作りますがってあんま見てなかったけど
そういうサイトになってたのね。てっきり個人サイトかと思ってた
じゃあ何か書けるよう準備しとくよ

708:名前は開発中のものです。
07/01/13 04:25:06 En3FXRLQ
書くのか。そうか頑張れ。

>重要なのはそういう雰囲気であって、やる気だけで上手くいく問題とは思わないよ
これは同意。やる気だけでは上手くいかない。
でもその雰囲気ってのは待ってたら自然発生するのか?
するかもしれんが、それまでずっと待つのか?
そういう雰囲気になるよう自分で行動したほうが早いと俺は思うね。

709:名前は開発中のものです。
07/01/13 08:27:49 ChZPL/q1
このスレは伸びる!!

710:名前は開発中のものです。
07/01/13 12:59:31 ISA4z7mo
>>707
あそこは個人サイトっぽい
Wikiだけどページ凍結されてるから他の人は更新できないし

711:名前は開発中のものです。
07/01/13 17:39:42 2t7E5/JS
>>708
日本で恐しくマイナーな言語のwiki立ちあげた事あったけど
利用者が一人もいなかったのでやめた事あんだよ
どんなプロジェクトでも需要の母数がなければ本人のやる気とともに消滅する
やる意味が薄いと思ったらやらないで他の事をやるだけ

>>710
よく読んだらそうだったすまん
でやっぱgamedev.orgかなと思ったらgamdev.orgなのか


712:名前は開発中のものです。
07/01/13 20:16:38 VT89Y6hX
gamdev.orzに見えた漏れはどうすればよいでしょうか?

713:名前は開発中のものです。
07/01/13 21:09:30 Q4fcHXOQ
>>712
人並みに凹んだら良いと思うよ

714:名前は開発中のものです。
07/01/13 23:51:18 VjT/WPc+
Javaで作ったゲームってどうやって公開すればいいんですか?
クラスファイルを配布しても直接実行できないですよね?

715:名前は開発中のものです。
07/01/14 00:35:21 pYfYvHXx
ランタイムが入っていればダブルクリックで実行できるようにしておくといいんじゃないの?
細かい設定がほしいならバッチファイルとかexe作るとかもあるけど

716:名前は開発中のものです。
07/01/14 01:36:37 W7oRzD5W
>>714
アプレット or WebStart or Jarにする。


717:名前は開発中のものです。
07/01/14 04:14:21 sLzS5csA
>>714
とりあえずココ
自己実行型JARファイル
URLリンク(javagame.main.jp)

718:名前は開発中のものです。
07/01/14 13:53:59 cRcMzltB
>>715- 717
Jarなんていいものがあったのか
ありがとうございます

719:名前は開発中のものです。
07/01/14 14:57:42 xwM7+CqC
なるほど
そういうことね

メインクラス指定してするだけでおけ
ライブラリを使うのであればその指定もしておくといい

NetBeansだと自動的にライブラリへのパス設定とかその辺全部やってくれるよ

720:名前は開発中のものです。
07/01/14 15:33:08 GWjU6DST
NetBeansいいよねEclipseよりスッキリしてるし
移行できない理由があってすごく悔しい



で、とりあえず今小さな描画テストのフレームワークを作ってるんだけど
スコア算出って基本的には

スコアA = fps値
スコアB = fpsの実測値 / 設定された目標のfps
スコアC = 指定秒内に描画した回数

くらいでいいのかな

721:名前は開発中のものです。
07/01/14 15:53:41 xwM7+CqC
設定値と実測値だけでいいとおもわれ

722:名前は開発中のものです。
07/01/15 14:26:02 oOqpuHvf
Java WebStartを使うにはサーバーやサーバー側でダウンロード受付対応するプログラム
を用意しないといけないんでしょうか?

723:名前は開発中のものです。
07/01/15 16:58:49 /py25nqC
差分ダウンロード使わないのならアプリのjarとjnlpファイルを配置して
mime指定するだけでおけ

724:名前は開発中のものです。
07/01/15 18:10:46 JsWTQE8V
>>722
とりあえず本家の文章
URLリンク(sdc.sun.co.jp)
URLリンク(java.sun.com)



725:名前は開発中のものです。
07/01/16 20:40:33 +dkH4MDj
例の描画テストの件ですが、とりあえず最低限できたのでアップします

URLリンク(gamdev.org)

何か意見とかくれるとうれしいです
特にフレーム周りの初期化について
この辺で失敗してるとテスト環境と呼べなくなるので

>>721
レスサンクス。スコアはオプションにしました


726:名前は開発中のものです。
07/01/16 21:01:12 dN71f/93
OpenGL使ったほうがおおむね早いけど、描画が崩れるよね
これはバグとしてあがってたと思う
5.0のときはまったく使い物にならなかったけど、アクセラレーションは一応聞いているようだ
ただ、これとJOGL組み合わせるとフリーズしたりするのが癌だな

ところでエッチな画像がはいってるといわないと周りの目がある家庭だと大変なことになるぞ

フルスクリーン切り替えが多いのであんまり切り替えないようにしたほうがいいかな
あとウインドウモード時にウインドウサイズを変更できないほうがいいか

727:名前は開発中のものです。
07/01/16 22:32:01 B9km73hg
OpenGLやD3Dのアクセラレーションは効果は大きいね。
だけどOpenGLは環境によって色化けしたし、
D3Dはsun.java2d.ddscaletoとsun.java2d.translaccelと同時に使わないと
逆に速度が落ちる上のに、
WebStartではd3dしか使えないという訳のわからない仕様なのよねぇ。


728:名前は開発中のものです。
07/01/16 22:32:51 I2Iys4yO
>>725
こういうエラーがでるけど何これ?
こちらの環境はver.1.5です、1.6でないとだめ?

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version n
umber in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)


729:名前は開発中のものです。
07/01/16 22:35:50 +dkH4MDj
>>727
OpenGLで描画が乱れるというのは気付きませんでした。ビデオカードによるのかな…
jogl との組合せは考えてなかったですがちょっと試してみます
でも jogl はデモしか触った事ないんで時間がかかりそうかも
あのエッチ画像はフリー画像で真っ先に思いついただけなんで変えときます。やっぱダメかな
フルスクリーン/ウィンドウモードは了解です


>>728
多分JRE 1.6 じゃないからだと思います…
注意書き忘れてました


レポありがとうございました


730:名前は開発中のものです。
07/01/16 22:45:50 +dkH4MDj
>>727
その辺は本当に悩みどころです…
VM 起動オプションによる描画法の設定もテスト側には面倒なんで
まとめて試す方法を考えときます


731:名前は開発中のものです。
07/01/18 20:03:05 cuqRge9/
>>669
いっぱい文章が書いてあるにも関わらず、何をしたいのかさっぱり分からない(´・ω・`)

732:名前は開発中のものです。
07/01/19 19:41:29 zUXwDm/l
>>725
1.5だとコンパイルすら通らん~

733:名前は開発中のものです。
07/01/19 19:54:37 vmLWqdf7
Javaでトゥーンレンダリングのサンプルってあるか?

734:名前は開発中のものです。
07/01/19 20:01:43 jvhMK1qT
つーかOpenGlスレいったほうがいいぞ

735:名前は開発中のものです。
07/01/19 23:14:22 MHBKmwAD
>>733
URLリンク(homepage1.nifty.com)

その他参考になるサイト
URLリンク(homepage1.nifty.com)
URLリンク(www012.upp.so-net.ne.jp)
URLリンク(nis-lab.is.s.u-tokyo.ac.jp)
URLリンク(chiyo.sfc.keio.ac.jp)
URLリンク(www.asahi-net.or.jp)
URLリンク(www.imel1.kuis.kyoto-u.ac.jp)
URLリンク(www.interq.or.jp)
URLリンク(fabrice.bellard.free.fr)

OpenGLを使うのなら、NeheかOpenGLスレへ

736:名前は開発中のものです。
07/01/20 05:56:04 miZanmCM
質の高いサイトだな


737:名前は開発中のものです。
07/01/20 11:08:59 1LaVUZaW
良スレ認定

738:名前は開発中のものです。
07/01/24 18:19:41 abB7yEBV
設計の段階で悩んでいます。
具体的には、プレイヤークラス と 職業、職業毎のスキルの関係について悩んでいます。
戦士→剣士→騎士 のように転職可能なシステムを作りたいのですが、
騎士になっても戦士のスキルを使う事が可能というシステムにする場合、
スキルもオブジェクトとして持たせるべきなのでしょうか?

プレイヤーオブジェクトに 職業オブジェクトを持たせる
その職業オブジェクトが持っているスキルリストの中から習得したものを
名前を引数としてFactoryパターンのクラスに渡しスキルオブジェクトを作成
という形を取ろうと思うのですが、この形は非効率的だったり美しくなかったりしますか?
動くには動くのですが、確信が持てません
詳しい方が居ましたらご教授お願いします 説明分かりづらいですかね?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch