トップページgamedev
987コメント388KB

Javaでゲーム作成 2本目

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。2005/10/27(木) 09:43:50ID:dzSvRQXE
Javaでのゲーム作成について情報交換をするスレです。
ゲーム作成以外の話題はム板(http://pc8.2ch.net/tech/)、
他言語に関する話題は他スレでお願いします。

前スレ
JAVAでゲーム作成
http://pc8.2ch.net/test/read.cgi/gamedev/1074347252/

テンプレは>>1->>10あたりを参照
0818名前は開発中のものです。2007/03/10(土) 12:10:01ID:xgekqMww
>>816
エロゲでも作る?

>>817
1.4.2,5.0,6と全部別モンだから新しいっても書く方はバージョン毎に出せるよね。
何処ぞのeclipse本の様に
0819名前は開発中のものです。2007/03/10(土) 12:30:12ID:/HVMBhqB
>>817
どの本について?

>>818
最新版対応とかかかれていて1.1時代のコードの本大量にあるから困る
音を出すにはauファイルにコンバートしましょうとかみると泣けてくる
なんで10年前のままなんじゃぁと
0820名前は開発中のものです。2007/03/16(金) 02:12:26ID:xob5GmNS
>>819
やさしいJava第二版なんて5.0対応とか言って触れてる言語仕様は前版(1.4.2)のままで5.0仕様には一切触れずにコードもなく加筆しただけだった気ガス・・・
ただ単にこの本のサンプルコードがそのまま5.0のコンパイラ通るだけ。

当たり前だのくryと言いたい所だが小一時間・・・
0821名前は開発中のものです。2007/03/21(水) 20:05:26ID:PxlWoCAm
ちょっと質問があります。

[Javaでゲーム作りますが何か?]ttp://javagame.main.jp/
を見ながらコーディングしています。
[ボールを動かす]http://javagame.main.jp/index.php?%A5%DC%A1%BC%A5%EB%A4%F2%C6%B0%A4%AB%A4%B9
で挙動が理解できないことがあります。
サンプルどおりうつと、おもったどおりなんですが、クラス構成を変更すると、移動元のボールが削除されず、棒状態で描画されてしまいます。
ソースをミテモ理由が分からなかったのでコメントをもらえないでしょうか?

・変更後クラス構成
Sample.class
MoveBall.class
MainPanel.class

・実装
Sample -> main()があり、main()内ではMoveBallインスタンス、MoveBall.work()呼び出し の2つ
MoveBall -> サンプルとほぼ同じ、main()内のインスタンス化を削除、main()内の処理をwork()に変更
MainPanel -> サンプルと同じ

・環境
JDK1.5.0_11
Window Vista
0822名前は開発中のものです。2007/03/21(水) 20:14:18ID:p5zCnQO1
ほぼおなじとかじゃわからん
ソースあっぷしてもらわんと
08238212007/03/21(水) 21:52:26ID:PxlWoCAm
ふじこ
自己解決しますた。
>>822スマソ、おっしゃるとおりでした。クラス構造はまったく関係ない箇所でした。

何がおこったのか簡単に書いておきます。

MainPanel(JPanelのサブクラス)内に、コンポーネントを描画するメソッドとしてpaintComponent()があるのですが、その中で
paintComponent(Grahics g) {
 super.paintComponent(g);
 //以下青いボールの描写が続く
}
と書く箇所で、以下のミスをしていました。
super.paintComponents(g);

本来JComponent.paintComponent()を呼び出すのを、Container.paintComponents()を呼び出してしまったのが原因でした。

#JComponent.paintComponent()とContainer.paintComponents()の違いは良く分からず
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/JPanel.html
0824名前は開発中のものです。2007/03/21(水) 22:02:54ID:p5zCnQO1
つーか、親のpaintComponent呼び出す必要はないと思うぞ
普通にfillしたらええ
08258212007/03/21(水) 23:10:05ID:PxlWoCAm
>>824わざわざ補足までありがとう。
しかし現状ではなぜ必要/不必要なのか、分かりません。
Java Tutorialに引き篭もってきます。λ............
ttp://java.sun.com/docs/books/tutorial/ui/index.html
0826名前は開発中のものです。2007/03/22(木) 00:48:34ID://UyzQId
Swingのソースコード読んで実装が何やってるか見た方が理解が早いと思うよ
0827名前は開発中のものです。2007/03/29(木) 03:53:53ID:V9bhDi93
Java で高速(fps で管理される)ゲームを作ってますが、フルスクリーンを使うと速度が激遅になってしまいました。
自分で調べてもこれ以上わからなかったので、お力を貸して頂けないでしょうか?

単純に、Sun のチュートリアルのとおりに排他的にフルスクリーン化しました。
↓のようにゲームループを作って、アクティブレンダリングを行い、
もちろん bufferStrategy を使ってページフリッピングを行っています。

↓のを1秒間に実行できる回数が、ウィンドウモードに比べて
フルスクリーンだと激減します。(→800x600x32xUNKNOWN)

do {
update();
Graphics2D g = (Graphics2D)bs.getDrawGraphics();
rendering(g);
g.dispose();
if(!bs.contentsLost()) bs.show();
}

これが、αを使ったりすると、ウィンドウモードでは 40fps 出るのに対してフルスクリーンでは 3fps。
明らかにお前のやり方間違ってるということですよね。
rendering(g) をコメントアウトしたときでも、ウィンドウモードは 1000fps、
フルスクリーンで 60fps でした。この60という数字を見るとふと505さんの発言に関係している気がしたんですが、
調べてもわかりませんでした。ここを見れば?でも結構ですんで、よろしくお願いします。
0828名前は開発中のものです。2007/03/29(木) 09:34:49ID:DOhi2zRK
そういえばフルスクリーンの時にDirectXかOpenGL使う指定したら描画速度上がるんだろうか?
0829名前は開発中のものです。2007/03/29(木) 16:17:47ID:TdF2VMR1
まず前提条件としてウインドウモード時の色深度

あとJava2Dのアルファブレンドはソフトウェア描画なのでネイティブなVRAMにバッファが置かれると大幅に遅くなる

そもそもフルスクリーン時で、というか高FPS時にイベントベースでの描画はつかうものではないぞと
0830名前は開発中のものです。2007/03/29(木) 17:47:03ID:QM1oZ8YS
javaのDirectX/OpenGLの使用はどちらかというとDesktop Javaの一環でフォントや図形の描画品質を上げる為に
それを使ってて描画速度を上げる為のものじゃないってイメージだったけど
それで合ってるって事かな?
08318272007/03/29(木) 18:09:59ID:V9bhDi93
ウィンドウモードは解像度 1024x768x32 の画面上に
800x600 のウィンドウを作ってます。フルスクリーンでは 800x600x32 にしました。
ウィンドウの初期化時にフラグでフルスクリーンとウィンドウモードを場合分けしてます。
要するに描画ルーチンはウィンドウモードでもフルスクリーンでも
同じゲームループ(上に描いたやつ)を使ってます。
αを使ったら激遅になるのはわかってますが、αを使ったときに
フルスクリーンでここまで遅いというのが納得いかなかっただけです。
このやり方ってイベントベースっていうんですかね…。
フルスクリーンにすると処理範囲も狭くなるし、排他的に画面全体を使うとなると
う〜む、どう考えてもフルスクリーンの方が速いはずではないんですかね…。

一応、大枠はここのやり方を真似てるつもりです。
ttp://fivedots.coe.psu.ac.th/~ad/jg/ch03/index.html
0832名前は開発中のものです。2007/03/29(木) 20:38:15ID:TdF2VMR1
>>830
あってない
0833名前は開発中のものです。2007/03/29(木) 20:42:13ID:TdF2VMR1
>>831
フルスクリーン時描画してるのはVRAM
ウインドウ時描画しているのはメモリ内ビットマップ
あわせるのならまずメモリ内のバッファで描画をしてそれをVRAMへ転送とする

描画の仕方が大幅に違うのだから速度も大幅に違うのは当たり前

イベントベースってのはみまちがいだったようだ
updateというメソッドがあったのでな
0834名前は開発中のものです。2007/03/30(金) 10:14:03ID:CxiJR9tX
単純な質問ですいません。

RPGを作っていて、
マップと自キャラを表示するところまでは
作ったのですが、NPCを表示させる
いい方法が思いつきません。

背景画像のように、固定ならいいのですが、
動き回るNPCをうまく表示できません。

効率のいい表示方法があれば教えてください。

いまは、

1.背景描画
2.自キャラ描画
3.表示範囲内にいるNPCを探し、描画

今は、この3の処理が無駄な動きになっている
気がします。
0835名前は開発中のものです。2007/03/30(金) 14:54:44ID:QwdAmNT9
3. の処理を行ったとしても動きとは無関係だと思うけど。
とりあえず MVC でやってみると単純になるよ。

1. モデルを次の時間に進める (キャラ座標の計算など)

2. ビューがモデルの内容をまとめて描画 (キャラの座標は 1. で計算済み)

あと表示範囲内の判定はJVMも勝手にやってくれるので、必要になったら実装でいい。
0836名前は開発中のものです。2007/03/31(土) 14:47:41ID:aOuaJNjw
そういうのって描画範囲に入ってないキャラも描画しちゃっていいんじゃない?
画面に表示されないから無駄かもしれないけど、マップのキャラクターが多くなってもそんなに重くはないんじゃ・・・
0837名前は開発中のものです。2007/03/31(土) 15:21:06ID:bPcXSKJZ
実装依存だな

クリップ外に描画すること自体は重くはないのだが、
その前にテクスチャ座標とか計算して渡す処理だけははいるから
重くはならないというのは間違い

画面外かどうかの判定なんてスプライト描画処理で一括して扱うだろうからいれとけ
最初はまったく処理をしないラッパでいいから
0838名前は開発中のものです。2007/04/02(月) 00:03:15ID:0q+4yudy
AGE
0839名前は開発中のものです。2007/04/02(月) 11:01:35ID:M2CzSpdn
ありがとうございました。

画面外のキャラも、さほどの数にはならないので、
描画する方向で作成してみます。

08408312007/04/03(火) 01:04:07ID:Wawfbgtr
遅れながらレスくれた方ありがとうございます。
う〜む、色々試してますがウィンドウで BufferStrategy 使った場合も
VRAM直…ではないんですかね…

505さんの
>フルスクリーン時は垂直同期取るのに対してウインドウモードは取らない
って何か関係してませんかね?そもそも垂直同期って言葉自体なじみがなかったんですが、
垂直同期を取ってるのでいくら処理が速くても bs.show でリフレッシュレート以上に
ならないようになってる、と考えるのは間違いですか?
それだとしてもα使って 3fps って明らかな処理落ちか…う〜む…
0841名前は開発中のものです。2007/04/03(火) 02:08:11ID:tJ3eBjgj
BufferStrategyでの同一API使ったアクセスが可能というだけで
VRAM直になるかはVM実装(つまり環境)依存

でも問題はなかろう?
Windowモードと同じようにいったんメモリ内で作ればいい
どういうゲーム作ろうとしているのかにもよるけど

あとは逆に積極的にハードウェアアクセラレーションを使うという方法もある
>>11のところでOpenGL対応してJava2D以上の表現が可能になったようだ
Java2Dはゲームで多用する加算合成がないしね
0842名前は開発中のものです。2007/04/03(火) 11:37:06ID:QAPO4Fq8
>>11
これスゲーな
0843名前は開発中のものです。2007/04/03(火) 16:29:50ID:Js4qFq6o
手軽そうだね
前見たときあまり内容無かった気がしたが地味に進めてるのね
今後に期待しとこ
0844名前は開発中のものです。2007/04/04(水) 12:34:42ID:xNft8wzX
>>840
確かに遅すぎるようにも思うが、それだけの情報じゃ何とも言えない。
α使わないようにしてみたり、rendering(g)の中身を1行ずつコメントアウトしてみたりして原因をもっと追求してみたら?
フルスクリーン時にのみ毎回妙な処理してたりしないかい(毎回DisplayMode変更してたり…さすがにそれは無いか)
ともかく・どの部分で遅くなっているか・現象を再現できる最小限のコードはどんなか をもっと追求した方がいいと思うよ。
0845名前は開発中のものです。2007/04/05(木) 23:12:06ID:IyGK/jzk
GTGEの日本語資料は"Javaでゲーム作りますが何か?"以外無いかのぉ。

使ってる奴居る?
0846名前は開発中のものです。2007/04/06(金) 00:02:37ID:xOHyAwJg
Javaの場合あんまり泥臭いコード必要としてないので必要性が薄いだけでは?
08478402007/04/06(金) 21:28:03ID:/J9SjvCf
レス下さった方ありがとうございます。

rendering(g)の中身を1行ずつコメントアウトしてみたりってのは
やってるんですが、rendering の中身を空にすると今度は bs.show で
時間かかってたりして、どうにも思うように動いてくれないんですよね。
つまり、プログラムの動作速度をはかって原因を探るだけでは解決できず
そこで、ここで皆様の力を借りようという経緯です。
コードはどうあがいても結局 60fps になってるんですよね…。

BufferStrategy は実装依存、なんですね。
15歳から始めるJava〜ではウィンドウのみのサンプルがあって
そこで「BufferStrategy はビデオメモリに直接書き込むので高速」と
断言してあったような気がしてそこは疑ってませんでしたが。
実装依存としてウィンドウモードと同じ方法を用いる、という方法は
そういえばまだ試してませんでしたね。一度試してみます。
0848名前は開発中のものです。2007/04/07(土) 02:14:29ID:2RXqF7NF
847
だからメインメモリでの描画はどうなんだと
0849名前は開発中のものです。2007/04/07(土) 07:28:23ID:Y1V3BpGY
BufferStrategyがVRAM使うのってsunの実装だと、DirectXかOpenGL使うときだけじゃなかったけ?

0850名前は開発中のものです。2007/04/07(土) 08:23:33ID:2RXqF7NF
何のオプションも指定していないデフォがDirectXなんだが
0851名前は開発中のものです。2007/04/07(土) 11:27:10ID:GIyVfDKh
DirectXはDirectXでも指定なしはDirectDraw。
指定するとD3D。javaでのOpenGLとD3Dの基本的な使い方は同じで
どっちも極力VRAMに置こうとする。

けどだからと言って早くなるわけじゃない。
0852名前は開発中のものです。2007/04/07(土) 16:20:47ID:2RXqF7NF
アルファブレンドがどういう描画をしているか、ソフトウェア描画がどういう経路でメモリアクセスしているかがわかるなら
遅くなる原因はわかると思うぜ>>840

BufferStrategyそのものが問題じゃないんだよ
Java2Dでゲーム開発ならBufferStrategyはどんな状況においても必須だし
0853名前は開発中のものです。2007/04/09(月) 09:45:56ID:uR3mQ2BL
スレチで悪いんだが「Javaでゲーム作りますが何か?」の掲示板書き込める?

IPAフォントのライセンス違反してるからライセンスのリンク貼ってやろうかと思ったらCGIに怒られた・・・。
不明な処理って何ざんす?

スレチスマソ。
0854名前は開発中のものです。2007/04/09(月) 10:53:28ID:dS/RvBxG
再配布してるってことだな

あとそこのサイトのコードバグもちなのでそのままつかわないこと
もしくは参考にしないこと
0855名前は開発中のものです。2007/04/09(月) 11:16:24ID:TJO4g1v+
再配布自体はOKのようだが?
配布方法に問題があるとか?
0856名前は開発中のものです。2007/04/10(火) 03:26:17ID:ZXpjg5Ty
>>855
良く嫁。
ttp://www.grass-japan.org/FOSS4G/license-ipafonts.eucjp.htm

GRASS GIS / MapServer / PostGISのどれかに同梱される形でのみ再配布可能。

かつ、フォントがIPAフォントである事を明示し、上記ライセンスを配布物に同梱しなければならない。
更に同ライセンス条項3)。

つーか、IPAフォントの単体配布が出来るならわざわざスターオフィスのパッケージ版なんて買わね。
0857名前は開発中のものです。2007/04/10(火) 03:49:48ID:t/2fHoZt
重要な事忘れてたがIPAフォントはGRASS GIS / MapServer / PostGISからの利用以外許されてないよ。
他ソフトウェアからの利用がライセンスに含まれてない。

自分とこで作ったソフトに使うためにわざわざ商用フォントベースで作ったんだから当然だが・・・。

んでIPAフォントの権利持ってんのはオークニーだから聞くならこっち。
0858名前は開発中のものです。2007/04/10(火) 10:08:56ID:HEVeN1vj
【初心者】課題をクリアしていくスレ【講習会】
http://pc11.2ch.net/test/read.cgi/gamedev/1086858349/
>>655です。お時間のある方、もしよかったら
講師になっていただけませんでしょうか?

【初心者】スレを立てる前にココで質問を【Part14】
http://pc11.2ch.net/test/read.cgi/gamedev/1175521815/
ここの>>26の質問にも答えていただけると幸いです。

マルチをしてすみません。
お手数おかけして申し訳ありませんが
レスは該当スレにてお願いいたします。
0859名前は開発中のものです。2007/04/10(火) 10:25:29ID:tXE5CmGv
すいません、質問です。

JAVAで最短経路探索(A*)を組みたいのですが、
よいサンプルがあれば、教えてください。
0860名前は開発中のものです。2007/04/10(火) 10:33:35ID:E2YWJL/P
えーすたーのアルゴリズムがわかってるならそのままやればいいのでは?
まずgoogleなどで検索してみよう
0861名前は開発中のものです。2007/04/10(火) 22:10:47ID:0Wd+5rPi
>>853
管理人なんですが忠告ありがとございます。
IPAフォントのライセンスよんだんですが「当該ソフトウェア」って自分のソフトウェアと勘違いしてました。
即刻他のフォントに入れ替えます。
0862名前は開発中のものです。2007/04/14(土) 00:50:15ID:2lk0UE8X
超亀レス恥ずかし><!なんですが
>>815の ゲームプログラミング-アルゴリズムとフレームワーク-長久-勝
は内容的にはjdk1.4.2の時代に1.1でも動くようにと書かれているので現在からすると
古すぎる感は否めないのですが、自分はこれでリフレクションを覚えたりしたので
懐かしくてレスしてしまいます。

でもその後、雑誌などを読んだ限りではリフレクションはあまり推奨されてないんですよね。
保守性が落ちるとかで。趣味な自分はへろへろ無駄に使ったりしてますが。
0863名前は開発中のものです。2007/04/14(土) 09:46:28ID:EazSdGuN
リフレクションはアプリが使うものではなくライブラリやフレームワークが情報を引き出したり設定したりするのに使うもの
アノテーションが使えるようになってからは必須事項だよ
0864名前は開発中のものです。2007/04/15(日) 14:22:41ID:Do4UH/Bo
>>176
こっちできいてみれば?ちなみにタスクシステムを作るのは可能。っていうかタスクシステムはデータ構造とクラス設計の話だから言語に由来することはないです。

タスクシステム総合スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/
0865名前は開発中のものです。2007/04/15(日) 16:02:43ID:yPdKGk0j
いまさらタスクシステムの話されても。
オブジェクト指向が使えない時代のお話。
0866名前は開発中のものです。2007/04/15(日) 21:33:34ID:JKlRxbBA
ですよねー
0867名前は開発中のものです。2007/04/15(日) 22:29:58ID:gWanPSzj
誰一人として悪くはない。
この企画は…構造自体が不幸を孕んでいたのだ。

戦犯はいない。
理解できない、根源から違った存在がいただけだ。
誰にとっても。

本当なら決して出会うことのなかった、才能も、経験も、熱意も、人脈も、
何もかも違う人々に関わってしまった事自体がお互いに不幸だった。
つまり…関わった時点で無残な結末が予定されていたのだ。

今はもう…その不幸を呪い、やがて忘れる時を待つしかない。
0868名前は開発中のものです。2007/04/16(月) 12:26:43ID:avbdJuoP
>>865
オブジェクト指向言語でタスクシステムが不要にはならないよ。むしろより簡潔に書ける。

マルチスレッドとかコンカレント関連のAPIのない時代でもあるまいし、というしてきなら、いいたいことはわかる。だがまちがっているけどね。
0869名前は開発中のものです。2007/04/16(月) 12:35:17ID:uVwoDyO/
クマー。
0870名前は開発中のものです。2007/04/16(月) 12:57:04ID:ZWSYWvOP
釣るならもっとそれっぽいことかいてよ
0871名前は開発中のものです。2007/04/22(日) 11:10:51ID:QxABkYIn
drawImage(image, 0, 0, ★)
の★のところなんですが、パネルを渡してもnullを渡しても同じように描画できるんですが何か意味あるんでしょうか?
0872名前は開発中のものです。2007/04/22(日) 12:01:41ID:OQsH7rKB
画像のロードに時間がかかるときとかに、
★にImageObserverを渡すと、ロードの完了を通知してもらえたりする。
0873名前は開発中のものです。2007/04/22(日) 12:50:31ID:caMfTdAs
ゲームの場合、通常非同期でテクスチャロードすることはないから意味のない引数だと思っていい。
ネトゲだとしてもそのへんは自前でコントロールするわけで。
0874名前は開発中のものです。2007/04/26(木) 09:04:29ID:LGVs5GvF
遅くなったけどd
0875名前は開発中のものです。2007/05/03(木) 18:13:48ID:GHCrYaAw
誰か前スレ持ってる人いませんか?
保存しておいたと思ったけどなくしてしまったorz
0876名前は開発中のものです。2007/05/04(金) 00:25:28ID:Z9OOsWLs
ほいdat
http://gamdev.org/up/img/9407.zip
0877名前は開発中のものです。2007/05/04(金) 08:24:01ID:2lM108GL
>>876
アップしていただけてうれしいんですがそれこのスレですorz
0878名前は開発中のものです。2007/05/04(金) 14:31:17ID:Z9OOsWLs
今度こそ
http://gamdev.org/up/img/9411.zip
0879名前は開発中のものです。2007/05/04(金) 14:40:06ID:2lM108GL
>>878
ありがとございます。
おかげさまで見れました。
0880名前は開発中のものです。2007/05/05(土) 00:18:32ID:E4gxwLZa
爆発のエフェクトを作りたいんですが、爆発させるときにTimerTaskオブジェクトを生成して起動、爆発が終わったらcancel()で破棄って方法でよいでしょうか?
何か大量に爆発させるときオブジェクトごとにTimerTask起動するのはあまりよくないような気がするんですがいい方法ないでしょうか?
0881名前は開発中のものです。2007/05/05(土) 00:23:25ID:qNXdFV63
そもそも、ゲームPGでは余りスレッドを使わないんじゃない?
0882名前は開発中のものです。2007/05/05(土) 00:37:49ID:Z2/Vlbj0
基本的にはオブジェクトごとにスレッドはやめとけ

関連性のないエフェクトだけ別スレッドというのはやってもいいけど(というか3Dはわりと普通気味)
そういうのはスレッドプールとか使うのが普通

こまめにON/OFFはとろいぞ
0883名前は開発中のものです。2007/05/05(土) 07:46:38ID:E4gxwLZa
ありがとうございます。

結城さんのデザインパターン本のスレッド編にWorkerThreadの実装があったけどこれかな。
ttp://www.hyuki.com/dp/dp2_ch08.pdf

あとJakarta CommonsにThreadPoolっていうクラスがありました。
ttp://jakarta.jp/commons/components.html

調べてみます。

>>881
とはいってもスレッドプールも結局スレッドですよね。
スレッド使わずにアニメーションとかできるんでしょうか?
0884名前は開発中のものです。2007/05/05(土) 10:37:03ID:Z2/Vlbj0
>>883
スレッドをかんちがいしてないか?
ゲームで処理単位でスレッドは使う必要はない
使う場合同期等ちゃんと理解してから出ないとダメ

スレッドプールは標準APIにはいってるんだからそれを使えばいい
これはこまめにスレッドを生成破棄しないからタイマータスクの生成+破棄とはまったく動きが違う

言っている意味がわからないならスレッドは使わないで下され
0885名前は開発中のものです。2007/05/05(土) 14:36:33ID:S0VZ5lLo
>>883
普通にwhile文を使って、一こま毎計算して表示する。
スレッドは処理の種類によって必要なら使うと言う感じでは。
ある程度本格的なゲームPGの本とか、次の本辺りを読んでみれば分かると思う。
http://www.amazon.co.jp/dp/4627918615/
http://www.amazon.co.jp/dp/4501539208/
0886名前は開発中のものです。2007/05/05(土) 20:16:15ID:2yfTJp2D
どうでもいいことだが、
>タイマータスクの生成+破棄

>タイガーマスクの生成+破棄
に見えた。
0887名前は開発中のものです。2007/05/05(土) 21:13:20ID:LKYrIilR
タイガーマスクと聞いてなぜかアンパンマンの顔が浮かんだ。
アンパンマンの顔のライフサイクル想像すると笑えるw
0888名前は開発中のものです。2007/05/16(水) 02:33:22ID:qUFCPdNa
sdljavaが結構いいと思うんだけど
このスレ的には評価はどう?
0889名前は開発中のものです。2007/05/16(水) 11:33:01ID:EfvfG/mQ
それ開発とまってなかったっけ?
アクセラレーションもつかえないし、ネイティブのSDLもあんまりほめられたものじゃないけどね
0890名前は開発中のものです。2007/05/16(水) 16:28:36ID:dKqdtDi9
sdlって俺だと動画表示くらいしか使わんなぁ。
動画ならJMFのVideoRenderer実装してるんで間に合ってる。
他はCDへのアクセスとジョイスティックだっけ?
javaゲーをCD・・・。
0891名前は開発中のものです。2007/05/25(金) 00:14:02ID:Odp2f4Vl
graphicsクラスとかImageうんたらクラスとか描画関係のことだが、javaSE6(別に5.0でもよい1.4より新しい奴)でどうすればいいのかサンプル紹介しているページないかな
とりあえず、BufferStrategyとかが1.4で加わったのは記憶にあるのだが、それ以降描画関係一切追いかけてないのでどのAPI使うのが最新手法なのかよくわからん
その辺の解説とサンプル紹介しているページキボンヌ
0892名前は開発中のものです。2007/05/25(金) 04:15:14ID:xzeMUWWG

SE5,6のJava2Dは内部実装が変わっただけで1.4以降から特に使い方が変わるようなAPIの変更はないよ。
強いていうならLCD向けアンチエイリアシングが強化されたのと、JOGLから描画パイプライン触れるようになったくらい。
アプリケーションプログラマには関係ないね。
だから1.4の事知ってりゃ、それが使える。
0893名前は開発中のものです。2007/05/25(金) 10:07:11ID:gi7La1ao
確か、Java in the Boxにいろいろ記事がありましたよ
http://www.javainthebox.net/index.html

それと、Java NIOは次の本が結構詳しい
Developing Games in Java
http://www.brackeen.com/javagamebook/
http://books.google.com/books?id=rSs35Uw11okC
0894名前は開発中のものです。2007/05/25(金) 10:27:15ID:BH7EzlMX
JavaSE6のOpenGLパイプラインは不安定なのでデフォ動作は取りやめになったよ
おかげでSwing+JOGLが5.0までとおなじ遅い動作しかできん
0895名前は開発中のものです。2007/05/25(金) 19:17:37ID:GvMFqj5n
win版のOpenGLまわりは全部VGAドライバ寄りの原因だからしかたない。
プロパティ与えて起動すると描画がめちゃくちゃだからな。
そもそもゲームはSwingと相性悪いからAWTで良いよ。
0896名前は開発中のものです。2007/05/25(金) 21:01:58ID:M11kx4ro
MORPGとかネット対応とかになるとSwingコンポーネント使えないのは不利かと
ドライバの不具合ってほんの一部の話なら別にそのドライバが対応すればいいだけのこと

nVidia、IntelともにOpenGLを有効にしてもまともに動かないのだから原因は他にあるはず
0897名前は開発中のものです。2007/05/25(金) 23:14:46ID:Odp2f4Vl
891です
レスさんくすです
参考にさせていただきます

それはそうと、今日15才からはじめるJavaゲーム製作だかなんだか言う本を軽く立ち読みしたのだが、
音楽とかタイマ関係まで一通りそろってそうでよさげだと思っている
ただ、心配なのが、ここで使ってるAPIて古い奴まじってたりしない?
わかる人、教えてくれ
0898名前は開発中のものです。2007/05/25(金) 23:26:30ID:M11kx4ro
そこのは1.4だったかな
許容範囲

Javaのゲーム開発本は大量にあるが唯一実用となる書籍として有名なやつだよ
新目なのに1.1対応とか、やってることがひどいとか参考にならないのが多いからね

@ITとかも平気で嘘のせるからAPIマニュアルとソース読むしかないというのが悲しい

とりあえずその本で一通りわかるようになったら次はたぶんOpenGlとかやるレベルだから中級まではそれでいいと思う
0899名前は開発中のものです。2007/05/25(金) 23:47:07ID:Odp2f4Vl
>>898
レスさんくす
土日勉強してみます

>そこのは1.4だったかな
>許容範囲
だよね
俺の会社(メーカー、ソフトハウスじゃないが、ソフトもそれなりに作ってる)もほとんど1.4しか使ってない
極たまに5.0のところあるが、6は使ってる部署0
0900名前は開発中のものです。2007/05/26(土) 00:42:13ID:px/b9uk2
15さいからはじめる〜は日本のjavaゲー本の中では良い本だよ。
あれの内容を完全に理解できたぜ!ってレベルなら一人でシコシコハードコーディングでもゲーム作れるんじゃないかと。

日本の企業が仕事で1.4系使ってるのは単について行けてないだけだよ。
エンドオブライフだからやめた方が良いんだけどね。5.0の新文法だけでも覚えた方が良い。
趣味グラマの間に使って覚えとくとか・・・。6.0は追う気がないならどうでもいい。
0901名前は開発中のものです。2007/05/26(土) 01:00:42ID:3yf6+JCa
去年あたりから5.0は普及してるよ
ツールも対応したし、アプリ鯖もJ2SE5.0対応したしね

今年に入ってからアプリ鯖もJavaEE5対応したのが出始めてきたから加速すると思う
効率が別次元なので今のうちに覚えておくといいかと

個人のゲームなら1.4を選択する必要はないしJavaSE6一択かと
仕事だと6は今は検証中だと思う
update1が出る前はほんとひどいバグもちだったし

ただ標準でJAXB2.0やJAX-WS2.0はいったのが面白いし5.0のときはほとんど強化されなかったAPIに
かなり手が入っているのもポイントでびっくりするほど使いやすくなったよ
0902名前は開発中のものです。2007/05/26(土) 03:14:19ID:E/o29az5
>>900
古いBroadVisionとか使ってる会社だと
今でも1.3onlyだな
つかうちもそうなんだが
0903名前は開発中のものです。2007/05/26(土) 08:34:56ID:7uwRZyAG
1.3と6じゃVMすら別モンだよな。Swingがまだ屑だったころだしXML APIもろくに無かったころか。
0904名前は開発中のものです。2007/05/26(土) 10:15:56ID:6pNAZ0zx
でもMACを視野に入れたゲームだと5.0は動かないよね?
0905名前は開発中のものです。2007/05/26(土) 10:56:51ID:OQbVauRb
たとえば?
0906名前は開発中のものです。2007/05/26(土) 11:08:04ID:J3LywcEw
>>904
6はだめだが5.0はあるぞ
0907名前は開発中のものです。2007/05/26(土) 12:43:35ID:OQbVauRb
そういう話じゃないと思うぞ
0908名前は開発中のものです。2007/05/27(日) 22:13:07ID:8JpcMLEY
15才の〜で勉強しようと思ったが、近所の本屋で売り切れだ
ついでに俺の金も無い
てことで、節約してnetだけで勉強しようと思うのだが、Javaでゲーム作りますがなにか?はどうなんですか?
自分が軽く見たところ、基礎からしっかりやってくれているみたいだが、ダメダメなところとか、注意するところありますか?
0909名前は開発中のものです。2007/05/27(日) 23:31:08ID:wTM4DUzU
本格的に開発しないのであれば通過点としてはそれなりにいいんじゃない?
目的がゲーム作成だけならライブラリ用意してすぐに開発に入ったほうがいいけど。

ただ、画像はImageIO使ってロードしたほうがいいとかバッファは現在のピクセルフォーマットとあわせるといいとか
Java2D細かい挙動が必要になったときがたぶんのってない。

まず>>908がゲーム開発自体はすでにしていてJavaでのやり方がわからないだけなのか
Javaはわかるがゲーム開発自体がわからないのか、どちらもわからないのかによってとるべき道は違うかな。
0910名前は開発中のものです。2007/05/28(月) 00:08:25ID:kxuyYAly
>>909
Javaはそれなりにやってます(SE5.0、webアプリ開発)
会社の同僚と趣味でSE6勉強してます
最近勉強仲間がSE7だのクロージャだの言い出して、俺自身は最新テクノロジとかよりゲームの方が好きなので個人でゲーム勉強しようかと思ってます
ちなみに、グラフィック、swingは全く触ったことありません
学生時代awtすこし勉強したけど、それも研究室の新人研修だけで、忘れてしまいました
よろしく
0911名前は開発中のものです。2007/05/28(月) 00:25:24ID:fdi5zjDi
ということはゲームの開発に関する知識だけがないのか
ならそのサイトで軽く覚えるといいかと

あとはJavaに関係なくゲームの作り方を教えてるサイトもみること
流れとかそういうのはかわらんから

基本的にタイマーや垂直同期によって一定頻度でのループをつくり、1フレームごとに処理をしていく
まず最初にキーなどの入力>その後ゲームの処理処理>出力

出力する際逐次表示されているVRAMへ描画していくと描画途中が見えてしまうので
オフスクリーンバッファという見えない領域へいったん描画、出力時にコピーまたはフリップ(フルスクリーン専用)となる

基本的にイベントを取るのはキーボードくらいなのでawtやSwingはそんなに深く知る必要はないよ
0912名前は開発中のものです。2007/05/28(月) 00:34:07ID:XL3m6L+U
Javaの文法がわかっていてゲームを作るのが目的ならフレームワーク的になっている>>11をつかうのがいいかと。
本格的なSTGも作れるようだし。

自分でフレームワークを作りたいというのなら上記の細かい仕組みを知る必要になるが。
0913名前は開発中のものです。2007/05/28(月) 01:10:28ID:kxuyYAly
レスどうもありがとう
ゲームは1日1時間てことで明日から1時間位づつゲーム勉強してみまつ
Javaでゲーム作りますが何か?のページ見てたらGTGEが面白そう
とりあえず、こいつの中身読んでみよっかな
なんか、やる気出てきたので週明けから暇であることを祈る
また、なにかあったらよろしく
0914名前は開発中のものです。2007/05/28(月) 09:50:19ID:dR+mP3mE
俺も毎日一時間以上ゲームPGや勉強やることにしたよと会社から
0915名前は開発中のものです。2007/05/28(月) 11:32:44ID:ahItnJp8
ゲームはモチベーションを上げるため、と割り切れば勉強のためにもいいとおもわれ。
殺風景な業務用のコンポーネントがならぶだけではなく、フレームの中をボールが飛び跳ねてアニメーションしてるとか
DBとの連携やゲームとの相性の悪くないORマッピングとか、各種デザインパターンとかものにはなるし。

WEBアプリのフレームワーク側ではなくドカタ側にまわってると技術力とモチベーション低下が避けられないからね。
0916名前は開発中のものです。2007/05/28(月) 14:22:09ID:dR+mP3mE
まさにそんな感じ。
去年まで4年以上ミドルウェアを開発してて、
上司の退職をきっかけにずっと前に出した異動希望が発動して、
グラフや統計などを使う研究用Webアプリを開発することになって、
プログラミング的には難易度が下がった。
とはいえ計画通りだし、年内は勉強しながらMyライブラリを作る。
2年ほどで作りたいのはトバルみたいなの。
0917名前は開発中のものです。2007/05/28(月) 21:47:29ID:9APdzwvN
トバルとはなつかしいな
レス数が900を超えています。1000を超えると表示できなくなるよ。