1 名前:名前は開発中のものです。 [2005/10/27(木) 09:43:50 ID:dzSvRQXE] Javaでのゲーム作成について情報交換をするスレです。 ゲーム作成以外の話題はム板(pc8.2ch.net/tech/ )、 他言語に関する話題は他スレでお願いします。 前スレ JAVAでゲーム作成 pc8.2ch.net/test/read.cgi/gamedev/1074347252/ テンプレは>>1->>10 あたりを参照
542 名前:名前は開発中のものです。 mailto:sage [2006/11/20(月) 01:42:07 ID:HqvpBzdY] >>540 シミュレーションが、物理シミュレーションかシミュレーションゲームか不明 GUIプログラミングは簡単なので立ち読みか普通のサイト見れば良いのでは www.javadrive.jp/ www.hellohiro.com/
543 名前:名前は開発中のものです。 mailto:sage [2006/11/20(月) 15:21:51 ID:107nEDGg] >>541 Javaのプログラムってのはアプレットだけじゃないよ。 通常のアプリケーション等もあるし、一度ダウンロードしたらアプレットはキャッシュからとってくることも出来るし WebStartはバージョン等が変わってなければすべてキャッシュファイルからとってくる。 そもそもC等で作ったアプリだって同じだぞ。ネット経由でダウンロードするように作ってあるなら。 バックグラウンドスレッドでガンガン落としていけばあまり問題はなさそうだが。
544 名前:名前は開発中のものです。 [2006/11/26(日) 21:31:48 ID:vp/Awfnk] 話題が無いがage 無限にステージが生成されるマリオっぽいゲーム「Infinite Mario Bros」 gigazine.net/index.php?/news/comments/20061126_infinite_mario/
545 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 23:34:43 ID:o/jL46vw] >>544 Wurm Online の中の人が製作しているみたい? ソース付きだし勉強になりそうだ。
546 名前:名前は開発中のものです。 [2006/11/27(月) 18:13:24 ID:QR83lXnt] VolatileImageとMemoryImageSourceって一緒に使えますか?
547 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 18:15:01 ID:IAG3BIQ8] 使えるけど、後者は使う意味ないぞ 1.1時代の互換性のためだけの遺産だから
548 名前:名前は開発中のものです。 [2006/11/27(月) 18:52:38 ID:QR83lXnt] 詳しく教えてください VolatileImageでピクセル操作とかできますか?
549 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 21:03:56 ID:OAwnVtrw] VolatileImageは画面モードにも夜がVRAMをさすと思っていい。 VRAM直書きはメインメモリ直書きに比べて非常に遅いので出来てもやらないほうがいいのは常識。 メモリ上のImageを扱うなら1.2以降はBufferedImageを使う。最初にピクセルフォーマットをきめて 配列で扱えること、出来上がった画像を何度もコピーする場合アクセラレーションが自動的に適用される。
550 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 21:56:18 ID:L4SNxotk] >>547 いや、実際にはMemoryImageSourceが一番素直な「フレームバッファ」 で使いやすい。BufferedImageは、メモリ上の配列と直接関連付けられ ないのが致命的(ピクセル列に見立てたint配列を操作すれば直ちに 対応するImageに反映されるという意味での「Buffered」でなければ、 Rasterなどという扱いにくい邪魔者が出てくるだけでまったく意味が ない。まだMemoryImageSourceの方がまし)。
551 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 23:13:58 ID:OAwnVtrw] ゲーム用途だとダイレクトにピクセルを扱う場合8bitか16bitにしないと速度的に問題が出るから BufferedImageでそういう指定するのが一番だと思うし、ピクセルフォーマット合わせる場合 GraphicsConfiguration使うだろ? 問題あるのか?short配列アクセスとか簡単に出来るから便利だと思うんだが。
552 名前:名前は開発中のものです。 mailto:sage [2006/11/28(火) 22:11:57 ID:WdzF4q7Z] >>544 それすごいな pure javaだけでここまでできるの?
553 名前:名前は開発中のものです。 mailto:sage [2006/11/28(火) 22:46:49 ID:jI1vxm7H] >>552 2Dなら余裕 あとは根気等 ただグラフィックなどあからさまなパクリはいかんね
554 名前:名前は開発中のものです。 mailto:sage [2006/11/28(火) 22:52:55 ID:dIaLfStB] >>552 署名なしで動くアプレットだから当然、pure javaです。 携帯で普通にドラクエが動いている世の中だからな。 出来るかどうかはプログラマの腕次第だと思うよ。
555 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 08:24:09 ID:SF7yfmPu] >>551 >問題あるのか?short配列アクセスとか簡単に出来るから便利だと思うんだが。 いや、だからその配列の内容は一度変換・コピーしないとImageとして表示できないんだよ。 自分でRGBを数値として処理する配列を取ると、一度それをMemoryImageSourcre/BufferedImageを介して変換しないと描画可能なImageが得られない。 そして、そうしたRGB配列のImage化には一発でできて余計な機能がないMemoryImageSourceの方が使いやすい。 Win32のDIB/DIBSectionのような機能(直接描画可能なフレームバッファを配列として取得できるImage)があれば楽だし、変換や不要な配列の二重確保が入らない分性能上も有利なはずなんだけどね。 BufferedImage(あるいは各種変換機能を削除して単純化したMemoryImageクラスでも新設して)でピクセル列の配列を直接公開してくれれば良いのだけど。 あと、int配列から作ったMemoryImageSourceで速度的な問題って感じたことないぞ。 Pen3+845GEのマシンで100以上のキャラクタ描いてもまったく問題にならなかった(100FPS以上)。
556 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 12:28:42 ID:E1GsFmbf] >>555 ラスター使うから同じじゃね?
557 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 13:28:43 ID:SF7yfmPu] >>556 ラスターは邪魔だよな……。 BufferedImageのような各種変換機能付きImageを作るなら、まず単純なフレームバッファ用意してその上位版という位置づけにして欲しかった。 BufferedImageも内部には直接画面に転送する32ビット配列(Win版は32ビットDIBSection+独自のアルファ処理?)持っているんだろうし。
558 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 13:56:50 ID:E1GsFmbf] ピクセルフォーマットが同じだとDDBで転送するだろうから速度は速いはず。 MemoryImageSourcreは任意のピクセルフォーマットで扱うとき大変じゃない?
559 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 16:21:44 ID:SF7yfmPu] >>558 いや、BufferedImageはWinではDIBSectionじゃないの。 一応「バッファ」もっているし、アルファ処理対応だから。 ラスター要求されたときのためにもメモリ上にフレームバッファが必要なはず。 そういえば、もう何年もWin32APIにしろJavaにしろフルカラー32ビットフレームバッファ(DIB/DIBSection/MemoryImageSource)の速度的な不満は感じたことないな。 ピクセル単位の処理はフルカラー32ビットで行うのが一番楽(1ピクセル1DWORD)だし描画時の性能も十分。
560 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 22:03:00 ID:r/0kDPlo] BITMASK指定でバッファ作ればDIBと思われる動作速度じゃないよ。
561 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 22:06:29 ID:r/0kDPlo] 32bit単位でのアクセスは非常に遅い。 IntelCore等最新のCPU使っていてもVGAクラスになると処理速度が間に合わない。 2次キャッシュのサイズ等を考慮してぎりぎりといったところか。 QVGAなら32bitカラーはぎりぎりいけるかな。 PentiumM1GHz/Pentium42GHzクラスのマシンを動作対象にしようとすると QVGA-16bppくらいしか選択肢はない。
562 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 17:09:31 ID:TUwNRJc1] >>559 そんな馬鹿な。2Dの画像転送速度で比較すると BitBlt(WinGDI) > TransparentBlt(WinGDI) > AlphaBlend(WinGDI) >> copyArea(Java2D) >> drawImage(Java2D) なのですが。確かに小さい画面サイズならそれだけ差はなくなるけど まともなゲームの画面サイズにすると、その遅さが浮き彫りに
563 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 17:14:30 ID:TUwNRJc1] >>559 失礼。フレームバッファの単語を読み飛ばしてました
564 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 18:04:42 ID:NwbsHHlf] Java2DアクセラレーションはDirectXも使っていたり複雑だけど 通常の矩形転送以外はアクセラレーションきかねぇんだよな しかも頻繁にGCがおきやがる JOGLアクセラレーションに期待 5.0だとDirect3Dモードはひどいし、OpenGLモードはもっとひどいし
565 名前:名前は開発中のものです。 mailto:sage [2006/12/01(金) 10:00:02 ID:A/U7d6+m] JAVAって画像ファイル形式にGIFしか使えないってマジですか?
566 名前:名前は開発中のものです。 mailto:sage [2006/12/01(金) 10:14:43 ID:LDltEBVY] マジではありません どんな画像ファイル形式でも使えますよ
567 名前:名前は開発中のものです。 [2006/12/01(金) 11:37:19 ID:LC+/aYM5] Java素人なのですがなんとなく作ってみました! 未だにアプレットの作り方すらよーわからんです。(^^ゞ ttp://perfect-logic.net/SampleAction/
568 名前:名前は開発中のものです。 mailto:sage [2006/12/01(金) 17:10:48 ID:IDdYaP0u] 結構作りこんでありますねぇ。 某ゲームを彷彿させて萌えましたw ところでシステムがアーケードっぽいのはなぜなんでしょう?
569 名前:名前は開発中のものです。 [2006/12/01(金) 17:16:25 ID:LC+/aYM5] 感想ありがとうございます〜。 アーケードっぽいのは私がアーケードゲーム好きだったので、なんとなくそれっぽくしただけなんです。(^^ゞ
570 名前:名前は開発中のものです。 mailto:sage [2006/12/01(金) 23:36:55 ID:o1acqxN9] >>567 ちょっ これで素人とは言わせないぞ どこのプロだ?
571 名前:名前は開発中のものです。 [2006/12/02(土) 00:01:56 ID:WxTjtQSm] >>570 こんばんわ。 ホントにJavaでものを作って公開するのは初めてですよ〜。 一度くらい仕事でJavaってみたいです。(^-^) ちなみにゲーム歴は結構長いです。インベーダー時代からやってます♪
572 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 05:50:16 ID:8WxMFuvR] 適当な推理だけど、 中堅ソフトメーカーの社員で、30代半ばから40台。 開発現場から管理職に昇進したものの、なんか以前より暇でムズムズしてる人。 最近のゲームは、はっきりいってぬるぽ杉て殺意すら覚えている。 乗り越える壁があってこそ面白いゲームと考えてる。 マーケティングにその事をこぼした際今時流行らないと一蹴され、このゲームを 作り始める直接のきっかけになった。 なんてね。
573 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 09:32:54 ID:wBc7JJHR] >>572 36〜40の割には顔文字やら音符やらずいぶん軽いな そんなもんなのかね
574 名前:名前は開発中のものです。 [2006/12/02(土) 10:03:44 ID:YSW2q7Ho] >>572 >乗り越える壁があってこそ面白いゲームと考えてる は当たっているかもしれません。 後は…ちょっと違うかな。(^^; 最近のゲームは普通にやりますし、プログラム技術も見てますよ〜。 (素晴らしいの一言です。とても一人では作れるわけ無いですね) このゲームを作ったきっかけは、昔ナムコの某塔を登るゲームの 二作目(ただ飛ぶだけのヤツ)にガッカリして、自分ならこう作る かなぁとずっと思ってて、Javaでなんかグラフィックをいじる ソフトを作ってみるかと思ったキッカケがあったときに それを実行移した感じですね。 年々仕事がハードになるので、息抜きに作った感じです。(^^;
575 名前:名前は開発中のものです。 [2006/12/02(土) 10:09:23 ID:OMk/eHpK] (^-^)とか(^-^)/とか(^-^)/~は30台でも使う人いるな
576 名前:名前は開発中のものです。 [2006/12/02(土) 10:37:29 ID:TVj7JnE/] >>567 URL見てスルーしてたが結構凄いじゃん
577 名前:名前は開発中のものです。 [2006/12/02(土) 11:10:40 ID:YSW2q7Ho] >>576 ありがとうございます〜。 周りにJavaのグラフィックやゲームフレームワークについて お話できる人がいない上に、プレーしてもらえるゲーマーが 殆どいない状況だったので、ここに晒してみた感じです。w
578 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 13:20:11 ID:A/80wyG1] 俺もURLみただけでアプレットかなんかかとおもってスルーしてた 単純でもDEMOがあるのがすばらしいな 結構DEMO作るの面倒なんだよな
579 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 16:34:43 ID:Q74I213y] >>567 初期化時の画面のこだわりは恐ろしいものがありますな。 ゲーム自体もかなり作りこんであるので、ちとびっくりしました。 >>574 「飛ぶだけのやつ」はシリーズでいうと3作目ではないかと。 2作目は「塔を降りる」やつではないかと。 スレ違い失礼。
580 名前:名前は開発中のものです。 [2006/12/02(土) 16:49:36 ID:YSW2q7Ho] >>578 DEMOがあるとなんか昔のアーケードっぽくていいかな? と思いました。(^^) あと、最初の方の面は宝の出し方が故意にノーヒントにしてあるので、 デモプレーで分かるようにしてみました。 >>579 感想ありがとうございます♪ 二作目はイシターでしたね。三作目が正解です。www 書き込んだ後に思い出して反省していました。(^^ゞ
581 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 17:06:52 ID:w9uTYl/6] >>567 JAVAなのにブラウザから直接はじめられないの?
582 名前:名前は開発中のものです。 [2006/12/02(土) 17:12:22 ID:YSW2q7Ho] >>567 Javaの素人なのでアプレットの作り方とか知らないんです。 エントリポイントが違うくらいの違いであれば作ることができそうですが、 ちゃんと作る気力が無くて...orz
583 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 17:46:49 ID:w9uTYl/6] embedとかで埋め込めなかったっけ? 普通に作りこんであるだけに起動が面倒なのは惜しい。
584 名前:名前は開発中のものです。 [2006/12/02(土) 17:50:35 ID:YSW2q7Ho] ほほぉ。そんなのがあるんですね。φ(.. )メモメモ 今度勉強してみようかな。
585 名前:名前は開発中のものです。 [2006/12/02(土) 20:54:16 ID:A5BBW3gR] >>582 つゲームのパネル化&AppletとFrameへの貼り付け
586 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 21:53:27 ID:NlWQrbtL] マニフェストでMain-Classを指定してるみたいだからjarアーカイブの関連づけをjavaかjavawに関連づけてたらダブルクリックで実行できるだろ。 >>567 起動〜リソースの読み込み〜タイトル画面移行に掛かった時間を標準出力に吐いてくれたらうれしい
587 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 22:03:33 ID:g+e0ZUOZ] >>567 連投スマン これってAWT? -Dswing.aatext=true でアンチエイリアスが効いてないような気がするんだけど・・・
588 名前:名前は開発中のものです。 [2006/12/02(土) 22:23:32 ID:YSW2q7Ho] みなさんありがとうございます〜。 アプレットにも対応してみようかと、mainのクラス(ActionGame extends JFrame) とは別にAppletのクラス(ActionGameApplet extends JApplet)を作って、 appletviewer使って実験してみたのですが、私のスキルが足りなくて、 途中で画像の読み込みとか(?)でヌルポになってしまいました… (トレースは表示されましたが、時間が無くて具体的にどの辺りかが あんまり分かっていません。あと内部でJPanel(JFrameに貼りついている MainScreen)を作っているのですが、 これがアプレットに貼り付かないみたいで別ウィンドウが出て しまいました...) なものでアプレット化は当分無理そうです。ごめんなさい〜。m(_ _)m >>586 これ位は私でもできるような気がしますが、必要な理由に興味が あります。何故でしょう?(^^ゞ 開発環境はbash, vi, antで開発していたので、 シェルで普通にパラメータを指定して起動みたいな感じで、 ダブルクリックとかあまりやっていませんでした。 (Windows XPとかだと、jar=ZIPファイルで中を展開ってイメージが あったもんで...)
589 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 22:53:32 ID:m+FwCpVx] アフォな解凍ソフトが jar まで解凍拡張子として関連付けしている 場合があるから、Windows向けに下記のランチャーソフトをお勧め ttp://launch4j.sourceforge.net/ ttp://www.ne.jp/asahi/web/ryo/exewrap/
590 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:02:38 ID:lFDLhCqW] jarはダブルクリックで実行がデフォ あふぉなアーカイバは無視しておけ
591 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:04:51 ID:lFDLhCqW] >>588 画像読込部分はりソース読み込みならおかしくなるとは思えないけどどういうコード使ってるの?
592 名前:名前は開発中のものです。 [2006/12/02(土) 23:08:50 ID: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 mailto:sage [2006/12/02(土) 23:31:14 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:49:58 ID:lFDLhCqW] >>592 System.exitがどっかにかいてあるとか? あれはアプレットだとセキュリティ違反 >>593 GCはインクリメンタルGCnにするとフルGCが大体消えて快適になる 5.0ならパラレルGCなので大丈夫 -Dはパラメータ用ではない。用途が違う
595 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:55:17 ID:YSW2q7Ho] >>593 どうもです。(^^) >んで効果を手軽に確認するのに初期化処理とかリソースの読み込みに掛かった時間が分かるとめあすになるかと思って。 参考になりました。φ(^^ )メモメモ ということで時間を見つけて入れてみますね。 エンディングまで行った時にもTotal Play時間も入れておこうかな。 -Dswing.aatext=true パラメータは知らなかったのでググッてみたのですが、 これはテキストにアンチエイリアスがかかるとか紹介されていました。 ビットマップの転送にもアンチエイリアスがかかるのかも知れないのですが、 私も試したらNGでした。ちなみにゲーム中に表示される文字は全て ビットマップです。
596 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:58:03 ID:YSW2q7Ho] >>594 System.exit書いてあります! アプレットの時はコレが書いてあるだけでNGなんですね。φ(^^ )メモメモ
597 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:11:31 ID:Weooalfd] ブラウザでプレイできるようにしてくれ〜
598 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:19:26 ID:7tbgDbUF] >>597 すみません〜。スキルがなくて…orz System.exit止めたらExceptionが消えましたが、Component.createImage(w,h) API でイメージが生成できないのは解消できずです。orz newしたJPanel(Component)はヌルポでは無いのに…
599 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:28:03 ID:JGG55Wof] >>597 アプレットはずっと動き続けるものだからね 破棄はブラウザ閉じたりページ移動したりユーザーの意思によってのみされるわけだ >>598 エラーメッセージは?
600 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:36:40 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:37:20 ID:JGG55Wof] しかしアプレットだとVMにたいして細かい制御ができないしパフォーマンスも下がるし制限多いんだが アプレットにこだわるのはどういうことだろうね WebStartアプレットならまだましか
602 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:44:09 ID:JGG55Wof] >>602 肝心の例外が出てる行はどこ? ツールキットでのロードってことは読込完了するまでまってる? 画像ロードはImageIO使ったほうが楽だと思うよ リソースのストリームから呼び出すようにね あとソースファイルが多いので1つのディレクトリに全部展開するよりは階層構造にしたほうがいい viとかでは管理できないレベルかと リファクタリング使えるIDEつかえばドラッグアンドドロップで自動的にクラスの移動ができる もちろん使われている場所も全部問題なく変更される ここまでの規模になるとたいしたことなくともIDE必要だと思うよ antも全部自動生成してくれるし
603 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:52:36 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:53:47 ID:7tbgDbUF] >>602 根源は URL url = God.getURL(fileName); というところでした。 この関数は、sun.applet.AppletClassLoader.getResource(filename) としていて、ここでNULLになっているみたいです。 (結果、if(srcImage == null)がnullになるという感じです) ImageIOというのもあるんですね。ためになります〜。 EclipseとかカッコイイIDEを使いたいというのもあったのですが、 何分勉強する時間が無くて、最初はHello Worldから始めて、 グラフィックをちょっと描いてみる→ここまでに至りました。 この辺、言語や開発の仕方を覚えていく過程としてはかなりいい加減です。 (この言語が本職で無いからどーでもイイヤみたいな感じだったとでも いいましょうか...(^^ゞ)
605 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 00:57:25 ID:JGG55Wof] >>603 サーバーVMはスループットはよくなるけどレスポンス悪化するのでゲームじゃ今のところ使えない クラスロード時にコンパイルが出来るなら別だがそういうVMはないはず それにインクリメンタルGCは5.0でトレインGCからパラレルGCに変更になったので大丈夫だよ トレインアルゴリズムは非常の遅くて1GHzくらいでも60fps維持は結構きつかった 一応隠しオプションでトレインにかえれるけどだれもつかわないね、あれは
606 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 01:01:12 ID:JGG55Wof] >>604 リソース読むときコードにクラスローダ直書きってこと? IDEはわからないのであればNetBeansお勧め セットアップしてすぐに使えることと覚えることが少ないのがぐー 新規にプロジェクト作ったらsrcフォルダにそのままソースをぶっこむだけでおわる それに補完等があるからIDEは便利だよ コンパイルしなくても構文にエラーがあればリアルタイムに表示してくれるし
607 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 01:06:14 ID:7tbgDbUF] >>606 >リソース読むときコードにクラスローダ直書きってこと? いえ、最初にgetClass().getClassLoader().getClass()してます。(^^ゞ アプレットの時は"sun.applet.AppletClassLoader"で、 アプリケーションの時はお詳しいと思うのでご存知のように、 "sun.misc.Launcher$AppClassLoader" みたいになりました。 IDEはもう少し時間が取れたら試してみようかな…
608 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 01:20:39 ID:aNPfAlfu] >>605 パラレルアルゴリズムってそんなにパフォーマンス改善されてるのか。 >>サーバーVM〜 そういやこれアクションゲーだったな。 俺ADVエンジンしか作れないからレスポンスいらねw でもlinuxだとデフォでサーバーVMが起動するからゲームのパフォーマンスさげてるって事か。 ところでswingで書けばアプレットでもアプリケーションでもどっちでも起動できるが>>604 がdemoのSwingSet2のソースを理解出来るかどうか。 swingサポートしない古いMSVMはセキュリティの面からも切り捨てでw #MSVMはJITだけが取り柄だな
609 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 01:41:17 ID:JGG55Wof] >>607 リソース周り少し調べればたぶん解決すると思う ストリームのほうつかってみたら? あとファイルをjarの外に出すという方法もあるね あとでパッチ当てるの楽になるし開発中のときはデバッグに楽かも まぁリソースは別のjarとかにしておくのが正解か WebStart等とかんがえるならね >>608 あとGC自体1.4から5.0で見える範囲でパフォーマンスアップしている Swingかどうかって関係ないのでは? awtでもアプレットとアプリは併用可能 フルスクリーン等実装してることから1.4以上が必須なわけだし あとはOggあたりをループ再生していればいいね linuxは32bitならサーバークラスマシン検出しないとデフォはクライアントだと思うんだけど 64bitはクライアント版はなし
610 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 01:54:36 ID:7tbgDbUF] >>609 色々と調べたら、アプレットでのjar内のリソースの読み込みは セキュリティポリシーの問題で難しそうに感じました。 (それで合っているのか分かりませんが...) 本来は提案で言われたとおり、jarを外に出すとかWebStart等が いいのかと思いますが、流石にそのパワーが無いので、 一旦これで凍結にしようかと思います。 (所詮適当に作ったサンデープログラムプロゲームですしね。www) ---- 本来はオフラインで周りに聴ける人とかいれば、色々と相談したい ものなのですが、残念なことにJavaエンジニアが側に一人も居ないので、 なんかきっかけがあったらまたゴソゴソとトライしてみようかと 思います。 スレの流れを見ていると、上級Javaエンジニアの方が二人程 私の相手して頂いたように見受けられます。 色々とテクニカルなキーワードを教えてもらって、 かなりタメになりました。ありがとうございます!( ´▽`)ノ >>皆様 クソゲーではありますが、純粋にレトロ風なアクションゲームを 楽しんでいただけると幸いです。(^^) ttp://perfect-logic.net/SampleAction/
611 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 03:06:12 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 03:16:48 ID:fVWUDxZS] 確か、Jar関連のプログラミングは、 ClassLoader#getResource Thread#setContextClassLoader 辺りを使えば大体何とかなったな
613 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 12:38:36 ID:YF8PnGLn] >>611 のコードが間違っているが見なかったことにする
614 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 12:49:00 ID:SWYB2VRJ] >>610 楽しんで作ってるうちが一番だと思うよ だからアプリケーションでのみだが問題ない 仕事で作るとなるとそれはそれは・・・ とりあえずこのスレを1から読んでみることをオススメする
615 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 21:46:13 ID:7tbgDbUF] >>614 斜め読みですがこのスレを一通り見てみました。(^^) 私がコーディングしていて通ったような悩みを他の人も 遭遇していたりして、もっと早くこのスレに来ていればなぁと 思いました。 本職はWin,LinuxのC++/Asm系なので、この言語の高級感 (というかライブラリの充実度)は萌えだったのですが、 仕事となると色々と知らないといけないガイドラインが多そうで 大変なんだろうなぁとシミジミです。
616 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 21:55:02 ID:/gdh39Xl] 前スレのほうが中身はあったようなきがしたけどまぁ出来上がってるから関係ないね あとは音楽でもはいっていれば十分かと できればジョイパッド対応ってところだけどJNIはいるからめんどくせーかな まぁC本職なら十分楽だろうけど Javaはネット周りが楽なのでネトゲの鯖から採用され始めてきて最近はクライアントにもきてるみたい ネトゲは運用がはいるからパッケージと違って保守性って大事だからね
617 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 22:29:48 ID:7tbgDbUF] >>616 >あとは音楽でもはいっていれば十分かと そうなんですよねぇ… ちょっとMIDIで作ったのですが、 プログラムや絵よりも難産で当分無理かなぁという状況です。 (外部ファイルで設定できるとはいえ、開発者の作曲のスキルが…orz) >できればジョイパッド対応(ry 最初Windows上にcygwin入れて、JNIをサンプルで作ってみて、 エントリポイント関数ができたので、さて作ってみるかと思ったのですが、 その直後「JoyToKey」という素晴らしいソフトを見つけてしまったので、 作成意欲がゼロになりました。 (私は"PCで遊ぶゲームはキーボード"で育ったので、自作ゲームは キーボードでクリアする方が簡単となってしまい、この辺があんま考慮 されてなかったりします。m(_ _)m) 昔、日経Linuxとかで携帯ゲーム開発のコストの記事かなんかを みたことあるのですが、技術者のスキルに比べて開発費用が激安で 回収が厳しいとか書いてありました。Javaで簡単に作れる時代になった とはいえ、これで保守/運用とかあると厳しいんだろうなぁと感じました。
618 名前:名前は開発中のものです。 mailto:sage [2006/12/04(月) 00:23:03 ID:TAJliEjW] キーボードでもいいんだけど、同時入力が出来ない場合が多いからね しかもこのキーとこのキーが同時に入力できないってのはキーボードによって違う アクション系では致命的
619 名前:名前は開発中のものです。 mailto:sage [2006/12/04(月) 00:50:11 ID:rOxIjnLZ] >>618 >キーボードでもいいんだけど、同時入力が出来ない場合が多いからね >しかもこのキーとこのキーが同時に入力できないってのはキーボードによって違う φ(.. )メモメモ これって、キーボード的(ハードウェア的)にですか? OSのキーボードデバイスドライバ的ですか?('=,VMのイベント的ですか?) (恐らく後者とは思っていますが...) 自作のゲームはサンプルなので、左右とジャンプしか行わないためか、 幾つかのPCでキーボードプレーしても、このような感覚に出会った事が なかったです。 とても勉強になります。
620 名前:名前は開発中のものです。 mailto:sage [2006/12/04(月) 02:19:17 ID:oYP8msvX] ttp://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89#.E3.83.AD.E3.83.BC.E3.83.AB.E3.82.AA.E3.83.BC.E3.83.90.E3.83.BC
621 名前:名前は開発中のものです。 mailto:sage [2006/12/04(月) 03:05:27 ID:rOxIjnLZ] あー、ハードウェア的でしたか…(^^; JoyToKeyのようなソフトウェアはキーイベントをOSに発行するから、 こーいう問題はないのかもなぁ…
622 名前:520 mailto:sage [2006/12/04(月) 04:42:32 ID:8QL/yjCh] キーボードのタイプにもよるだろうけど左上+スペースが反応しないね。
623 名前:名前は開発中のものです。 mailto:sage [2006/12/04(月) 04:43:21 ID:8QL/yjCh] そしてミス、漏れはこのスレの520じゃない
624 名前:名前は開発中のものです。 mailto:sage [2006/12/13(水) 12:04:19 ID:nFrd+DMR] JavaSE6がでたが、単純に高速化してるなー
625 名前:名前は開発中のものです。 mailto:sage [2006/12/13(水) 16:07:46 ID:tbX8caYj] ニューラルネットワークの学習に使ってるけど 同じことさせて11.701sec→9.815secで速くなってた。 処理の内容はほとんどが浮動小数点演算だけどGUI周りはどうなんだろ?
626 名前:名前は開発中のものです。 mailto:sage [2006/12/13(水) 19:05:49 ID:nFrd+DMR] GUIもはやいっぽい。 特に今までアクセラレーションがなかったWindows以外の環境でもアクセラレーションきくようになったのは大きいかと。
627 名前:名前は開発中のものです。 mailto:sage [2006/12/14(木) 08:23:31 ID:U6gTfVOR] windowsだけど1600x1200のタイル描画で普通に60fpsがだせるようになった 5.0で同じことやっても10fpsいかなかったし、 6.0はjavaゲームの本当のスタート地点になるかも
628 名前:名前は開発中のものです。 mailto:sage [2006/12/15(金) 18:08:34 ID:Ihq+GcpE] まじか じゃあ俺もこれからアプレットのゲームつくってみよ
629 名前:名前は開発中のものです。 mailto:sage [2006/12/15(金) 23:17:44 ID:e9fBCpQh] デスクトップ環境の強化ってどういう意味? Javaアプリケーションが高速ってこと?
630 名前:名前は開発中のものです。 mailto:sage [2006/12/16(土) 16:06:00 ID:p9tzPmLY] >>627 2Dの事? 今までが遅すぎただけ。アルファブレンド固定なせいもあるけど しかし、今頃になってようやくって感じだな。 ロジックの速度も上がってるけど、コレクションクラス群はどう? JavaがC++で劣るのはGCのみ、と言ってる人がいるけど ロジックのコアとなるCollectionAPIの遅さを考慮してないから話にならん。 STLは、ヘボ設計だけど速度はあるからそれだけ実用に足りるがね。
631 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 00:02:03 ID:SYIGKUNN] >>627 が何の描画で早くなったのか知りたいな 今回JREにServerVMが付属してないからJDKのJREほうでやってみたら ServerVMのほうがコンパイルに時間がかかってかくかくになるくせに ClientVMと同じ性能しか出てない これはClientVMがServerVMにスループットでも追いついたということか
632 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 14:55:12 ID:iXhkS4tF] へーマジか
633 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 15:17:19 ID:hjNOU8u3] 新しいJava2DレンダリングエンジンとJOGLの統合 journal.mycom.co.jp/news/2005/09/15/021.html weblogs.java.net/blog/campbell/archive/2005/03/strcrazy_improv_1.html とか ClientVMのレジスタ割り当てアルゴリズムが変更された weblogs.java.net/blog/opinali/archive/2005/11/mustangs_hotspo_1.html あたりが影響している感じ
634 名前:628 mailto:sage [2006/12/17(日) 15:47:07 ID:EcLAzrob] 速さがよく分からなかった。 パソコン買い替えるか・・・
635 名前:名前は開発中のものです。 [2006/12/17(日) 20:16:45 ID:+LUNIpol] 流れ読まずに質問するが、vjpってどう扱えば良いのだろうか? さっきS!アプリの開発環境を落として来て動作テストを行なおうとしたら、jadを直接読み込めないんだよ。 焦ったぜ…… このテストさえクリアすればようやく公開だってのに……
636 名前:名前は開発中のものです。 [2006/12/17(日) 20:23:17 ID:+LUNIpol] おお、ありがとう。 そうか、疑似端末でインストールして動かすのか…… 盲点だったぜ。
637 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 20:58:57 ID:Lz0Pt1eB] これはどういう流れなのだ・・・
638 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 22:19:40 ID:zMoxVD1I] 俺も新型エミュにはあれ? と思ったよ 何しろexeだったし… つーかバッドバージョンインフォメーションてなんだよ。1.5だからか?
639 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 23:17:36 ID:+LUNIpol] >>673 ん? 君には見えないのか。 アドバイスをくれたあの人が…… いや、どうやら俺にだけ見えるらしい……忘れてくれ…… ところで、初心に帰ってゲーム制作を1から学び直せるサイトってどこかないだろうか。 出来たものが何故かバグだらけで非常にむかついたんだ。 自分でもぐぐって探してみたんだが、どうにもPC用講座ばかり引っ掛かる…… というかサウンドノベルでバグ出す自分って一体……orz
640 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 23:52:05 ID:+BHAw/PJ] Developing Games in Java www.amazon.co.jp/dp/1592730051/
641 名前:名前は開発中のものです。 mailto:sage [2006/12/17(日) 23:59:57 ID:Lz0Pt1eB] >>639 最初から大掛かりなの作ろうとしてないか? 昔のBASIC時代と同じく手軽に作れる小粒のアクション系つくってみたら?
642 名前:名前は開発中のものです。 [2006/12/27(水) 23:40:47 ID:L0eM1Y3J] >>567 [Action game start] (Start time:略) Game initializing... MIDI sequencer device open error... Framework initialize failed. error(-5) あら・・・動かない。