Javaでゲーム作成 2本目at GAMEDEV
Javaでゲーム作成 2本目 - 暇つぶし2ch515:名前は開発中のものです。
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パターンのクラスに渡しスキルオブジェクトを作成
という形を取ろうと思うのですが、この形は非効率的だったり美しくなかったりしますか?
動くには動くのですが、確信が持てません
詳しい方が居ましたらご教授お願いします 説明分かりづらいですかね?

739:名前は開発中のものです。
07/01/24 18:51:58 ds9ziEzR
スキルは人につく

でいいんじゃね?

740:名前は開発中のものです。
07/01/24 18:57:34 abB7yEBV
スキルオブジェクトに スキルの名前、例えば"飛び蹴り"を渡したら
戻り値でその技の設定値を受け取るという形でしょうか?

プレイヤー→Skills.getSkills("飛び蹴り")
プレイヤー←"飛び蹴り"の設定値

741:738
07/01/24 18:58:43 abB7yEBV
すいません、名前入れ忘れてました
738=740=741=私です
>>740
>>739さん に宛てたものです

742:名前は開発中のものです。
07/01/24 19:34:45 Z8dMdSBn
EnumMapとか使うのがいいんじゃね?

743:名前は開発中のものです。
07/01/24 20:21:05 OcoQZH/9
それって実装の問題じゃなくね?
ドラクエ転職とかジョブチェンジなら人につければいい(直接オブジェクトにしないで習得フラグだけとかね)けど、例の様な継承系なら職につけてもいいよな
戦士:A,B
騎士:A,B,C,D
て上級は下級の全スキル含むようにすればいいし
ちゅうわけでシステムしだいでしょ

744:名前は開発中のものです。
07/01/25 18:55:38 pxDlcTzW
スキルを持ってるか持ってないかだけに意味があるなら、スキルはenumの方がコードが簡潔でいい。

enum Skill { SWORD, GUARD, ....... }
class Player {
EnumSet<Skill> skills;
}

スキル毎にレベルがあるとかいうなら、
class Player {
EnumMap<Skill, int> skills;
}
でレベルを表現。

スキル毎に経験値やらレベルやら使用回数やら細かいデータがつくなら、スキル毎にオブジェクトを作った方がいいと思う。
その場合でも、factoryを使う必要性はないような気がする。職業オブジェクトが直接 new していいんじゃない?

745:名前は開発中のものです。
07/01/25 23:13:37 vy4zHB8R
実装の仕方なんて好きにしろとしか

それを考えるのが正しいのだし、解法は何通りもあるわけで
マニュアルがないとゲーム開発が出来ないわけじゃないだろ?

そもそもJavaと何の関係もない

746:名前は開発中のものです。
07/01/26 01:34:06 N/LVhBmn
俺が今作ってる奴は魔法名とかもシナリオファイルにデータとして持っている。
シナリオファイルから読み込んだ際に管理クラスがオブジェクトを作成して
必要な時はそれを使うようにしてる。

747:名前は開発中のものです。
07/01/26 10:47:13 pkjLw+pg
Javaに依存しない話はここの方がいいよ。

ゲームにおけるデータ構造・クラス設計・パターン
スレリンク(gamedev板)

748:名前は開発中のものです。
07/01/27 23:16:36 G5nenmLn
サンプルがJavaで語られるんだからここでやる意味はあるだろ
無意味な誘導に見える

749:名前は開発中のものです。
07/01/27 23:53:20 hFlZJXQy
Javaに依存していればココでいいさ
だが、そうではないだろ

750:名前は開発中のものです。
07/01/28 00:07:53 2uWkx2df
ただの自治厨だな、実際にコードが出てるだろ

751:738
07/01/28 03:47:32 rcpB4oX3
レスをくれた方、有難う御座います。
EnumMapで実現する事が可能でした。
しかし、dojaなので使う事は出来ませんでした。
ただ、EnumMapを知らなかったので、列挙型についてあれこれと調べる内に知識が付きました。
大変感謝しています。
結局、上手いやり方が見つかるまで、
各職業毎にインナークラスでスキルを持ち、
習得時にインナークラスを作成してPlayerクラスのVectorに突っ込んでやる事にしました。

747さんのスレは、非常に参考になりそうなのですが、
レベルが高過ぎてちょっと参加出来なさそうです。
いえ、何もこのスレが自分みたいにレベル低いかというとそういうわけじゃないのですが
いつか参考に出来るレベルになった時に閲覧したいと思います。

今後は設計に関しての話題は自粛したいと思います。
なんだかすいませんでした。

752:738
07/01/28 03:54:34 rcpB4oX3
public Skills getSkill(String jobName,int No){
 return (Skills)Class.forName("skills."+jobName+"$skill"+No).newInstance();
}
try~catch文は省略していますが
この様にして内部クラスをオブジェクトとして得ました。
例としてSoldierクラスの内部クラスです。
public static class skill1 extends Soldier{
 public skill1(){
  skillName="剣士1";
 }
}
JVMがstaticに関してどのタイミングでメソッドをロード?するのかは
分かりませんが 上述の通り、「上手いやり方」が見つかるまでこれで行こうと思います

初心者なのに、dojaはきついなぁ…
String.splitもStringTokenizerも無いので自分で作ってます…

753:名前は開発中のものです。
07/01/28 12:06:30 caDqapim
dojaって最初にいってくれ
そういうスレがあるはずだから

また、容量が少なかったり速度が出なかったりするような環境の場合、
本来あるべきアルゴリズムを端折ることが多いから勉強にはむかんね


754:名前は開発中のものです。
07/01/28 20:06:02 ItnxVFSk
>>752
Skill を扱いたいのか Skills を扱いたいのかよくわからんが
int でナンバー振ってサブクラスがガチガチに定義するんなら
Skill の配列かリストで済むんじゃないのか

public abstract class AbstractJob implements Job {
 protected Skill[] skills;
 // ジョブのスキルを返す
 public Skill getSkill(int no) {
  return skills[no];
 }
}

というかリフレクションの使いどころを完全に間違えてる
あれはいざという時に使う伝家の宝刀みたいなものだ

755:名前は開発中のものです。
07/01/28 23:07:22 caDqapim
こまめにさしかえるような汎用的なフレームワークつくりたいのならインスタンスの生成の仕方それでもいいけど
dojaとかいってることからしてそういう目的ではないだろうしな

RPG用フレームワーク作るんです!とかいうのならなおさら

基本的にメソッド先で生成したオブジェクトを返すって使い方はしないよ
自前で登録してコンテナへ登録、もしくはコンテナが自動的に生成のどちらかかと
そしてコンテナからインスタンスを取得する。場合にっては使いまわしたり

756:738
07/01/29 00:36:23 X8Jeor0A
>>754-755
お二方とも有難うございます
稚拙なコードを晒すのは恥ずかしいですが、本当に勉強になります。
生成時にコンテナに追加という形でやってみたいと思います。
754さんの意見も大変参考になります。感謝しています。


757:名前は開発中のものです。
07/02/17 08:06:32 L15CXcqa
■いきなりびっくり Java 攻撃
古い記事だけど起動が遅いのは今も変わらないよな
URLリンク(www2.plala.or.jp)

■Flashで動作する3Dエンジン「Papervision3D」
ActionScriptに浮気したくなる今日この頃
URLリンク(gigazine.net)

758:名前は開発中のものです。
07/02/17 15:10:04 5v908nqH
>>757
アプレットがすさまじかったのは原因はネスケで使ってたシマンテックJITの出来の悪さだろ
あれ起動中にネイティブに全部変換してる

おかげで1.3から標準でHOTSPOTVM搭載されるようになってVMのサイズが何倍にも膨れ上がったわりに
起動時間は何分の一にもなった

その後VMの起動速度はゆるやかに改善されていくことになるがJavaSE6は起動が急にはやくなったのは確か

適当なWEBに置くコンテンツとしてはFlashなりなんなりでいいだろう

ただ、規模がある程度大きくなり本格的なアプリとなれば別

759:名前は開発中のものです。
07/02/24 22:19:26 /rYZcxU7
Arkanae
URLリンク(edony.tuxfamily.net)
ソースコードもあり
こんなのがあったとは知らなかった

760:名前は開発中のものです。
07/02/25 00:29:28 PImIuZ8L
>>757
プログラミングを行う観点で見れば、
「開発環境死亡・ライブラリ設計死亡・Flash9でもJITの性能しょぼい」
と選択肢にも挙がらないぞ。

アニメーション作成ツールとして見れば素晴らしいが、
残念ながらアプリ開発には使い物にならない。

761:名前は開発中のものです。
07/02/25 12:31:39 6L67UnbH
age

762:名前は開発中のものです。
07/02/25 19:01:35 LGf8AXIi
>>760
「使い物にならない」のがFLASHなのか、おまいのプログラム開発力なのか、世の中の「FLASHアプリケーション」でも見ながらもう一度考えてみるんだなw


763:名前は開発中のものです。
07/02/25 21:47:35 o7vkhh81
>>762
出来ることできないことがあってFlashはまだまだ制限は多い
アプリの種類によってはFlashでもいいこともあるが、開発コストとかそういうのもみてからな

764:名前は開発中のものです。
07/02/26 03:01:50 3IqZBjOx
この本はコードサンプルがJava
Physics For Games Programmers
URLリンク(www.amazon.co.jp)

765:名前は開発中のものです。
07/02/26 21:37:19 g0XTbe0A
good job!

766:名前は開発中のものです。
07/02/26 22:47:55 YymhnNUL
いただきました!
URLリンク(www.apress.com)

767:名前は開発中のものです。
07/02/27 17:21:30 ZjZJQFQd
URLリンク(woomy.dip.jp)
初心者なのですが、こういう感じのはFlashで作った方が簡単なのですか?

768:名前は開発中のものです。
07/02/27 17:56:16 B4ufeums
楽なのはJavaのほうかと

769:名前は開発中のものです。
07/02/27 18:54:43 ZjZJQFQd
そうなんですか! ありがとうございます ┌●ペコ
本屋行ってJavaの参考書を見てきます。

770:名前は開発中のものです。
07/02/27 19:00:07 B4ufeums
Javaのゲームの本たくさんあるけど、比較的まともなのは14歳からとかいうやつだけだったような
比較的新しい書籍でもなぜか10年前のJavaの環境用につくっていたりするし

>>11のところにあるライブラリやゲーム、過去の日記がわりと参考になる

771:名前は開発中のものです。
07/02/27 19:02:10 OwhxanSJ
java は覚えなきゃいけないことが多い。
もちろん java で覚えた事は他の言語でも役に立つけど。

つまり初心者が目的の作品を完成させるまで、
という意味では flash の方が簡単。

プログラミングそのものに興味があるなら java
それらしいものを作りたいだけなら flash でいいとおもう

772:名前は開発中のものです。
07/02/27 19:10:29 IkeFh1JT
RADで言語が隠ぺいされてるflashと言語そのものjavaを比べて覚えること沢山てw

保守性考えたらjavaだよな。
javaゲームはハードウェアアクセラレータ効かんとバリバリの3Dとか無理だが。

773:名前は開発中のものです。
07/02/27 19:12:53 B4ufeums
プログラミング自体がはじめてで本当の取っ掛かりがほしいなら昔のBASIC感覚で使えるHSPあたりだろうな
だが、flashは開発環境がお粗末なのでお世辞にも初心者が作りやすいとはいえないのが癌

JavaSE6ならJavaスクリプト+Javaのライブラリという使い方も出来るがIDEのお世話になることも出来ないので
ある程度の規模になるときつい

774:名前は開発中のものです。
07/02/27 19:50:28 3CmlaFoI
Flashは仕様外の動作をすることがあるから
それを避けるためのオマジナイが多いとか聞いたけどこれは本当?

あとは>>771に同意。


775:名前は開発中のものです。
07/02/27 20:47:13 IkeFh1JT
そう言う場合は他人が作ったフレームワークのバグリスク担いでフィードバックしてやるのが
バザールモデルの基本・・・

とか言ってみる。
結局間接的にOSSなライセンスされてんだし。

776:名前は開発中のものです。
07/02/27 21:20:09 1qONjX2a
>>767
ずいぶん長い間いじってる割に画面が小さくて見づらい、flashの方が簡単に作れるんじゃないの?音もかなり悪いし

777:名前は開発中のものです。
07/03/01 11:25:25 Q/MrFJlJ
上のページ見てたらjavaだけでBGMとか効果音出るんですね
けっこうゲームらしくみえる

778:名前は開発中のものです。
07/03/01 12:14:46 ycm+eBTU
音は普通にネイティブと変わらんよ
むしろFlashのほうが制限が大きすぎる


779:名前は開発中のものです。
07/03/01 21:03:18 8CEVVUMC
midiとかwavファイルはJava1.4以降だったかも・・・
アプレットからの利用では制限があったような気がする。

ひょっとしてJava1.1辺りでも波形を生成して発音可能?


780:名前は開発中のものです。
07/03/01 21:26:44 J8EC7Q4J
>>762
AS2で3000行以上のコーディングが必要なもの書いてみろ。
開発環境は酷い、ランタイムエラーを吐かないで正直死ねるぞ。

781:名前は開発中のものです。
07/03/01 21:28:47 BnQANlH3
いまActionScript語るならFlashよかFlexの方がこのスレ的だろな

それでもアポロ登場まではアプレット比較前提だが

782:名前は開発中のものです。
07/03/01 22:56:33 J3C3KVJN
>>779
JavaSoundは1.3以上

>>781
ゲーム用途ならWebStartのほうがいいんじゃね?

783:名前は開発中のものです。
07/03/02 04:04:27 Isc+NXUT
外国じゃけっこうwebstart見るけど日本じゃ見ないな。

開発者がwebstartに対して無知だから使いこなせてないんじゃね?

鯖丸ごと立てるかホスティングしちゃう他国と違ってレンタルスペース主体の日本じゃwebstart置けないしね。

クリック一つで必要なもん全部落としてキャッシュして後は差分だけネット越し・・・他はスタンドアローンと同じってのは使う側から見れば楽で良い。

同じ事はMEのAMSで出来るけどあっちは実装依存ヒドスw

784:名前は開発中のものです。
07/03/02 12:01:55 AlxNYkg4
差分ダウンロードがつかえるかどうかはたしかに鯖次第だが、配置だけならApacheとかなら大丈夫だぞ

785:名前は開発中のものです。
07/03/02 22:28:33 e7ng/jU4
レンタル鯖でもいけるってこと?

786:名前は開発中のものです。
07/03/03 00:52:32 LWiJuDbd
JNLPファイルのMIMEタイプの設定が出来る or 既にされている所だったら

787:名前は開発中のものです。
07/03/03 07:49:54 94HMLa1l
でもレンタルにwebstart置いたら鯖に負荷掛けそうで気が引ける・・・

788:名前は開発中のものです。
07/03/03 09:09:45 Lb6a9eHr
そんなに人気出るのかお前のゲームは

789:名前は開発中のものです。
07/03/03 09:10:53 vVu9iFKK
webstartはアプレットより負担かからんだろ

790:名前は開発中のものです。
07/03/03 12:49:41 e8MDKGEx
同じだろ

791:名前は開発中のものです。
07/03/03 14:05:57 YkFSkvir
WebStartはバージョンチェックやオフラインモードがある時点でアプレットやFlashより負担は少ない

792:名前は開発中のものです。
07/03/03 14:54:27 S2NfJpKC
アプレットが常に鯖と通信してる訳じゃないだろ?

793:名前は開発中のものです。
07/03/03 16:27:50 cZ+W9Vw8
なるほど、クライアント側でJ2REをインストールして、
更にJava Web Startもインストールしないと動かないんですね。
URLリンク(sdc.sun.co.jp)

helloサンプルがダウンロードになるので、混乱してしまった。
今のところJava Web StartはWindows版だけ?

794:名前は開発中のものです。
07/03/03 17:03:50 nfMBIjTB
Macもあるお

795:名前は開発中のものです。
07/03/03 17:31:56 cZ+W9Vw8
おお!Macでも!

夢のJava Web Startのデモが動いた~
URLリンク(java.sun.com)

もう少しアクションするゲームが見たかったなあ
なぜか日本語サイト行くと動かないです。

796:名前は開発中のものです。
07/03/03 17:40:52 6WDz0MUg
jreにjws付いてなかったけ。
jdkだけだった?

797:名前は開発中のものです。
07/03/03 17:51:56 lyCQr1W4
JREについてるよ。

URLリンク(www.java.com)
>Java Web Start ソフトウェアの入手
>Java Web Start ソフトウェアは、Java Runtime Environment (JRE) のコンポーネントで、JRE と一緒にインストールされます。

798:名前は開発中のものです。
07/03/03 18:13:05 xt9rX0Kw
>>792
ブラウザ閉じればまたダウンロードが入ってしまう
あとは署名関係が5.0から柔軟になったのでライブラリが使いやすくなったというのは大きい

799:名前は開発中のものです。
07/03/03 21:37:25 4m5N8dVe
AppleはSunに金払ってJavaの正式版を出してもらえよ

800:名前は開発中のものです。
07/03/03 23:59:20 sBNSOExJ
MacOSXのJVMは、SunのJVMを元にAppleが手を加えたバージョン
だったと思うのだけど...

801:名前は開発中のものです。
07/03/04 00:33:57 u4tLbN0a
>>798
ブラウザのディスクキャッシュがある

>>800
sunがハードウェアアクセラレータ利かす前にcocoaと統合してOpenGL使っちゃったから描画周りが違ってたり、5.0の途中までしか出てない。

802:名前は開発中のものです。
07/03/04 01:51:19 KQd1C5T2
アプレットだとオフラインモードやデスクトップ統合がないからダメすぎ


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