トップページ⇒tech
360コメント115KB

JAVA シューティング作成委員会

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
初心者が集まって作りましょう。
0153デフォルトの名無しさんNGNG
winですらゲーム向きじゃない
C&DirectXもやったがアレはちと酷いもんだった
GameSDKと呼ばれてたころから追いかけていたが
いくら待っても実装されないものや実装がビデオカード依存とか

ゲームの処理がCPUがどんなに速くなったところで
スワップなどの発生ででフレームが飛ぶ
昔から触ってきた人種ならビデオのアクセラレーションありで
CPUがクロック100MHzもあれば余裕で処理落ち無しで
2DSTGなんか作れる

結論としてはリアルタイムOS以外はゲーム向きじゃない
VSync切る人もいるけどティアリングなんてお話にならないし
最近はTV放送でもスタッフロールなどでティアリングしているのを
見ると激しく萎える

まぁ、マシンパワーが上がってそのへんをすべて妥協するとした場合
javaは1.4からの新機能でだいぶ使いやすくなったのは確かだし
ゲーム開発するにもちゃんとオブジェクト指向ですっきりしたコードが書ける分
C+DirectXでめちゃくちゃなコード書くより楽ということになった
せいぜいDirectInputをJNIで使うくらいかな
2Dのゲームを見比べてjavaはダメだという結論はでないはずだ
0154デフォルトの名無しさんNGNG
>>152
スレッドは大量に生成をくりかえさないかぎりさほど負荷かからないよ
昔のjavaのグリーンスレッドはすごかったけどね

今じゃネイティブスレッド使ってるし、それこそjavaVM立ち上げた時点で
かなりのスレッド立ち上がってるし、hotspotのコンパイルログ見ればわかると思うけど
おもしろいほどバックグラウンドでガシガシネイティブコードにかきかわっていってる

スレッドが重いとはおもわないこと
winだって普段でスレッド500こくらい立ち上がってるし
それでも、GUIの操作しているとLinuxよりWinのほうがサクサク動く

ゲーム部分のスレッドとして1つ、サウンド周りのスレッドとして
1つというのはふつうにありえる実装だよ
たとえばjavasoundのデフォルトで1秒のPCMバッファがあったはずだから
何も考えずにsleep(1)をループにいれてその辺の処理をチマチマ書くというのも問題ない
このsleepがなくなるとサウンドの方で100%CPU使用率になるから注意と

CPU負荷率が上がるとノートはファンが回り出したり、CPUのクロック上昇、
そして温度によりクロック低下などバッテリの消費早めるとかいろいろあるんでね
すでにノートの方がデスクトップより遙かに売れている時代だ
そのへんも考慮してあげてもいいだろう
0155デフォルトの名無しさんNGNG
>>154
ゲーム部分と、サウンドでスレッドを用意ってのは分かるし
普通に思いつきやすい発想だとは思うけど
それこそプラットフォームによって思うように動かない可能性が高くなるんじゃないの?
全てのプラットフォームで一貫した動作は保障できなくなるし。(何を求めるかによるけど)
プリエンプティブとタイムスライスとか、どんなプラットフォームを使ってるかわからんわけだし。
その方法だと、動作をVMのスケジューリングに依存する部分が多すぎじゃないのかな。
それで、もし同期を取ろうとスレッド制御をしようとするのが面倒になってくるし。
0156デフォルトの名無しさんNGNG
>>155
いまのjavaでグリーンスレッドとか考慮する必要あるの?

すくなくとも現行のjavaの満足に動くプラットフォームではなんの問題もない
0.5秒以内のスライスならまったく問題ない

秒単位でスケジュールされるようなマルチタスクOSなんていらね
0157デフォルトの名無しさんNGNG
>>156
確かに、そう言われれば、そうなんだけどね。

昨日、ずっと考えたけど。結局、自分好みのつくりかたでいいよな。
というわけで自分の好きに作ることにした。

結論としては、スレッドとsleep()は使わない方針にして
・スレッドを多数使用したときに考えられる、タイマーへの影響を回避
・プラットフォームによるVMのスケジューリングへの依存を極力回避できる
・よりオブジェクト指向ライクなクラス設計がし易い傾向が現れる(説明は長くなるので割愛するけど)
のメリットを得て、その代償に
・タイマー制御をスレッド停止によって実現しないことでのCPUへの負荷
を選択することにしました。
0158デフォルトの名無しさんNGNG
>・よりオブジェクト指向ライクなクラス設計がし易い傾向が現れる(説明は長くなるので割愛するけど)
これまったく文脈と関係ないだろ
0159デフォルトの名無しさんNGNG
話の流れを折ってすまんが、
各キャラクタのクラスに描画情報を持たせるのと
アプレットで描画情報を一元管理するのと、
どっちがいいのかしらん?
前者のほうがオブジェクト指向ぽい香りがするが。
0160デフォルトの名無しさんNGNG
俺は各キャラが責任を持って描画するようにしている。
もちろんメインルーチンがそれを綺麗に呼ぶようなフレームワークづくりが先に必要だけどね。
たとえば抽象敵クラスを継承して実装していくのがふつーと思われるので
そこにdrawとかというメソッド用意すると。
0161デフォルトの名無しさんNGNG
敵やら弾やらを生成する度にnewしちゃだめですか?
0162デフォルトの名無しさんNGNG
>>161
実際にやってみな
俺はぜんぜん体感できないよ
gcが頭よくなったのとマシンパワーがありあまってるからね
STGのオブジェクト程度まったく問題はない
0163デフォルトの名無しさんNGNG
>>159
>各キャラクタのクラスに描画情報を持たせるのと
オブジェクト指向的

>アプレットで描画情報を一元管理する
構造化技法

俺もそう思う
でも>>160の言うように、描画用などの基本動作のクラスを作って
各キャラクタのクラスに継承させるのが、よりOOP
0164デフォルトの名無しさんNGNG
class getter {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.print(i + "getキタ");
for (int j = 0; j < i * i; j++) {
System.out.print("━");
}
System.out.print("(゚∀゚)");
for (int k = 0; k < i * i; k++) {
System.out.print("━");
}
System.out.println("!!!!!");
}
}
}
0165デフォルトの名無しさんNGNG
つうかVMのGCって一口で言っても
オプションでいろいろな種類を選べるんだったよね?
誰かベンチ付き説明きぼんぬ。
0166デフォルトの名無しさんNGNG
>>165
dWの「Javaの理論と実戦」シリーズは?
ttp://www-6.ibm.com/jp/developerworks/java/library.html
0167デフォルトの名無しさんNGNG
hosyu
0168デフォルトの名無しさんNGNG

      ─、、
    (゚皿゚ O) ガオー!
    / ̄/ >>
    | ̄|  | |
   @/\ \@/
     /'/ /'/
     | |  | |
    -┛ -┛
0169デフォルトの名無しさんNGNG
オープンソースの巨大ゲームプロジェクト作りませんか?
Linuxみたいに誰もが参加できるような。
今までにないと思うんですけど。

ちなみにThread.sleep()は精度が悪くて使いものにならないと思う。
Java3DのTimerを使うのが常套手段らしいです。
↓このチュートリアルが大変参考になります。
http://fivedots.coe.psu.ac.th/~ad/jg/index.html
0170デフォルトの名無しさんNGNG
とりあえずsourceforgeに登録
0171デフォルトの名無しさんNGNG
スレッドは使わないほうがいいですね。
最初は数当てゲームなんかが良いんじゃないでしょうか?
所詮Javaなんですから。
0172デフォルトの名無しさんNGNG
コンソールで動くようなゲームにすれば、
Javaの実力を知らないですむし、これからもJavaと付き合っていけそうじゃないですか。
まずは、そういうところから始めましょうよ。
まして、いきなり3DやろうとするとJavaに絶望する危険がありますよね。
言語には向き不向きがあるわけですし、身の丈にあったところから始めたほうがいいと思うんですよ。
0173デフォルトの名無しさんNGNG
以前にMIDI作るソフト作ったんですよね。
これ、きっちり使えるんですよ。
友人なんかも、すごいなーって驚いてました。
Javaで、ここまで出来ると思わなかったんでしょうね。
でも、感心してくれる人はたくさんいたのに、
実際に使ってくれるひとは一人もいなかったんですよ。
当たり前ですよね。
考えてみれば、Javaで作ったからこそすごいのであって、
MIDIソフトだと考えれば使い物にならないですから。
ゲームなんかでも同じことがいえると思うんですよ。
やはりJavaは、CGI程度のことに使うのがいいと思うんです。
0174デフォルトの名無しさんNGNG
アフォれす晒しage
0175デフォルトの名無しさんNGNG
というわけで、一緒にオープンソースの数当てゲーム作りませんか?
0176デフォルトの名無しさんNGNG
このスレも8月で1年を迎えるわけですよね?
何とかそれまでには、作品の一つくらい完成させたいじゃないですか。
生産性の高いJavaですから、変な夢さえ見なければ、
今からでも十分間に合うと思うんですよね。
がんばりましょうよ。
0177デフォルトの名無しさんNGNG
>>173 175
確かにコンシューマライクなスタンドアロンのゲームをJavaでオープンで
作ろうとするのは明らかに馬鹿げてるというか、意味がないと思うんです。
またウルティマオンラインのようなMMORPGを作っても意味がないと思うんです。
要するにJavaでどこまでクオリティの高い「売れる」ゲームを作れるかと
いうことには興味がない。
僕は、「作品」としての「ゲーム」ではなくて、
「ゲーム」の外観をもった「巨大なネットワークシステム」を構築したい。
抽象的ですが、ゲームというものをもっと大きく捉えたものなんです。
でもそれって一体どんな感じなのか??
今アイデアとしてあるのは、コミュニケーションを根本的なテーマにしたものなんですが、
激しくスレ違いでごめんなさい。
0178デフォルトの名無しさんNGNG
>>177
経験的に言えることは、systemが完成したとしても、ネットワークは出来ないと思うんですよ。
使ってくれる人がいないから。
Javaで作ると、どうしてもプログラマ以外には敷居が高くなってしまう。
出来るだけミニマムで自己満足の範囲内で作ったほうがいいと思うんです。
0179デフォルトの名無しさんNGNG
どうでもいいがおまえらスレのタイトルを言って見ろ
0180デフォルトの名無しさんNGNG
>>179
スレタイはわかってるけど、もう結論出てるでしょう。
無理なんですよ。
少々路線変更して現実的な形にしたほうがいいと思います。
数当てゲームならたぶん完成しますよ。
0181デフォルトの名無しさんNGNG
>>179
作るのは "ナンバーシューティングゲーム" という事で・・・
0182デフォルトの名無しさんNGNG
>>181
久々に笑った。
0183デフォルトの名無しさんNGNG
今のスペックと言語仕様で作れないものなんてない
あるとすればVMをインスコできないユーザーの啓蒙ぐらいだ
0184デフォルトの名無しさんNGNG
アプレットならプラグインをインスコさせれば良いだけじゃねーのか? Flashと同じく。
0185デフォルトの名無しさんNGNG
ちなみに、Java3Dは
3Dグラフィックスモデル、サウンド、デバイス入力などを一手にこなす
なかなか優等生なライブラリだ。
これのおかげでJavaは、Win32や.NETよりゲーム向きなんじゃないだろうか。
まー使ったこと無いけど。
0186デフォルトの名無しさんNGNG
すでに2Dだけならjava2Dかなり便利だしな
フルスクリーンやページフリッピングもDirectXで面倒な処理かくより手軽に出来る
実はフルスクリーンアプリをタスク切り替えとか最小化したときの
復旧を全自動ってのがかなりらくだ

JavaSoundは通常のmidi再生やpcm再生はすでに十分なもの
とくにJavaSoundはソフトウェアmidi内蔵しているので
WinでもLinuxでもまったくおなじ音がでるのがすばらしい

0187デフォルトの名無しさんNGNG
>>186
書いててむなしくないですか?
0188デフォルトの名無しさんNGNG
ランタイムとかいるの? > Java2D、Java3D
0189デフォルトの名無しさんNGNG
>>188
環境によります。
やりたいことによっても変わります。

いずれにせよ、ファイルをコピーするだけなのでユーザが簡単に行えます。
どこにコピーすれば良いかは環境によるので一概に言えません。
バージョンによっても変わります。
何をコピーすれば良いかは、環境とバージョンによって変わるので一概に言えません。

いずれにせよ、ファイルをコピーするだけなのでユーザが簡単に行えます。
0190デフォルトの名無しさんNGNG
死滅スレより芸があって面白い。
0191デフォルトの名無しさんNGNG
>>190
宣伝ばかりしてるから、こうなるのですよ。
上の書き込み全部読んでみてくださいね。

作るスレなのに、夢を語るばかりで何も出来てこないじゃないですか?
夢も大事ですけど、出来ることからこつこつやりましょう。
まず、コードの1行を書く。そこから始めてみませんか?
0192デフォルトの名無しさんNGNG
ケータイでjavaで書かれたシューティングなんて腐るほどあるぞ。
0193デフォルトの名無しさんNGNG
>>192
携帯のJavaみたいな物でいいのですか?
だったらJNI使いまくってすばらしい3Dシューティングでも作りましょうよ。
J#でも良いかもしれないですね。
このスレの人は、出来るだけPureJavaでやりたいのだと思ってました。
0194デフォルトの名無しさんNGNG
参考リンクとか

JOGL
https://games-core.dev.java.net/

Xith3D
http://www.xith.org/

JME
http://www.mojomonkeycoding.com/jmeDownload.html

JavaGaming.org
http://www.javagaming.org/cgi-bin/JGNetForums/YaBB.cgi
0195デフォルトの名無しさんNGNG
Xith3Dで、ぐぐってみたら日本語リンクが皆無なのに驚いた。
Java3Dよりそっちの方がいいみたいだね。
Shaderも使えるみたいだし。使わないけど。
0196デフォルトの名無しさんNGNG
いつまでも脳内レンダリング。
永遠に脳内レンダリング。
0197デフォルトの名無しさんNGNG
しかし、普通のゲームに3Dを使うメリットってなんだろうな。
3Dシューティングならともかく、2Dキャラを3Dに置き換えただけのゲームは正直秋田。

まあ、1回モデリングすれば何十枚もドット絵書かなくていいから楽なんだろうけど。
0198デフォルトの名無しさんNGNG
>>197
うちらには関係ないっしょ。
0199デフォルトの名無しさんNGNG
コンソールで作るって決まったしね。
0200デフォルトの名無しさんNGNG
200
0201デフォルトの名無しさんNGNG
             / / }
           _/ノ.. /、
           /  <   }
      ry、     {k_ _/`;,  ノノ パンパン
    / / }      ;'     `i、 
   _/ノ../、   _/ 入/ /   `ヽ, ノノ
  / r;ァ  }''i" ̄.   ̄r'_ノ"'ヽ.i   ) ―☆
 {k_ _/,,.'  ;.  :.      l、  ノ  
    \ `  、  ,i.    .:, :, ' / / \
     ,;ゝr;,;_二∠r;,_ェ=-ー'" r,_,/   ☆


【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0202デフォルトの名無しさんNGNG
スペースインベーダー

 界 界 界 界
 界   界 界


  #   |  #     #
###  ###  ###
     A
0203デフォルトの名無しさんNGNG
それぐらいなら作れそう

ところで、ミサイルやインベーダーは出現する度にnewするもんなんですか
0204デフォルトの名無しさんNGNG
オブジェクトの数とかによるな

通常のSTG程度の弾幕なら逐次new〜GCも問題ない
普通にJava2Dつかっていても300MHz以下ならまずいかもしれんが
大概描画関係の方がネック

どうせならjavaらしく敵キャラやステージデータは完全にプラグインにしなされ
俺は自己満足といわれようがそうして作ってるけどな

なんかSTGツクールでも作った方がいい気がしてきた
0205デフォルトの名無しさんNGNG
釣れた!
0206デフォルトの名無しさんNGNG
>>204
有り難うございます」」
>どうせならjavaらしく敵キャラやステージデータは完全にプラグインにしなされ
後スミマセン、これってどういう意味でしょうか?
0207デフォルトの名無しさんNGNG
javaはダイナミッククラスローダがうりなんだからという意味だ

ひとつのjarにまとめるのもいいけど、わけてそれを差し替え可能にしとくのがいいかなぁと
gamemain.jar
stagedata.jar
enemy.jar
って感じで差し替え可能にしておくとパッチ配布が楽になるかもしれん

「URLClassLoader」ってのをしらべてみそ

0208デフォルトの名無しさんNGNG
>>204
あとSTGツクール(←死後?)って何のことでしょうか?
www
0209デフォルトの名無しさんNGNG
ツクールは製品名だな
いろんなのがでている
しかし、マイナーだったのか

STG作るならプログラムもいいが
まずはこういったツクール系を先に手を出すものだと思ったが

ほかにはデザエモンとかシューティング68Kうんずとか
吉田工務店あたりも
0210デフォルトの名無しさんNGNG
>>209
ありがとうございます。
さっぱりわからないのですが?
www
0211デフォルトの名無しさんNGNG
つーか、ネットで検索すればいくらでもでてくるだろうに
0212デフォルトの名無しさんNGNG
シューティングツクールよりデザエモンの方が有名だな。
PC98時代にアスキーのツクールシリーズでSTG作るヤツも出てたけど。
0213デフォルトの名無しさんNGNG
ロードはできてもアンロードはできないjava
0214デフォルトの名無しさんNGNG
これは既出かね?
ttp://naramura.kdn.ne.jp/msx3/g3project/
0215デフォルトの名無しさんNGNG
スレ違ってないか?

たしかにjavaつかったSTGではあるけど、ここは既存のゲームを紹介するスレではない
参考にするならするでかまわんがなにを伝えたいのかがわからん

ちなみにPCでできるSTGなど他のスレ関係では激しく既出

そもそも、このスレが場所違うが
0216デフォルトの名無しさんNGNG
>>202
みたいなの作りたいなあ
0217デフォルトの名無しさんNGNG
>>216
そういうのは、夢・独り言板で・・・
0218デフォルトの名無しさんNGNG
>>201
みたいなの作りたいなあ
0219デフォルトの名無しさんNGNG
夢独り言板のスレは>>216が立てたのか?
0220216NGNG
んん?
夢独り言板とかいってマジ意味不明
0221デフォルトの名無しさんNGNG
つくりたい。
0222デフォルトの名無しさんNGNG
>>177
千本ノックの人ですか?
0223デフォルトの名無しさんNGNG
俺もJavaでゲーム作りたい。
誰かJBBS借りて、そこで話さない?

ここだと、いろんな情報が一箇所にぶち込まれて・・・
0224デフォルトの名無しさんNGNG
そもそもゲーム作成なら板が違うしな
ちゃんと計画とかをたてて説明して
あっちでまずは立ててみたら?
0225デフォルトの名無しさんNGNG
そろそろ完成したかな?
0226デフォルトの名無しさんNGNG
ヤター>>202デキタヨー
ttp://briefcase.yahoo.co.jp/test1748

[space][5]で弾を撃つ
[←][→][4][6]で左右移動

Test.lzhの中身:
build.xml
manifest.txt
Test.java
0227デフォルトの名無しさんNGNG
>>226を微妙に修正してみた
0228デフォルトの名無しさんNGNG
名古屋撃ちムズー
0229デフォルトの名無しさんNGNG
ここって初心者レベルのSTGでいいの?
なんかHDD整理してたら、俺が高校の時に作った
痛いSTGが出てきたんだけどアップしてみようかな。
ちなみに、ソースもあるけどJava2 1.4だとコンパイルできなかった。
0230デフォルトの名無しさんNGNG
修正してうpしる。
おれも痛いのがあるから。
0231デフォルトの名無しさんNGNG
>>227
JFrame使ってる理由が謎 Swingのクラスローディングの手間かからないFrame使っとけ
0232デフォルトの名無しさんNGNG
>>231
あほがいた
0233デフォルトの名無しさんNGNG
>>232
なんで? JPanelとかSwing系のクラス読み込みかかるはずだろ
0234デフォルトの名無しさんNGNG
FrameとJFrameの差がでる環境なんて今時あるのかよ
0235229NGNG
http://proxy.ymdb.yahoofs.jp/users/9670c183/bc/mf.zip?bc2n5DBBb2H71yo5
アップしてみた
0236デフォルトの名無しさんNGNG
こんなのみつけた
http://shin.cside.com/product/pw/index.htm
普通にさくさくうごいてるね
0237デフォルトの名無しさんNGNG
JavaWebStartもツールや業務アプリでは使い物にならんから
せめてゲームで盛り上げてくれ
0238230NGNG
>>229
乙。おれも晒してみる。

一昨年つくったシューティング。
ソースが汚すぎていまや修正不能。自作のドット絵が限りなく痛い。
http://proxy.ymdb.yahoofs.jp/users/bf3132b0/bc/Public/Shooging+1.zip?bcLgGEBBsecDAQSl

授業の宿題で年末につくったシューティング。
Java のくせに機種によって動作が鈍かったり弾が視認不能だったり。
Mac OS X だと快適なんだけどね。
http://proxy.ymdb.yahoofs.jp/users/bf3132b0/bc/Public/Shooting+2.zip?bcLgGEBBMdVzCKi1
0239229NGNG
>>238
カッコイイ画面だけどムズイな・・・・

ソース見てなくて悪いんだけど、ダブルバッファリングしてないの??
あのチラチラしてる画面はいい雰囲気だけど、意図的?
0240230NGNG
あーしまった。
Mac用に最適化したからダブルバファリングやめたんだった。
出直してきます。
0241デフォルトの名無しさんNGNG
漏れはマックなので無問題だった。
独特の操作系統に慣れると走ってるだけでも楽しいね。
ただ敵を壊す爽快感よりも作戦とか緻密な操作に重点があるかんじで
あんまシューティングっぽくないような。
あと難しすぎて1面クリアするだけで1時間かかった・・・。
0242デフォルトの名無しさんNGNG
ていうかもう完成の域に達してるんじゃ。
このスレでどうこう言ってもなあ。
0243デフォルトの名無しさんNGNG
保守しておこうか
0244デフォルトの名無しさんNGNG
ダブルバッファリング、って言葉自体がもう、懐かしい・・・。
社会人7年目。Javaメインにやってるが、Servlet/JSPオンリーで、
最近はとんとJavaのクライアントサイド、ってのに縁がないな・・・。

久しぶりになんか作ってみたくなった。ゲーム。

でも、ゲームは絵がなー。
いい素材探してくるか。
0245デフォルトの名無しさんNGNG
シューティングなら三角とか四角、丸だけでもそれなりにかっこよく作れる希ガス
ABAさんところとかみてみたら?
0246デフォルトの名無しさんNGNG
スレッドって何で使うんだろう…
0247デフォルトの名無しさんNGNG
(;´Д`)
0248デフォルトの名無しさんNGNG
ごめんなさい、先生。
いいボケが思いつきませんでした。
勘弁してください。受け止めきれませんよ。
0249デフォルトの名無しさんNGNG
スレッド使わずに作れるけどな
0250デフォルトの名無しさんNGNG
ウインドウ開いたらそれだけでスレッド作られるだろ
0251デフォルトの名無しさんNGNG
>>246 程度ならこれでいいだろ。
ttp://milkyway.merseine.nu/Java/Java089.html
0252デフォルトの名無しさんNGNG
ゲームでわざわざいぱーいスレッド使うのがなんでだろうなんだけどな
■ このスレッドは過去ログ倉庫に格納されています