トップページgamedev
981コメント379KB

Javaゲーム作成総合スレ

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/10/28(火) 18:23:40ID:2CMNNHdH
Javaでゲームを作ろうと思っている人、今作っている人等が情報交換するためのスレです。
2Dのスレはありましたが、総合スレがなかったので立てました。
2D,3DどっちでもOKで、グラフィックス、アルゴリズム、お勧めサイト等、内容も自由です。
0251名前は開発中のものです。2009/03/21(土) 19:59:38ID:n/Ajktw5
>>249の質問がいまいちわからん。
内部クラスならstaticにできるが普通クラスstaticにできんだろー
それとも>>250の解釈のようにstatic methodのことなのか・・そうだとすると何故シングルトンにw
0252名前は開発中のものです。2009/03/21(土) 20:19:06ID:DJMP1L4U
Jakeはstaticメソッドばかりで辟易した
基本はインターフェイス定義/インスタンスメソッドにして
外部から実生成クラスを指定できる形のシングルトンってのが
モックや改造用の実装入替えができる作りにできてマシだと思う
0253名前は開発中のものです。2009/03/21(土) 20:24:15ID:0Dhkcflq
>>252
Jakeの場合、Cからの移植だから、
オブジェクト指向に徹して構造をガラリと変えるのはやりたくなかったのかもね。
0254名前は開発中のものです。2009/03/22(日) 13:38:56ID:lDYMrqQ7
スキンメッシュってどう実装してるんだろ?
形状が変形した時点でVBOを作りなおさなきゃならない気がする。
glBegin〜glEndでなら実装方法も思い浮かぶけど、それじゃ
頂点数が増えてくると破綻するだろうし…

…やっぱり、頂点シェーダ使うのが正道なのか。
0255名前は開発中のものです。2009/03/22(日) 21:48:34ID:M8WElcmx
JOGLのテクスチャオブジェクトって、シーンに必要な複数のTextureオブジェクトをenableしておいて、
実際にポリゴンを描画する時にenable済みのTextureオブジェクトをbindするという認識なんだが、
これってひょっとして間違ってる?

なんか、ポリゴン描画時にどのテクスチャオブジェクトをbindしても、最後にenableした
テクスチャが適用されてしまう…
0256名前は開発中のものです。2009/03/25(水) 20:36:24ID:+3AGy5We
もっと基本的な話もしてください><
0257名前は開発中のものです。2009/03/26(木) 00:25:05ID:3cCMByPy
なら、そういう話題を振ってみよう。
0258名前は開発中のものです。2009/03/27(金) 09:52:31ID:hNlAxyYn
>>257
振ります
場面管理とか、ユーザ入力の基本的な実装の勉強はどこでしましたか?
たとえば、オープニング場面と実際のゲーム場面の切り替えとか、マウスやキーボードからの入力にあわせてプレーヤーを操作するとか、その手の勉強はどうすればいいのでしょう?
みなさんで、知恵を出し合って、私が一人前のJavaゲームプログラマになれるようにがんばりましょう!
0259名前は開発中のものです。2009/03/27(金) 21:15:09ID:/MZjCwLz
>>258

俺はテンプレのサイトにあるコードとかを参考にした
0260名前は開発中のものです。2009/04/01(水) 01:11:58ID:xQ/ARR0S
最近全画面表示試してみたが、意外なほどあっさり動いて拍子抜けした。
WinAPIをよく知らないけど、ひょっとするとJavaの方が簡単かも。
0261名前は開発中のものです。2009/04/01(水) 08:32:41ID:Oc98XnNk
ひょっとしなくても簡単だ
0262名前は開発中のものです。2009/04/01(水) 10:48:41ID:p79POMbY
Javaの方が何より簡単なんだ
0263名前は開発中のものです。2009/04/01(水) 11:09:54ID:7BklKs9t
WinAPIをよく知らないけど
ってあるからWindows開発環境とだろ
0264名前は開発中のものです。2009/04/01(水) 11:28:33ID:p79POMbY
Windows開発環境って言ったっていろいろあるじゃない
Java並みに簡単なのもあるし
0265名前は開発中のものです。2009/04/01(水) 12:15:48ID:7BklKs9t
そりゃそうだな。

ただ、Windows直のAPIをたたくかのような表現なので、
VC++でWin32Applicationで作ってるとみた!
0266名前は開発中のものです。2009/04/01(水) 12:19:23ID:p79POMbY
そりゃあ、ひょっとするどころじゃないなw
0267名前は開発中のものです。2009/04/01(水) 14:46:33ID:jYiG2v4w
ちょうどC++でゲーム作ってるとこだよ。
Seleneっていうゲームライブラリ使ってるけど、それでもめんどい。
いやSelene自体は便利だけど、とにかくC++がめんどくってJavaに戻りたくなる。
0268名前は開発中のものです。2009/04/02(木) 02:46:07ID:AjLyz5Ea
java.exeとjarファイル単体配布を認めてくれると配るのもだいぶ楽になるんだけどね。
動かすためのランタイムだけならかなり小さくできるし。
0269名前は開発中のものです。2009/04/02(木) 22:45:17ID:6oSajStG
>>268
privateJREってしらんのか?
配布規定に従っていればJREとアプリ同根で配布できるんだぞ?
そのためのランタイムだ

ファイルサイズはいらないのを消せば一応多少減らせる
ただし、同梱必須のものもあったりするからなにをはずせるかは注意すること

逆にSDKにあってJREにないものもいくつかは同梱可能だったりするので
ちゃんとドキュメント読んでください
0270名前は開発中のものです。2009/04/02(木) 23:34:41ID:Vwj0NOpR
>>269
なんかコメントがすれ違ってないか。
>>268は最小構成で配布したいって言ってるわけで、JREをアプリに同梱できることは前提だと思うんだが。
「java.exeと、そのアプリの起動に必要なjarだけ付けて配布したいのに、
 ランタイムを配布しようとすると同梱必須のファイルが多くてでかくなってしまう」
という意味の書き込みだと解釈したんだが、漏れが深読みし過ぎてるのか?
0271名前は開発中のものです。2009/04/02(木) 23:46:18ID:aTxYjOf1
ふと思ったんだが、javaで市販のゲームってどのくらいあるんだろ。
ほとんど聞かないけど、tribal troubleくらいかね?
Mac(というか非windows)のシェアがもっとでかければ意味があるんだろうけど、
今はWindows用に作っておけば市場の99%は確保できるからなあ。

でも、ホビーの分野ではもうちょいJavaって選択肢が見直されてもいいと思うけど。
0272名前は開発中のものです。2009/04/04(土) 00:43:54ID:djCLzx0D
携帯では圧倒的か。
あとWinは99%のシェアないから。シェアは下がってる。

LinuxやMacで動作確認しておくってのは意味あることかと。
マイナーOSだけに有名になりやすいかも。
0273名前は開発中のものです。2009/04/04(土) 07:26:06ID:QAh2Zo9C
>>272
>携帯では圧倒的か。
そういう話はよく聞くね
実際携帯のソフト開発やったことないけど、素人でも簡単に開発環境とかデバッグ環境とか入手できるのかな?

>あとWinは99%のシェアないから。シェアは下がってる。
ただ、Serverとか業務除いた純粋な個人使用だと、やっぱりWindowsが高いんじゃね?
あと、Macユーザはともかく、Linuxユーザがわざわざ有料のゲームを買うところはそうぞうできない
せいぜい、バンドルされてるフリーの有名ゲームを5分程度プレイするだけのような気がする

>LinuxやMacで動作確認しておくってのは意味あることかと。
>マイナーOSだけに有名になりやすいかも。
Macは知らんが、Linuxはフリーのゲームであふれてるからな
有名になるのは難しいと思う
あと、MacはなにげにJDKの新しいのがでるの遅かった記憶がある

>>271
俺も知りたい
市販だけじゃなく、ソースを読むことが出来るフリーの有名作も知りたい
どうも、ネットで検索するとC++が多くてよくない(俺はC、Java、Rubyと業務で使うもろもろのスクリプトしかだめなので…)

0274名前は開発中のものです。2009/04/04(土) 09:40:52ID:pkIgwsnR
インストールベースだと、Windowsのシェアは9割切るのかな?
PCゲーム売上における比率だと、余裕で9割越え(というか、本当に99%くらいかも)
だと思うけど。
0275名前は開発中のものです。2009/04/04(土) 10:41:11ID:QqjfOZdf
たまにニュースに統計でてるのが90%〜95ぐらい。
調査ごとに若干違うがそれでもさすがに99%はない。
0276名前は開発中のものです。2009/04/04(土) 13:03:07ID:7rkbAzh1
とはいうけど、PCゲーム市場(流用できるからXBOXも入れて)というのはいくらぐらいの規模なの?
たとえばwiiの何パーセントぐらいか知ってるのか?
0277名前は開発中のものです。2009/04/04(土) 13:17:49ID:7fA3wEVT
>>273
携帯の方が開発は簡単。
システム自体が、ゲーム前提になっているから。

開発・テスト環境は、iアプリ/MIDP(日本ではオープンアプリ、S!アプリ)とも誰でも無償で入手できるよ。
0278名前は開発中のものです。2009/04/04(土) 20:53:43ID:djCLzx0D
>>276
日本のPCゲー市場はWin95がでたあたりでコンシューマと比べるとほぼ0に近くなった
コンシューマが安くて性能高いからね

PC向けにゲーム作りたいのなら20年早く生まれるべきだったな
0279名前は開発中のものです。2009/04/04(土) 22:24:11ID:YZwnY7vO
PCの普及数は遥かに増えてるし、ネットという配布手段もあるから、フリー作家にとってはいい時代とも言えるかも。
0280名前は開発中のものです。2009/04/05(日) 04:48:32ID:TjOH8U8v
コンソール市場に比べてどれくらいなのか聞いてるんだけど理解できなかったのか?
それと、win95以前でも昔は昔でニフティーとかパソ通があったしあまり変わってないよ。
ゲーム製作スキルもなければ時代を読む眼力もないみたいだね。

たとえば、もしある程度のPCゲーム(3D)を数人で作れるとしても、PCゲーマー(グラボに3−5万も出すようなのが)相手なわけじゃないでしょ。
日本ではファミコン以降コンソールの歴史が長いしそのノウハウもあるし、PCでゲームをやるという考え方をもつPCゲーマーという存在が理解できない。
このあたりを解説してくれる人いるかな?
0281名前は開発中のものです。2009/04/05(日) 11:30:22ID:YT4Bbp0s
>>280
>ゲーム製作スキルもなければ時代を読む眼力もないみたいだね。
せっかく、この板が久しぶりに盛り上がってきたのに、なんでそんな他人を挑発して荒れるような事書くんですか><
この板で有意義に情報交換するためにも、礼節を持った書き込みをしましょう^^
0282名前は開発中のものです。2009/04/05(日) 12:14:35ID:HxgPZkkF
>>280
昔はMSX,PC88、PC98、X68、TOWNS等ゲームは普通に手に入るものだったよ。
今じゃ国産のゲームはエロ以外ほぼゼロに等しい。

だから、歴史はFC出現以前からあるPCのほうがあったんだけれども、
商業的には95登場あたりで終わったんだよ。

それにマイナーな一部の人だけが使うパソコン通信とインターネットくらべたらあまりにもシェアが違いすぎる。
ベースとなるPC自体の普及も何倍も違うし。
当時から変わっていないといえるのはアンタくらいでしょ。
0283名前は開発中のものです。2009/04/05(日) 12:26:27ID:osilM92R
そもそも、Javaゲームスレでフリーソフトの話をしているときに家庭用ゲーム機を出されても…という気はする。
0284名前は開発中のものです。2009/04/06(月) 02:58:52ID:E7G+JPJD
昔はパソ通で配布という手段があったし2chのような情報交換BBS(会議室)も活発にあった。
つまり今のインタネットとあまり違いはないってことを書いてあるんだけど、これを読み取る知能もないのか。
いちいちレベル低いよね。このスレは。

たとえば>>282とか長文書いている割には、コンソール市場とwindows市場のゲーム市場の比率(売上ベースとか)とか知らないんでしょw
0285名前は開発中のものです。2009/04/06(月) 20:34:44ID:27qn9CjQ
まあ、据え置きハードにはパッケージじゃなくともネットで課金できるシステムというか
ネットゲームそのものが市場として駆動してるからな。
総計すると、実はコンシューマとPC市場の差はそれほど無いのかもしれんな。
0286名前は開発中のものです。2009/04/06(月) 21:46:40ID:gbnm4hj7
そろそろJavaゲーム作成の話題に戻りたいが、話のネタが無いなあ…
0287名前は開発中のものです。2009/04/07(火) 00:07:45ID:NeAXnBms
ゲーム市場の話してるお子様はいつになったら消えてくれるのか。
0288名前は開発中のものです。2009/04/07(火) 01:20:46ID:C2LD8yAA
Ajaxならシェアが取れるかもしれない
0289名前は開発中のものです。2009/04/07(火) 01:26:34ID:NeAXnBms
サーバー介してなにをするのだ?
0290名前は開発中のものです。2009/04/07(火) 01:55:48ID:Nbb0NFf2
というか、このスレ住人のほとんどはアマチュアなわけで、
オンライン系のゲームはホビーで作るのはけっこうハードル高いよ…

ホビープログラマが趣味で作るゲームとなると、Java単体か、+JOGLくらいが主な守備範囲だろう。
0291名前は開発中のものです。2009/04/07(火) 06:48:16ID:nGO2l7HE
ajaxがjavaと何か関係あるの?
ゲーム市場の話にもついてこれないし、javaのゲーム製作の話もできないし、このスレってjレベル低すぎるよねw
0292名前は開発中のものです。2009/04/07(火) 22:17:25ID:gS/m+Pfj
JOGLいじってると、VBO関係がけっこうややこしいな。
C系の言語だと、メモリに各変数形の配列が並んでいるイメージがすぐに思い浮かぶけど、
Javaだと一回Bufferに変換するから一手間多くなる。

JOGLは「配列+オフセット」の形に変形してポインタを隠蔽してくれてるけど、
VBOみたいに、どの順番でどの要素が入るかプログラマが指定するようなメモリ領域を扱う場合、
どうしても「面倒な処理」を表に出さざるを得なかったんだろうな。
0293名前は開発中のものです。2009/04/08(水) 01:05:02ID:IDvn4V//
>>291
芝君元気だな
サーバーサイドじゃねーの?
それともu10以降のscriptほうれるようになったjavaプラグインとか(意味ねーけど)

>>292
JOGLはOpenGLそのまんまべたで実装することに主観がおかれてるからあんなもんだ
Cより面倒でJavaより面倒という(そのかわりJavaでラップはしやすいか)
定数とか普通のオブジェクト指向ではやらないタイプだしね
0294名前は開発中のものです。2009/04/08(水) 01:22:27ID:cu0myc7l
JOGLの気持ち悪いのはGLUやGLUTだなあ。


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

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

GLU glu=new GLU(gl);

とかなら、直観的にわかるんだが、
0295名前は開発中のものです。2009/04/09(木) 23:36:18ID: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の所在をご存知の方いたら教えてください。
0296名前は開発中のものです。2009/04/10(金) 01:28:18ID:y7sVQ1aZ
Buffer.capacity()は要素数じゃなくてバイト数だから、floatのサイズをかける必要はないんじゃないか?
ただ、このエラーはそれとは別で起こってる感じがするが。
0297名前は開発中のものです。2009/04/11(土) 00:44:56ID:MyX2Juju
ゲーム作成とは関係ない、煽りとしか思えないような書き込みが頻発したり、
ゲームの話に戻るかと思えばOpenGLの技術的な話になって初心者がついていけなくなったり、
なんか、このスレの話題は極端から極端に触れてる気がする。

住人がもっと増えれば、ゲームの話題でもうちょっともりあがれるのかね。
0298名前は開発中のものです。2009/04/11(土) 07:46:25ID:nrxnXQtg
>>295
GLImpl.javaの場所は知らんけど
Buffer#hasArray() で true 返す Buffer 渡さないとだめなんじゃね?
0299名前は開発中のものです。2009/04/11(土) 19:32:25ID:JxzVzDpH
>>298
>>295です。
どうもです。配列をwrapするようにしたらエラーが出なくなりました。
が、まだ表示されるところまで行きません。
もうちょっと試行錯誤が必要なようで、現在悩みつつ調査中。

Bufferまわりはけっこうややこしいので、日本語の解説書がほしいところです。
オライリーからJOGL本が出たら、5000円や1万円は出すのになあ。
0300名前は開発中のものです。2009/04/15(水) 23:58:29ID:D2aVXs86
JavaでOpenGLだとJOGLを使うのが普通だけど、ジョイスティック関係でデファクトスタンダードってあるのかな?
標準仕様ではまだ存在しないけど、JSRになってるくらいのものがあれば割と安心して使えるんだが。
0301名前は開発中のものです。2009/04/16(木) 00:35:02ID:Dl/qvkUP
jinput
03023002009/04/16(木) 00:44:42ID:Ge+Eyh9Z
>>301
サンクス
0303名前は開発中のものです。2009/05/16(土) 16:06:53ID:1PTlJmFk
>>171
`∧_∧
(´・ω・)
( つ旦O
と_)_)
ちょっと休憩。
0304名前は開発中のものです。2009/06/14(日) 00:51:47ID:YAYpVdk3
http://nsj.hp2.jp/asteroid001/

こんなの作ってみました。
まだ試作品だけどよかったら誰か意見ください。
0305名前は開発中のものです。2009/06/14(日) 01:09:15ID:MK353TQU
物だけ見せられても宣伝乙としか
0306名前は開発中のものです。2009/06/14(日) 03:42:19ID:g6ViaG4n
>>304
死なないシューティングゲームって爽快感があっていいね
もっと弾とか相手がぶっ壊れるときのエフェクトを派手にして
爽快感だけのシューティングゲーム作りたいなあって思った
0307名前は開発中のものです。2009/06/14(日) 11:28:09ID:YAYpVdk3
>>304です

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

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

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


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

実は途中までは死亡出来る仕様だったのですが、「死ぬまで続ける」よりも「制限時間内でより効率的に隕石を掃除する」
ようにするために急遽死亡判定を取り除いてみました。
0308名前は開発中のものです。2009/06/14(日) 14:03:19ID:dPzbkR7D
超巨大な隕石にちっぽけな自機が挑むっていう構図がいいね。
ただ、主砲が小さな隕石に当たってかき消されちゃうのは少しさびしいと思った。
爆風とかあってもいいんじゃないかな。
そうすれば効率的に隕石を掃除するっていうコンセプトにも一致するし。

あと反射、分裂ってところでbio100%の蟹味噌思い出した。
0309名前は開発中のものです。2009/06/14(日) 15:23:29ID:YAYpVdk3
>>306>>307の意見を参考に、少し細かい修正を施して見ました。

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

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

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

>>308
俺も気に入ってます、この構図。
主砲弾のダメージ量を変えずにダメージの与え方だけを変更してみました。いかがでしょう。
0310名前は開発中のものです。2009/06/14(日) 19:24:58ID:g6ViaG4n
>>309
速度が上がって隕石を早く壊せるようになったから、ただ弾を撃って待ってる時間が減ってテンポが良くなってて、
爽快感も増えてる。
今のところ画面内だけを飛びまわれるけど、このゲームはテンポが速いからもっと広いマップを飛びまわれれば
面白いかなあと思った。でも、あまり広いマップだと隕石を見つける作業が大変になってつまらなくなりそうかなあ。
0311名前は開発中のものです。2009/06/18(木) 19:43:08ID:qodO8hsI
GTGEのオープニング画面消せませんか?
0312名前は開発中のものです。2009/06/19(金) 00:36:36ID:Re09H4o6
ライセンス違反
0313名前は開発中のものです。2009/06/21(日) 03:27:34ID:eJZ0zwQp
GTGEはだいぶ前に開発止まって、JMonkeyEngineに人が流れたと思ってた
ちょっとgoogleで検索してみたけど、JMonkeyEngineはほとんど情報ないね
2.0もよくわからん状態だし
Javaでゲーム作る人はフレームワークとか使わんのかね?
0314名前は開発中のものです。2009/06/21(日) 19:11:59ID:7M0/xeSN
GTGEはちょっとしたゲームにはすごくいいっぽいね
最近ゲーム勉強してフレームワーク作ろうとしてたけど使って見て馬鹿らしくなったw
0315名前は開発中のものです。2009/06/21(日) 22:47:18ID:JjTebPbF
Java自体が半フレームワーク
みたいなもんじゃね。標準で付いてるクラス使いこなせてれば
0316名前は開発中のものです。2009/06/22(月) 10:23:26ID:hPMjGfX/
フレームワークって概念をどうとらえているか知らんが、
普通はそういう言い方はしない。
Javaは基本的なAPIは提供するが、
フレームワークで準備されるような拡張API的な部分はかなり少ない。
多いなら、JakartaCommonsやらは出てこない。

とはいえ、PC上でやりたいことのほとんどにたいしての、
基本的なAPIを提供してくれているのには同意。
0317名前は開発中のものです。2009/06/22(月) 21:30:21ID:D4ho1sgZ
JMonkeyEngineがバージョンアップして、日本語の解説記事がガンガン出てきたら本気でゲーム作る
それまでは、会社でWebアプリ作ってます
0318名前は開発中のものです。2009/06/23(火) 02:32:57ID:Z4M/wv7L
そういえばjME2.0、鯖が重くてうまく落とせなかったな。

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

ただ、スプライトをどう制御するか悩むね。
スプライトクラスが個々のフレームの表示時間も持つのか描画する時に管理するかとか。
0319名前は開発中のものです。2009/06/24(水) 11:22:25ID:GkwNF2sp
スプライトの当たり判定をアルファ値考慮して実装したら平均68msの実行時間がかかってしまう。
どうやって高速化するんだろ?
0320名前は開発中のものです。2009/06/24(水) 11:52:19ID:jlXOwoDQ
厳密なアルファ値判定が必要な物だけをリストしたらいいんでない。
もうやっているならスマン。

0321名前は開発中のものです。2009/06/24(水) 15:53:53ID:86MRbq/S
クロスプラットフォーム目指してるならSDLがあるでよ
Javaの方が手間がかからないけどね
0322名前は開発中のものです。2009/06/24(水) 19:20:49ID:p2fvfWui
SDLならjavaにもあるんだが
0323名前は開発中のものです。2009/06/24(水) 21:35:08ID:PEcZRotC
JavaのSDLでいきてるのってるのか?
0324名前は開発中のものです。2009/06/24(水) 22:58:00ID:q4KJV7Tw
>>319
大きさや個数が分からんから何ともいえんが
ピクセル単位の判定前に矩形チェックで弾くのはやってるとして

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

のうちのどれかを実装するとか
0325名前は開発中のものです。2009/06/24(水) 23:31:26ID:E6VQkcW7
データ構造の仕様も判定の仕様もわからんが
あらかじめ判定のある不透明部分だけ抜き出して適当なデータ作っとくとか
0326名前は開発中のものです。2009/06/25(木) 18:29:50ID:Hr5vf1Co
>>319
ゲームの種類にもよるけど、ドット単位で厳格な判定をしようと言うのがそもそもの間違い。
(これはスプライト同士の場合。マウスカーソルとアイコン等、点とスプライトの判定ならドット単位でも大丈夫)
例えば、格闘ゲームの判定なんかは長方形の判定が数個配置してあるだけ。
キャラの喰らい判定も、パンチやキックの攻撃判定も、みんな2・3個の長方形で表現されている。
衝突判定が重要な格闘ゲームですらこうなんだから、他のジャンルもこんな感じ。

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

STG等、敵の大群と自機の弾幕の間で判定を行なう場合の高速化方法もあるけど、
アルファを考慮して68msって規模なら必要無いので省略。
03273192009/06/27(土) 02:44:14ID:jkJfUe9s
い、忙しい。コード書けねぇ。

スプライトの仕様は以下

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

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

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

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

とりあえず>>324の"あらかじめ32x32くらいの判定ボリュームを用意して精度を落としてしまう"
を時間がある時に実装しようと思う。
レスくれたみんなありがと。
0328名前は開発中のものです。2009/07/13(月) 20:05:52ID:L/yN0+Rr
スレ違いだとおもうけど
就職作品で提出する場合
MIDPとDojaどっちで作るのがいいと思う?
てかどっちが主流なんだろう
0329名前は開発中のものです。2009/07/13(月) 21:00:36ID:m1tx5Cmh
どっちでも作れるなら両方作っておいたほうがいい。
私なら使うかどうかは別として常に保険は持っておく。

ただ「提出」となるとMIDPの方が用意しやすいんじゃないか?
0330名前は開発中のものです。2009/07/13(月) 21:20:41ID:L/yN0+Rr
>>329
了解ありがとう〜
0331名前は開発中のものです。2009/07/13(月) 22:39:13ID:X6MZ6Qd8
その会社の製品がどっち優先か調べて決めれ
0332名前は開発中のものです。2009/07/14(火) 07:11:46ID:d7m2rzzT
いまDojaじゃないけどな
0333名前は開発中のものです。2009/09/11(金) 12:02:33ID:yaQ7P120
質問させてください

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

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

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

それとは別に使うライブラリとして
・Swing
・AWT
を選択。他にもSWTやJOGLを使う手もある。
0336名前は開発中のものです。2009/09/12(土) 14:13:51ID:IEF6R4ya
レスありがとうございます
基本的に、ダウンロードして遊ぶアプリケーションを考えています

色々と調べましたけど、appletは過去に現在のFlash見たいな位置づけにあった技術ってことでいいんですかね?
Java Web Startとかも同じようなことやっているみたいですし、今回はappletは無視の方向でがんばってみます
0337名前は開発中のものです。2009/09/13(日) 12:41:46ID:uuePN42W
ゲームでSwingはJOGLが安定してからの方がいいような
0338名前は開発中のものです。2009/09/13(日) 18:57:10ID:Myip4/jy
質問者のレベルからいっておそらくJava2DだけでいいからSwingでもAWTでもかまわんかと
0339名前は開発中のものです。2009/09/14(月) 12:43:38ID:PZzYIY3C
>>333
いつの日かAndroidにRhino組み込んでゲーム作る日が来るよ
0340名前は開発中のものです。2009/09/15(火) 20:39:38ID:zYM08P02
皆さんどんなゲーム作ってるの?
0341名前は開発中のものです。2009/09/25(金) 02:51:49ID:hUUmuj0G
皆さんゲーム作ってないのですか??
0342名前は開発中のものです。2009/09/26(土) 09:58:13ID:J1BQH5PO
誰もいないでちゅか?
0343名前は開発中のものです。2009/10/01(木) 07:27:17ID:8Vk+ua23
誰もいないなら削除依頼だしたほうがいいですかね?
0344名前は開発中のものです。2009/10/01(木) 16:48:22ID:ULQNoLtL
削除依頼を出す必要性が見つからないんだが。
0345名前は開発中のものです。2009/10/01(木) 23:01:58ID:8Vk+ua23
よかった!私以外にも人がいたみたいですね!!
削除依頼は延期させてもらいます!!!
0346名前は開発中のものです。2009/10/01(木) 23:31:47ID:4EjDbNUg
Javaだと、標準機能だけで2D系ゲームならすぐ作れそうだよね。
新入社員教育で、「期間8時間x5日間の課題としてテトリスクローン作成」
程度のメニュー組んでも大丈夫そうな気がする。
0347名前は開発中のものです。2009/10/02(金) 07:41:58ID:aJX6kioG
>>346
テトリスだとアルゴリズムの部分を除けば必要な機能はキー入力の処理と画像表示だけだよね
疑問なんだが、C#とかC++とかにはそういう機能は標準ではないの?
0348名前は開発中のものです。2009/10/02(金) 08:03:30ID:Zzm+z8T1
>>347
C++は画面出力用の標準ライブラリは存在しない。
C#にはあったと思うけど、本格的に使ったことがないんで自信なし。

Javaで40時間で作れそうなゲームというと、大抵の落ちものパズル、インベーダー、パックマンとかかな。
黎明期のゲームはわりとどうにかなりそう。
もちろん、敵も味方も丸や四角になるけど。
0349名前は開発中のものです。2009/10/02(金) 11:39:50ID:7JGC3MOY
>>343
スレがのこってるということ自体に意味があるので自然の落ちない限り残すのが普通だろ
たとえば間をおいて質問等があった場合スレを新規に立ち上げるのと書き込むだけでは敷居が違いすぎる

スレは一個人のものではないんだぜ?
スレはたった時点で「1」の手を離れてるんだぜ…
0350名前は開発中のものです。2009/10/02(金) 12:37:48ID:a6aeKiDs
今のJavaはゲーム作成環境としてもけっこうこなれてきたと思うんだが、
フリーや同人の世界でもJava製ゲームってあんまり無いね。
■ このスレッドは過去ログ倉庫に格納されています