- 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あたりを参照
- 491 名前:名前は開発中のものです。 mailto:sage [2006/11/12(日) 08:26:03 ID:+OD3pyxM]
- >>ただ読んで覚えてるだけ
ってのは、その知識をもとに小規模なテストアプリを作成して その結果で判断する事も含まれてる
- 492 名前:名前は開発中のものです。 mailto:sage [2006/11/12(日) 10:16:17 ID:5sSMIo0r]
- 増えてきた本格派JAVAゲーム
61.215.215.33/news.php?url=/weekly/kaito/097/kaito_097.shtml こんな記事あったよ。日本のゲーム業界でJava使ってるとこってあるの?教えて業界人。
- 493 名前:名前は開発中のものです。 mailto:sage [2006/11/12(日) 10:38:02 ID:wvoDMNwq]
- >>490
javaのPrduct系ゲーム開発経験者ですか? それとも勘でいっている? 当方、確かに経験ないので今いちわからないんだけど コード量が増えるとメモリリークが増えるから PureJavaじゃ使いもににならないといいたいの?
- 494 名前:名前は開発中のものです。 mailto:sage [2006/11/12(日) 16:48:08 ID:sIeJXGua]
- >>486
おまえは何を言ってるんだ?
- 495 名前:名前は開発中のものです。 mailto:sage [2006/11/12(日) 21:12:28 ID:RoytZnjF]
- >>490
> ここにいる人だけど、その多くは、Javaで本格的にゲームを作った事が > ない人だろう。 で、おまいはJavaで本格的にゲームを作成したことがあるのか? >その漏れてた部分の遅さが >積み重なれて顕著となり、システム系ならば許容できるけど >シビアなタイムが必要となるゲームじゃとても使えなくなる VMのGC処理が良く問題になるだけであって、コード本体の実行スピードには問題ない > 上の洋ゲーも間違いなくそのコアにJNIをふんだんに使ってるよ。 間違いなくとか勝手に推測で断定されても、完全な間違いなんだが。 RuneScapeはPureJavaで作成されている。 その他のゲームで利用されているJNIも、 OpenGLやDirectInputを直接呼び出すだけの利用。 デタラメも大概にしてくれ。
- 496 名前:名前は開発中の者です。 mailto:sage [2006/11/12(日) 21:43:38 ID:BPHT/7vm]
- LWやメタセコで作ってXファイルで吐いた3DモデルをJava側で読み込むツールとか、キャラのモーションを登録してJavaで読み込ませるツールとか、どこかで公開してるのかな?
そういうのがないと、素人には3Dゲームなんて、とても作れない。
- 497 名前:名前は開発中のものです。 mailto:sage [2006/11/13(月) 00:19:13 ID:i1RxyPEd]
- >>494
JavaSound理解してないやつ乙
- 498 名前:名前は開発中のものです。 mailto:sage [2006/11/13(月) 01:47:03 ID:xomXll6Q]
- お前がインタフェースベースな設計を知らないだけだろw
- 499 名前:名前は開発中のものです。 mailto:sage [2006/11/13(月) 19:04:22 ID:jHwlfoAH]
- AudioClipってもっとも低機能で使い勝手の悪いものなんだが
それをほしいといわれても困る
- 500 名前:名前は開発中のものです。 mailto:sage [2006/11/13(月) 23:23:32 ID:YBTvT9dR]
- ローダつくろうと思ってるんだけど、どのローダ書くのがいいかな?
1.メタセコ 2.ブレンダ 3.Xファイル Xのローダ書いとけば一番無難? 自分、右手系でPG書いてるから変換が面倒くさそうだけど。 みんなはどんな感じ?
- 501 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 06:53:06 ID:t9hh4M26]
- >>499
それより良いインタフェースはないかと聞いてるだけでは?
- 502 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 06:56:22 ID:t9hh4M26]
- てか質問の意図を理解してない以前に設計知らないだけみたいだな
- 503 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 09:51:06 ID:v38jtkOO]
- あれ質問の意図がわかるやつのほうが頭どうにかしてるとおもうぜ・・・
本人ですか
- 504 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 17:34:18 ID:wMYc2bpW]
- Javaでゲーム作るとき
描画ってどうしてる?
- 505 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 19:15:20 ID:KGaPDyoT]
- 2Dなら普通にJava2D+BufferStrategy
フルスクリーン時は垂直同期取るのに対してウインドウモードは取らないという点に注意してね
- 506 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 23:35:47 ID:N+Lhd8Zl]
- 初めてアクションゲーム作ってるんですが
画像を半透明にしたりパレットデータを換えるときどうしてますか? できればリアルタイムで処理させたいのですが いい方法が見つかりません。RGBImageFilterではImageを得るまでが面倒で動作も不安定でした。 PNG形式のbyte列を直で変更して毎フレームImageに変換も遅そう 助けてください
- 507 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 23:48:08 ID:t9hh4M26]
- >>503
普通にわかるが?
- 508 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 00:19:12 ID:kbx8RzUW]
- >java, javax系でAudioClipより表現が豊かなサウンド用インタフェースってありませんか?
なぜAudioClipと比較したインターフェースにこだわる?Lineとかいってほしいということか? >AudioSystemやMidiSystemを上手くラップしたいんだけど、AudioClipじゃ物足りない印象 JavaSound理解しているならまったく問題ないし、そこでなぜAudioClipが出てくるか不明。 同じインターフェースにこだわりたいのならともかく音量調整も出来ないようでは使い道なし。 〜System系は5.0から大幅に使いやすくなったので迷うようなことはないと思うのだが。 普通に自分で好きなインターフェースで作りなさいとしかいえない。
- 509 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 00:21:40 ID:kbx8RzUW]
- >>506
Java2Dは使ってみた?通常合成なら大丈夫。 ハードウェアアクセラレーションはきかないからXGAで常時60fps維持したいとかだと厳しいけど。
- 510 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 00:21:42 ID:VX1VJ6O9]
- 「同じインターフェースにこだわりたい」んだろ、もういいよ
- 511 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 00:39:05 ID:kbx8RzUW]
- こだわるならこだわるでAudioClip実装すればいいだけなんだけど。
- 512 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 00:45:16 ID:VX1VJ6O9]
- うざw そのインタフェースじゃ物足りないってんだからループするだけだろ
無いなら無いってだけなのに何引っ張ってんだか
- 513 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 01:38:20 ID:VX1VJ6O9]
- Java6になっても非Winの透過アクセラレートは無しなのかな。
まあ非Winを切り捨てても何の問題もないが。
- 514 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 07:10:33 ID:EhAiNbIT]
- >>509
それってGraphics2Dのことですか? 時間ができたら調べてみます。
- 515 名前:名前は開発中のものです。 mailto:sage [2006/11/15(水) 13:57:28 ID:zHfv0gGD]
- >>512
だからこそあの質問が意味不明なのだ。 1行目と2行目と一致しない。 >>513 JavaSE5.0も現実的にアクセラレーションきかない。 openGLモードだと描画がバグバグだし、 Direct3Dモードだと描画方法によってレンダリング品質が変わるため使えない。 >>514 それだけじゃないけどね。 java.sun.com/j2se/1.5.0/ja/docs/ja/guide/2d/index.html
- 516 名前:514 mailto:sage [2006/11/15(水) 23:56:59 ID:EhAiNbIT]
- >>515
バッファストラテジというのを導入してみたんですが、といってもほとんどコピペで理解してないんですが Graphics2D.drawImage(Image,AffineTransform,Observer)でキャラを拡大したらGraphicsのdrawImageで描いた ブロックの画像に縦縞ができてしまったんですが、どうすればいいでしょうか?必要ならできるだけ答えます みなさんはバッファストラテジをどう使ってるのか教えていただけると助かります。
- 517 名前:名前は開発中のものです。 mailto:sage [2006/11/16(木) 00:11:55 ID:RzG/81yb]
- これDirectX使って描画するからビデオドライバに問題があると崩れる場合がある。真っ当な環境なら問題は出ない。
とはいえ、アクセラレーションが利く描画じゃないようなのでその影響があるとは考えにくい。 コードと環境と加工前の画像と加工後の画像をアップしてもらえばわかるかも。 Graphics::drawImageでの拡大だとどんなかんじ?
- 518 名前:名前は開発中のものです。 mailto:sage [2006/11/16(木) 00:37:17 ID:A0r/2s0Y]
- >>515
>だからこそあの質問が意味不明なのだ。 >1行目と2行目と一致しない。 お前日本語学校からやり直した方がいいぞw
- 519 名前:514 mailto:sage [2006/11/16(木) 07:35:27 ID:DvgKUdTk]
- >>517
環境は何を書けばいいですか?今まで気にしてなかったもので…
- 520 名前:名前は開発中のものです。 mailto:sage [2006/11/16(木) 10:21:23 ID:HdufXzqB]
- 作ってみたけど微妙('A`)
ネットで対戦だから一人じゃバランスもとれず適当、せっかく作ったから遊んでください。 ttp://cattaka.myhome.cx/applet/bakutan.html
- 521 名前:名前は開発中のものです。 mailto:sage [2006/11/16(木) 12:59:05 ID:GPsbxADW]
- >>519
そもそもWindowsなのか、フルスクリーンモードなのかウインドウモードなのか ビデオチップやドライバ等 ところでGraphics::drawImageによる拡大は問題なさそうなの?それが先決か。
- 522 名前:名前は開発中のものです。 mailto:sage [2006/11/16(木) 13:01:06 ID:GPsbxADW]
- >>518
具体的な対応取らない荒しはかえれ 最近ずっとJava関係荒らしてるのお前だろ
- 523 名前:名前は開発中のものです。 mailto:sage [2006/11/16(木) 23:02:33 ID:A0r/2s0Y]
- AudioClipがinterfaceなのを知らないのか
デザインパターンを知らないのか 日本語を知らないのかどれだい?
- 524 名前:514 mailto:sage [2006/11/17(金) 18:00:42 ID:7Zpg5IH1]
- >>521
OS:Win98 ウィンドウモード Graphics::drawImageでは縞はでませんでした。 バッファストラテジはそんなに効果があるんですか? 今一速くない気がします…
- 525 名前:名前は開発中のものです。 mailto:sage [2006/11/17(金) 18:50:02 ID:gSEH6ifA]
- >>524
速度に関してはソフトウェア描画になる部分とアクセラレーションがきく描画と分かれる。 拡大縮小やαブレンドはソフトウェア描画になる。 Graphics::drawImageによる拡大描画は大丈夫なのか・・・。 画像のロードの仕方とかにも結構左右されるっぽいけど、そのへんどうなってるかな。 あと256色モードとか16bitカラーモードが原因になる可能性もある。 転送元imageはBufferedImage使ってると思うけど、そのカラーモードはフレームとあわせてある? 抜き色があるかとか細かいこともある。 フレームレート命のアクションゲームならできるだけアクセラレーションがきく描画を選択したほうがいいよ。 あとは画面サイズが大きすぎないこと。 まとめると ・画像のロードの仕方 ・デスクトップの色数 ・実際に問題の出るコードと画像
- 526 名前:514 mailto:sage [2006/11/17(金) 19:08:46 ID:Lt0Wj0UY]
- >>525
画面は24bitでした。転送元imageというのがいまいち分かりません… 今まで携帯でしか作って無かったので、、、 あとこういうゲームに特化してJAVAの解説してるとことか無いですかね? 人に見せられるもんじゃないですけどソースアップしました。 ttp://park21.wakwak.com/~kuri/src.zip
- 527 名前:名前は開発中のものです。 mailto:sage [2006/11/17(金) 21:47:35 ID:6OJGRcli]
- まずぱっとみpaintイベントに描画ロジックが書いてあるようなきがするが、
通常paintイベントに対して処理は行わない。 repaint呼び出すところを自前のメソッドを呼び出すようにかえて、 paintメソッド名をそれにあわせて書き換えよう。 キー入力をビットに割り当てているのを見ると、他の言語でゲーム自体は作ったことあったのかなとおもた。 Skeruというクラスがわからないのでなんともいえないな。 画像のロードはImageIOを使うと柔軟にロードできるよ。わざわざバイト配列をロードするとか必要ない。 その際に画像バッファは現在のビデオの解像度と合わせると高速に転送が出来るけど、それはまた後の機会に。 これってフレームのサイズ固定で描画しているようだけれども、タイトルバーの高さとかふちの大きさは 同じWindowsでもバージョンや環境によって大きく異なるからしないほうがいい。 pack()やsetVisible()したあとにインセットを取得して本来ほしいサイズにそれを足して処理する。
- 528 名前:514 mailto:sage [2006/11/17(金) 23:51:15 ID:83DvLp/B]
- >>527
お返事ありがとうございます。 >repaint呼び出すところを自前のメソッドを呼び出すようにかえて、 >paintメソッド名をそれにあわせて書き換えよう。 playに変えました。 >キー入力をビットに割り当てているのを見ると、他の言語でゲーム自体は作ったことあったのかなとおもた。 まあ、ボチボチですが >Skeruというクラスがわからないのでなんともいえないな。 これはいらないクラスです。うっかりしてました。 画像とか変更したソースとかさっきのURLにアップしておきます。 >画像のロードはImageIOを使うと柔軟にロードできるよ。わざわざバイト配列をロードするとか必要ない。 >その際に画像バッファは現在のビデオの解像度と合わせると高速に転送が出来るけど、それはまた後の機会に。 やってみましたけど、こんなんでいいんですかね。 >これってフレームのサイズ固定で描画しているようだけれども、タイトルバーの高さとかふちの大きさは >同じWindowsでもバージョンや環境によって大きく異なるからしないほうがいい。 >pack()やsetVisible()したあとにインセットを取得して本来ほしいサイズにそれを足して処理する。 やってみました。
- 529 名前:名前は開発中のものです。 mailto:sage [2006/11/18(土) 00:24:13 ID: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 mailto:sage [2006/11/18(土) 16:22:37 ID:09nqBb7g]
- 言われたところは大体やりました。ただTimer系がまだいまいちわかりません
サクっとでいいんで説明してもらえたら助かります。 あとJAVA2Dなら画像のパレット替えやフィルタリングもできるんですよね?
- 531 名前:名前は開発中のものです。 mailto:sage [2006/11/18(土) 16:36:52 ID:qC5zAejN]
- タイマーはここみるといいよ。
www.javainthebox.net/laboratory/utils/Timer/Timer.html ほかにも櫻庭さんのサイトはJava関係の重要なのが多いから関係のありそうなところ見といたほうがいい。 描画に関してはアクションゲームで60fpsを目指すのなら複雑なことはしないほうがいいよ。 あらかじめ使用するパレットがわかっているなら画像ロード後にそれらのImageを生成したほうがいい。 あくまでもいわゆる画像をスタンプのように貼り付ける場合はやいから。 RPGとかで30fpsくらいでいいのならいろいろと出来ると思うよ。 Java2Dを詳しく書いた書籍ってあったかな・・・。まずはJava2Dのマニュアルをよんでみよう。 少なくともJDKのJava2Dサンプルくらいはすぐできるから。
- 532 名前:514 mailto:sage [2006/11/18(土) 17:44:49 ID:Zk4f2vJN]
- >>531
ありがとうございます。 Timerは分かってきたんですが、上にある >メインループのほうをwait()で停止させて、TimerTaskからnotify()で起こすといい。 の書き方が分かりません…。 あと、キャラクター・エフェクト・特殊ブロックなどの処理部分を一つのクラスにまとめて中で switch文分岐して処理させようかなーと思ってるんですが、こういうやり方だと遅くなったりするんでしょうか? 座標や状態変数なんかはメインループのある方のクラスに持たせれば、敵にくっついてく敵とかが作れそうですよね。 一応JAVAなのでポリモーフィズムも考えたんですが、数が数なだけに多すぎるので辞めたんですが 画像も予め用意したらその分メモリ食われて遅くなるってこともありますよね? いかんせんJAVAでのメモリの使われ方が良く分かって無いのでどこかで損してる気がします…
- 533 名前:名前は開発中のものです。 mailto:sage [2006/11/18(土) 19:54:34 ID:ZKUyfd27]
- wait、notifyはObjectにあるメソッド。これはJavaの基本中の基本なので勉強するといいよ。
APIドキュメントよんでごらん。ざっくりというとwaitはスレッドを停止させてnotifyで起こすという感じ。 マルチスレッド使ってるのでこの辺基本を抑えないと大変なことになる。 参考 ttp://www.nextindex.net/java/thread/waitnotify.html switchだろうが複雑な分岐だろうがCPUだけが処理するようなものは速度的に問題にはならない。 ネックになるとすれば16bitCPU時代くらいでJavaSEとは関係ない。 最初はざっくり作ってリファクタリングをゆっくりやるといいよ。IDE使えば手軽に見通しよくなるし。 オブジェクト指向等も徐々に勉強していきながらでいい。
- 534 名前:514 mailto:sage [2006/11/18(土) 22:14:54 ID:Bis6pJQA]
- >>533
wait()とnotify()意味は半分ぐらい分かったのですが、いまいち調べても 欲しいサンプルが見つかりません…。色々試してはいるんですがなかなか 動いてくれません。ヘタレで悪いんですがゲームで使う時のwait、notify のコードをちょろっと書いて貰えないでしょうか? ただ分岐は多くてもいいというのはホッとしました。丁寧なレスありがとうございます。 助かります(^^;。
- 535 名前:名前は開発中のものです。 mailto:sage [2006/11/18(土) 23:55:20 ID:ZKUyfd27]
- 基本中の基本だけにしらべればいくらでもサンプルコードが出てくると思うのだが。
- 536 名前:514 mailto:sage [2006/11/19(日) 10:56:55 ID:1IKPzYYc]
- Timer/TimerTaskとwait/notifyを組み合わせられないんです。
どうやったらTimerTaskで周期的にnotifyできるのかとかSynchronizedを付けるべきところとか 探し方が悪いのかも知れないんですが
- 537 名前:名前は開発中のものです。 mailto:sage [2006/11/19(日) 13:54:05 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/11/19(日) 20:11:00 ID:8MYA5LfB]
- >>536
ttp://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
- 539 名前:520 mailto:sage [2006/11/19(日) 23:41:03 ID:yvfHZIx2]
- 今頃鯖のポート解放忘れてるのに気がついた。
何がしたいんだよ俺・・・・orz
- 540 名前:名前は開発中のものです。 mailto:sage [2006/11/20(月) 00:56:56 ID:mU6Ad/cq]
- リアルタイムシミュレーションでネット対戦できるゲームをjavaで作りたいのですが、参考になるサイトありますかね?
ちなみに自分は今までCで数値シミュレーションを生業としてきてGUI関係はよくわかっていません。 勉強できるサイトがあるとうれしいです。 よろしくお願いいたします。 以上
- 541 名前:名前は開発中のものです。 mailto:sage [2006/11/20(月) 01:19:17 ID:8PZEbpO9]
- ものすごい初心者な質問なんだけど、
普通のゲームってソフトとかクライアントとかをダウンロードするじゃない? JAVAゲームの場合、ブラウザから直接開始するけど、 読み込み時間みたいのがかなりかかるんじゃないのかな? 音楽もいちいちMP3をダウンロードすることになるの?
- 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
画像読込部分はりソース読み込みならおかしくなるとは思えないけどどういうコード使ってるの?
|

|