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

Javaでゲーム作成 2本目

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/10/27(木) 09:43:50ID:dzSvRQXE
Javaでのゲーム作成について情報交換をするスレです。
ゲーム作成以外の話題はム板(http://pc8.2ch.net/tech/)、
他言語に関する話題は他スレでお願いします。

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

テンプレは>>1->>10あたりを参照
0002名前は開発中のものです。2005/10/27(木) 09:45:06ID:dzSvRQXE
板内関連スレ
Javaでゲーム作る話してるキチガイがいるよ(藁
ttp://pc8.2ch.net/test/read.cgi/gamedev/1013953851/
JAVAアプリでゲーム
ttp://pc8.2ch.net/test/read.cgi/gamedev/1033926010/
【JAVA】2Dアクションゲームを作る【初級】
ttp://pc8.2ch.net/test/read.cgi/gamedev/1094602659/

Javaテクノロジ
ttp://jp.sun.com/java/
ttp://java.sun.com/j2se/1.5.0/ja/download.html (Ver5.0のJDK入手はここから)
ttp://java.sun.com/j2se/1.4.2/ja/download.html (Ver1.4.2)

EclipseWiki (開発環境Eclipseについて)
ttp://eclipsewiki.net/eclipse/
Javaでゲーム作りますが何か?
ttp://javagame.main.jp/
0003名前は開発中のものです。2005/10/27(木) 09:46:29ID:dzSvRQXE
関連スレ補完
JAVA シューティング作成委員会
ttp://pc8.2ch.net/test/read.cgi/tech/1062310183/

【徹底討論】Java3Dの可能性について考える
ttp://pc8.2ch.net/test/read.cgi/tech/1033703640/

[立方体]  JAVA3D  [直方体]
ttp://pc8.2ch.net/test/read.cgi/tech/1092155318/

【質問】Java3D【相談】
ttp://pc8.2ch.net/test/read.cgi/tech/1120101050/

JavaでVCバリのゲーム開発可能?
ttp://pc8.2ch.net/test/read.cgi/tech/1068370977/

【Java】EZアプリ勉強しつつ作っていく
ttp://hobby7.2ch.net/test/read.cgi/appli/1075443374/
0004名前は開発中のものです。2005/10/27(木) 11:27:47ID:ZZ7nMv5G
しばらく見ないと思ったら、落ちてたのか
1乙
0005名前は開発中のものです。2005/10/27(木) 16:01:39ID:7S6We+lN
>1おつ。

これだけだとアレなんでPureJavaでゲームを開発する場合チェックすべきもの。

・描画の基本となるJava2D全般
・音楽のすべてはJavaSound
・描画のベースとなるGraphicsConfigurationとかJFrameとかBufferStrategy
・画像ロードにImageI/O
・入力のKeyEventやらListenerまわり
・時間管理にTimer方面
・ゲームに限らないが便利なコレクション関係。特にJ2SE5.0からは面白いものが追加されてるのでチェック
・J2SE5.0以上なら高速で高機能な排他制御にLock方面
・ハイスコアやリプレイ保存、データ読み込みなどにストリームのI/O方面。XMLも5.0からはXPathが標準ライブラリに入ったので便利
0006ooo2005/10/27(木) 16:30:12ID:Wsa915hK
よぉ
ああああああああああああああああああああああああああああああああああ
0007名前は開発中のものです。2005/10/27(木) 16:38:06ID:MMxzgP3l
Processing 1.0 (BETA)
http://processing.org/
でゲーム作りを始めてみましたが、面白いですよ。
JAVAについては何も知りませんでしたけど、簡単に作れました。
(Processing is an open source programming languageとか云ってますが、実体はJAVAなので問題無いですよね?)

ただ、BETAだとEclipseから利用する方法が分からなかったので、
あえてALPHAを使っています。
あと、音周りが工夫しないとダメですね。

SpringTower : Built with Processing
http://akimasa.s96.xrea.com/game/SpringTower/index.html
僕が作ったのはこんなモンですが、
ABA Games
http://www.asahi-net.or.jp/~cs8k-cyu/
(のProce55ingの項)
がとても参考になりました。

製作者側もお手軽で、遊ぶ側もお手軽で、アマチュアには良いんじゃないですかね。
0008名前は開発中のものです。2005/10/27(木) 18:31:56ID:7S6We+lN
>>7
たしか出来上がるものはjavaのクラスファイルだが、言語そのものは違う

という微妙なラインだな

でもBASIC感覚ならProce55ingよりもっとわかりやすいライブラリが前スレで見た気がする
0009名前は開発中のものです。2005/10/27(木) 19:33:52ID:Ng3zF12F
各種ラッパーライブラリ

JOGL(OpenGL) https://jogl.dev.java.net/
  JSR-231 beta 01 https://jogl.dev.java.net/servlets/ProjectDocumentList?folderID=4295&expandFolder=4295&folderID=2771

Lightweight Java Game Library(OpenGL, OpenAL) http://www.lwjgl.org/
sdljava(SDL) http://sdljava.sourceforge.net/
0010名前は開発中のものです。2005/10/27(木) 22:35:20ID:w+M8OxUU
>>8
Proce55ingはJava Appletの一部を隠蔽しているだけだから
言語も同じと考えていいかと。
EclipseでPAppletを継承して作っているとなおさら。
0011名前は開発中のものです。2005/10/27(木) 23:10:51ID:7S6We+lN
でも細かいこと出来ないし、ゲーム用ってのは無理があるかと
まだベータだったような気もする

それくらいだったらstatic importを前提とした
http://shin.cside.com/product/shingl3/index.htm
のほうが楽だね

まだstatic importで使える命令は少ないけど、
ページフリッピングとイメージ描画、BGM、SE、入力がBASICと同じように使えるし、
Proce55ingの時間管理のように最初にフレームレート指定するだけで全自動

だらだらと
PUTSPRITE( image, x, y, w, h);
FILL( x, y, w, h, color) ;

とかBASICと同じように可能

J2SE5.0の新機能を割り切って使ったというのは面白い
0012名前は開発中のものです。2005/10/31(月) 23:39:48ID:u6e5CoZ+
質問です。
ある画像image1を90度回転させてimage2に保存するにはどうしたらよいでしょうか?
0013名前は開発中のものです。2005/10/31(月) 23:56:08ID:imBdURi1
ム板で質問した人?

基本的な考え方としては、新しい BufferedImage を作成して
そこから createGraphics()で Graphics2D コンテクストを取得する。
そこにオリジナル画像を AffineTransform で90度回転して描画、
んでファイル書き出し。
0014名前は開発中のものです。2005/11/01(火) 00:30:00ID:9pR/2Iza
ここまで想像力のない質問を見るとさすがにムカつく
0015名前は開発中のものです。2005/11/02(水) 22:39:55ID:l4YhQp0J
想像力と言うか知識があるかないかだと思う。要は知ってるか知らないか。
0016名前は開発中のものです。2005/11/02(水) 23:48:22ID:DUZczgaE
>>15
業務系ではなくゲームの場合、少ない知識の組み合わせで目的の結果を得る想像力は大事だと思う。
0017名前は開発中のものです。2005/11/03(木) 02:58:58ID:urWJhpS3
90度単位だったら普通は関数しらなくてもピクセル単位で回転できるよなぁ
0018名前は開発中のものです。2005/11/03(木) 06:40:04ID:9Sm6/yeX
> ピクセル単位
Javaを覚え始めた頃、
Toolkit.getImage → PixelGrabber → MemoryImageSource
の流れはあまり簡単には思えなかった。catch しなきゃならない例外もあるしね。

WindowsでもDIB関係に戸惑ったし、ロジックはわかってるのに肝心な入出力
がらみのライブラリが未修得でイライラすることが良くある。
0019名前は開発中のものです。2005/11/03(木) 13:46:35ID:urWJhpS3
昔はともかく今ならBufferedImageあるんで楽チンだと思うが
素でDIBつかうよりインテリジェントにラッピングしてくれる
0020名前は開発中のものです。2005/11/03(木) 14:05:31ID:WOWA/OPZ
java・・・・と言うかプログラミング自体を勉強し始めた者なんですけど
javaで人工知能(チャットでよくある人口無能みたいなやつで入力
した単語に返答してくれるみたいな」)っぽいのつくれますか?
せっかく高校で習っているので勉強だけじゃなくてなにか役立てたいのですが・・・・
0021名前は開発中のものです。2005/11/03(木) 14:09:06ID:urWJhpS3
アルゴリズムがしっかり自分で作れるなら作れる
0022名前は開発中のものです。2005/11/03(木) 14:16:55ID:WOWA/OPZ
>>21
レスさんくすです。
ALは2次元配列までしか理解していませんが頑張って見ます
0023名前は開発中のものです。2005/11/03(木) 14:51:49ID:yzYzVhNJ
2次元配列ってアルゴリズムなのか?
0024名前は開発中のものです。2005/11/03(木) 15:25:40ID:rL8Q+mgG
データ構造だろ
0025名前は開発中のものです。2005/11/03(木) 15:30:20ID:rL8Q+mgG
>>20
人工知能と人口無能じゃ大違いだが、とりあえず
Javaだから作れる、とか作れない、とかはない。
自然言語処理等の勉強をすれば色々な言語で作れる。
0026名前は開発中のものです。2005/11/03(木) 17:22:53ID:MCCIxjg4
>>20
ttp://javagame.main.jp/index.html#minigame
にJavaで作ったサンプル例がある。

でもテキスト扱うのはPerlとかRubyの方が簡単だろうな。Javaだと無駄に難しそう。
0027名前は開発中のものです。2005/11/03(木) 17:27:23ID:urWJhpS3
どの変が難しそうなんだろう・・・
0028名前は開発中のものです。2005/11/03(木) 17:27:41ID:mPH84WWP
>>20
MyJxtaのソースの一部にEliza(人工無脳っぽいプログラム)
の機能があったと思う

Ruby向けだけど
ttp://book.mycom.co.jp/book/4-8399-1729-9/4-8399-1729-9.shtml

人工無脳ではないけどJava向け
ttp://www.amazon.co.jp/exec/obidos/ASIN/4339023876/249-1065135-4693961
0029名前は開発中のものです。2005/11/03(木) 17:56:04ID:MCCIxjg4
>>27
正規表現の使い方がJavaだと面倒くさい
0030名前は開発中のものです。2005/11/03(木) 19:20:15ID:urWJhpS3
面倒なことないやん
0031名前は開発中のものです。2005/11/04(金) 22:15:45ID:Kyfrg/8g
オブジェクト作ったりしないといけないしPerlの方が楽だと思うけど
0032名前は開発中のものです。2005/11/04(金) 22:28:24ID:SFh7BoY4
確かにちょいちょいした作業ならperlも便利だが
ちょっと大きなプログラムになるとデバッグ時間が指数関数的に増えるし
半年も経つと自分で書いたソースでも完全意味不明に見えるのは困るな
0033名前は開発中のものです。2005/11/04(金) 22:52:05ID:qJSgT1NL
昔のWebアプリはPerlが主流だったが、掲示板やチャット程度ならともかく、
業務アプリみたいな巨大な物をメンテナンスすると死にそうになる。
最近のPerlは知らんが。
0034名前は開発中のものです。2005/11/04(金) 23:16:25ID:BPGzYPZF
しかし、Javaはあとからあとから新しいWebアプリフレームワークだの
なんだの、いろいろ出しすぎw
0035名前は開発中のものです。2005/11/04(金) 23:20:17ID:ukNdIpNn
ライブラリなんて必要とする携帯にあわせて選択すればいいだけだろ。
得意不得意はそれぞれあるし、目標とするものが違うからな。
0036名前は開発中のものです。2005/11/05(土) 08:59:55ID:nyk5I5ZL
>>34
Javaは最先端の実験言語みたいだな。大学の研究でよく使われるからかも。
0037名前は開発中のものです。2005/11/05(土) 13:00:36ID:3XtwtUcI
>>36
大学の研究でよく使われるのもあるけど、
Apacheを筆頭に無数のオープンソース開発者がいるからだと思うぞ。
0038名前は開発中のものです。2005/11/05(土) 14:22:37ID:bFW/1MqR
Apacheのプロジェクト数は異常なくらいだな

問題はこのスレに関係があるライブラリはなさそうなことくらいか

まぁApache XML-RPCは目的によっては使えるか
0039名前は開発中のものです。2005/11/05(土) 15:12:24ID:JuIHCGWg
みんなどのくらい非ネーチブパッケージ使ってるのかな。
シミュレーションとかちまちましたデータ中心ならXMLデータバイディングとか
かなり使えそうとか思うけど。

自分の場合はついついインタプリタ仕込む癖がある。
0040名前は開発中のものです。2005/11/05(土) 15:14:53ID:bFW/1MqR
標準でXPath使えるようになったから大分楽になったけどね

ゲームつくろうって人間は自前で実装が多いと思われ
なんせ、ばらす必要はなくてたとえばList<Element>でもっていけば、
Beansとちがって仕様変更に強かったり、例外処理がしやすかったりする
0041名前は開発中のものです。2005/11/07(月) 02:44:21ID:vwx0ALlq
WikiのJava実装のソースを読むと正規表現が山のように出てくる
WikiはPerlで作ったのをコピーしてるからそうなっているんだと思うけど
これが、Perl文化かと思ったよ
0042名前は開発中のものです。2005/11/15(火) 23:05:03ID:P0cI9ezk
OGGって再生コストがえらい高いらしいけど
それをJavaで再生したらどえらいことになったりする?
Wavのがディスク食うだけでいいから安定するのかな?
0043名前は開発中のものです。2005/11/15(火) 23:12:48ID:ShfCvdFQ
質問は明確に
0044名前は開発中のものです。2005/11/15(火) 23:19:48ID:P0cI9ezk
CPUへの負荷が高いそうなのですが、実用レベルなのですか?
0045名前は開発中のものです。2005/11/15(火) 23:33:03ID:Wrh6FbhN
>>42

>>11のを見る限りCPU使用率は1GHzで1,2%ってところでは?
0046名前は開発中のものです。2005/11/17(木) 20:29:55ID:8R2XVZPE
フルスクリーンから
device.setFullScreenWindow(null);
System.exit(0);
とやって終わらせると画面真っ黒になって操作不能になることが
あるのですが、なる理由がわかりません。
あと、フルスクリーンにするときそこで処理が止まってctlALTDelで終わるしかない
ときもあるのですがどうすればよいのですか?
1_4_2です。
0047名前は開発中のものです。2005/11/17(木) 20:35:02ID:2shdXMro
System.exit()すればすべて開放するから
問題はないはずだけど

ベータのときはnullわたしたやつはダメだったけどね
今は大丈夫だったと思ったけど

あとはチップとビデオドライバによるかも
安定してDirectX動いてる?
0048名前は開発中のものです。2005/11/17(木) 21:44:27ID:8R2XVZPE
それを確認するにはどうしたらいいんですか?
PC初心者板逝きですか?
0049名前は開発中のものです。2005/11/17(木) 23:38:12ID:2shdXMro
>device.setFullScreenWindow(null);
これをコメント化してみたら?

あとは他のJavaのフルスクリーンのゲーム試してみるとかどうかな
0050462005/11/18(金) 20:45:39ID:Jjzsx+o7
フルスクリーンで操作不能になったりする理由はわかりませんでしたが
とりあえず動くのでよしとすることにしました。
ですが背景を付けてみると
ぱちぱちしてとても目に悪いことこの上ないという状況になりました。
これがちらつきというのでしょうか?
BufferStrategyは使っているのですがどうすれば改善するのでしょうか?
0051名前は開発中のものです。2005/11/18(金) 21:13:51ID:bdg3zZZw
BufferStrategyでページフリッピングしてれば大概の環境で垂直同期取るはずなので
ちらつくことはないと思うんだが、他のアプリでもちらついてるの?
0052名前は開発中のものです。2005/11/18(金) 21:16:43ID:yEqWeMq1
フルスクリーンじゃなくても垂直同期とるんだっけ?
0053名前は開発中のものです。2005/11/18(金) 21:24:56ID:bdg3zZZw
フルスクリーンのみな
ウインドウモードはフリッピングのフラグが降りてブリットのフラグがたってるはずだろ
0054462005/11/18(金) 22:02:38ID:Jjzsx+o7
もしや、自分の環境が大概の外にあるということでしょうか。

他にはコマンドプロンプトしか動かしてません。
ちらつくときとちらつかないときがあるのですが
背景を付けると100%ちらつくこの状況。
フルスクリーンを諦めるしかないのか
0055名前は開発中のものです。2005/11/18(金) 22:16:33ID:bdg3zZZw
だからフルスクリーン対応のアプリ立ち上げてみればわかるっしょ
0056462005/11/19(土) 06:56:25ID:59ba+Epe
東方、どっかで拾ったフルスクリーンにボールが増えていく
もの(Java)、百本ゲームのゲームは問題なく動きます。
0057名前は開発中のものです。2005/11/19(土) 13:09:03ID:BsSsGwkc
なら自分のコードがわるいってことかと
0058462005/11/19(土) 13:40:21ID:59ba+Epe
背景の描画オブジェクトにフレームのを
渡していたことが発覚。
正直すみませんでした。
ちらつきは直りましたが、それ以前の操作不能になること
がある時があるのはわからない。
これもどこか自分のが悪いのだろうか。
0059名前は開発中のものです。2005/11/20(日) 02:35:57ID:PktMjKAY
>>46=58
一言アドバイス
発覚したってことは他も可能性アリ
煮詰まってそうだけど、連レスしてないで
とりあえずもちつけ

で、もっかいソースとにらめっこしてみようぜ!
0060名前は開発中のものです。2005/11/26(土) 22:10:42ID:wK3zX5BN
Javaのパワーを生かしてツクールやFlashみたいなエンジン作ろうよ
馴らしたSEの人が設計してくれるならコードは手伝うよ
0061名前は開発中のものです。2005/11/26(土) 22:25:05ID:sU6iOuYI
まず自分でたたき台を作るくらいが必要と思われ

ツクールにしてもダンテのようにフラグだけでいいのか、スクリプトでいいのか
スクリプトなら次期バージョンで標準実装だとか

出だしはコードと設計は同一者でひっぱっていくくらいじゃないと
オープンソースなプロジェクトは成功しないと思われ

SEだ、プログラマだといったすみわけはいらない

まず、>>60がJavaでスタンドアロンのゲームを作れるかどうかという点がポイントになる
0062名前は開発中のものです。2005/11/26(土) 22:53:12ID:wK3zX5BN
>>61
すまん。実は業務系でSwingは勉強中なんだ。
0063名前は開発中のものです。2005/11/26(土) 22:56:43ID:sU6iOuYI
いや、誤る必要ないよ
業務系でJavaさわってるならまず言語の基本は問題ないとして

Java2Dを筆頭にフルスクリーンとか時間管理、JavaSoundあたりが触れるようになるといいね

0064名前は開発中のものです。2005/11/26(土) 22:56:47ID:WkbR04YY
画像を回転させようと思って
AffineTransform form = new AffineTransform();
draw(){
form.rotate(x*Math.PI/180,画像の幅/2,画像の高さ/2);
画像イメージの描画オブジェクト.drawRenderedImage(画像イメージ,form);
描画先の描画オブジェクト.drawImage(画像イメージ,null,gx,gy);
}
というふうにすると、背景が透明なでただ↓と描かれている画像を使うと背景が黒くなり矢印が見えなくなります。
また、横長い画像をつかって見ると画像の中心に
画像の高さを直径に丸くなって回転をし
その丸以外の部分が白くなってしまうんです。
ただ画像をその場で回転させて
表示させたいんですがどうすればいいんでしょうか?
0065名前は開発中のものです。2005/11/26(土) 23:04:49ID:wK3zX5BN
>>63
最初はCっぽくなるかも知れないけどやってみる。
0066名前は開発中のものです。2005/11/26(土) 23:11:28ID:sU6iOuYI
>>64
もちつけ

なんか日本語が分かりにくいぞ

まずGraphics2Dのrotateメソッドを使ってみて描画してもおかしいかチェック

それに画像イメージってやつをを上書きしてしまってるように見える
0067名前は開発中のものです。2005/11/26(土) 23:29:16ID:PhHUEMA7
>>60-63
Flash やツクールみたいのはゲームどうこうより、
アプリとしての設計の方が100倍重要だと思うけどなー
エンドユーザ的意見としては、時間制御 UI は Flash じゃなくて
AfteEffects を参考にして欲しいと願う。

Shape エディタがあったら超便利なのにと思う事は多々あるので
正直これはかなり興味ある。
そのうち Sun が出すんじゃねーかとか思ってたけど全然だし。

このへんは現状だと SVG (Illustrator -> Batik) とかになるんだろうけど
こっち方面は面倒すぎて手が出せん。
0068名前は開発中のものです。2005/11/27(日) 00:07:17ID:XSFMA6v6
まず最低限ゲームが作れないとどういう設計したらいいかわからんのでは?
0069名前は開発中のものです。2005/11/27(日) 00:25:55ID:H8JPzJcw
以下でJavaで作るゲームの基本を学ぶ。
Java基本機能だけのベースとしてはかなりいい材料と思う。
http://www.brackeen.com/javagamebook/
0070名前は開発中のものです。2005/11/27(日) 01:11:36ID:bXtTt1i7
>>69
すごいね。いい勉強になりそう。
TimerとGraphics2Dでアニメくらいは出きるからちょこちょこ学んでみるよ。
0071名前は開発中のものです。2005/11/27(日) 01:13:57ID:laCqt6jf
>>68
それは多分作ってほしいと思うもの違いがあるのかも。
オレが想像したのは、エンジンはメタなインターフェイスを提供して
ゲーム的なエッセンスはエンドユーザが作るって形のものだから。

んで実際の所、描画の最適化とか絶対に必要になるけど、
それがゲームに限った話かと言われると微妙な気がするのよ。

むかーし似たようなモン作ろうとしたけど (作りかけたま放置)
必要としたゲーム的な知識ってタイマーの使い方くらいだった。

>>70
とりあえずガンガレ!
■ このスレッドは過去ログ倉庫に格納されています