Javaでゲーム作成 2本目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/10/27(木) 09:43:50ID:dzSvRQXEゲーム作成以外の話題はム板(http://pc8.2ch.net/tech/)、
他言語に関する話題は他スレでお願いします。
前スレ
JAVAでゲーム作成
http://pc8.2ch.net/test/read.cgi/gamedev/1074347252/
テンプレは>>1->>10あたりを参照
0304名前は開発中のものです。
2006/05/09(火) 17:54:55ID:oSIIzbHZ世代別GCとの相性を考えるとこれ
0305名前は開発中のものです。
2006/05/09(火) 22:27:04ID:p8kDUjWo実装するにあたって、static変数が必要なデザインパターンもあったんじゃね。
0306名前は開発中のものです。
2006/05/09(火) 23:23:28ID:j9harUZKそういう覚え方はよくないよ。勉強しなおしたほうがいい。
0307名前は開発中のものです。
2006/05/16(火) 11:01:52ID:oJeJmTzF次のコマンドが出るじゃん それでキャンセルで現在のウィンドウが消えて
前のコマンドに参照が戻るよね
あれってそれぞれにバッファ用意してやるしかないかな?
たとえば道具→使う→誰に なら
道具を表示するバッファ
道具、使うを表示するバッファ
道具、使う、誰にを表示するバッファ
みたいに
0308名前は開発中のものです。
2006/05/16(火) 11:35:56ID:pNczDPI9ひたすら上書き
ウインドウが消えたらアクティブになったウインドウの描画
それだけだよ
0309名前は開発中のものです。
2006/05/16(火) 11:37:03ID:pNczDPI9それぞれウインドウ内のみの描画管理
画面全体の描画でそれらを適切に呼び出す
0310名前は開発中のものです。
2006/05/20(土) 04:48:56ID:i7QcIrxX遅くなったけどサンクス
なんとなく分かってきた
キャラやアイテムのリスト作るのが面倒臭いな・・・
存在してるキャラ、所持してるアイテムを調べてリストにして
多ければウィンドウをスクロールさせなきゃならぬ
面倒だけどがんばるか・・
0311名前は開発中のものです。
2006/05/20(土) 09:04:00ID:R0av8b56わからなければ先にUMLでもなんでもいいけど処理の手順を書いたほうがいい
0312名前は開発中のものです。
2006/05/21(日) 05:45:05ID:BQPLtheIきちんと順序立ててやってみるよ・・
0313名前は開発中のものです。
2006/05/22(月) 04:54:34ID:rAUj867u変更や拡張に強く、ネットワーク越しの同期の取りやすいデータモデルをとか考え出すとはまり込む。
0314507
2006/05/22(月) 19:16:41ID:KUql4eEYとりあえず簡単なゲームを作りたいと思っているのですがどれ位勉強すればいいですか?
0315名前は開発中のものです。
2006/05/22(月) 19:27:29ID:bgWiXtf3そういう本最近多いし
0316名前は開発中のものです。
2006/05/23(火) 14:28:37ID:qGRGm1GF激重かな
0317名前は開発中のものです。
2006/05/23(火) 15:24:24ID:5zoiL+RSどういう風に分岐させたいんだ?
0318名前は開発中のものです。
2006/05/23(火) 15:30:17ID:nyPWq5Mq0319名前は開発中のものです。
2006/05/23(火) 22:43:16ID:qGRGm1GFたとえばさ、魔法クラスがあって、そのメソッドに魔法No.をわたして
そのメソッド内で渡されたNo.によってswitchで分岐させるとか
話がswitchになっちゃったけどswitchは数しかつかえないんだよね、たしか
それ以外で識別したいならif elseしかないと思って
あと、変数は少ないけどメソッドがたくさんあるクラスのインスタンスを
100個くらいつくるとメモリがやばかったりするかな?
0320名前は開発中のものです。
2006/05/23(火) 22:51:29ID:wlFUtSp+{
0321320はミス
2006/05/23(火) 22:57:01ID:wlFUtSp+public abstract void perform();
}
みたいにして、個別の魔法はこれを継承するようにするとJavaらしくなるよね
実際にゲームを完成させる気ならこんなことしないだろうけど
メソッドはたくさんあっても問題なし
0322名前は開発中のものです。
2006/05/23(火) 23:14:15ID:qo1KKw1q制御とデータをわけるという考え方は
Cとか構造化言語までのものだ
0323名前は開発中のものです。
2006/05/23(火) 23:18:59ID:qo1KKw1qいや、ゲームでも普通はそういうプログラムを書く
それと識別させたいのならenumを使え
switchもつかえるし
0324名前は開発中のものです。
2006/05/23(火) 23:34:50ID:qGRGm1GFおかげで設計ができてきた
enumすか・・あまり馴染みがないから学ぶよ
ところで>>321の4,5行目が素でわからない
アフォですまぬ
教えてもらっていい?
0325名前は開発中のものです。
2006/05/24(水) 00:05:11ID:qo1KKw1qそのへんしらべてみるとわかるよ
0326名前は開発中のものです。
2006/05/24(水) 00:29:52ID:0rz/nhQ6いろいろサンクス
0327名前は開発中のものです。
2006/05/27(土) 11:28:27ID:MsTUcez+Integerの要素をStringでキャスト、変換したり
Stringの要素をIntegerでキャスト、変換したら
エラー出るかな 面倒くさいんでInteger、Stringで統一してるんだが
勉強すればわかることだけどもしよければレスちょうだい
0328名前は開発中のものです。
2006/05/27(土) 11:38:38ID:EufEKVafclass (名前)
{
public String getString();
public Integer getInteger();
}
みたいなクラスを作る
対応してないんだったら、String用のVectorとInteger用のVectorを別にする
0329名前は開発中のものです。
2006/05/27(土) 11:49:40ID:ryxQUfnbかならず数字を含む文字列ということであれば格納前に返還すればいいだけの話だが
この情報だけではどうしたいのかがわからない
あとゲームということは多少パフォーマンス気にすることも多いのだろうから
Swing部分使わないのならVectorよりはArrayListで
シングルスレッドならパフォーマンスはまずかわらんけどな
0330名前は開発中のものです。
2006/05/27(土) 13:09:54ID:MsTUcez+ArrayListの方がパフォーマンスいいのか・・・
大分Vector使ってコード組んじゃったから、今度からはそうしよう
RPGだからスレッドはマップのキャラ動かすのとアニメーションくらいしか使わないと思う
Vectorの指定された要素がIntegerかStringかで
変換、キャストしたのちifで分岐させて処理を分けたいと思ったんだけど
やっぱり元々のVectorを別にした方がわかりやすかった 対応してないし
話変わるけど、コマンドの実装が面倒だ・・
移動コマンド、アイテムコマンド、魔法コマンド、使用対象コマンド・・
それぞれにクラス作ってそのクラスのキーイベント処理メソッドを
現在のコマンドモードによって呼び分けなきゃならん
いい方法ないかな
0331名前は開発中のものです。
2006/05/27(土) 13:39:56ID:8ehQx4Iaそれならフレームワークの設計自体からやりなおしたほうがいいぞ
0332名前は開発中のものです。
2006/05/27(土) 13:57:59ID:MsTUcez+とりあえず組んでみようとは思ったがマジで勉強が足りんらしい
チラ裏スマソでした
0333名前は開発中のものです。
2006/05/27(土) 14:12:56ID:8ehQx4Iaそしてゲームのループ内でそのフラグを読み取る
これでおけ
0334名前は開発中のものです。
2006/05/27(土) 14:23:34ID:MsTUcez+時間差があるかもと思ってkeyTypedメソッドから
直接各コマンドクラスのメソッドを現在のコマンドモードで分岐させて呼んでた
ドラクエみたいなのを再現しようと思ってるんだがゲーム作りって難しいな
俺のゲーム作りが終わるまでJavaが生き残ってるといいんだけど・・
ここの住人はレベル高いね スレ汚しスマソでした
0335名前は開発中のものです。
2006/05/27(土) 14:52:54ID:8ehQx4Iaというか、普通のゲームはイベントで処理するところはほとんどないから
それを隠すためのフレームワークというかそんなもの
まず言語的にJavaがどうのこうのというよりゲームプログラミングに対しての
技術がちょっと足りないかなぁという感じがする
10~20年前だったらゲーム作りとかいろんな本で毎月雑誌に載ってたんだけどな
いまじゃ残ってるプログラム雑誌がなくなってるし、ユーザーが求めるものが
高すぎてギャップで苦しんでる人が多いのはつらい時代だな
とにかくメインループで取得して状態に応じてswitchで戦闘時なのか移動時なのか
キャンプコマンド中なのか分離するようにかけばおけ
0336名前は開発中のものです。
2006/05/27(土) 17:41:03ID:MsTUcez+一から設計見直すよ
マジで参考になった、ありがとう
0337名前は開発中のものです。
2006/05/28(日) 16:35:03ID:su6FTHmr0338名前は開発中のものです。
2006/05/28(日) 17:06:46ID:oT4lybEG自前で実装するかJOGLとかで3Dで描画するしかない
>>11とかのライブラリに単純な合成がある模様
0339名前は開発中のものです。
2006/05/28(日) 22:35:07ID:L8EQs44Vifをバイナリツリーみたいな構造にすれば
log2(100)の回数の比較だけで済むんじゃないか?
0340名前は開発中のものです。
2006/05/30(火) 19:56:51ID:AkbGbw5fレイヤー可能でそれを実現できたらコンパクトになるなと思ったのですが
0341名前は開発中のものです。
2006/05/30(火) 21:02:41ID:bnvMLnBd効率がいい場合と効率が悪い場合があるっしょ
0342名前は開発中のものです。
2006/05/30(火) 22:16:22ID:AC7eOzy5ポリモフィズムで解決という結論がとっくに出ていると思うのだが
0343名前は開発中のものです。
2006/05/31(水) 19:31:13ID:kqayNospこれが便利ってのがあったら教えてください。
0344名前は開発中のものです。
2006/05/31(水) 22:06:19ID:H+lYwXraOggVorbisさえ再生できればだいたいこまらん
0345名前は開発中のものです。
2006/06/01(木) 20:01:54ID:oy8AdH4mまぁ皆も半月くらいでライブラリは作って、オーサリング環境作るのに挫折するんだろうけどね。
0346名前は開発中のものです。
2006/06/01(木) 23:16:05ID:mTuQuIix生産性もFlashはスクリプトがおわっとるからまけないだろ
0347名前は開発中のものです。
2006/06/01(木) 23:24:39ID:IyLxQihX0348名前は開発中のものです。
2006/06/02(金) 02:24:25ID:IlXUhKKR・MIDIや圧縮音声を再生する
・BGMと映像を確実に同期させる
・表示サイズを変更するとそこそこのクオリティで拡縮表示する
あたりが大変そうだ
0349名前は開発中のものです。
2006/06/02(金) 07:57:55ID:OCsBTCKI・BGMとの同期はそうつくればいいだけ。
・拡大縮小時にアンチエイリアスをかけるかどうかの設定が可能。アルゴリズムも設定可能。
別に大変じゃないし
0350名前は開発中のものです。
2006/06/02(金) 21:25:12ID:cNNwG7w6あれはComposite、Prototype、Flywightなどの
パターンの組み合わせがかなり洗練されててしかも使いやすい。
なんかFlash8.5からはさらに高度なAPIを持つらしいし
実装の研究をする教材としてはかなり好奇心がくすぐられる。
0351名前は開発中のものです。
2006/06/05(月) 07:16:50ID:voSd2aR70352名前は開発中のものです。
2006/06/05(月) 10:04:02ID:EcpAwWeSadobeとの合併で技術者向けのAPIも良くなってくと思う
でもFlashの対抗馬である事に関して、Sunは殆ど興味ないみたいだな
5年前のJavaに今の速度があればいい勝負になってたかもしれんのに
>>351
うん
0353名前は開発中のものです。
2006/06/06(火) 01:13:29ID:wO6xzgzA余裕
>>352
Flashの代替はのぞんでないだろ
今はアプリと鯖メインでは?
ただJAX-WSとかGroupLayout標準装備があるんで
企業向けではアプレットやWEBStartが今でも多少使われているのが
今後さらに加速するかも
0354名前は開発中のものです。
2006/06/06(火) 23:16:48ID:/CfzneHUWebで公開して気軽に遊んでもらえるし
0355名前は開発中のものです。
2006/06/06(火) 23:20:22ID:wO6xzgzA1.2以上だと別途セットアップが必要
1.2時代のJREなら今のブロードバンド時代なら問題は少ないのだが
5.0のサイズはすげぇ
1.4がかわいく見えるくらい
0356名前は開発中のものです。
2006/06/07(水) 21:23:04ID:IghNSOPkメーカー製パソコンとかって入ってないの?
0357名前は開発中のものです。
2006/06/07(水) 21:41:53ID:4a3JF+Q30358名前は開発中のものです。
2006/06/07(水) 23:03:47ID:k1IxK3O2バージョンは買ったときのマシンでばらばらだしそれを期待するのはちときつい
ゲームなら新しいバージョンになればどんどんよくなってるのが敏感にわかる
0359名前は開発中のものです。
2006/06/14(水) 15:09:12ID:LwkvhD3fJavaWebStartも良くない?
あれ対応のゲーム出てくると使う側としては楽チンなんだが。見ないね。
0360名前は開発中のものです。
2006/06/14(水) 17:48:02ID:Kbfca28q0361名前は開発中のものです。
2006/06/14(水) 18:00:49ID:gnk1ZbZr0362名前は開発中のものです。
2006/06/14(水) 18:55:46ID:oiUcwSTz3じかん位かな?
0363名前は開発中のものです。
2006/06/14(水) 20:43:32ID:E7n+afyq0364名前は開発中のものです。
2006/06/14(水) 21:01:18ID:KYL0jDeYJava Web Startってサーバー側にmime-typeの追加が必要だから、
レンタル鯖じゃ動かない可能性あり。
MIME-TYPE:application/x-java-jnlp-file
0365名前は開発中のものです。
2006/06/15(木) 13:30:54ID:tNRE7/uOそこは連鎖場屋の中の人にMIME-TYPEの使いを頼めばなんとかなる予感。
0366名前は開発中のものです。
2006/06/16(金) 00:52:38ID:yygRlJ/S0367名前は開発中のものです。
2006/06/17(土) 12:40:34ID:msfIS4LLApacheのActiveMQとかで低負荷のCGI代わりに使いたい
0368名前は開発中のものです。
2006/06/17(土) 13:13:35ID:Z2AWkk9k月1,2万かかるよ
0369名前は開発中のものです。
2006/06/17(土) 13:31:48ID:msfIS4LLdiceやtalkなどシンプルな機能をメッセージングできれば
使い方を決めるのは利用者側みたいなのイメージしてたんだが
0370名前は開発中のものです。
2006/06/17(土) 14:46:45ID:Z2AWkk9k0371名前は開発中のものです。
2006/06/17(土) 17:29:15ID:cZqcM90l設計だけが楽しいみたいな状態に陥ってしまったw
0372名前は開発中のものです。
2006/06/17(土) 18:48:38ID:Z2AWkk9kDIはたぶん便利になる
俺も次のゲーム開発ではDIで開発するつもり
0373名前は開発中のものです。
2006/06/17(土) 23:46:12ID:2TpnxAFo0374名前は開発中のものです。
2006/06/17(土) 23:58:20ID:kRFswYuv<resource id="hoge" path="rsrc/hoge.jpg" gen="org.hoge.SPIImageLoader"/>
んで
ImageLoader il = new ImageLoader(conf_path);
BufferedImage img = (BufferedImage)il.getImage(id);
これが基本形。こっからどうするかは腕次第。
0375名前は開発中のものです。
2006/06/19(月) 21:46:48ID:Zb7E8WNxぐぐって見た限りではそれらしきところが見当たりませんでした。
これらは割りと基本的なものだと思っていたのですが、Javaにはない機能なのでしょうか?
0376名前は開発中のものです。
2006/06/20(火) 00:23:13ID:z0sECMlC0377名前は開発中のものです。
2006/06/24(土) 21:54:42ID:pcuzjDvS2スピーカーなら2スピーカー分のFloatControlが必要になるよね?
0378名前は開発中のものです。
2006/06/24(土) 22:08:59ID:pcuzjDvS0379名前は開発中のものです。
2006/06/25(日) 14:38:34ID:fAOFmqJMループの開始時のgetTickPosition()が-2000とかなって余計な雑音が入る。
setLoopStartPoint(0)と設定しても効果なし。
現在はisRunning()でsleepはさむ方法でループさせているが気持ち悪い。
何かよい解決方法があれば教えてください。
0380名前は開発中のものです。
2006/06/25(日) 16:59:01ID:B6He1TJyそうではなくMIDIファイルから単に流すだけならループ関係はどうしようもないよ
音源ドライバとか昔の8bit16bit時代ならいくらでも情報は手に入るから
そのへんさがすしかないかな
0381名前は開発中のものです。
2006/06/25(日) 20:25:58ID:US/w5wC7ogg対応かつ簡単なエフェクトが掛けられるAudioClipが登場してほすぃ
標準で。
0382名前は開発中のものです。
2006/06/25(日) 20:36:42ID:AQjDLDTE0383名前は開発中のものです。
2006/06/25(日) 20:42:16ID:US/w5wC70384名前は開発中のものです。
2006/06/25(日) 21:37:23ID:AQjDLDTEあんなバッファサイズ最大制限が小さくオンメモリ必須なClipは
実装上の問題で音楽にも効果音にも使えないし
あとJava2DよりJavaSoundのほうが敷居は低いと思うよ
5.0以上ならだいぶ使いやすくなったJavaSoundにたいしていまだにアクセラレーションの聞く範囲がせまく
アルファブレンドもほとんど使えないJava2Dよりはね
0385名前は開発中のものです。
2006/06/25(日) 21:43:50ID:US/w5wC70386名前は開発中のものです。
2006/06/25(日) 22:12:46ID:AQjDLDTEゲーム用と出ないのならさほど意識することはないのだろうが、
ソフトウェア転送になると目も当てられない
ム板ならともかくこの板ゲーム製作板だしね
0387名前は開発中のものです。
2006/06/26(月) 20:32:48ID:MgtqB2cgそもそも敷居の意味がわかってないようだな
0388名前は開発中のものです。
2006/06/26(月) 23:48:06ID:6e6dhTU9JavaSoundは非常にシンプル。DirectSoundやってたならすぐにわかるだろうさ。
ようは2Dの知識がない人がJava2Dを扱うのが大変と感じるか
Soundの知識がない人がJavaSoundを扱うのが大変と感じるかの違い。
まったく知識がない場合どちらも難しいだろうが、Java2Dのほうが範囲が広すぎて難しいと思われ。
JavaSoundのほうが難しいと感じるのならあなたは2Dの知識はそれなりにあって
Soundのほうが苦手ということだろう。
0389名前は開発中のものです。
2006/06/27(火) 00:34:52ID:VajeLVWc0390名前は開発中のものです。
2006/06/27(火) 00:54:30ID:RNb1/qTwjava 音楽 の検索結果のうち 日本語のページ 約 2,310,000 件中 1 - 10 件目 (0.03 秒)
java イメージ の検索結果のうち 日本語のページ 約 1,780,000 件中 1 - 10 件目 (0.09 秒)
java サウンド の検索結果のうち 日本語のページ 約 710,000 件中 1 - 10 件目 (0.11 秒)
"java.awt.image" の検索結果のうち 日本語のページ 約 38,500 件中 1 - 10 件目 (0.02 秒)
"javax.sound" の検索結果のうち 日本語のページ 約 11,400 件中 1 - 10 件目 (0.02 秒)
これで十分だろ、以降馬鹿レス禁止。
0391名前は開発中のものです。
2006/06/27(火) 10:22:35ID:GJGczP/sあとJava2Dはピクセル単位での処理だけじゃないから割と面倒だよ
0392名前は開発中のものです。
2006/07/09(日) 17:44:21ID:O0aQTArOJavaSoundに触れていた本は0冊だったw
Javaでゲームなんて作ってんじゃねーよって感じなのだろうか
0393名前は開発中のものです。
2006/07/10(月) 14:41:59ID:7etPnpyvJavaのMIDIデバイスは古いバージョンのままで、多くのファイルが
正常に演奏できない。音が変になる。
OSのMIDIデバイスを取得して、その出力ポートに切り替えるメソッドは
どうやら中身が実装されておらず、事実上切り替えられない。
Waveは正常に演奏できるけど、そのショートカットであるAudioClipは、
短い曲だと何故かloopでしか演奏できない。さらに幾つインスタンスを作っても、
同じファイルデータだと勝手に一つのWaveハンドルに一本化してしまう様で、
同じWaveを複数同時に演奏できない。
陳腐な批評になるが、SUNのAPIは設計は最高なんだけど実装が・・・・
0394名前は開発中のものです。
2006/07/10(月) 21:24:37ID:ykWXL1Xcゲーム本じゃないけど
これの最後の章あたり、ちょこっとSound APIに触れてた
ま、これだけのために買うのはもったいないが・・・
ttp://www.oreilly.co.jp/books/4873112788/toc.html
あと俺の知ってるのは
JavaWorld 2001年10月号、2004年5月号
Cmagagine 2002年8月号と9月号
にちょろっと載ってた
javax.sound.sampledパッケージ使って
複数の音声を同時に再生とかやってた
0395名前は開発中のものです。
2006/07/12(水) 00:08:04ID:ndOxEXf9Java 5.0あたりでは多くのMIDI問題は修正されているんじゃないの?
0396名前は開発中のものです。
2006/07/12(水) 00:31:43ID:6aHYcbBnAudioClipはまともな実装にしてほしいのは同意
結局自分でソースライン書くしかないからね
せめてバッファ長とか指定できねーのかな
それでもDirectSoundくらべてかなり楽なのはいいけどね
JavaSoundは本読むより実際にいじってみるほうが早いよ
難しくはないし、5.0以降でかなり楽になってる
ただ、JavaSoundDemoが5.0で動かないとかがあふぉすぎ
0397名前は開発中のものです。
2006/07/21(金) 19:29:07ID:rgZqd6WVサウンドバンクのせいじゃね?
つhttp://www.new-arrow.com/~pc/game/soundbank/soundbank.html
0398名前は開発中のものです。
2006/08/05(土) 23:05:31ID:Uq7IRr/qjogl-demosのJGaersで35fps位しか出ないんだけど…うちのオンボードのビデオが弱すぎ?
Javaのバージョンは、1.6.0-beta2と1.5.0_07
JOGLのバージョンは、JSR-231 beta 05 - June 8
OS: WindowsXP Professional SP2
INIT GL IS: com.sun.opengl.impl.GLImpl
GL_VENDOR: Intel
GL_RENDERER: Intel 915G
GL_VERSION: 1.4.0 - Build 4.14.10.4363
0399名前は開発中のものです。
2006/08/06(日) 01:44:54ID:kmAOB+5B昔見たような気がしたけど
0400名前は開発中のものです。
2006/08/06(日) 02:36:29ID:A5aINFFLjwsのdemoにあるGaresはGLCanvas(AWT)使用の物です。
JRefractを起動してGaersを呼び出すか、
jogl-demos.jarを落としてJGaersを実行するかすれば、
fps表示有りのGaers(GLJPanel swing使用)が起動します。
0401名前は開発中のものです。
2006/08/06(日) 16:06:10ID:kmAOB+5BJOGLなんて久しく触れてなかったから忘れてたよ
結果からいうとTransparentのチェックいれるとCPUパワー使い切って描画サイズ大きくすると
35fps前後まで下がるけど、これはずすとサイズに関係なく40fpsでCPU使用率は低い
自動リフレッシュはMAXが40fpsなのかな
ウインドウを動かすとfpsが上がって滑らかになるところを考えるとたぶん余力はある・・・のか
描画をすべておぺnGLでやってる場合はアクセラレーションがきいていると考えてよさそうだ
ソース読んでないけど
0402名前は開発中のものです。
2006/08/06(日) 17:49:22ID:A5aINFFLうちの環境(>>398)だと初期の描画サイズで35fps…
Transparentのチェックに関係なく、大きくしたらそれだけfpsが下がる。
やっぱオンボードビデオが貧弱かw
GLCanvasの方使っときます。
0403名前は開発中のものです。
2006/08/06(日) 19:47:19ID:kmAOB+5B確か今は新機能としてあったはず
あとCPU使用率もみたほうがいい
OpenGLもJ2SE5.0のOpenGLアクセラレーションのようにまともに実装されてないのかもね
あっちは描画もおかしくなるから最悪だけど、nVidiaとATI以外はOpenGLが動く環境であっても
はねられるというすばらしい実装
結局Win32環境でDirectXアクセラレーション使うしかまともな回答がない
オンボードでも845GあたりからOpenGLはまともに動くようになってきたのにねぇ
■ このスレッドは過去ログ倉庫に格納されています