スレタイはアプレットとの対比的な意味と考えてください。
Javaでのゲーム開発は賛否ありますが、国外では割と盛んになってきているように思います。
裏を返せば日本語だけでは情報が得辛い状況であり、寂しく開発してる人が多いのでは・・・。
関連スレ
JAVAアプリでゲーム
http://toro.2ch.net/test/read.cgi/gamedev/1033926010/
参考になりそうなサイト
・どのイメージタイプを使うべき?
http://weblogs.java.net/blog/chet/archive/2004/08/toolkitbuffered.html
・弱点と言われる?ベクタグラフィックス関連の改善
http://docs.oracle.com/javase/1.5.0/docs/guide/2d/flags.html
・大量のソースコードを公開して下さっている国内サイト
http://aidiary.hatenablog.com/entry/20040918/1251373370
・Java 2D games tutorial
http://zetcode.com/tutorials/javagamestutorial/
・出入りが最も盛んな?フォーラム
http://www.java-gaming.org/index.php
・スプライトシートの切り方等(国内)
http://sky.geocities.jp/kmaedam/java2/java2.htm
動画
3D Game Programming tutorial
・http://www.youtube.com/watch?v=iH1xpfOBN6M
探検
Javaで作るスタンドアローンゲーム
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2012/12/27(木) 16:04:18.62ID:rl+qGRHn459名前は開発中のものです。
2015/04/01(水) 17:30:19.81ID:lJ9uSJVO グローバル変数ばんざい
460名前は開発中のものです。
2015/04/02(木) 00:51:21.72ID:Kd4ACYgu ゲームの進行を管理するクラスが必要だなー。
データをセーブロードするクラスも必要だな。
データそのもののクラスがあったほうがいいな。
プレイヤーというクラスもあるな。
アイテムというクラスを作ったら、
プレイヤーにアイテムのリストを持たせる?
いやアイテムボックスというクラスを作って、
それをプレイヤーに持たせるか。
満タン判別とか簡単に引っ張って来られたら便利だなー…
あ、データクラスに含ませてセーブしたほうがいいな。
ロードしたらアイテムボックスにリストをセットしたいな。
…って感じで、まずは想像を膨らませながら
具体的に設計したら後々楽だよ。
データをセーブロードするクラスも必要だな。
データそのもののクラスがあったほうがいいな。
プレイヤーというクラスもあるな。
アイテムというクラスを作ったら、
プレイヤーにアイテムのリストを持たせる?
いやアイテムボックスというクラスを作って、
それをプレイヤーに持たせるか。
満タン判別とか簡単に引っ張って来られたら便利だなー…
あ、データクラスに含ませてセーブしたほうがいいな。
ロードしたらアイテムボックスにリストをセットしたいな。
…って感じで、まずは想像を膨らませながら
具体的に設計したら後々楽だよ。
461名前は開発中のものです。
2015/04/03(金) 01:10:13.49ID:InpPEbYz ゲームの進行を管理するクラスが必要だなー。
データをセーブロードするクラスも必要だな。
データそのもののクラスがあったほうがいいな
から下は既存のコードを流用しようと思っていますので再設計などは他聞問題ないと思います。
http://www012.upp.so-net.ne.jp/flab/javatuto/javatuto8.html なものを見つけたので今勉強中。
もっと何かいいのがあれば教えてもらえればうれしいです。
stack exchangeやgamedev漁るのちと疲れてきた。
データをセーブロードするクラスも必要だな。
データそのもののクラスがあったほうがいいな
から下は既存のコードを流用しようと思っていますので再設計などは他聞問題ないと思います。
http://www012.upp.so-net.ne.jp/flab/javatuto/javatuto8.html なものを見つけたので今勉強中。
もっと何かいいのがあれば教えてもらえればうれしいです。
stack exchangeやgamedev漁るのちと疲れてきた。
462名前は開発中のものです。
2015/04/03(金) 04:56:34.09ID:lkqZWAUT シーン単位の設計とかそういう設計指針立てるのが苦手ってことなら、
ゲームエンジン使えば?って話になっちゃうかも
あと遷移図とか画面構成イメージとか描いたりしてる?
コード書く→リファクタリングばっかりでもいいけど、
適当に手書きで整理してみるだけでも違うもんだよ
ゲームエンジン使えば?って話になっちゃうかも
あと遷移図とか画面構成イメージとか描いたりしてる?
コード書く→リファクタリングばっかりでもいいけど、
適当に手書きで整理してみるだけでも違うもんだよ
463名前は開発中のものです。
2015/04/03(金) 17:48:28.80ID:chj1QkVN シーンの遷移が分からないってはなしだろ?
シーンのインスタンスをstaticとかシングルトンにすれば
そのインスタンスがもってるプロパティもイモヅル式にどこからでもアクセスできる
https://pastebin.mozilla.org/8828264
シーンのインスタンスをstaticとかシングルトンにすれば
そのインスタンスがもってるプロパティもイモヅル式にどこからでもアクセスできる
https://pastebin.mozilla.org/8828264
464名前は開発中のものです。
2015/04/05(日) 16:43:37.56ID:FoWp8ODA 期限が短すぎたので上げなおし
https://pastebin.mozilla.org/8828750
https://pastebin.mozilla.org/8828750
465名前は開発中のものです。
2015/04/06(月) 18:56:08.99ID:/THq8Fdv 継承や関連性はなんとなく図を描いている所。
DFDしかちゃんと出来なくて困る。
コード見ましたところ、dispose関数がありますが、そのシーンを廃棄するのでしょうか?
基本的な流れとしては、
GameStateManagerでgame options, sound options, video optionsそしてmain game突入まで管理する。
STARTは単に"Presse Start"を表示させるだけにして、後でその他のoptionsをリストに追加する。
PLAYに(遷移:読み方知らん)かんい?したらPlayStateManagerに移る。
PlayStateManagerではキャラ移動,店での買い物,メニュー画面を開いてアイテム確認や装備変更等をそれぞれstateで管理する。
例えばPlayStateでキャラ移動, MenuStateでメニュー画面を開いてアイテム確認や装備変更等に分けている。
これで各state特有の処理は出来るのだが、ここで一つ問題が発生する。
問題とは、どのようしてリストに収納されている各stateで”GameStateに無い関数”にアクセスできるか?です。
例:
PlayStateでキャラ(player)を移動させているときにアイテム確認の為にメニューを開いた。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
そしてPlayStateManagerでstateの移行を実行しPlayStateからMenuStateに移行する。
その後MenuStateでPlayStateManagerにあるgetPlayer()を呼び参照取得。そしてアイテムの使用や廃棄等の操作をした後再びPlayStateに移行する。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
その後PlayStateにあるsetPlayer(Player p)を呼んで参照のセットを計る。
しかし、その関数はGameStateに記述されていないから参照できない。
goto的になっちゃんだよな〜
https://pastebin.mozilla.org/8828836
DFDしかちゃんと出来なくて困る。
コード見ましたところ、dispose関数がありますが、そのシーンを廃棄するのでしょうか?
基本的な流れとしては、
GameStateManagerでgame options, sound options, video optionsそしてmain game突入まで管理する。
STARTは単に"Presse Start"を表示させるだけにして、後でその他のoptionsをリストに追加する。
PLAYに(遷移:読み方知らん)かんい?したらPlayStateManagerに移る。
PlayStateManagerではキャラ移動,店での買い物,メニュー画面を開いてアイテム確認や装備変更等をそれぞれstateで管理する。
例えばPlayStateでキャラ移動, MenuStateでメニュー画面を開いてアイテム確認や装備変更等に分けている。
これで各state特有の処理は出来るのだが、ここで一つ問題が発生する。
問題とは、どのようしてリストに収納されている各stateで”GameStateに無い関数”にアクセスできるか?です。
例:
PlayStateでキャラ(player)を移動させているときにアイテム確認の為にメニューを開いた。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
そしてPlayStateManagerでstateの移行を実行しPlayStateからMenuStateに移行する。
その後MenuStateでPlayStateManagerにあるgetPlayer()を呼び参照取得。そしてアイテムの使用や廃棄等の操作をした後再びPlayStateに移行する。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
その後PlayStateにあるsetPlayer(Player p)を呼んで参照のセットを計る。
しかし、その関数はGameStateに記述されていないから参照できない。
goto的になっちゃんだよな〜
https://pastebin.mozilla.org/8828836
466名前は開発中のものです。
2015/04/06(月) 22:35:38.63ID:8cFcSghx 普通にGameStateをPlayStateにダウンキャストすればよいだけだろ
ダウンキャストしたくなければ、そもそもリストに詰めないことだ
ダウンキャストしたくなければ、そもそもリストに詰めないことだ
467名前は開発中のものです。
2015/04/06(月) 23:40:08.53ID:/THq8Fdv 確かにダウンキャストすれば出来そうですが、それをしようとしたら各要所で条件分岐させなきゃならないし、
前呼んだ”javaで学ぶリファクタリング”の本でDCは余り良い手ではないと書いてあったので。
前呼んだ”javaで学ぶリファクタリング”の本でDCは余り良い手ではないと書いてあったので。
468名前は開発中のものです。
2015/04/07(火) 00:45:35.73ID:iKbQeSub アホガキまるだしでうんざりする
469名前は開発中のものです。
2015/04/07(火) 02:22:24.35ID:HEtwadqH そういえば春だね
470名前は開発中のものです。
2015/08/03(月) 09:32:43.57ID:kSwbA9Fz Thread.sleep() を呼び出すと15ミリ秒も処理が帰ってこないという話があり
http://dobon.net/vb/bbs/log3-23/14028.html
最高精度の 1 ミリ秒にできたとしても
UI スレッド、描画スレッド、AIスレッドなどを同期させながら 60fps 出したいときに
スレッド切り替えるたびに 1 ミリ秒かかっていたのでは致命的だ
この辺みんなどうやってクリアしていますか?
http://dobon.net/vb/bbs/log3-23/14028.html
最高精度の 1 ミリ秒にできたとしても
UI スレッド、描画スレッド、AIスレッドなどを同期させながら 60fps 出したいときに
スレッド切り替えるたびに 1 ミリ秒かかっていたのでは致命的だ
この辺みんなどうやってクリアしていますか?
471名前は開発中のものです。
2015/08/03(月) 11:20:15.35ID:kSwbA9Fz src.zip, Thread.java, sleep(millis, nanos):
if (nanos >= 500000 || (nanos != 0 && millis == 0)) {
millis++;
}
sleep(millis);
本当に丸められていた・・・
if (nanos >= 500000 || (nanos != 0 && millis == 0)) {
millis++;
}
sleep(millis);
本当に丸められていた・・・
472名前は開発中のものです。
2015/08/04(火) 17:44:09.45ID:YB5Xtaqw java.util.concurrent.lock.LockSupport.parkNanos(1L);
も15ミリ秒待たされた。
新しめの win 8.1 マシンでさえこんな状況
も15ミリ秒待たされた。
新しめの win 8.1 マシンでさえこんな状況
473名前は開発中のものです。
2015/08/05(水) 13:18:01.99ID:Kox9LHwR >>470
同期させるならsleepのタイムアウト待つんじゃなくて割り込みかけない?
もうちょっとちゃんとするならjava.util.concurrentのCyclicBarrierやらCountDownLatchやらPhaser使うんじゃない?
>>472
うちの環境だとThread.sleep(1);やjava.util.concurrent.locks.LockSupport.parkNanos(1L);は約1msで戻ってくるけどなー
Windows 8.1 64bit/Java8/Pentium G6950
Windows 8.1 32bit/Java8/Atom Z3735F
ideoneも約1msだった
http://ideone.com/Hlp4cu
同期させるならsleepのタイムアウト待つんじゃなくて割り込みかけない?
もうちょっとちゃんとするならjava.util.concurrentのCyclicBarrierやらCountDownLatchやらPhaser使うんじゃない?
>>472
うちの環境だとThread.sleep(1);やjava.util.concurrent.locks.LockSupport.parkNanos(1L);は約1msで戻ってくるけどなー
Windows 8.1 64bit/Java8/Pentium G6950
Windows 8.1 32bit/Java8/Atom Z3735F
ideoneも約1msだった
http://ideone.com/Hlp4cu
474名前は開発中のものです。
2015/08/05(水) 17:25:15.81ID:5iKsQnJc >>473
アクティブレンダリングの待ちが念頭にあったから sleep と考えていたけど
確かに同期させるという用途なら wait / notify とかが良いかも。
そちらでは1ミリ秒の精度あるのですね。
環境によってばらつきがあるのかな?
parkNanos(1L) はさすがに1ナノ秒の精度は期待できないにしても
マイクロ秒単位の精度はあってほしかったですが
アクティブレンダリングの待ちが念頭にあったから sleep と考えていたけど
確かに同期させるという用途なら wait / notify とかが良いかも。
そちらでは1ミリ秒の精度あるのですね。
環境によってばらつきがあるのかな?
parkNanos(1L) はさすがに1ナノ秒の精度は期待できないにしても
マイクロ秒単位の精度はあってほしかったですが
475名前は開発中のものです。
2015/08/22(土) 23:33:39.53ID:+Rszj5Wc >>470
リンク先の内容って2005年の.NET C#の話でしょ?
なんでJava板で?・・・
System.nanoTime()使えばナノ秒単位の精度が出るでしょ。
http://aidiary.hatenablog.com/entry/20070429/1251463673
リンク先の内容って2005年の.NET C#の話でしょ?
なんでJava板で?・・・
System.nanoTime()使えばナノ秒単位の精度が出るでしょ。
http://aidiary.hatenablog.com/entry/20070429/1251463673
476名前は開発中のものです。
2015/08/23(日) 19:31:06.35ID:7bDmMhl8 nanoTime() は確かに 100 ナノ秒単位くらいの精度がでるかもしれないが
それは時間を「測る」ほうの精度で、sleep で「待つ」ほうの精度はもっと悪い。
リンク先を貼ったのは探すのをさぼってしまったからだけど、
Java で、最近の Windows でも状況は似たり寄ったりなのは >>471,472 の通り
ぬるぬる動くゲームを作ろうとしていて、Thread.sleep() を呼んでいる場合は、
けっこうオーバーヘッドになっているかもしれません
それは時間を「測る」ほうの精度で、sleep で「待つ」ほうの精度はもっと悪い。
リンク先を貼ったのは探すのをさぼってしまったからだけど、
Java で、最近の Windows でも状況は似たり寄ったりなのは >>471,472 の通り
ぬるぬる動くゲームを作ろうとしていて、Thread.sleep() を呼んでいる場合は、
けっこうオーバーヘッドになっているかもしれません
477名前は開発中のものです。
2015/08/24(月) 14:14:06.17ID:qQPD7DVJ そりゃ寝てる間に別のタスク呼んでるんだから
478名前は開発中のものです。
2015/08/24(月) 18:32:26.01ID:Gp2n+Lvh sleep(millis, nanos) とあるから、ナノ秒単位で寝かせられる
と思うじゃん、
と思うじゃん、
479名前は開発中のものです。
2016/08/05(金) 20:21:48.53ID:Rrym3J/u JavaFXってグラボのアクセラレーションかかるのかな?
って誰もいないかw
PCで携帯スマホのOpenGLくらいのパフォーマンスは出そうなんだが…
って誰もいないかw
PCで携帯スマホのOpenGLくらいのパフォーマンスは出そうなんだが…
480名前は開発中のものです。
2017/02/03(金) 02:22:29.13ID:0I8xjrI1 age
481名前は開発中のものです。
2017/03/22(水) 20:19:40.48ID:2x3cQ72L482名前は開発中のものです。
2017/06/04(日) 16:37:34.00ID:uG346vtn 新板age
483名前は開発中のものです。
2017/12/31(日) 19:47:58.74ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
SCVG4A16FM
グーグル検索⇒『来島のモノノリウエ』
SCVG4A16FM
484名前は開発中のものです。
2018/02/17(土) 07:34:01.81ID:G/oBdhuK ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★2 [ごまカンパチ★]
- 【大阪】日本一高い観覧車が落雷で緊急停止 約20人乗客が閉じ込められ9時間にわたり救助活動 [七波羅探題★]
- 【・(ェ)・】「くまちゃんがいた」散歩中の2歳園児が発見 クリ林に1頭のクマ…保育士「ワンちゃんだね…」と声かけて移動 [Ailuropoda melanoleuca★]
- 【芸能】人気ゲーム実況者が一定期間の活動休止を発表「彼女以外の女性複数人と関係を持った」 [湛然★]
- ラピダス、第2工場建設でも見えぬ顧客 技術開発も難題山積 [蚤の市★]
- 【芸能】安達祐実 44歳の最新姿「ぇーーーーー!!!」「声出た」「なんなの」「まって」「ワオ」 [湛然★]
- 【悲報】小野田紀美「私のドレスは日本の正礼装なんだが?ダサいと言ってるやつは日本文化を否定し国内ブランドを貶したいのか?」 [802034645]
- たぬかなはん、ちょっとクズすぎなんじゃね? [267550838]
- 【悲報】『たぬかな』ファンのホビット、絶望「こうして36歳年収650万円身長155cmの底辺独身男性が残りましたとさ…どうすればいいんだよ [257926174]
- 日経「ギャー!中国がおやびんと高市さんの仲を引き裂こうとしてる!」中国、台湾問題で日米の分断狙う [834922174]
- 高市ジャパン、核融合開発に1千億円の超大規模投資!これで日本の未来は安泰だね [668970678]
- 【📦】Amazonブラックフライデー、まだ熱い!体温程度の3日目(水曜日)突入!!!
