Javaゲーム作成総合スレat GAMEDEV
Javaゲーム作成総合スレ - 暇つぶし2ch293:名前は開発中のものです。
09/04/08 01:05:02 IDvn4V//
>>291
芝君元気だな
サーバーサイドじゃねーの?
それともu10以降のscriptほうれるようになったjavaプラグインとか(意味ねーけど)

>>292
JOGLはOpenGLそのまんまべたで実装することに主観がおかれてるからあんなもんだ
Cより面倒でJavaより面倒という(そのかわりJavaでラップはしやすいか)
定数とか普通のオブジェクト指向ではやらないタイプだしね

294:名前は開発中のものです。
09/04/08 01:22:27 cu0myc7l
JOGLの気持ち悪いのはGLUやGLUTだなあ。


GLU glu=new GLU();
glu.gluLookAt(…)

とか、いきなり普通に使えてしまう。
お前はどうやってGLにアクセスしているのかと。
CのAPIそのままなんだけど、Javaの感覚に慣れてるとかなり違和感がある。

GLU glu=new GLU(gl);

とかなら、直観的にわかるんだが、


295:名前は開発中のものです。
09/04/09 23:36:18 QVY5xGft
JOGLのソースファイルの場所についての質問なんですが、
先日JOGLのプログラムでエラーが発生しまして、

Caused by: java.lang.UnsupportedOperationException
at java.nio.FloatBuffer.array(Unknown Source)
at com.sun.gluegen.runtime.BufferFactory.getArray(BufferFactory.java:124)
at com.sun.opengl.impl.GLImpl.glBufferData(GLImpl.java:783)

VBOを実装してたんですが、バッファ関連でエラーのようです。

// 頂点データ配列を転送
gl.glBindBuffer(GL.GL_ARRAY_BUFFER, vboId[0]);
gl.glBufferData(GL.GL_ARRAY_BUFFER, vtxBuff.capacity()*BufferUtil.SIZEOF_FLOAT, vtxBuff, GL.GL_STATIC_DRAW); <<ここでエラー

とりあえず、なにが起こっているのか確認しようとしてGLImpl.javaを探すものの…
………なんか、このファイル、JOGL1.1.1のソースファイルの中には入ってないっぽい。

GLImpl.javaの所在をご存知の方いたら教えてください。

296:名前は開発中のものです。
09/04/10 01:28:18 y7sVQ1aZ
Buffer.capacity()は要素数じゃなくてバイト数だから、floatのサイズをかける必要はないんじゃないか?
ただ、このエラーはそれとは別で起こってる感じがするが。

297:名前は開発中のものです。
09/04/11 00:44:56 MyX2Juju
ゲーム作成とは関係ない、煽りとしか思えないような書き込みが頻発したり、
ゲームの話に戻るかと思えばOpenGLの技術的な話になって初心者がついていけなくなったり、
なんか、このスレの話題は極端から極端に触れてる気がする。

住人がもっと増えれば、ゲームの話題でもうちょっともりあがれるのかね。

298:名前は開発中のものです。
09/04/11 07:46:25 nrxnXQtg
>>295
GLImpl.javaの場所は知らんけど
Buffer#hasArray() で true 返す Buffer 渡さないとだめなんじゃね?

299:名前は開発中のものです。
09/04/11 19:32:25 JxzVzDpH
>>298
>>295です。
どうもです。配列をwrapするようにしたらエラーが出なくなりました。
が、まだ表示されるところまで行きません。
もうちょっと試行錯誤が必要なようで、現在悩みつつ調査中。

Bufferまわりはけっこうややこしいので、日本語の解説書がほしいところです。
オライリーからJOGL本が出たら、5000円や1万円は出すのになあ。

300:名前は開発中のものです。
09/04/15 23:58:29 D2aVXs86
JavaでOpenGLだとJOGLを使うのが普通だけど、ジョイスティック関係でデファクトスタンダードってあるのかな?
標準仕様ではまだ存在しないけど、JSRになってるくらいのものがあれば割と安心して使えるんだが。

301:名前は開発中のものです。
09/04/16 00:35:02 Dl/qvkUP
jinput

302:300
09/04/16 00:44:42 Ge+Eyh9Z
>>301
サンクス

303:名前は開発中のものです。
09/05/16 16:06:53 1PTlJmFk
>>171
`∧_∧
(´・ω・)
( つ旦O
と_)_)
ちょっと休憩。


304:名前は開発中のものです。
09/06/14 00:51:47 YAYpVdk3
URLリンク(nsj.hp2.jp)

こんなの作ってみました。
まだ試作品だけどよかったら誰か意見ください。

305:名前は開発中のものです。
09/06/14 01:09:15 MK353TQU
物だけ見せられても宣伝乙としか

306:名前は開発中のものです。
09/06/14 03:42:19 g6ViaG4n
>>304
死なないシューティングゲームって爽快感があっていいね
もっと弾とか相手がぶっ壊れるときのエフェクトを派手にして
爽快感だけのシューティングゲーム作りたいなあって思った

307:名前は開発中のものです。
09/06/14 11:28:09 YAYpVdk3
>>304です

>>305
確かにこれだけじゃただの宣伝ですね。すみません。

どんな物にしたいか:
・要するにいくつかのステージに渡って隕石を駆除するゲーム(制限時間付き)
・まず巨大だが速さが低い隕石がいくつかある状態から開始する
・直径50pixel以上の隕石は破壊されると分裂する。
・隕石の最大速度はサイズに反比例する。
・隕石に衝突すると、何らかのペナルティが発生する。
・隕石を破壊(分裂)させると、得点が隕石のサイズに応じて増える。

こんなところです。
よろしくお願いします。


>>306
見た目に関してはこれからも色んな効果を追加していくつもりです。
まずはもうちょっと画面を揺らす効果を強くしてみます。

実は途中までは死亡出来る仕様だったのですが、「死ぬまで続ける」よりも「制限時間内でより効率的に隕石を掃除する」
ようにするために急遽死亡判定を取り除いてみました。

308:名前は開発中のものです。
09/06/14 14:03:19 dPzbkR7D
超巨大な隕石にちっぽけな自機が挑むっていう構図がいいね。
ただ、主砲が小さな隕石に当たってかき消されちゃうのは少しさびしいと思った。
爆風とかあってもいいんじゃないかな。
そうすれば効率的に隕石を掃除するっていうコンセプトにも一致するし。

あと反射、分裂ってところでbio100%の蟹味噌思い出した。

309:名前は開発中のものです。
09/06/14 15:23:29 YAYpVdk3
>>306>>307の意見を参考に、少し細かい修正を施して見ました。

URLリンク(nsj.hp2.jp)
・ゲームの速度を全体的に上げた。
・隕石が分裂する際に粒子を放出するように。
・隕石のサイズを更に少し上げた。
・主砲の仕様を変更。「ただの強力な弾を発射」→「貫通性を持った削岩機を射出」するように。
 爆発物もその内実装してみようと思います。なんで思いつかなかったんだろう。

結構発想を得る事が出来ました。ありがとう。

>>306
少しは爽快感増えましたかね。

>>308
俺も気に入ってます、この構図。
主砲弾のダメージ量を変えずにダメージの与え方だけを変更してみました。いかがでしょう。

310:名前は開発中のものです。
09/06/14 19:24:58 g6ViaG4n
>>309
速度が上がって隕石を早く壊せるようになったから、ただ弾を撃って待ってる時間が減ってテンポが良くなってて、
爽快感も増えてる。
今のところ画面内だけを飛びまわれるけど、このゲームはテンポが速いからもっと広いマップを飛びまわれれば
面白いかなあと思った。でも、あまり広いマップだと隕石を見つける作業が大変になってつまらなくなりそうかなあ。

311:名前は開発中のものです。
09/06/18 19:43:08 qodO8hsI
GTGEのオープニング画面消せませんか?

312:名前は開発中のものです。
09/06/19 00:36:36 Re09H4o6
ライセンス違反

313:名前は開発中のものです。
09/06/21 03:27:34 eJZ0zwQp
GTGEはだいぶ前に開発止まって、JMonkeyEngineに人が流れたと思ってた
ちょっとgoogleで検索してみたけど、JMonkeyEngineはほとんど情報ないね
2.0もよくわからん状態だし
Javaでゲーム作る人はフレームワークとか使わんのかね?

314:名前は開発中のものです。
09/06/21 19:11:59 7M0/xeSN
GTGEはちょっとしたゲームにはすごくいいっぽいね
最近ゲーム勉強してフレームワーク作ろうとしてたけど使って見て馬鹿らしくなったw

315:名前は開発中のものです。
09/06/21 22:47:18 JjTebPbF
Java自体が半フレームワーク
みたいなもんじゃね。標準で付いてるクラス使いこなせてれば

316:名前は開発中のものです。
09/06/22 10:23:26 hPMjGfX/
フレームワークって概念をどうとらえているか知らんが、
普通はそういう言い方はしない。
Javaは基本的なAPIは提供するが、
フレームワークで準備されるような拡張API的な部分はかなり少ない。
多いなら、JakartaCommonsやらは出てこない。

とはいえ、PC上でやりたいことのほとんどにたいしての、
基本的なAPIを提供してくれているのには同意。

317:名前は開発中のものです。
09/06/22 21:30:21 D4ho1sgZ
JMonkeyEngineがバージョンアップして、日本語の解説記事がガンガン出てきたら本気でゲーム作る
それまでは、会社でWebアプリ作ってます

318:名前は開発中のものです。
09/06/23 02:32:57 Z4M/wv7L
そういえばjME2.0、鯖が重くてうまく落とせなかったな。

F/Wの話だが俺は2DゲーメインなんでjME程の3D機能はいらんな。
JOGL使って小型のものを作った。

ただ、スプライトをどう制御するか悩むね。
スプライトクラスが個々のフレームの表示時間も持つのか描画する時に管理するかとか。

319:名前は開発中のものです。
09/06/24 11:22:25 GkwNF2sp
スプライトの当たり判定をアルファ値考慮して実装したら平均68msの実行時間がかかってしまう。
どうやって高速化するんだろ?

320:名前は開発中のものです。
09/06/24 11:52:19 jlXOwoDQ
厳密なアルファ値判定が必要な物だけをリストしたらいいんでない。
もうやっているならスマン。



321:名前は開発中のものです。
09/06/24 15:53:53 86MRbq/S
クロスプラットフォーム目指してるならSDLがあるでよ
Javaの方が手間がかからないけどね

322:名前は開発中のものです。
09/06/24 19:20:49 p2fvfWui
SDLならjavaにもあるんだが

323:名前は開発中のものです。
09/06/24 21:35:08 PEcZRotC
JavaのSDLでいきてるのってるのか?

324:名前は開発中のものです。
09/06/24 22:58:00 q4KJV7Tw
>>319
大きさや個数が分からんから何ともいえんが
ピクセル単位の判定前に矩形チェックで弾くのはやってるとして

・大きなスプライトを使うんならあらかじめ32x32くらいの判定ボリュームを
 用意して精度を落としてしまう
・輪郭線に該当するピクセルだけをあらかじめ列挙しておき、
 そのピクセルから相手のキャラのアルファ値を見に行く(相互にやる)
・衝突判定用描画バッファを用意し、各ピクセルに色ではなくキャラクタ番号を
 書き込みながら、書き込み先のピクセルを見て判定する
 ※描画順序に判定条件が依存するので注意

のうちのどれかを実装するとか

325:名前は開発中のものです。
09/06/24 23:31:26 E6VQkcW7
データ構造の仕様も判定の仕様もわからんが
あらかじめ判定のある不透明部分だけ抜き出して適当なデータ作っとくとか

326:名前は開発中のものです。
09/06/25 18:29:50 Hr5vf1Co
>>319
ゲームの種類にもよるけど、ドット単位で厳格な判定をしようと言うのがそもそもの間違い。
(これはスプライト同士の場合。マウスカーソルとアイコン等、点とスプライトの判定ならドット単位でも大丈夫)
例えば、格闘ゲームの判定なんかは長方形の判定が数個配置してあるだけ。
キャラの喰らい判定も、パンチやキックの攻撃判定も、みんな2・3個の長方形で表現されている。
衝突判定が重要な格闘ゲームですらこうなんだから、他のジャンルもこんな感じ。

どうしても気になるんなら、当たり判定を複数の円や三角に分割して処理すれば軽さと精度を両立できる。
あまり細かく分割すると余計重くなるので、多少の誤差なら無視してしまってok。

STG等、敵の大群と自機の弾幕の間で判定を行なう場合の高速化方法もあるけど、
アルファを考慮して68msって規模なら必要無いので省略。

327:319
09/06/27 02:44:14 jkJfUe9s
い、忙しい。コード書けねぇ。

スプライトの仕様は以下

・スプライトの描画座標系での位置(x,y)を持つ
・スプライトのサイズ:w * hを持つ
・表示される画像を持つ
・可視性-visibleを持つ

で当たり判定の実装は以下

1) 可視性をみる
2) 二つのスプライトの位置とサイズから重なっているか見る
--- ここから実際にアルファ値考慮 ---
3) 二つのスプライトの共有された矩形の情報を得る
4) 3)を元に二つのスプライトの画像の共有部のみそれぞれint[]に各ピクセルのargb情報を格納
5) 4)より得た配列二つのピクセルの全アルファ値をみる
6) 見たアルファ値の両方が完全に不透過ならば当たっていると判断

こんな感じ。
それで当たり判定メソッドにアルファ値を考慮するかどうかのフラグを指定できるので、
>>320の"アルファ値判定が必要な物だけ"というのはこれをoffにすればいい。(そのとき実装の 2) までやってreturnする)
それ以外は上記に挙げたこと以外は特にやっていない。

とりあえず>>324の"あらかじめ32x32くらいの判定ボリュームを用意して精度を落としてしまう"
を時間がある時に実装しようと思う。
レスくれたみんなありがと。

328:名前は開発中のものです。
09/07/13 20:05:52 L/yN0+Rr
スレ違いだとおもうけど
就職作品で提出する場合
MIDPとDojaどっちで作るのがいいと思う?
てかどっちが主流なんだろう

329:名前は開発中のものです。
09/07/13 21:00:36 m1tx5Cmh
どっちでも作れるなら両方作っておいたほうがいい。
私なら使うかどうかは別として常に保険は持っておく。

ただ「提出」となるとMIDPの方が用意しやすいんじゃないか?

330:名前は開発中のものです。
09/07/13 21:20:41 L/yN0+Rr
>>329
了解ありがとう~

331:名前は開発中のものです。
09/07/13 22:39:13 X6MZ6Qd8
その会社の製品がどっち優先か調べて決めれ

332:名前は開発中のものです。
09/07/14 07:11:46 d7m2rzzT
いまDojaじゃないけどな

333:名前は開発中のものです。
09/09/11 12:02:33 yaQ7P120
質問させてください

Javaでゲーム作る場合は、Swingを使うのでしょうか?それともAppletを使うのでしょうか?
勉強中なのですが、ネットで色々と検索するとJFrame上に画面を生成している人とAppletに画面を生成している人がいます
どちらが一般的なのでしょうか?
PC用、携帯用とかで使い分けるものなのでしょうか?

よろしくお願いいたします

334:名前は開発中のものです。
09/09/11 14:11:16 UvBFGDsD
アプレットでSwingが使えるJAppletというのもあるよ!
ブラウザ上で動かしたいならアプレット、単独で動かしたいならJFrame
やろうと思えば両用に作ることもできるが、好みで選べばいい
携帯用は根本的にまったく異なる

335:名前は開発中のものです。
09/09/11 20:42:59 mQuEMJXs
SwingかAppletかっていう選択はおかしい。

選ぶのはまずターゲットにする実行環境を選ぶ。
・アプレット(ブラウザ内で実行)
・アプリケーション(ダウンロードして実行)
・携帯
WebStartとかFXとかもある

それとは別に使うライブラリとして
・Swing
・AWT
を選択。他にもSWTやJOGLを使う手もある。

336:名前は開発中のものです。
09/09/12 14:13:51 IEF6R4ya
レスありがとうございます
基本的に、ダウンロードして遊ぶアプリケーションを考えています

色々と調べましたけど、appletは過去に現在のFlash見たいな位置づけにあった技術ってことでいいんですかね?
Java Web Startとかも同じようなことやっているみたいですし、今回はappletは無視の方向でがんばってみます


337:名前は開発中のものです。
09/09/13 12:41:46 uuePN42W
ゲームでSwingはJOGLが安定してからの方がいいような

338:名前は開発中のものです。
09/09/13 18:57:10 Myip4/jy
質問者のレベルからいっておそらくJava2DだけでいいからSwingでもAWTでもかまわんかと

339:名前は開発中のものです。
09/09/14 12:43:38 PZzYIY3C
>>333
いつの日かAndroidにRhino組み込んでゲーム作る日が来るよ

340:名前は開発中のものです。
09/09/15 20:39:38 zYM08P02
皆さんどんなゲーム作ってるの?


341:名前は開発中のものです。
09/09/25 02:51:49 hUUmuj0G
皆さんゲーム作ってないのですか??

342:名前は開発中のものです。
09/09/26 09:58:13 J1BQH5PO
誰もいないでちゅか?

343:名前は開発中のものです。
09/10/01 07:27:17 8Vk+ua23
誰もいないなら削除依頼だしたほうがいいですかね?


344:名前は開発中のものです。
09/10/01 16:48:22 ULQNoLtL
削除依頼を出す必要性が見つからないんだが。

345:名前は開発中のものです。
09/10/01 23:01:58 8Vk+ua23
よかった!私以外にも人がいたみたいですね!!
削除依頼は延期させてもらいます!!!

346:名前は開発中のものです。
09/10/01 23:31:47 4EjDbNUg
Javaだと、標準機能だけで2D系ゲームならすぐ作れそうだよね。
新入社員教育で、「期間8時間x5日間の課題としてテトリスクローン作成」
程度のメニュー組んでも大丈夫そうな気がする。


347:名前は開発中のものです。
09/10/02 07:41:58 aJX6kioG
>>346
テトリスだとアルゴリズムの部分を除けば必要な機能はキー入力の処理と画像表示だけだよね
疑問なんだが、C#とかC++とかにはそういう機能は標準ではないの?


348:名前は開発中のものです。
09/10/02 08:03:30 Zzm+z8T1
>>347
C++は画面出力用の標準ライブラリは存在しない。
C#にはあったと思うけど、本格的に使ったことがないんで自信なし。

Javaで40時間で作れそうなゲームというと、大抵の落ちものパズル、インベーダー、パックマンとかかな。
黎明期のゲームはわりとどうにかなりそう。
もちろん、敵も味方も丸や四角になるけど。

349:名前は開発中のものです。
09/10/02 11:39:50 7JGC3MOY
>>343
スレがのこってるということ自体に意味があるので自然の落ちない限り残すのが普通だろ
たとえば間をおいて質問等があった場合スレを新規に立ち上げるのと書き込むだけでは敷居が違いすぎる

スレは一個人のものではないんだぜ?
スレはたった時点で「1」の手を離れてるんだぜ…

350:名前は開発中のものです。
09/10/02 12:37:48 a6aeKiDs
今のJavaはゲーム作成環境としてもけっこうこなれてきたと思うんだが、
フリーや同人の世界でもJava製ゲームってあんまり無いね。


351:名前は開発中のものです。
09/10/02 18:33:12 +i1IzwK6
PCのスペックがどんどん上がってきて、比較的大規模なソフトウェアがJavaで
作られて実際に使われることが多くなったから、Javaの評価は少しづつ上がってると思う。
開発者にとっては楽な言語だからもう少し増えてもよさそうなのになあ。

352:名前は開発中のものです。
09/10/02 19:52:15 LwoQ3y57
楽な言語ではないんじゃないかなw
楽な環境だとは言えなくもないけど
今時ならScalaやJRubyでゲーム製作ってのもアリかもな

353:名前は開発中のものです。
09/10/02 20:52:06 y+fTXPF0
最近、Applet動かすとき一瞬で起動してきもちい。
Java6になってだいぶ良くなった気がする。
FlashやDirectXに浮気せずAppletやJOGLで頑張りますよ。
やっぱり俺はJavaが好き。

354:名前は開発中のものです。
09/10/03 01:10:42 odjYAQpQ
>>348
俺の中ではC++とC#はVisualStudioのイメージしか無いからGUI関連は充実してると思ってた

>>350-351
JavaはなんだかんだでWebアプリが主戦場だからね
SwingはSwingUtilities使ってイベントディスパッチスレッドでアクセスするようにしなければならないとか、仕様だかバグだかわからん状態だし
Sunも買収されちゃって、今更Webアプリ以外の分野に大量の技術者投入してくれるとかありえないだろうから、この状態のままだろうね、、、
JMonkeyEngineとかもあるけど、プロジェクトの勢いはあまり無さそう

それと、ネットに落ちているサンプルコードが少ないのが痛いかな
C++は大量にあるのに、Javaは少ない

どう考えてもC++よりJavaの方が書きやすいし、C#と比べても別に遜色ないから、もっと流行って欲しいけどなー


355:名前は開発中のものです。
09/10/03 17:26:03 9zReYZbr
>>354
GUIは安全にやろうと思ったらシングルスレッドモデルになるのはなのはどれも当たり前
Javaに限らんぞ

356:名前は開発中のものです。
09/10/03 19:21:25 /8MbXK30
マルチスレッドなGUIライブラリを作ろうと思ったらそういったものも作れるはずだけど、
GUIを扱う人すべてがマルチスレッドに精通してないといけなくなってしまう
スレッド、同期、排他制御等の正しい知識がなくこれらを扱えない人はGUIお断り、ってのは門戸が狭すぎる
そもそも別スレッドを起動しなきゃイベントディスパッチスレッドを気にする必要なんて無いんだから、
スレッドを使う人だけがスレッドを知ってれば済む今の仕組みがたぶん一番いいんだよ
ところでゲームでSwing使うの?

357:名前は開発中のものです。
09/10/03 19:23:55 Z1ihaRDW
>>356
Window動作するゲームだとJFrameは使うと思う。
JMenuBarとかも使われそう。

358:名前は開発中のものです。
09/10/04 02:19:53 w83xHhR5
どうせBufferStrategyかGLCanvasになるからFrameにCanvas張り付けて中で全部自前だなぁ。
設定ダイアログを別に付けるならSwing。

359:名前は開発中のものです。
09/10/04 08:22:05 c2zkrtYj
>>358
基本的にFrame一個作って、その上のBufferStorategyに全部処理させるのが基本なのか
RPG作るとしても、コマンドとか戦闘画面とかは全てお絵かきすべきであって、いちいち新しいFrameとかPanel立ち上げたり、コマンドをあらわすTable作ったりはしないのが正解かな


360:名前は開発中のものです。
09/10/04 10:18:10 ouCzztcy
>>359
Swingコンポーネントを使う意味があるとしたらSLGだと思う。
RPGとかACTなら、基本的に全部自前で処理じゃないかと。

361:名前は開発中のものです。
09/10/04 13:09:00 GkatRSH2
RPGのウィンドウやなんかは独自L&F実装したSwingでやってもいいんじゃね?

362:名前は開発中のものです。
09/10/04 13:10:18 Ts8Codr2
半透明パネルとか可能だからそれもありかもね。
メリットとしては、マウス関係のイベントとかをswingで取得できることか。

363:名前は開発中のものです。
09/10/04 14:19:32 xOGATpGU
GLCanvas/GLJPanelとかつかってるならSwingの重ね合わせ鬼門だな

364:名前は開発中のものです。
09/10/04 16:03:38 TgmjWOtf
SwingとJOGL混ぜたら透過周りがすごいことになったような・・・あれはJava3Dだったかな。

365:名前は開発中のものです。
09/10/04 16:06:49 VE8wUZqH
どうすごいの?

366:名前は開発中のものです。
09/10/04 18:54:04 yghp6+zA
>>364
GLCanvasとswingは混ぜるな危険だけど、GLJPanel使えば問題ないんじゃないか?

367:名前は開発中のものです。
09/10/04 22:32:16 xOGATpGU
>>366
やってみればわかる

368:名前は開発中のものです。
09/10/05 04:32:06 /FBVWM1E
いまのGLJPanelはまだ不安定な部分が

369:名前は開発中のものです。
09/10/06 15:09:55 DNDsP0px
JAVAのゲーム作り関係の本で初心者にお勧めなのってどれだろう?
古すぎるやつは買わないほうがいい?
amazonの中古で1000円切ってるのあるけどさ

環境はeclipseです

370:名前は開発中のものです。
09/10/06 23:20:12 1V/8RsIs
基本的な質問かもしれんが、RPGとかシミュレーションを作成する場合、命令入力やステータスを表すWindowをあらわすクラスを生成して、それをpaintComponent(Graphics g)で描画するのが基本なのかな?
Webアプリしか作ったこと無いから、イメージがわかない

>>369
「14才からの~」が評判良かったような気がします
読んだことは無いけど



371:名前は開発中のものです。
09/10/07 00:18:11 wMLe0J1A
>>370
アクション要素なしならそれでもいいけど、どの方式でやるにしろ、
オフスクリーンバッファで全部描画処理を完成させておいて。

そうすれば出力方法は何でもいいし、ウインドウにあわせて描画を拡大縮小させるとかできるから。

paintComponentやpaintメソッドとかでゲームのオブジェクトの描画処理はだめね。
また、これらのイベントの場合ダブルバッファだと問題が起きるからトリプルバッファにすること。

372:名前は開発中のものです。
09/10/07 01:47:32 0p5gfWJh
アクティブレンダリング自前で書く。

373:名前は開発中のものです。
09/10/07 19:16:17 8uGSJp5y
>>369
少なくともJava5以降を対象にしたものを買った方がいい。
総称型や拡張forのお陰でプログラムスタイルがかなり違う。

ただ、本気のゲーム作りのための参考書ってあんまり無い気がする。
JOGLやLWJGL系は皆無。

374:名前は開発中のものです。
09/10/08 11:14:07 LM8f1SUk
>>371
ごめん、何を言っているのかまったく理解できない、、、
レベル低くてすみません
paint系メソッドはすでに非推奨なの?
てか、描画はどうすればイイの、、、

サンプルになるものとか紹介していただけると嬉しいです


375:名前は開発中のものです。
09/10/08 19:49:44 C8pidVMn
>>374
単にGL使えって意味じゃないか?
GLCanvasとかGLJPanelを使う場合、paintとかpaintComponentじゃなくて
displayが呼ばれる。

376:名前は開発中のものです。
09/10/08 21:52:03 LM8f1SUk
>>375
2DのゲームでもすでにGL...系使うのが当たり前なのかな
俺はてっきり、JFrameに直接描画するか、上にJPanelかなにか張って、それにpaint系で描画するものだと思ってた
いずれにしても、参考にしても良いサンプルが欲しい…

377:名前は開発中のものです。
09/10/08 23:44:25 C8pidVMn
2DゲームならGraphicsクラスのメソッド使ってもそれなりに実装出来そうなきがするなあ…
加算半透明以外の要素は大体そろってるし。

378:名前は開発中のものです。
09/10/09 01:14:28 JcFEYjJn
>>376
paintのメソッドでもかまわないよ。
ただし、きれいにまわすには描画用のバッファが2枚必要。
paintイベントはOSによっていつ呼ばれるかわからないというのに注意しないといけないからね。

再描画はrepaint自前で呼び出すのみにするという方法もあるけどフレームレートが言っていないと厳しい。
その場合setIgnoreRepaintをよんで無効にしておくこと。GLでもそうだけど。

379:名前は開発中のものです。
09/10/09 20:00:50 kPk3xGOi
Java5以降は標準でダブルバッファだと思ったけど、トリプルバッファまでやる必要あるかなあ…?

380:名前は開発中のものです。
09/10/09 20:37:11 4MfvuD2J
>>379
>ダブルバッファだと思ったけど
そうなの?
だとすると、トリプルバッファ以上やらない限りはBufferStorategyは使わなくていいのかな?
あれは、JFrameとCanvasでしか使えなかったから、JPanelで自動的にダブルバッファにしてくれるなら、嬉しいよね

381:名前は開発中のものです。
09/10/09 21:35:46 JcFEYjJn
>>379
Swingの自動のダブルバッファとは違う話。

ゲームの処理がまわるスレッドがあると思うけど、そこで使う描画バッファが1枚だと
次のフレームの描画に使用可能なバッファが存在しない。

paintイベントで表示するときに前のフレームで描画したバッファが使用中だから。

アクティブレンダリングならその問題は起きないが、フレームレートが一定はないと厳しい。
paintイベントはいつ起こされるか判らないから。

382:名前は開発中のものです。
09/10/10 13:58:45 hq8APMAs
>>381
自分が前に実装した時はゲームスレッドを用意して、そこからrepaint呼ぶようにしてた。
この場合、システムがrepaintしたときは内容に変更が無いから同じ絵が再描画される。
フレームレートとかはあんまり気にしてなかったな。

実際問題として、全画面のアクションゲームとかでなければあんまり気にしなくていいと思う。

383:名前は開発中のものです。
09/10/10 14:55:42 nBhhlmBk
>>382
そのrepaintする際のバッファが1枚だと描画中はだめなんで排他制御が必要になる

384:名前は開発中のものです。
09/10/10 15:12:17 ufkJMSFN
1フレーム画面が乱れるとかなら、ホビーゲームのレベルで特に気にしなくてもいいような。
そこでハングアップにつながるようだと問題だけど。

385:名前は開発中のものです。
09/10/10 18:56:19 nBhhlmBk
イベントディスパッチスレッド以外でゲームの描画すると不具合は生じるね。

フリーズ等はないとは言い切れない。

ハードウェアアクセラレーションを使うってことは実装上オフスクリーンバッファを
VRAMに確保しているはずなのでへんに動くと怖い気もする。

実装依存にするのも将来のバージョンで動かなくなる可能性もあるし。

ダブルバッファの場合ゲームのスレッドから描画処理だけ抜き出して
InvokeAndWaitで処理させてからのrepaintというのが必須になる。

386:名前は開発中のものです。
09/10/10 23:49:32 GjpbDtnI
トリプルバッファってのはオフスクリーンバッファと画面エフェクト合成用バッファがいるって意味じゃね?

>>385
AWTと並列処理の組み合わせでいける。シングルスレッドなSwingを使うから余計変なことになる。
というかそもそもパッシブレンダリング使うからrepaintまわりで排他制御が必要になるんじゃ?

387:名前は開発中のものです。
09/10/11 01:22:50 ssskajUX
AWTもシングルスレッドモデルだよ。
それに今の話の流れはパッシブレンダリング上での話。

388:名前は開発中のものです。
09/10/11 10:14:08 Vof/a9NH
排他処理する場合、repaintをオーバーライドする時にsynchronizeつければいいだけ?

389:名前は開発中のものです。
09/10/11 11:08:47 ssskajUX
描画バッファに対してrepaintの中と描画処理部分にsynchronizedブロックをつけるとよい。
少しでも高速化したい場合はLock構文を使うとよい。

したがって描画部分をまとまるようにすること。ゲームのロジックの中で描画していくのはさける。

390:名前は開発中のものです。
09/10/11 13:10:06 b7DeQBBg
14才からはじめるJavaゲーム製作だかなんだかの本を軽く立ち読みしたけど、排他制御には触れていなかったような、、、
JFrame上でBufferStoratgy使って描画するように書いてあったと思うんだが、これだけじゃ、不足なのかな?

391:名前は開発中のものです。
09/10/11 13:21:07 S5wUXJ38
JOGLだとFPSAnimatorに任せられるから、その辺は全然気にしたことなかったなあ。

392:名前は開発中のものです。
09/10/11 13:22:26 ssskajUX
>>390
それはアクティブレンダリングでしょ?今回の話とは違う。
ペイントイベントつぶすsetIgnoreRepaint()使ってるはず。

393:名前は開発中のものです。
09/10/11 13:25:58 ssskajUX
>>391
FPSAnimatorはイベントディスパッチスレッド上でdisplayがきれいに動くようになってるからね。

AnimatorやJava2Dなどでパッシブレンダリングやろうとすると自前での管理が必要になる。

394:名前は開発中のものです。
09/10/11 15:26:14 7VD6H4ki
しかし、なかなかゲームとしての完成品にたどりつかん。
「JOGLをいれてGLCanvas…、おお、動いた!」
「GLSL? ためしにウェブ参考にPhongシェーダー実装して…、おお!これがピクセルシェーダー!」
みたいに、断片断片を動かしては満足してしまう。
社会人になると、なかなか本腰いれてやろうって気にならないしなあ。

jMEは面白そうだが、趣味のために英語資料を読むのはめんどい。
日本語資料がもっと充実してるといいんだけど。

395:名前は開発中のものです。
09/10/11 17:50:39 /J/iPP1R
動画がうごかねぇ・・・
マック環境でうごかねぇ・・・

396:名前は開発中のものです。
09/10/11 20:53:55 uhiVH5l+
さすがにそれだけではなんとも言いようが無い

397:名前は開発中のものです。
09/10/11 22:54:45 ZadvBdPe
AWTはシングルスレッド前提じゃないでしょ?

398:名前は開発中のものです。
09/10/12 01:11:47 /6vHGSxG
イベントディスパッチスレッド前提なんでおなじだよ

399:名前は開発中のものです。
09/10/12 14:54:55 2xaDgDSW
そういや、みなさんモデル情報の持ち方ってどうしてる?
三角分割するのは当然として、自分はフラットポリゴンとグーローポリゴンが混在する場合の効率のよい
持ち方が今一つ詰め切れて無い。

現状だと、ポリゴンが頂点を共有しないという不効率な実装になってて、かなりメモリを浪費してる。
というのは、メタセコイアの形式に慣れてるんで、ポリゴン中心の設計だから。
マテリアルをポリゴンごとに指定できるようにすると、座標を共有する頂点でも
ポリゴンごとに別管理しないといけない。

正四面体で言うと、本来なら頂点は4つで済むところ、各ポリゴンが頂点を指定するので
内部的には12頂点が存在する。
そのかわり、各面それぞれ色が違っても問題ない。

頂点中心の設計にするとこの辺は効率化できるはずなんだけど、そうすると
各面それぞれ色が違うような多面体は例外処理が必要になり、メタセコイアからのインポートが面倒になる。
現在思案中。

400:名前は開発中のものです。
09/10/12 17:19:28 ry4or4sG
>>399
> マテリアルをポリゴンごとに指定できるようにすると、座標を共有する頂点でも
> ポリゴンごとに別管理しないといけない。

メタセコイアは面がマテリアル番号を持ってるから、頂点を共有して面を色分けしても
何の問題も無いはず。

部分フラットシェーディングについては俺も頂点を共有しないことで対応してるよ。
フラットな面がある程度多いなら、その範囲だけ別オブジェクト(レイヤ)にして
スムージング角度をゼロにすれば、範囲内外の境界以外は頂点を共有できる。

401:名前は開発中のものです。
09/10/12 17:32:20 2xaDgDSW
>>400
>>399だが、glBegin~glEndだとマテリアルバラバラでも問題ないんだけど、
同じ頂点でマテリアルが違う場合、VBOにできないんだよね。
あれは頂点を座標、法線、テクスチャ座標でパックするから。

まじめに考えると、メタセコから読み込む時点でその頂点を共有するポリゴンを解析して、
法線とマテリアルとテクスチャ座標が同じなら同一頂点とみなし、そうでないなら別の頂点とみなすという
処理をいれるのが一番という気がしてきた。

内部フォーマットはあくまでOpenGLに寄り添う方向性で。

402:名前は開発中のものです。
09/10/12 18:01:47 ry4or4sG
>>401
デバイス側も含めた問題でしたか、トンチンカンなレスしてすみません。

403:名前は開発中のものです。
09/10/12 18:07:34 2xaDgDSW
いや、別に謝られるような内容じゃないっす

あと自分のソース見直してみると、モデルのクラスに
頂点登録やポリゴン設定とかのメソッドがあって、設計の不備に気が付いた。

同じクラスにしてるんで面倒なことになってたようだ。
つまり、頂点やポリゴン単位で細かく制御できるクラスと、
「コンパイル済み」みたいな、Bufferで管理するクラスに分けるべきだったんだな…
どうせいったんVBOにしたあとは頂点とかいじれなくなるんだし。
(Java3Dはそういう発想だね)

ただ、その場合はボーンとかの処理をどうするか。
頂点座標をCPUから参照できなくなるから、頂点とシェーダを使わざるを得なくなる気がする。
なんか、趣味プログラマには敷居の高い領域になってくるなあ。


404:名前は開発中のものです。
09/10/12 20:33:25 84ezoqsI
エディタの場合、考え方として、
「このポリゴンはどのマテリアルか」になるけど、
ゲームとして実装する場合は
「このマテリアルが使われているのはどの頂点か」という考え方になるわけだよね。
そうしないと、描画中にマテリアルの切り替えが大量に発生してしまう。

405:名前は開発中のものです。
09/10/12 23:01:44 84ezoqsI
Nordとか見ると、Javaゲームもかなりのことができるんだよね。
WebStartでMMOゲームが起動するというのは、オンラインゲームの管理としては
非常に分かりやすいし。


406:名前は開発中のものです。
09/10/14 00:20:23 thuOI5ho
半年振りくらいにこのスレ来たけど、
まさかの盛り上がりだな。
俺も2年ほど放置したアプレットゲームの制作を再開するか。

407:名前は開発中のものです。
09/10/14 04:19:41 1Hrt5Svp
皆さんJAVAでゲーム作る際に環境は何を使ってゲーム作ってますか?
俺はエクリプスです

408:名前は開発中のものです。
09/10/14 05:21:18 dqL7qzpW
EclipseときどきEmacs最後にantでjar化。

409:名前は開発中のものです。
09/10/14 12:51:21 yCmNZ1Ay
EclipseのJAR Export Wizardって微妙に使いにくいと思ってたんだが、そうかみんな使ってないのか
俺もantかなんかにしよ・・・

410:名前は開発中のものです。
09/10/14 14:34:05 Ji4Xwih5
NetBeansだな。
ビルドにant使ってるのでカスタマイズも楽な上に、
何もしなくてもライブラリへパスを通す設定がされた
実行可能jarが出来上がるようなant設定がしてある。

Eclipseのプロジェクト開けるのでEclipse使いにもやさしいかも。

411:名前は開発中のものです。
09/10/14 22:09:11 M2HVcjGa
JDK6 + eclipse3.5で今度こそゲーム作る
シミュレーションRPG作る
絶対に作る
宣言しておけば、たぶん作り始めると思う


412:名前は開発中のものです。
09/10/14 23:32:04 L+b49hPv
宣言すると同時にコテつけて
ここで進行を記録しておくと、さらに完成に近づくと思う

413:名前は開発中のものです。
09/10/14 23:39:13 l8AjUbxo
2DベースのSRPGなら、比較的完成にこぎつけやすいゲームかも。
シナリオの区切りがあるから、メリハリもつきそうだし。

414:名前は開発中のものです。
09/10/14 23:54:20 VKlbPbBA
EclipseでJBuilderみたいな感じのjar作成ウィザードが使いたい

415:名前は開発中のものです。
09/10/15 00:24:31 IgjPbfHm
>>411
応援するよ
がんばれ
俺もなんか作る

416:411
09/10/15 21:22:48 lHaDd0Hq
応援ありがとう
いきなり仕事が忙しくなったので、開発ははかどらないかもしれないけどがんばるよ
とりあえず、毎日何かすることに決めた
今日はJDK6のアップデートとeclipseのアップデートをしました

このスレのログみると自分はかなり低レベルだけど、とりあえず、簡単なものから作ろうと思います

コテハンとか進行記録は無理そうだけど、毎日なにかやるよ!

417:名前は開発中のものです。
09/10/16 00:36:05 PZVqNOq4
俺もがんばろうっと。
作成しているゲームがあまりに恥ずかしいので
アドレス晒せないのが申し訳ないが。

418:名前は開発中のものです。
09/10/16 18:37:59 Wrwd6j5r
誰か僕にLWJGLを教えてください

419:名前は開発中のものです。
09/10/16 23:44:40 T6yXgGZl
そもそも、LWJGLでゲーム作ってる日本人って三桁いないと思う。
…二桁もいないかも。

420:名前は開発中のものです。
09/10/17 15:16:24 YqwXxzdo
昔は居ただろうが今は標準拡張のJOGLが正式リリースされたからな。

421:名前は開発中のものです。
09/10/17 18:44:41 oMDkhpiN
…まあ、JOGLでゲーム作ってる人もそんなに多いとは思えないけどな…
そもそも、日本でJavaゲームというと商用はほとんど皆無だし、フリーor同人ゲームにしてもほとんどがWindowsだし。

Win32>.net>flash>mac>Javaと、勢力順でこんな感じじゃないかと思う。

422:名前は開発中のものです。
09/10/17 22:31:03 21crL4yP
Win32>flash>.net≒Java>mac

だろ

423:名前は開発中のものです。
09/10/18 17:01:35 cz1CRBCl


424:名前は開発中のものです。
09/10/18 17:29:54 uM0lrslx
オライリーからColladaの解説書とかでないもんかな?
OpenGLと相性のいい設計になってるはずだし、JOGLゲームで3Dを扱う場合の参考になりそう。
というか、正直、仕様書読むのめんどいので…

425:名前は開発中のものです。
09/10/19 00:47:05 Opw9A39m
ツクール系>個人製作のアドベンチャー作成スクリプト>>>>>>>>>>>>>>HSP>>>>>>>>>>Javaとか.netとかじゃね?
吉里吉里とかも意外と使ってる人多いし、HSPも多い、ツクール系に関してはものすごく多い
それと、ちょっと前まではVisualC++が結構多かった気がする

426:名前は開発中のものです。
09/10/19 02:14:36 xfJue+KX
何いってんの?
ここはPLでゲーム作るスレ。ここだとそのツールから作るわけになるんだが。

427:名前は開発中のものです。
09/10/19 08:05:58 7FbO+rDm
バカはすぐ同人やフリーウェアの話をしたがる。それはこの板の伝統。

428:名前は開発中のものです。
09/10/20 22:17:16 DCTVxMp1
>>426-427
すみません。
馬鹿ですみません。
スレタイが「Javaゲーム作成総合スレ」なので、基本的にJava以外の話は禁止だと思ってました。
しかしながら、.netだとか色々な話がでてきたので、自分も調子にのってしまいました。
本当にすみません。
もう、二度としません。


429:名前は開発中のものです。
09/10/20 22:54:00 Ly5jz5+S
.netはPLでflushはいまやASがあるだろ。ツールがスレチと言ってんだろ。


430:名前は開発中のものです。
09/10/21 00:24:52 65KOfpJq
しかし、話がJOGLに行ってしまうとJava固有のネタはあんまりでなくなってくるな。


431:名前は開発中のものです。
09/10/21 07:09:58 ObmM+1fr
GLCanvasとか語ればいいではないか

432:名前は開発中のものです。
09/10/21 23:49:03 L3jjgFOp
GLCanvasとGLJPanelはどっちが好き?
自分はSwingと組み合わせることを考えて汎用性でGLJPanelを使っているが、
性能的にはGLCanvasの方が良いって聞くよね。

433:名前は開発中のものです。
09/10/22 14:49:09 fafaEc4r
ゲームにSwing使わないんでGLCanvas

434:名前は開発中のものです。
09/10/22 17:01:42 FB3nMFnG
統合環境等ツールで使いたいのならGLJPanel
ウインドウ占有するゲームならGLCanvas

ただし、GLJPanelを使えば重ねあわせがちゃんと動くというものでもないのが厄介。

435:名前は開発中のものです。
09/10/22 23:48:12 JRkMaRys
OpenSceneGraphがJava対応してくれないもんかな。
jMEに比べれば資料も多いし、ゲームにも使えそうだし。

436:名前は開発中のものです。
09/10/23 18:21:42 GVwudGx0
Javaで商用ゲームが少ないのは、動作確認がしんどいからというのがあるのかな?
OpenGLからGPUが叩けるようになると、VM上で動くことのペナルティはもはや
ほとんど問題じゃないような気がするし。

…もっとも、フリーや同人ゲームも少ないから、単にC++プログラマとJavaプログラマの
数の差が大きな理由かも。

437:名前は開発中のものです。
09/10/23 22:17:10 WlC+lKAY
デスクトップのjavaやってるマが少ないのかと。
海外のネットゲーだとクライアントがjavaだったりする。マイナーだが。

438:名前は開発中のものです。
09/10/23 23:34:50 GVwudGx0
「javaでもそれなりのゲームが作れるんだぜ」
というデモンストレーションがJake2だったと思うんだが、
だからと言ってJavaゲームが登場するわけでもなかったね。

Javaはデバッグしやすいし、プログラム作成の工数はC++系よりも少なくてすむと思うんだが、
最近のゲームの工数だとデータ作成が圧倒的で、プログラムの占める割合はそれほど多くない感じだしな…

439:名前は開発中のものです。
09/10/24 00:18:35 xyHZAjLv
工数減らすアドバンテージなら既存のLLのが大きいし学習曲線もぐんと右肩上がりだから
いっそそれでフレームワーク作っちゃおうていう発想も十分通用するからね。
javaは色々容易ですよは選択肢として弱い。
じゃあjavaでどこまで作れるの?って疑問に直行じゃないかねぇ。
javaでゲーム作ったことないなら至極当然だけどこういう感じで作りますってサンプルが少ない。

あとはライセンスかね。java界だとオープンソースが多いからやれGPL,LGPLになっちゃう。
ライブラリ探してる段階でogg vorbisデコードにLGPLですとか言われるとほかに無いかと思うだろう。
C++だとdeeたんのアレがあるし。
ファルコムからエロゲ屋までどこでも見るぞアレ。

440:名前は開発中のものです。
09/10/24 00:59:43 QEmyKo7r
GPLはともかくLGPLは問題になるとは思えんが

441:名前は開発中のものです。
09/10/24 01:16:19 wzkOY8Na
PS3LinuxでJOGLが使えたら、ちょっと面白げではあったんだけどね。
PCで作りかけのゲームとか動かしてみたかったし。
…現実にはGPU封印だったけど。

442:名前は開発中のものです。
09/10/26 03:39:44 PLJeDwX/
よし!俺がJavaでゲーム作るお!
半年ロムって待ってろ!!!

443:名前は開発中のものです。
09/10/26 22:06:21 hllCy56y
仕事や学校に通いながらの半年ってけっこう短いけどな…
落ちものパズルとかならどうとでもなるだろうけど、
本格的なのを最初から作ろうとするとまず挫折するよ。


444:名前は開発中のものです。
09/10/26 22:35:09 ZHbA3j0j
まぁ、このスレの平均的な住民像は「35歳独身無職引きこもり」だから何とかなるだろ


445:注目
09/10/28 11:33:04 QwfmzkGR
696533203124999



中学生が 自主制作ハメ撮りAV 売り捌いてたらしい ★12
スレリンク(news4vip板)


まとめwiki
URLリンク(www31.atwiki.jp)




805816650390624

446:名前は開発中のものです。
09/11/03 23:50:41 5Dn8MK58


447:名前は開発中のものです。
09/11/06 02:47:44 eguNfchF
しゅ

448:名前は開発中のものです。
09/11/10 23:28:35 jiRKtvC7
保守するならついでに話題提供してくれよ。例えばJavaFXとかってどうなの?
ムービー対応してるなら、割と本格的なゲーム基板になり得るの?

449:名前は開発中のものです。
09/11/12 08:13:58 NaPi8Zf3
最近Javaを始めたのですが、みなさんよろしくね!
保守

450:名前は開発中のものです。
09/11/13 00:18:46 sBpNol3C
>>448
スタンドアロンの配布が絶望的な時点でFXはねーよ
そもそもメリットないし

451:名前は開発中のものです。
09/11/13 09:34:44 ROqonUQx
FXは位置的にはSilverlightとかFlashの対抗馬なんだよな
昔のApplet全盛期には考えられないけど、完全に後塵を拝している感があるな

452:名前は開発中のものです。
09/11/17 12:20:38 FGBrHn83
JAVAアプレットでシューティングゲームを作っているのですが、 サウンド関連で質問があります。
au形式だとかなり音質が悪いので、wavでサウンドを実装したいのですが、 そのままのwavでは容量が大きすぎるので、中身mp3のwavに変換したら 音がなりませんでした。
ある程度の音質を保ったまま、JAVAアプレットで実装可能で容量の小さい形式に変換する 良い方法はありませんか?

453:名前は開発中のものです。
09/11/17 18:49:43 uPDP5QI5
現在のJavaで圧縮音源に対応するには外部ライブラリが必須。
どうしても外部ライブラリを使いたくない場合は、java.util.zipパッケージの機能でwavをzip圧縮して使う。
mp3と違って容量が1割くらいしか減らないけど。

454:名前は開発中のものです。
09/11/17 22:09:19 6v3HQdPf
JavaSoundは無圧縮WAVとauのみかな

mp3はライセンスが絡むので公開するならやめとき

わからないならwavのビットレート下げるのが一番いいよ
たとえば効果音はステレオである必要は大概の場合ないし、8bitでいいよね
8bit-11KHz-monoならそれほどでもないかな
音質が問題になるようなものは22KHzにすればよい

BGMでストリーム再生するならoggVorbis等のほうがよい
これはWindowsでも同じだが

ライブラリはググれば一発で出てくる

455:名前は開発中のものです。
09/11/17 23:53:48 6cI0Sz7G
Vorbis SPIでもバンドルしてJava Soundでいいんじゃないだろうか。
俺はBGMはogg vorbis、音声はFlac、ジングルは無圧縮wavにしてる。

456:452
09/11/18 19:56:52 aee6rcNi
>>453-455
レスありがとうございます。
アプレットは勉強し始めたばかりで分からないことばかりですが、
皆さんのレスを参考に調べてみます。

457:名前は開発中のものです。
09/11/18 23:29:17 74GYtLg5
Vorbis SPIはバグもちなのが厄介
Jorbisのバグつきサンプルそのままいれこんでるっぽい

458:名前は開発中のものです。
09/11/20 22:43:35 ukbsOzCr
音楽ながしたいなら、画面にテキストで「このシーンは○○のCDをかけながらプレイして下さい」とか出したらいいんじゃね?
そしたらdrawStringかなにかの知識さえあれば問題ないし

459:名前は開発中のものです。
09/11/20 22:53:59 R9LWndUv
真面目にいってんの?

460:名前は開発中のものです。
09/11/21 07:54:57 a9o8nWDh
著作権の問題も解決!

461:名前は開発中のものです。
09/11/21 13:50:51 GMSZKW+x
BGMならApplet.getAudioClipでmidiが指定できるんじゃなかったっけ
実行環境が対応してるかは知らんけど

462:名前は開発中のものです。
09/11/21 15:09:40 hakoreVR
mp3といってるからサンプリングデータがいいんじゃないの?

463:名前は開発中のものです。
09/11/21 17:36:08 QGK3+ipq
2Dポリゴンでゲームを作ってみたいんだけど、JAVAでできる(動く)かな?

464:名前は開発中のものです。
09/11/21 19:55:05 cRsxZ2aR
2Dポリゴンてイミフ

465:名前は開発中のものです。
09/11/21 22:42:39 QGK3+ipq
実は俺もよく知らないんだけど・・・
↓みたいな感じの奴
URLリンク(www.youtube.com)

URLリンク(ja.wikipedia.org)
本作の特徴である、2Dポリゴングラフィックや滑らかなモーションは、近年において馴染みのある3Dポリゴンやそれを動画化したムービーではなく、座標変換済み頂点設定を使用した頂点フォーマット2Dポリゴンを、リアルタイムで演算し描写させると言う手法






466:名前は開発中のものです。
09/11/21 22:53:23 TCiZ9uuf
処理上は3Dとかわらなさそうだからjoglつかえばいいんでない?

467:名前は開発中のものです。
09/11/22 09:05:54 qvE9fErr
Zソートなんてどの環境でもできるだろ・・・

468:名前は開発中のものです。
09/11/22 22:17:05 OxEoSOnU
ワールド変換を事前にやってるだけに見えるんだけど

469:名前は開発中のものです。
09/11/23 23:53:05 nfbjfJHk
皆さんは完成させたゲームとかアップしてますか?
アップするとしたら、JREが必要であることをどう説明してますか?
参考にさせてください。

470:名前は開発中のものです。
09/11/24 00:19:25 kmoskJ57
privateJREにすればネイティブアプリと見分けはつかないよ

471:名前は開発中のものです。
09/11/24 16:08:46 lMEz1pzY
JWSとか

472:名前は開発中のものです。
09/11/26 20:09:00 2ELhHTEW
皆さん、逆コンパイル対策は実施してます?
難読以外で

473:名前は開発中のものです。
09/11/26 20:35:30 4ONdMJCg
一応してるけど無意味かもなぁ

474:名前は開発中のものです。
09/11/26 23:15:04 mierGwHW
>>470-471
調べてみます
ただ、その前に配布するソフトを完成させなきゃならないんですけどね^^;

475:名前は開発中のものです。
09/11/27 00:12:22 8UUt4tMd
逆コンパイルを防ぐ意味ってあるの?
不正防止ならユーザーがホストになれないような
ネットワークゲームとかでも無い限り無理でしょ。

476:名前は開発中のものです。
09/11/27 13:41:24 jadUzCaz
>>475
一部だけ書き換えて我が物顔で再配布する奴がいるんだよ
やられたことないのか?

477:名前は開発中のものです。
09/11/27 18:54:28 07MHdjDR
海外の鯖ちょっと探すとわんさか出てくるよな。
特に勝手に翻訳されたflashゲー。

478:名前は開発中のものです。
09/11/28 13:25:59 jEq3DzrB
>>476
いつかはコピーされてしまうようなゲームを作りたいです

479:478
09/12/07 19:23:11 vxMhXY6d
すみません。
私の書き込み以降書き込みが無いのですが、なにか気に障ることでも書き込みましたでしょうか?

480:名前は開発中のものです。
09/12/07 22:42:08 EiZDgP+H
もともと過疎気味で話題が無ければ特にスレすすまない

481:名前は開発中のものです。
09/12/08 03:25:05 o4DmhHXZ
そうですか
よかったです

私に話題を振る能力がないのが残念ですが

482:名前は開発中のものです。
09/12/08 16:47:34 gpTckhGn
じゃあ俺が振る。

・Androidでゲーム用ミドルウェア作ってるやつ居る?
・javaでモーションポートレート実装しようぜ!

これだけしかでなかったorz

483:名前は開発中のものです。
09/12/13 21:48:15 mcEmnsXb
おまいら、shortって使います?メモリ節約なら使うべきだが
キャストうざいのでintだけです、なんか間違ってる?

484:名前は開発中のものです。
09/12/13 23:30:09 8aTa/ExS
でかい配列作るときと外部APIとのやり取りぐらいにしか使ってない
ふと思ったんだがキャッシュにのるかどうかで速度変わったりするんだろうか

485:名前は開発中のものです。
09/12/14 17:36:08 63Ve35Fl
ああ、shortなんてあったなぁ。
どうせ32bit単位に詰められるぞ。

486:名前は開発中のものです。
09/12/14 22:38:17 jRyguNfu
PCならintでいいよ。
配列で大量にもつならshort使ってもいいけど。

487:名前は開発中のものです。
09/12/14 23:44:29 HScypyP7
javaの配列じゃ意味ないだろ

488:名前は開発中のものです。
09/12/15 00:25:50 Xsda0EZ7
nioじゃないと4バイト使います?

489:名前は開発中のものです。
09/12/15 20:42:46 r9J0mMFL
スレチな質問かもしれませんが、
名作ゲームのパロディを作って(Javaアプレット)公開する場合、
キャラクタに基のゲームのスクリーンショットから切り取った物を使ったり、
BGMやSEを録音して使用するのはやっぱり著作権的にアウトでしょうか?

また、キャラクタの色を塗り替えたり、サウンドのキーを変えるなどの加工をしても
回避できませんか?

490:名前は開発中のものです。
09/12/15 21:25:58 wBirmWPL
ダメ。

491:名前は開発中のものです。
09/12/16 13:23:49 HjttIBlj
著作権法と著作関連法くらい暗記して来い

492:名前は開発中のものです。
09/12/16 21:21:26 5APJYesI
ゲームでマルチコアとかどうやって最適化したらいいのだろうか。
描画周りがDepth処理などの関係で単一のゲームループでやってるんだよね。
AIゲーとかじゃなきゃマルチコアとか要らない?

493:名前は開発中のものです。
09/12/16 22:37:51 6cbFeaq2
>>492
すげぇ、、、
俺なんて基本的なRPGすらまともに完成できそうになくてなきそうなのにorz
やっぱ、ソフトウェアは個人の能力差がもろにでるな
まあ、もうちょっとがんばって完成目指すよ


494:名前は開発中のものです。
09/12/18 06:13:38 tQT7ID8W
>>487
WindowsXP sp3 32bit
java version "1.6.0_17" (Client VM)
VM引数 -Xms64M

この環境だとプリミティブ型の配列確保でメモリ使用量変わったよ。
booleanの配列は1bitではなく1byte使ってるがw

1000000個の配列を確保した時のメモリ使用量
long 226,488 → 8,226,504 (8,000,016)
int  226,488 → 4,226,504 (4,000,016)
short 226,488 → 2,226,504 (2,000,016)
char 226,488 → 2,226,504 (2,000,016)
byte 226,488 → 1,226,504 (1,000,016)
boolean 226,488 → 1,226,504 (1,000,016)

おまけ
BitSet 226,488 → 351,504 (125,016)

495:名前は開発中のものです。
09/12/20 13:45:31 +V/0tKfc
それ一次元でしょ

496:名前は開発中のものです。
09/12/20 16:02:53 OajyaggP
>>483からの流れでどこに多次元配列が?

497:名前は開発中のものです。
09/12/20 20:30:53 c3hPAZR6
多次元だとリファレンスの配列になって32bit分喰うっていうのはあるな
しかし1次元少ないから大きい配列だと支配的ではない

498:名前は開発中のものです。
09/12/22 00:27:08 m1M3sFMT
JOGLとJava3Dでゲーム作った.

URLリンク(www10.ocn.ne.jp)

もしプレイしたら,感想聞かせてくれるとうれしい.

499:名前は開発中のものです。
09/12/22 13:35:06 hmqOLPIl
>498
java.io.FileNotFoundException: world.bmp (指定されたファイルが見つかりません。)
at Baller.init(Baller.java:672)
が出るけどいいのかな?

思ったより面白かった 2面とか、次々発生するようにするのかな

だが視点によって変になるときがあるな・・・これはしょうがない?

500:名前は開発中のものです。
09/12/22 19:31:45 m1M3sFMT
>>499
とりあえず使ってないので,ゲームが正常にできるなら良いです.thx.

>だが視点によって変になるときがある
なんかバグはあるかも.

501:名前は開発中のものです。
09/12/31 06:42:10 VlIgB2+S
宣伝age

敵性オブジェクトを実装した.
と言っても,自機に向かって旋回移動して,弾を発射してくるだけ.
障害物などの回避は一切しない.

URLリンク(www10.ocn.ne.jp)

502:名前は開発中のものです。
10/01/03 03:47:49 M0YzzCX0
javaでゲーム作ろうって人こんなにいるんだ。勇気付けられるねぇ。
中身見てないけどjava3dとjoglって組み合わせると良くないとか
聞いたことなくはないけどどうなんかね。

あとjava3dやjoglを使う場合はゲームに始めから同封したほうが
いいと思われるよ。ファイルサイズが何MB増えても、やはりユーザー
としては訳分からんものをとって来させられるのは苦痛らしい。

実行ファイルと同じフォルダに入れてマニフェストファイルから
classpath指定してやるだけで動くから。

503:名前は開発中のものです。
10/01/03 04:55:35 DHnbDAoH
反町って韓国から帰ってきた?

504:名前は開発中のものです。
10/01/03 15:41:51 c4cjbicy
ライセンスがダメなのかなーと思ったけど大丈夫そうだしね
>Java3D

505:名前は開発中のものです。
10/01/03 22:11:43 AXfntCHB
>>502
アドレスを見る限り、そんな容量は使えそうにない人だろう。
ま、どこか適当な場所を用意すれば済むんだろうけど、
そこまでするもんでもないと思ってるんじゃないかな多分。

いずれにしろ俺は遊んでないので、>>502の意見は真理だと思う。

506:名前は開発中のものです。
10/01/04 23:59:02 x7MCfIiy
ocn鯖って10MBしか置けないんじゃ…

java3dってライセンスよく分からないんだけど誰か説明してくれてる人いないのかな…。
再配布に関してはlicenseのRedistributableの項目に「自作アプリから利用する目的のみでバンドル
する場合なら再配布可能」とはあるんだけど、GPL v2 CLASSPATH exceptionというのが
よく分からない。多分「classpathで動的リンクされる場合のみGPL守らなくていいですよ」
ということなんだろうけど、コレを説明している公式の英文が読みづらくて
分からないのよね…。

507:名前は開発中のものです。
10/01/05 20:45:50 Nec4HdHu
>GPL v2 CLASSPATH exception
これどこにある?

俺が読む限りだと、商用/非商用問わず、バンドルする場合で、
修正/変更なしなら再配布可と書いてあるように読めるんだが・・・
もちろんドキュメンテーションや免責を含めろとも書いてあるけど。

508:名前は開発中のものです。
10/01/06 02:40:54 89pgGn6V
URLリンク(java3d.dev.java.net)の「license」の項目に書いてある。
要約するとつまり「一部はBSDだけど一部はGPL v2 classpath exceptionですよ」とある。

GPL v2 classpath exceptionはJDKで新しく採用されたJava関連の特殊ライセンス体系で、
原文はURLリンク(en.wikipedia.org)の「The classpath exception」
以下に書いてあるんだけど、これが読めない…。こんな重要な英文なのに1文がやたら長いって
アメリカンすぎるだろ

URLリンク(blog.taragana.com)に機械翻訳
も載ってるけど英語のほうがまだマシというくらいイミフw

まぁjava3d本体付属のライセンスに>>507以外特に何も書いていないし、おそらく
問題ないんだろうけど…

509:508
10/01/06 02:59:17 89pgGn6V
URLリンク(ja.wikipedia.org)
ごめん。日本語版見つけて自己解決した…。

510:名前は開発中のものです。
10/01/06 22:20:54 IKqkhxN8
その日本語でよく分かるな。

511:名前は開発中のものです。
10/01/09 01:03:31 Vzjk76l2
宣伝age.誘導弾発射を実装した.

URLリンク(www10.ocn.ne.jp)

jogl, java3d のバンドルについては,他人が作ったものをくっつけて配布するのは
なんだか気が引けたし,面倒なのでやってない.

512:名前は開発中のものです。
10/01/09 17:00:15 X21U+ciY
>509のリンク先の日本語が我慢ならないレベルだったので
自分なりに訳してみた
As a special exceptionって段落

特殊な例外として、このライブラリの著作権者は、
独立したモジュールをこのライブラリとリンクして
実行可能ファイルを作ることを、
それらの独立したモジュールのライセンス条項に関わらず許可する。

また、結果としてできた実行ファイルを任意の条項の下に
コピー及び配布することも許可するが、
リンクされた他の独立したモジュール全てに対して
各モジュールのライセンス条項と使用許諾を守る場合に限る。

ここでいう独立したモジュールとは、本ライブラリの派生物でも、
本ライブラリに依拠したものでもないモジュールを指す。

本ライブラリを改変した場合、この例外条項を
改変版ライブラリに適用してもよいが、
そうすることに義務はない。

例外条項を適用する意志がないのなら、
改変版からこの例外条項を削除すること。

513:名前は開発中のものです。
10/01/09 17:12:21 X21U+ciY
URLリンク(www.gnu.org)
classpath自体を改変しないなら静的リンクでも問題なさそうにも見える
間違ってるかも知れないが

514:名前は開発中のものです。
10/01/10 00:39:30 aDa5gCd8
>>509
おお…素晴らしい。もうwikipediaの文章コレで書き換えたほうがいいんじゃないかw

>>513
どうなんだろう。そもそも「独立している」という定義が良く分からない。おそらく
ライブラリA→B→Cみたいに中間コードを噛ませることで
ライセンスを逃れるみたいな状況を回避するために書かれている所もあるんだろうから、
動的リンクか静的リンクかが問題になっていない可能性はある。

LGPL…どんなに巨大なアプリケーションでもLGPLライブラリの派生物だと強制される
GPL classpath exception…独立していると認められればライブラリの派生物ではない

いずれGPL linking exceptionはLGPLと違って結構安心できる(甘いライセンス)はず
でしょう。リバースエンジニア(=デコンパイル)を禁止できないLGPLでは、デコンパイルが
容易なjavaにとってはGPLとなんら変わらないことになってしまう

そういう理由でGPL classpath exceptionが採用されたのかもしれない

515:名前は開発中のものです。
10/01/18 21:11:05 dlNY6FyO
クラスパス例外付けなきゃ生成物までGPL継承するでしょ。
JDKやJava3Dはクラスパス例外付けなきゃそれで作ったアプリケーションまでソース公開になるがPhoneMEはただのランタイムだから付いてない。
そういう問題。
LGPLでソース修正なしに動的リンクすれば独立してると認められるけど
SFSは今後はLGPLではなくクラスパス例外付きGPLを使ってくれとアナウンスしたからそれにしたがったんだろう。

516:名前は開発中のものです。
10/01/18 21:30:35 dlNY6FyO
それよりおまえら、JOGLで2Dと3D混在するときはどういう実装してる?

com.sun.opengl.util.j2dパッケージのレンダラ群つかうと2D描画するときにJava2Dパイプライン経由になって
劇遅になるからdrawImageは板作ってテクスチャ貼ってて感じでやってるけど。
ちなみにGraphics2DをオーバーライドしてるからコードはJava2Dと変わらん。
(というかライブラリで描画バックエンド差し替え可のインターフェイス統一だから
Java2DだろうがバッファーストラテジだろうがJOGLだろうが変わらん)

517:名前は開発中のものです。
10/01/20 21:51:21 kTDZ/tcO
宣伝age 効果音を鳴らすようにした
URLリンク(www10.ocn.ne.jp)

>>516
2D使ってないから,わかんね

518:名前は開発中のものです。
10/01/23 01:00:37 wc6hSibN
俺はjava3dで2D描画してるから分からんけど、D3DだろうがOpenGLだろうが
普通2Dを描画するときも3Dと同じモジュールを使用するんじゃないか。

3D空間上でカメラの向きと垂直に存在する平面にテクスチャで2D画像を入れれば「2D」になる。
基本3Dデバイスを利用して2Dを描画するゲームは大抵そういう処理をしていると思われる。

だから>>516のやった記述で正解だと思われる。

Direct3Dにはトランスフォーム後の(x, y, depth_buffer)座標で描画できるモジュールが
用意されていた気がするけど、OpenGLでは見たことがない。少なくとも私は…。

javaに限らずC#でもdrawImage()は鬼のように重いので、出来る限り使わないのが無難だと思われる。
アニメーションを表示したいなら、あらかじめ複数のテクスチャを用意して
3Dモデル上に貼り付け、表示を切り替えるのをお勧めする。

「2Dも3Dで描画したほうが速い」という事実があるように、一切3D要素を持たない
2D画面でも、3D空間上でテクスチャとして表示した方が速い。

519:名前は開発中のものです。
10/02/06 05:33:18 ajoGIZRs
DirectDrawも下位互換のために残ってるだけで
2D表示はビルボードが推奨されてるね
最近のGPUに至っては2Dのハードウェアアクセラレートをしないのもあったはず

520:名前は開発中のものです。
10/02/06 21:11:41 uFKJJ/6Y
宣伝age 複数ステージを実装したり敵の数を増やしたりした

URLリンク(www10.ocn.ne.jp)

521:名前は開発中のものです。
10/02/16 23:07:36 i+TR14Tz
自作ゲームエンジンを手間かけてVBO化して
「これでOpenGL3.x時代にも完全対応だぜ!」と喜んでいたら、
ディスプレイリスト+glVertexの方がむしろ高速だった。

泣きたい。

522:名前は開発中のものです。
10/02/16 23:46:43 SsJEiu+Z
glVertex()をglDrawArray()にかえるともっと早いぞ。


523:名前は開発中のものです。
10/02/17 20:47:58 WYrUY0x5
ディスプレイリストいいよな
なんで廃止するんだろう

524:名前は開発中のものです。
10/02/18 00:10:33 vE6JDb4d
手続き型臭いからじゃね?
OpenGL ESには元からないでしょ

525:名前は開発中のものです。
10/02/18 00:20:01 TESa05KF
glBegin、glEndを無くしますと言われても、
我々のような趣味のゲームビルダーはVBOに移行すると思う。
ゲーム的な発想からすれば、それほど違和感無いし。

問題は、ゲームやCGが専門でない研究者とか技術者が、
「可視化の手段」としてOpenGLを使っていた場合じゃないか。
彼らに三角形表示するためにシェーダ書いてくださいというのは酷だろう。

…というか、GLUTや赤本はどうなるんだ?

526:名前は開発中のものです。
10/02/18 19:42:59 elgZU+Tz
宣伝age 弾の数を増やしてみた

URLリンク(www10.ocn.ne.jp)

ディスプレイリストって無くなるの? それを使ってゲームを高速にしたばかりなのに.
VBOとやらを勉強しなきゃいかんのかな.

527:名前は開発中のものです。
10/02/18 23:57:56 mVpRkEUs
javaでプログラミングの勉強始めたいが、何をダウンロードしたらいいのかもわからない。
2003年発行の「ゲーム作りで学ぶJavaプログラミング入門」を借りてきたら、
J2SE 1.4.1を使って解説してるけど、ググったらすでにサービス終了だった。
今だったら、どれをダウンロードしたらいいの?
最新のをダウンロードしても、J2SE 1.4.1準拠のテキストで勉強できるの?


528:名前は開発中のものです。
10/02/19 00:11:50 RaKdEUci
>>527
基本的には、1.4世代のコードは最新のJava6でも普通に動く。
ただ、これから勉強するならJava5以降の方がいいと思うが。

529:名前は開発中のものです。
10/02/19 08:11:45 +Pv/DaT4
>>527
入門レベルならJavaのバージョンはあまり関係無いはず
極端に言えばオブジェクト指向言語でさえあればJavaである必要すら無いよ
おれもまともに勉強したのはC++だけだけど、
その他の高級言語もリファレンス読むだけで使いこなせてるし

530:名前は開発中のものです。
10/02/20 16:13:25 MPj95+GX
C++ができれば、大抵の言語は大丈夫だろう。
高級アセンブラ+オブジェクト指向というなんでもあり状態だし。

逆に、JavaからC++に行った時の方が混乱しそうだ。

531:527
10/02/20 16:23:21 oPyOq2Qj
色々と意見をありがとう。
これから始める初心者なんで、扱いやすくて簡単と聞いたJavaから始めようと思ってたんだが
C++から始めた方がいいのだろうか。
ちなみに俺が作りたいのは歴史SLG
3Dとか使うやつじゃなくて、2Dの古典的なやつ。

532:名前は開発中のものです。
10/02/20 16:51:30 nyyTA+gj
>>531
それだと、javaとかC++というより、rubyとかの方が作りやすいかも。

533:名前は開発中のものです。
10/02/20 19:41:53 OJXUuVzK
javaだからRhinoで変態脳汁噴出コード書こうぜ。

534:名前は開発中のものです。
10/02/22 16:03:03 N+EuOs9T
俺はPythonをお勧めする。
もうJavaとかと違いすぎて、新たな気持ちになれた。
py2exeというexe化ツールもあるでよ。

ocamlとかもどうよ。

535:機会おんち
10/02/22 16:27:40 P/wA3u7l
konsoleでjavaのチャットを作りたいのですが作り方教えてくれる方いませんか?
つくれなくてなやんでます・・・。

536:名前は開発中のものです。
10/02/22 17:25:09 yL42oXqc
>>531
携帯アプリやAndroidのゲームはJavaで作られているけどWindowsではほとんど見当たらない。
RubyやPythonも参考になる情報が非常に少ないので初心者には向いていないと思う。
Javaの代替としはC#が良いと思うけど、個人的にはC言語がお奨めかな。
ゲームプログラミングの情報量も多くて勉強し易いしね。

>>535
URLリンク(codezine.jp)

537:527
10/02/22 19:56:56 ybrOgo8H
もうどれで始めればいいのか、わからなくなってきたw

>>536
C言語は難しいというイメージがあるけど、初めてやるプログラミングとして正しい選択なんだろうか。
自分としては

・グラフィックとかはあまり重視しない
・AIとかは出来たら賢く、複雑にしたい。
・わかりやすい、覚えやすいプログラムがいい

この3つのバランスが取れたものを探してるんだけど。

538:名前は開発中のものです。
10/02/22 21:08:23 yL42oXqc
>>537
初心者にとってはどの言語もほとんど差は無いよ。
C言語を奨めたのも参考書や解説サイトが多いからというだけなので。
考えているだけ時間の無駄だし、何でも良いので早く始めた方がいいよ。

539:名前は開発中のものです。
10/02/22 22:44:38 ypbsf0Tk
>RubyやPythonも参考になる情報が非常に少ないので初心者には向いていないと思う。
rubyはともかくPythonはいらないほどにあるだろ。
英語読めないなら別だが。

540:名前は開発中のものです。
10/02/22 22:45:35 HKYfHRuC
読めないんだろほっといてやれよ

541:527
10/02/22 23:36:23 ybrOgo8H
>>538
っしゃあ! C言語で始めてみるぞ。

542:名前は開発中のものです。
10/02/23 11:34:02 4oRWxveO
Cと決めたところで悪いんだが、
Cは実際の画面を作るところで悩むぞw
Windowsなりの実行環境での作法・手順があるから。
素のCじゃなくて、VC++でXNAとかのほうがまし。

Windowsしか考えなくて良いのであればC#で良いと思う。
それこそ書籍・ネットで情報がいくらでもある。
画面・入力部分で楽できる環境が良いからね。

ロジックに凝った物を作るのが目的だったら、言語は何でも良い。
いまあるメジャーな言語なら、やりたい事が出来ない言語なんて無い。

543:名前は開発中のものです。
10/02/23 11:55:47 Q2/MgOuZ
最初と最後で言ってること違う気がしなくもない

544:名前は開発中のものです。
10/02/23 12:19:00 4oRWxveO
俺より先にゲーム作らせないために悩ませてるの!

545:名前は開発中のものです。
10/02/24 00:49:51 r64JoLGK
ゲームのシーンごとにkeylistenerを持たせようとしてるんだけど・・・
そのキーリスナーはシーンオブジェクトへのアドレスを保持していて、そのシーンも
キーリスナーへのアドレスを保持している。そうすると、コンストラクタの中だけでは変数の
初期化ができなくなる。なんかきれいに繕う方法ってない?

546:名前は開発中のものです。
10/02/24 01:16:08 6Ou921by
・循環依存とか相互依存になってるならそれをなくす。
・初期化を遅延する

547:名前は開発中のものです。
10/02/24 10:15:55 vFuKqqgG
初心者がCでゲーム組むとか、おれが初心者の頃なら途中で挫折してただろうな
モチベーション維持のためにも画面に画像を簡単に表示できる環境が良いんでないかい
画面で絵が動くの見るとやる気出てくるよ

548:名前は開発中のものです。
10/02/24 10:51:51 vsS19SCg
>>545
参照(ポインタでもいい)と言わずにアドレスと表現してるところがよくわからん。

549:名前は開発中のものです。
10/02/24 12:06:51 6tuyCZnA
せめてハンドルって言ってほしかったな

550:名前は開発中のものです。
10/02/24 18:49:45 0XfxFTST
>>547
初心者向けの参考書を見ると専用のライブラリを使っているので心配ないと思うよ。
画像を表示させるのも数行のコードを書くだけで実装できる。
Win32APIやDirectXは言語とは別の問題だし、初心者がいきなり覚える必要は無いしね。

551:名前は開発中のものです。
10/02/24 22:51:58 V52UY3a7
もうWinMainはいやだお・・・。
NN5でいやというほどコンパイルしたお。

552:名前は開発中のものです。
10/02/25 00:51:18 2BiifXD1
Javaおすすめ
JDKの中にGUI関連のツールも含まれているからJavaだけ勉強すればとりあえずゲーム作れる


553:名前は開発中のものです。
10/02/27 00:19:42 JpqAtdnH
iPhoneはあるけどAndroidのスレってないよね
ここでやればいいの?

554:名前は開発中のものです。
10/02/27 09:03:22 tyywBe4S
>>553
GoogleAndroidアプリ作成part2
スレリンク(tech板)

ゲ製板には無いね。
まあiPhoneスレも過疎ってるし需要が無いんじゃない?

555:名前は開発中のものです。
10/02/27 12:01:11 3XLimM0d
とりあえず、JDK6とeclipseインストールした
これから何をすればいいんだろ?

556:名前は開発中のものです。
10/02/27 13:18:28 tyywBe4S
目標を立てる。
それによって次に何をすべきかが変わってくるので。

557:名前は開発中のものです。
10/02/27 13:33:04 XM9i9EyX
>>555
とりえあず、作りたいものを具体的に考えてみて、
こことかで URLリンク(javagame.skr.jp)
近そうなものや、役立ちそうな機能を探してみては?

そこのサイト、実行できる jar の中にソースコードあったと思うし、
簡単なやつを eclipse 上で動かしてみるとか。


558:名前は開発中のものです。
10/02/27 13:56:26 I97vF7We
555じゃないけど、入門用の書籍を選ぶのが難しいな。
>>557のサイトで紹介されてる本をアマゾンのレビューで見てみたら
微妙な評価だし。

559:名前は開発中のものです。
10/02/27 14:12:19 sXZ2vpwQ
Javaでゲーム作ってる有名どころの洋書全部漁ればいい。
google book searchでlimited previewくらいできるだろ。

560:名前は開発中のものです。
10/02/27 17:15:15 lw1I8SRq
>>555
まずはキャラクターをカーソルキーで動かしてみてはどうだろう

>>558
参考書籍みてみたが確かにあんまりよくないのが多いね


言語自体がはじめてなのかゲームプログラミング自体が始めてなのか
どっちもはじめてだと多少厄介だが、目標を高くしないなら大丈夫か

EclipseよりNetBeansのほうがライブラリへのクラスパス設定された
実行可能jarが自動で作られるので楽な気もするが


しかしみんなやさしいな

561:名前は開発中のものです。
10/02/27 18:32:56 HySRugFq
宣伝age リプレイ機能を実装した

URLリンク(www10.ocn.ne.jp)

俺の場合は3Dゲームを作りたかったので,JOGLをインストールするところから始めたなぁ.

562:名前は開発中のものです。
10/02/27 18:52:42 6MkUCZcn
学生時代勉強したサーバサイドjavaの知識だけでゲームも組めたよ
"だけ"といってもネットで情報収集はしたけど参考書の類は特に使ってない
基礎さえ身につけば応用で何でも作れるんじゃないかと

563:名前は開発中のものです。
10/02/28 02:12:26 dzeS6sZN
Graphics2DのdrawImageが重いって話が上にあったけど
JDK 1.5 -> 1.6 の流れでかなり早くなったはず。

ほどほどの2Dゲームなら十分だと思うよ

564:名前は開発中のものです。
10/02/28 17:08:33 YamdAbFz
デフォで無効化されてる描画用オプション有効にすれば1.5でもほどほどならでる。

565:名前は開発中のものです。
10/02/28 17:27:40 1xNPxTI/
こんなつぶやき見たいな適当な書き込みにレスありがとうw
せっかくのご好意なので、返信


>>557
最初に色々と読んでみた
ドラクエクローンはゲームループから入力処理、描画まで色々と参考になりそうだね

>>560
Javaはちょっと使ってる
でも、大きなソフトウェアの一部分を言われるままに作成してるので、わけわかめ
Webアプリだったので、Swingとかキーボードやマウスの入力処理は初体験
ゲームプログラミングはもちろん初めて
まあ、コツコツやってみるよ

NetBeansは面白そうだけど、eclipseが主流ならそっちを使いたいな
NetBeansの方が明らかにゲーム製作に向いているなら考えるけど

>>563
いいこと聞いた
ここ見ると色々なフレームワークがあるみたいだけど、勉強めんどうなんだよね
JDKの機能だけでそれなりのものが作れるなら、俺の作りたいのは大戦略とか信長の野望みたいなゲームなので問題ないかな


566:名前は開発中のものです。
10/02/28 20:01:54 9UtHy1EC
>>563
1.5ののdrawImageが遅いっといっても初心者向けでまずそれが問題になるレベルではないだろう
ハードウェアアクセラレーションが効く描画が少ないってだけだ
遅いDXライブラリとかでも普通に使われてるよね

むしろJava2Dはαブレンディングが弱いほうが致命的

>>565
そういったタイプのゲームなら1.3以上なら問題なし

使い慣れてるIDEでかまわないよ
NetBeansはダブルクリックで実行可能なJarが作りやすいというだけ

ただ環境設定画面とかSLGならメイン画面以外のウインドウの描画等はSwingつかったほうがいいかな
環境設定等の定型的な画面ならNetBeansが圧倒的に有利という話にはなるが
必要になったときでいいと思う

567:名前は開発中のものです。
10/02/28 20:38:39 bA//nrm1
よく分かんないんだけど、
αブレンディングが弱いってよく言われるけど
それって誰かが自前で重ね合わせルーチンとか
書けばいいだけのことじゃなくって?

568:名前は開発中のものです。
10/02/28 20:46:02 9UtHy1EC
確かにピクセル単位で処理は可能
ただし、ハードウェアアクセラレーションは効かないからアクション系はきついんだ

VolatileImageはVRAM側へ配置するので(というかJavaSE6から積極的にVRAM使う)
ソフト描画との相性は最悪

というわけでほとんどの人はOpenGLへいく

569:名前は開発中のものです。
10/03/01 01:52:26 D+/GcsWx
-Dsun.java2d.ddforcevram
-Dsun.java2d.translaccel

-Dsun.java2d.ddscale
でおk

570:名前は開発中のものです。
10/03/01 02:42:29 VHqqtoLd
αブレンディングというか、特殊な合成が弱い。
画像のスクリーン合成(1-(1-src)(1-dst))はゲームのエフェクトで良く使うけど、Java2Dでは使えない。
自前で処理を書いても、遅すぎて使い物にならない。他のライブラリに頼るしかない。
この話題>>150-200あたりでも出たな

571:名前は開発中のものです。
10/03/01 07:27:10 W0xt/zd5
java3Dでゲームを作ろうとしているんですけど、市販されているゲームのポリゴンと、Geometrryクラスで定義したポリゴンって何か違いがありますか?
何かイメージと根本的に違う様な気がします・・・

572:名前は開発中のものです。
10/03/02 23:07:42 Ex3WWwU3
tet

573:名前は開発中のものです。
10/03/02 23:13:38 hmyMCdfx
お前さんが3Dにどういうイメージが抱いているか知らんが、
java3dのgeometryはかなり「実際の処理」に即しており合点がいく。

「市販されているゲーム」ってのは一体何だ…。市販のゲームは
末端で行われる原始的な処理を、見てる人にイメージし易いように
高度な変換を加えているだけのものだ。イメージだけで
いきなりあんな美麗な物体を描けるようにはならない。

いくらjava3dでも、末端で行われているdirect3dなどの
実際の3D計算方法をまったく知らない状態では厳しいぞ。

URLリンク(msdn.microsoft.com)
とりあえずこの4つの項目くらいは目を通しておくんだ。
俺はmanaged DXから入って、かなり読みやすかったのでこれが一番
分かりやすいだろう。

ブレンディングに関してはそもそもハードウェアアクセラレーションの
効かない場所でやるべきじゃない。自前処理でjavaだと遅いからc++なら
早いかって言ったらそこまで速くはない。結局openglなりd3dなりの
恩恵下で計算するのが一番速いんだから、言語を問わず
画像処理は2dであっても3dを利用しましょうということになる。

>>519が本当なら、そもそも2dのアクセラレーションは推奨されないこと
になる。

javaでゲームを作る場合、javaアプレットにするつもりがないなら
必ずGTGEなりjoglなりjava3dなりの3dデバイス系を利用することを
絶対に勧める。というかそれ以外で動きの多いゲームを作るのは
不可能だぞ。

574:名前は開発中のものです。
10/03/02 23:43:45 keRp0vK6
>>573
一番の問題は>>570だけかな。

速度に関しては今のJava2DはDirect3DやOpenGLでアクセラレーションがきいている。
ただし、VMの実装次第だし、どこがきくのかといったドキュメントは無いはず。

Java2Dはアクセラレーションの効きかたを意識しないで使えるのが利点ではあるが
ゲームだとそうはいっていられないのが厳しいところ。

ただ、2Dゲーなら速度的にはブレンディングの種類が少ないこと以外では問題にはならないね。

「必ず」というのはいいすぎで、不可能ではないよ。

ただしJavaSE6 update10以上必須ね。
これより前だと回転拡大縮小系はアクセラレーションきかないから、いっきに処理速度が1/100とかになる。

通常のJavaの実行速度も大幅に上がってるしアプレットでもJNLPかけるようになったので
update10未満使う理由はないのだけれども。Vistaの不具合回避したらすごいよいものになったというのが笑える。

575:名前は開発中のものです。
10/03/03 00:23:02 Ft2QLlFC
u10からOpenJDK6の成果が本格的にマージされて確かに実行速度は上がったがバグもかなり増えたぞ。

576:名前は開発中のものです。
10/03/03 01:15:37 4e2irmLH
どんなバグなのか具体的に

577:名前は開発中のものです。
10/03/03 02:48:16 bM8RSZ0B
公式のBTS全部見ろよ。
OpenJDKのパッケージがあるlinuxの適当なコミュニティにも上がってるぞ。
毎度のこと量があるのにスレに貼れる程度の具体的なバグなんてここに貼っても意味はない。


578:571
10/03/03 03:06:07 /DdOkaZg
>>573
有難う

579:名前は開発中のものです。
10/03/03 08:52:43 4e2irmLH
J2SE 5.0はサポート期間が終了してバグあっても放置だからもうJavaSE 6つかうしかないだろう
でもupdate10未満も大量にバグがあってupdate10以降で直ってるのも大量にあるのがな

でもゲーム程度で問題になるバグなんてまずないだろ

580:名前は開発中のものです。
10/03/06 15:16:24 9hs0NXi7
明日、韓国からのテロ攻撃の第2波があるかもと言う情報が・・・。
下手したら週末にまた2chが落ちるかもしれないね
 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄
     ∧_∧
    <丶`∀´>     ∧_∧
    /     \   (    ) はぁ?黙ってろ在日w 
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽ 氏ねよクズ   \|  (    ) 
  |     ヽ           \/     ヽ. 祖国に帰れよ
  |    |ヽ、二⌒)        / .|   | |
  .|    ヽ \∧_∧    (⌒\|__./ /

581:名前は開発中のものです。
10/03/07 02:52:45 mJhS8YgC
jinputでアプリケーションの起動中にジョイスティックの追加/削除を検知する事って出来ますか?
ControllerEnvironmentにControllerListenerを追加してもイベント飛んでこないす。

582:名前は開発中のものです。
10/03/07 11:20:32 YVbfusWB
とりあえず、以下のコード読んで勉強してる
・ドラクエクローン(URLリンク(javagame.skr.jp))
・シヴィライゼーションクローン(URLリンク(www.planet-source-code.com))

これらが、理解できるようになったら俺の目指すシミュレーションゲームも作れるだろう
Swingはよくわからんが(てか、JavaのGUI自体初体験だが)、ドラクエクローンの動作を見ると、メッセージWindowも自前で製作しているみたいだし、勉強せんでもよさそう

がんばるぉ^^


583:名前は開発中のものです。
10/03/07 12:38:46 8J4pTqVT
>>582
下のリンク先、見れないんだが。

584:名前は開発中のものです。
10/03/07 15:17:28 yFiVhkjz
>>583
末尾の括弧をURLに含めてるとか

585:名前は開発中のものです。
10/03/07 15:18:39 YVbfusWB
>>583
最後に")"をつけちゃったから、それがURLの一部にされていると思われ
URLから")"消してみて

それはそうと、他にも読んでおいたほうがいいソースコードあったら教えてね^^

586:名前は開発中のものです。
10/03/07 20:31:59 seQ6S77i
宣伝age 弾の軌跡を描画するようにしてみた

URLリンク(www10.ocn.ne.jp)

見た目は派手になったけど,処理が重くなった.

俺の場合,OpenGLの本とか衝突判定の本とかは読んだけど,
他の人のソースコードとかはあまり見てないな.

587:名前は開発中のものです。
10/03/07 21:08:52 EoGWWfXW
>>585
GOFのデザインパターンやっとくといいよ
ストラテジー、メディエーター、シングルトン、ファサードあたりを
意識すると上達が早くなる

588:名前は開発中のものです。
10/03/07 22:21:35 4Rnyo7gg
GOFぱっと見で理解できんならオブジェクト指向の利点を知ると良いね
するとGOFを見たこと無くても無意識にデザパタを適応していたりする
でもまあリファクタリングの勉強は最後でもいいはず
動くゲームを完成するまでの気力維持の方が大変だw

589:587
10/03/08 09:38:02 0N3PdWPF
俺の経験則としては、デザインパターンなしで
テトリス以上のゲーム作るのは無理だと思う

たとえばSwingを始めた>>585は、分離されたGUIコンポーネントや
イベントリスナーをどうつなげたらよいかについて困惑するはず

引数で無数に参照を渡す力押しとかでも不可能ではないけど
それじゃやっぱりコード書く楽しさがない

590:名前は開発中のものです。
10/03/08 20:38:45 fOUjfaLl
>>589
構造化プログラミング主体の頃の人間だったおれは、
デザインパターンを知らんでも作れたんだが・・・・。

C言語ライクなJavaプログラミングだったけどな。

591:名前は開発中のものです。
10/03/08 21:37:40 InSeFkGY
こういっちゃ悪いがデザインパターンについて何か勘違いしてる
OOPの理解とデザインパターンの適応は別物だぞ
デザインパターンは使える状況なら使ったほうが良い物ってわけでもないし
テトリス以上の複雑なゲームとなるとパターンがまんま適応できる状況がまず少ない
以上現役奴隷の勝手な意見

592:名前は開発中のものです。
10/03/08 21:53:19 3O0fgwI4
>>584
被っちゃいましたね^^

>>586
自分より遥にレベル上の方みたいですね
自分は古いかもしれませんが地味に2Dでがんばっていきます
お互いがんばりましょう

>>587-591
GOFはとりあえず読みました
半分も理解したか怪しいですが
とりあえず、ゲーム作るうえでは、入力なり出力なりのインタフェース切って、場面ごとに実装するクラス作ろうかなーっと漠然と考えてます
まだ、他人のコード読んでばっかりで、一行も書いてないのでどうなるかわかりませんがw


それはそうと、Javaでゲーム作りますがなにか?のページ見ていて思ったのですが、ゲームループはwhile文で自作するのが常道ですか?
TimerTaskがあると思うのですが、使わないのでしょうか?
while文の中で、遅延を考慮してたりして、結構がんばってるように感じたのですが、TimerTaskはその辺美味くやってくれるもんじゃないんですかね?


593:名前は開発中のものです。
10/03/09 10:57:20 QEiU+L36
>>5
auのオープンアプリの関連スレ無いですか?
オープンアプリ作る人が集まるスレ

594:名前は開発中のものです。
10/03/09 13:07:17 B2aHv/Xn
>>593
CLDC+MIDP+携帯電話用Javaスレッド part 9
スレリンク(tech板)

595:名前は開発中のものです。
10/03/09 14:15:07 lYcMPodi
java.util.Timerはスケジュールできなかったらタイマースレッドじゃなくてその場で実行する。
それすら実行できなかったらそのタスクは実行されなかった気がする。
あとスケジューリングの精度もそんなに厳格じゃなかったはず。
それでもいいならjava.util.Timerでいい。
でも、java.util.Timerつかうよりは並列ライブラリで自分の要件実装するんじゃないだろうか?

596:名前は開発中のものです。
10/03/09 15:54:48 QEiU+L36
>>594
どーもです。
オープンアプリでゲーム作ってる人のスレは無いってことっすね・・・残念ですぅ

597:名前は開発中のものです。
10/03/09 16:49:21 gD7fhvY3
おまえの目は節穴か

598:名前は開発中のものです。
10/03/09 18:00:12 QEiU+L36
だって、プログラム板のローカルルールでゲームの話題禁止なんですもの


599:名前は開発中のものです。
10/03/09 21:13:35 EB7b1hko
>>594の板で大丈夫じゃないかと思うよ
過激な自治厨もいないしゲームプログラムの話題も出てるし

600:名前は開発中のものです。
10/03/09 22:10:21 i+0eeHLE
>>592
問題ないよ

処理落ち等の実装は人によるけど、TimerTaskで実装するのではなくここでは時間管理だけして、
そこから他のスレッドをコントロールするのが理想かな

垂直同期とって60fps、処理落ちも垂直同期単位という昔ながらのアプリのような挙動がほしい場合はね



それ以外ならTimerとTimerTaskで問題なし
repaint()使っているようなものなら正直TimerもswingのTimerでいいと思う

601:名前は開発中のものです。
10/03/10 13:10:34 /NB3Vbw/
確かThread.sleep()でループを組めば、javaのバージョンによっては
windowsの高精度タイマーを利用するのでより品質の高いループが組める
はずだ。現に俺はsleep()で100fps以上の高分解能ループを組めている。

ループをあまり組んだことがないなら「timer 分解能」あたりで
一度ググっておくことをお勧めする。多くのwindowsではTimerでも
60fps回せるんだが、別に60fpsを回せることが保障されているわけでは
ない。ディスプレイのリフレッシュレートも影響するのかもしれないが、
ユーザの環境では35fpsになったり70fpsになったりするかもしれない。

whileでループ組んでいるというのがどういう状況か知らんけど、
それはwhile内部にwait()する区画があって始めて成り立つことだ。
初歩的なことだがビジーループなんて絶対に組んではいけない。

602:名前は開発中のものです。
10/03/10 14:31:21 nBH9suJo
>>601
XP前期くらいの古い話になるけど
Windows98SEではちゃんと30FPSで動いていたゲームがXP(2000だったかも)で20FPSくらいに
なってしまい原因が分からず悩んでいた時期があった
推測だけどデフォルトではタイムスライシングが16msになってて、ゲームを30FPSで動作ささせる
ために1フレームを33msにあわせようとすると48msになってしまってたんだと思う

メディアプレイヤーを起動していると精度が上がることを見つけて、自前のアプリケーションを起動し
timeBeginPeriodを呼び出しておくと同様の効果があることを確認し、それをユーザのマシンで
再現する方法を探してたよ
FLASHを一度でも再生したブラウザのプロセスが残っていると精度も上がったままになり、
IEの場合はbgsoundタグに空のmidiファイルを設定しておくという泥臭い逃げ手もあった
Windows以外のOSで試したことはないけど、どうなってるのかなぁ

603:名前は開発中のものです。
10/03/11 11:52:23 gsQzKt2E
昔はSystem.currentTimeMillisの精度が10~20msecで困ったな。
sleepは時間通りに動いていたかもしれないけど、対応しようがなかった。
今はnanoTimeで1msecの精度が出せるから良いね。

604:名前は開発中のものです。
10/03/11 13:14:15 I816Pm6U
え、まともにnanoTime動くのSunだけじゃないの?Windows7とかだと動くの??

605:名前は開発中のものです。
10/03/11 15:31:52 +KPkzeB4
10000くらいの要素があるとして、
Map(HashMap)で全要素にアクセスするのって十分に遅いと思う?
List(ArraryList)と両方に要素を詰めておいて片方が苦手な面は
スレッドでごまかしたほうがいいかな


606:名前は開発中のものです。
10/03/11 19:26:06 I816Pm6U
十分に早いと思うんだがなぁ。
やってみた?
要素を取ってからの処理がが1ms掛かってりゃ、隠蔽できるレベルと思うんだが。

607:名前は開発中のものです。
10/03/11 23:54:00 zhaRJbEJ
1万要素くらいならおれは速度よりメモリを気にする。
10万とかなら考えるが。

608:名前は開発中のものです。
10/03/12 01:20:42 fx5pN5+0
>>604
まともってのがどの程度を意味するのか分からないけど、
XPでnanoTimeを実験したときは1ミリ秒くらいの精度は出たよ。

609:JAVA初心者
10/03/12 10:17:17 6GJM5qHr
JOGLをインストールして実行したら
「jogl.jar で制限されているためアクセスできません」
って出た
jogl-1.1.1a-windows-i586.zipの中のやつをコピーするだけではダメなのですか?

610:名前は開発中のものです。
10/03/12 22:17:40 cuwPqo48
ム板の初心者スレに行け

611:名前は開発中のものです。
10/03/13 11:54:22 ft4sD9tE
>>604
WindowsでもsunのVMなら
currentTimeMillisも1msの精度でてる

nanoTimeは高精度カウンタつかってるんでちゃんと1ms以下でてるっぽい
そのかわり特定の時刻はわからないけど、ゲーム系なら問題は無いな

Sleepとかタイマイベント系+nanotime使ったビジーループが最も高精度だけど、
そこまで必要な場合むしろ垂直同期をしたほうがいいと思うんだ

612:名前は開発中のものです。
10/03/13 15:41:37 kP+vCyl1
そこまでする理由はなんだい?
格ゲーでも作るの?

613:名前は開発中のものです。
10/03/14 01:12:44 /KubzB8G
>>612
16.66msのつもりが32msになっていた、なんて精度だとライトなアクションゲームどころか
コマンド選択式RPGのエフェクトすらまともに表示できないと思う

614:名前は開発中のものです。
10/03/22 01:15:48 a35EGBlP
でも市販されてるPCゲームの精度なんてそんなもんじゃん
猫ぐらい目が良くないと一般ユーザでは気付かんレベルじゃないかね

615:名前は開発中のものです。
10/03/22 11:37:48 lWMLrUhP
2Dゲーはほとんどの場合フレームスキップ起こさないから精度はいつだって気になるものさ
3Dのほうが精度はいらない

ティアリングも2Dのほうが気になるしね

616:名前は開発中のものです。
10/03/22 13:33:05 DUGGcEaK
3D格ゲーマーなめんなよ!!

617:名前は開発中のものです。
10/03/22 19:56:42 a35EGBlP
2DPCゲームも盛んだった約10年以上前のintelのチップセット統合グラフィックコントローラには
主にゲーム中などの高負荷描画時に意図的にフレームスキップする機能が組み込まれていたけど
見て分るレベルじゃなくてほとんど気にならなかった思い出があるよ

618:名前は開発中のものです。
10/03/22 22:54:58 lWMLrUhP
i810ってハードで勝手にフレームスキップするのか?

619:名前は開発中のものです。
10/03/27 11:17:41 CAF7oz9b
ゲーム用のactiveXインストールさせておいてアンインストールの時に消さないのはクソゲー

620:名前は開発中のものです。
10/03/27 13:42:08 tZ9gJAWE
>>619
スレ間違えてるぞ

621:名前は開発中のものです。
10/03/27 22:43:26 AvjpVtCq
>>615
ふ~ん。よく知ってるね。ネット(笑)で調べたんだ?

622:名前は開発中のものです。
10/03/28 02:01:26 vG829dZf
アプレットの2Dの戦術シミュレーションゲームをAWTで書いてて
加算合成とかやりたい程度なんですが、
JOGLとかライブラリ使ったら結構早くなるものなんでしょうか?
標準APIしか使ったことないんですが、使うとしたらJOGL一択?

623:名前は開発中のものです。
10/03/28 16:23:12 dUxWoyHG
加算合成ならBufferStorategyとJava2Dのシステムプロパティー有効にすれば標準ライブラリでいける

624:名前は開発中のものです。
10/03/28 17:33:06 vG829dZf
ありがとうございます
すいません、調べてみたら、BufferStrategyってアプレットから使えなくないですか・・・?

テクスチャで2Dの描画だけできれば十分なんですが、
drawImageのような処理はどう実装するのが普通なのでしょうか?

とりあえずJOGLについて調べてみたのですが、
特定の画像を読み込んだテクスチャごとに、予め指定した各々のz座標にまとめて描画
という風なものしか思いつきません・・・

625:622
10/03/29 01:33:25 SqZ8R8TT
OpenGLを理解するところから始めようと思います
失礼しました

626:名前は開発中のものです。
10/03/29 17:04:23 YLmAQvrk
>>623
詳細希望
どうやるの?

627:名前は開発中のものです。
10/03/29 17:07:28 tAa/9ZD/
>>624
素のAppletを使う必要性が現時点で無いわけだから、
JAppletを使うわけにはいかんの?

とはいってもかなり作法が違うから、今から変更できないってのなら
わからんでもないが。

628:名前は開発中のものです。
10/03/30 16:45:14 ANScytkg
>>627
JAppletでCanvasを描画するって方法があったんですね!
アプレットでBufferStrategy使えました。ありがとうございます
BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので
自前のダブルバッファリングと切り替えるようにしたのですが、
スマートな方法はありませんか?

システムプロパティの方は、
Appletから設定出来るのかどうか分かりませんでした

629:名前は開発中のものです。
10/03/30 17:22:35 5VmsakM5
>>623
半透明合成はAlphaCompositeでアクセラレーション効かせれるけど、
加算合成はどうすれば標準ライブラリで速度出せるの?

630:名前は開発中のものです。
10/03/31 13:50:19 ynx77+er
>>628
BufferStrategyのせいで処理落ちしてるとは思えない。
たぶん、GCのせいだよ。
結構でかいメモリを使い捨てにしてるんじゃないかな。
で、GCのタイミングを制御してないと。

まぁ、ゲームとかサーバサイドじゃないとGCが気になること無いんだけどね。
GCの情報をログに吐かせてチェックしたら良いよ。

631:名前は開発中のものです。
10/03/31 14:16:29 e2SekH7a
>>630
たまに描画アクセラレーションが効いてない状態になるのとGCは関係ないと思うぞ

632:名前は開発中のものです。
10/03/31 14:31:05 ynx77+er
>>631
描画アクセラレーションが効いてないって話はどこから?

633:名前は開発中のものです。
10/03/31 14:34:10 e2SekH7a
>>632
> 4,5回の起動につき1回程度、酷く処理落ちするので
原因はわからんけど同じようなことが起こった事あるから

634:名前は開発中のものです。
10/03/31 17:20:45 ynx77+er
俺はそういうことは無いなぁ。

しかし、俺が読み間違えてた部分があるな。
>BufferStrategyが4,5回の起動につき1回程度、酷く処理落ちするので
は、4,5フレームごとに処理落ちすると言うことかと思ってた。



635:名前は開発中のものです。
10/03/31 20:30:53 6whusFO/
問題に直面してる本人が原因をある程度特定しないことにはなんとも
新人の頃当たった上司は不具合の原因を完璧に特定して理詰めで説明
せんとソース触らせてくれなかったなぁ

636:名前は開発中のものです。
10/03/31 22:31:41 fTTvzrRQ
たぶん昔の俺と同じミスしてんじゃないかな。「ひどく処理落ちする」
ってのはどうやって計測してるの?Timerを使って計測する限り大抵の
環境で60fps以上のループを回せないので(Timerの分解能でググれ)、
17ms以下の時間を計測できないことになる。つまり処理の時間を計測
すると「0msと17msが交互に出てくる」という現象が起こる。この
17msを処理落ちと思ってしまっているのでは。

結構前に書いた気がするけど、どんなにVolatileImageで高速化したところで
その前処理である「drawImage()」がjavaでは(というか最近の言語では)
絶望的に重いので、よほど小さい画像か低いfpsじゃない限り
drawImage()で再描画回すのは無理だよ。画面全体の再描画は無理なので、
一部だけにしないと。

だから「複数の画像をテクスチャであらかじめ読み込んでおいて、それを
3D空間上で順番に表示する」ということになるのよ。
drawImage()はリアルタイムで使用してはいけない。
だから3Dデバイス無しで動きの多い2Dの描画は無理。java以外の2Dゲームも
最近はほとんどこの処理で描画している。

アプレットでjoglやjava3dやGTGEを使いたい場合は、「あらかじめモジュールを
プレイヤーに各個インストールしておいてもらう」か「java web startを使用
する」かの2択になる。私はアプレットに興味がないので
知りたければ自分で調べて…。


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