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択になる。私はアプレットに興味がないので
知りたければ自分で調べて…。
637:名前は開発中のものです。
10/03/31 23:01:06 e2SekH7a
drawImageが絶望的に重いってのが理解できないんだがどういうこと?
638:名前は開発中のものです。
10/03/31 23:51:25 T6Q4zys0
これやればアプレットから起動できる。
URLリンク(mailsrv.nara-edu.ac.jp)
639:名前は開発中のものです。
10/04/01 01:30:29 yUfE9csc
>>630
>>636
具体的に書かなくてすみませんでした
「ひどく処理落ちする」というのは、
普段1フレームの処理が10~40ms程度なのが、200~300くらいになります
createBufferStrategy、getBufferStrategyをやり直しても直らず、Appletを起動し直さないとダメでした
ハード依存のせいで不安定なのかな、などと勝手に思ってましたが、よく分かりません
とりあえずGCのログ調べてみます
ありがとうございました
640:名前は開発中のものです。
10/04/01 13:06:54 UAXZ1fUj
>>636
java6update10でもそうなる?
アクセラレーションの効き方がupdate10以降全然違うよ。
641:名前は開発中のものです。
10/04/19 16:58:19 DE/oWF3W
Javaで3dソフトレンダラー作ってるんだがテクスチャマッピングが糞重い。
テクスチャ無しの時と比べて3倍近く重くなる・・・
ピクセル単位でマテリアルの色とテクスチャの画像の色とを乗算してるんだが、
速くする方法はないだろうか・・・
642:名前は開発中のものです。
10/04/19 22:44:06 EBaRhPkl
ソフトだとそんなもん。srcとdestのバッファが2次キャッシュに収まっているうちは早いのでそれを意識するしかない。
符号なし精度やSIMD直接発行したくなるけど、せいぜいマルチスレッドしかないね。
643:名前は開発中のものです。
10/04/23 14:30:02 +jF/jVEW
VolatileImageと-Dsun.java2d.accthreshold=0組み合わせるとか
644:名前は開発中のものです。
10/04/23 17:11:32 qX+XOmtR
3Dで思ったんだけどブルームてどういうふうに実装するの?
高輝度部分と重なる物体の輪郭をぼかせばいいの?
CGで木漏れ日とか表現してる人はどうやってんだろう。
645:名前は開発中のものです。
10/04/24 16:15:02 wWfiheja
マルチスレッドで組んだことないけど、
レンダラーの場合はどのあたりをマルチスレッドにすべきだろう?
やっぱ座標変換より描画処理か?
646:645
10/04/24 16:17:32 wWfiheja
ごめ、、sage忘れた
647:名前は開発中のものです。
10/05/06 15:54:54 sWIFt/qs
>>644
それ用にテクスチャを作っとくことが多いんじゃ?
んで加算合成とか
専門じゃないからよく分からんが
648:名前は開発中のものです。
10/05/08 01:32:27 OfzVRu2e
ゴーストやレンズフレアならテクスチャ使うこともあるけど
ブルームだけならレンダリング後のイメージ処理じゃないかな。
HDRIでレンダリングして一定以上の輝度の部分を抜き出して
ぼかしたあとに加算合成するとかそういうの。