トップページgamedev
559コメント205KB

Javaアプレットのゲームの限界は!

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/08 23:35ID:kmeAWDum
PCのブラウザで出来ることは全てやりつくされた?
なんか凄いの作れないの?
もう携帯だけの過去の遺物?
0211名前は開発中のものです。02/11/12 18:39ID:???
>>210
Java好きだけど、スタンドアロンが立ち上がる(ex.最新JREのPC普及率が5割を突破する)のは
もうあり得ないだろう。Javaの生みの親がSUNじゃなくてIBMだったら・・・と思うことしきり。
それに、生産性が高くてスタンドアロンのゲームが作れる言語と言えば、
Javaはいまやその代表の座をC#に譲っているからね。

生産性が高くてスタンドアロンでマルチプラットフォーム、という限定をつけたら
まだJavaがトップを突っ走っているとは思うけど、ゲームってマルチプラットフォームで
ある必要性が基本的に存在しない分野だからなぁ。
0212名前は開発中のものです。02/11/12 19:19ID:???
>Javaはいまやその代表の座をC#に譲っているからね。
C# ってゲームにおいては Java の座を継いだのか…
それはそれで哀れだなぁ…
代表ゲームが Robocode と Terrarium だからまぁ、
どっちもどっちなんだけど。
0213名前は開発中のものです。02/11/13 00:20ID:???
>>212
いや、C#を褒めるつもりで書いたんだけど・・・
でもC#はJavaの座を継承した、というのは誹謗中傷に近い発言だったかも。

C#って、Javaよりも生産性が高く、しかもWindowsべったりだから高速で、
セキュリティには無関心だけどパフォーマンスとUIには力を入れるMSが
オーナーだから、ゲームに凄く向いていると思うのですよ。

といいつつ僕はJavaでへこへこ書いてるんだけどね。
0214名前は開発中のものです。02/11/13 01:45ID:???
というか、リアルタイムゲームで実際GCってどれくらい問題になるんだろう?
大きめなやつを書いたことが無いから分からん。
0215名前は開発中のものです。02/11/13 09:11ID:???
JavaはCOBOLを継承したからねえ。

>>214
急に描画が止まったり、フレームレートが揺らいで
ユーザーにとって不快、という問題につきますな。

GCなくてもそうなるヘボいプログラムばかりなので、
ちょっとぐらいよさそうな気がしますが(汗)

C#+DX9でどれくらい行けるかが注目してます。

Javaアプレット?
何年たってもあのままじゃあ誰も使わなくなるって。
0216名前は開発中のものです。02/11/13 12:14ID:d9pe3DQB
>>214
何か大きな変更を加えたり、VMの種類やバージョンが変わるたびに
GCで引っかかるポイントが変わるのでブチ切れそうになります。
確実な回避方法がないだけにいっそう。
0217名前は開発中のものです。02/11/13 12:19ID:???
ふむ。
スムーズな動きが必須のゲーム(格闘ゲームやシューティングとか)は
作りにくいって事かな。

ところでC#もGCあるよね?
0218名前は開発中のものです。02/11/13 17:37ID:???
GC ってオブジェクト使いまわしとかじゃ回避できないモンなの?
0219あぼーんNGNG
あぼーん
0220名前は開発中のものです。02/11/13 21:54ID:???
>>218
ライブラリが使いしてたら自分が使いまわしても意味ないし…。
0221あぼーんNGNG
あぼーん
0222名前は開発中のものです。02/11/14 07:51ID:???
>>220
なるほど。
0223名前は開発中のものです。02/11/14 08:08ID:???
>>220
それだと API 内部の挙動がバージョン毎に
違うのが問題で、GC だけどうにかすれば良いってモンでも無いような。

そーゆー意味では C# は GC があっても Java よりは相当楽だろうね。
0224名前は開発中のものです。02/11/14 12:11ID:???
>そーゆー意味では C# は GC があっても Java よりは相当楽だろうね
C#はバージョンごとに共同が違ったりしないの?
0225名前は開発中のものです。02/11/14 12:15ID:n6HwOeB2
C#については優秀なDirectXチームがついてるから
それなりにリアルタイムゲーム方面も考慮してくれるんじゃないかと。
俺は人柱になる気はないけどね。
0226名前は開発中のものです。02/11/14 13:05ID:???
>>215
> 何年たってもあのまま
な責任の10%くらいはMicrosoftにあるかと。
90%くらいはSunの自爆だが
0227あぼーんNGNG
あぼーん
0228名前は開発中のものです。02/11/14 19:15ID:???
だから、ageないでくれぇ
0229名前は開発中のものです。02/11/14 20:58ID:???
> C#はバージョンごとに共同が違ったりしないの?

まだバージョンが少ない(藁
M$が事実上独占してるしなあ・・・

Server版の.NETランタイムはGCの挙動がチト違うそうだ。
違いをたしかめたわけじゃないけど。
0230あぼーんNGNG
あぼーん
0231名前は開発中のものです。02/11/15 12:36ID:???
>>229
これからバージョンが増えてってWin32 APIの悪夢が
再来することは目に見えてるだろ
JavaだってSunが事実上独占してるけど(ry
0232あぼーんNGNG
あぼーん
0233名前は開発中のものです。02/11/15 21:29ID:???
事実上SunとIBMのVMしか使われてないからなあ・・・
0234あぼーんNGNG
あぼーん
0235名前は開発中のものです。02/11/15 22:02ID:19ikqMY5
JDK1.4 でつくったアプレットが古いJREだと動きません。
だれが助けてください。
0236あぼーんNGNG
あぼーん
0237名前は開発中のものです。02/11/16 01:28ID:???
>>235
複数の原因が考えられるので、答えるのが面倒くさい。
0238あぼーんNGNG
あぼーん
0239名前は開発中のものです。02/11/16 04:22ID:???
ageた奴はこのスレに対する破壊行為者として認定。
0240あぼーんNGNG
あぼーん
0241age02/11/18 03:43ID:hCRk4P1V
>>74
私も同じ問題で困っていました。おかげで、アプレットがFlashに置き換えを
迫られてしまい、非常に悲しい思いをしていました。
Thinkpad Windows2000
○MicrosoftVM 5.0
○Sun 1.3.1_05
×Sun 1.4.0_02
○Sun 1.4.1
以上の環境の×がついている環境でふんづまりが起きています。
バージョンによってMemoryImageSourceの使用方法が悪いと固まるようです。
以上の環境で問題なく動作する変更方法を見つけましたので報告しておきます。
@MemoryImageSourceをnewするときに
 DirectColorModel(24, 0xff0000, 65280, 255)を用いる。
AMemoryImageSource#newPixcelsメソッドを使う。
Open-Programingの例に修正方法を書きます。
0242age02/11/18 03:44ID:hCRk4P1V
source002のRender.java
static final public void EndScene(Applet applet,Graphics offscreen)
{
offscreen.drawImage(applet.createImage(new MemoryImageSource(BUFFERW,BUFFERH,pbuf,0,BUFFERW)),0,0,null);
}

static boolean initf=false;
static MemoryImageSource mis;
static Image img;
static final public void EndScene(Applet applet,Graphics offscreen)
{
if(initf==false){
mis=new MemoryImageSource(BUFFERW,BUFFERH,new DirectColorModel(24, 0xff0000, 65280, 255),pbuf,0,BUFFERW);
img=applet.createImage(mis);
mis.setAnimated(true);
mis.setFullBufferUpdates(true);
initf=true;
}
mis.newPixels();
offscreen.drawImage(img,0,0,null);
}
0243あぼーんNGNG
あぼーん
0244名前は開発中のものです。02/11/18 05:31ID:???
>>241
それってディスプレイの設定が24bitカラーのときっすか?
0245sage02/11/18 06:07ID:hCRk4P1V
>>244

いや、内部形式として、24bitカラーとして扱う場合です。
いちお、256色モードのときも試してみました。
MicroSoftだと、ディザ256で、Sunだと、タイリング256で表示されました。
通常のnew MemoryImageSource()だと、32bitカラーで、上位8bitがαチャンネル
として認識されるので固まるときがあるのではないかなぁと思います。
0246名前は開発中のものです。02/11/18 06:09ID:???
あ、名前の欄にsageっ手書いてしまった。
鬱だ氏脳。
0247名前は開発中のものです。02/11/18 06:21ID:???
>>245
>通常のnew MemoryImageSource()だと、
>32bitカラーで、上位8bitがαチャンネルとして認識される
のは知ってるんだけど、
>ので固まるときがある
とどう結びつくのかが良くわからん。詳しい人解説キボンヌ。
Java内部でアルファブレンドしようとするので遅くなるとか?
0248名前は開発中のものです。02/11/18 06:36ID:???
http://www.gimlay.org/~andoh/hatena/JavaPerformanceTuning/newsletter009.html

最後に、パフォーマンス・フォーラムの外では Niels Jorgensen が、
アルファ・チャネル(alpha channel)を使わず、
MemoryImageSource.newPixels()と一緒に
DirectColorModel(new DirectColorModel(32,0x00ff0000,0x0000ff00,0x000000ff))
を使用したところ、デフォルト・カラーモデルを使用する場合に較べてどれほど画像描画が
著しく速くなったかについて説明していました。
そのスレッド( JavaGaming.Org Message Board: 2D Graphics Programming in Java: AWT: Oddities of drawImage() )
には newPixels() の使い方についてのより詳細な内容があります。

0249名前は開発中のものです。02/11/18 06:39ID:???
http://www.javagaming.org/discus/messages/2/113.html

Yieeeha!

If anyone else out there has similar problems, try this, after creating the MemoryImageSource:

cm=new DirectColorModel(32,0x00ff0000,0x0000ff00,0x000000ff);
memimgsrc.newPixels(aPixels,cm,0,iW);

Subsequent calls to newPixels does not need the color model (Once set, it appears as if the MemoryImageSource keeps on using it)...

とか書いてあります。よくわからないけど、
32bitのほうが速いのかなぁ???謎。
0250あぼーんNGNG
あぼーん
0251名前は開発中のものです。02/11/18 07:19ID:???
>>249
実験できるソースがあるんだったら 24bit と 32bit で
実験して報告してホスィです。あんま変わらん気もするけど。

javagaming.org って Java2D チームの人とか書いてるのか…
しっかし nativeの英語はわからんっす。
辞書に載ってない単語とか、誤字なのか、造語なのか区別つかんし。
0252名前は開発中のものです。02/11/18 08:45ID:???
ベンチとって見ました。
@newPixcelsをひたすら1000回やった場合のスピード
A表示しながらテスト。
B表示しながら、gc。
◆32bit 640x480
MS @5958ms,A66.6fps
131 @6829ms,A?すぐ遅くなる
140 @5458ms,A47.6fps(しばらくすると遅くなる)
141 @5358ms,A43.5fps(しばらくすると遅くなる)
◆24bit 640x480
MS @5748ms,A最大66.6fps
131 @6449ms,A最大62.5fps(しばらくすると遅くなる)
140 @5408ms,A最大41.6fps(しばらくすると遅くなる)
141 @5588ms,A最大50fps(しばらくすると遅くなる)
◆パラメータなし
MS @15642ms,A62.5fps
131 @18206ms,A50.0fps(カクカク)
140 @5428ms,A55.5fps(カクカク)
141 @5428ms,A83.5fps(カクカク)

24bitが速そう。
ウェイトなしでぶん回してしばらくたつと遅くなってしまうので、
sleepをかませないとうまく行かないようだ。
どうして、sleepを入れないといけないのかはわからない。
謎が多いなぁ。
0253名前は開発中のものです。02/11/18 09:53ID:???
>>252
ご苦労様です。
0254名前は開発中のものです。02/11/18 14:35ID:???
謎がある程度、解けてぶん回しても大丈夫になりました。
◆問題点
@MemoryImageSource#newPixcels()等を使うと、ImageObserver#imageUpdate()が呼ばれupdateが呼ばれてしまう。
 createImageでAppletをImageObserverに指定しているので、update()、paint()と呼ばれてしまうので無駄に処理が走る。
Asleep無しでぶん回すとrepaint()を呼ぶrun()とpaint()で同期を取っていないので
 paintでimageアクセス中にrun内でimageに追いついて衝突するため、カクカクしたり、止まったりしていた。
◆解決方法
@は、imageUpdate()をオーバーライドし何も処理しないようにする。
Aは、同期を取るか、getGraphicsメソッドで、Graphicsオブジェクトを取得し直接アプレットに描画する。
 前者は、デッドロックの可能性があるので注意が必要。
 後者は、update,paintを呼ばれたときに、何もしないようにするのがよいが、fpsが遅い場合に、他のウィンドウを
 上に乗せた場合に気になる。
0255あぼーんNGNG
あぼーん
0256名前は開発中のものです。02/11/18 21:46ID:???
GUI的なアーキテクチャとゲーム的なアーキテクチャはやっぱり合わないんだなー。
Javaももうちょっとそういう部分を支援すべきかもね。
0257名前は開発中のものです。02/11/19 01:12ID:???
>>256
あわないんだよなぁ。
今流行のSWTなんてGUIに偏りまくってて、ゲームに応用するの辛いんだ。
なんせピクセルの論理演算さえできないという。アルファブレンドはできるのに。
0258名前は開発中のものです。02/11/19 01:50ID:???
色と画像を掛け算しながら描画できないのが痛い・・・
0259あぼーんNGNG
あぼーん
0260名前は開発中のものです。02/11/19 03:44ID:???
>>257
Java でゲームすんだったら素直に AWT & Java3D にしとけば…
0261あぼーんNGNG
あぼーん
0262名前は開発中のものです。02/11/19 08:30ID:???
お前ら、文句ばっかり言ってないで手を動かせよ
たまにはデモ見て精進汁!
http://www.komplex.org/java.html
0263名前は開発中のものです。02/11/19 15:00ID:???
>>262
何年前のデモですか… 見飽きたよ。
0264あぼーんNGNG
あぼーん
0265名前は開発中のものです。02/11/19 16:17ID:???
というか、画像読み込みまわりが嫌い。スレッドとコールバック前提だし。
まぁ、Webに適合させるためにああなったのは分からないでもないけど、
ゲームにはあわないよなぁ。

それ以外は、GUI部品使わなければいいだけなので、気にならないな。
全画面表示も出来るようになったし。
0266名前は開発中のものです。02/11/19 16:50ID:???
Observerパターンを嬉々として使ってるImageクラスっすか。
正直、あれは俺も余計なお世話だと思う。
0267あぼーんNGNG
あぼーん
0268名前は開発中のものです。02/11/19 23:04ID:???
>>265
1.4からImageIOてのが付いて、同期方式になりやした。
確かに余計なお世話多すぎだね。
0269あぼーんNGNG
あぼーん
0270名前は開発中のものです。02/11/25 21:21ID:MzAMlQtU
アプレットだと、Javaなのに、XMLが使えない。
Flashだと、普通にXML使えるのに、、、。
と、思いチッコイxmlパーサ探したら、kxmlってのがありました。
http://kxml.enhydra.org/
これで、必要なところだけjarに入れて使えば、問題なくxmlが使えるし、
そんなにでかくないし、日本語化けないし、いい感じ。
0271あぼーんNGNG
あぼーん
0272名前は開発中のものです。03/02/21 09:17ID:PTBH3u8F
>>6
超亀レスだけど、凄いな・・・
こんなのJavaでも作れるのか・・・
これってOpenGLをつかってるの?
Java3Dなわけないよね、こんなに軽いんだし。
0273名前は開発中のものです。03/02/21 09:20ID:uZqnzI2f
http://homepage3.nifty.com/digikei/ten.html
( ´_ゝ`)
0274名前は開発中のものです。03/02/21 09:35ID:ugkqy7rq
http://www.agemasukudasai.com/bloom/
0275名前は開発中のものです。03/02/21 09:42ID:eCjWRLRD
>>272
なにげに舞えやったときよりバージョンアップしてる気が?
路面のレンダリングが問題だね。1行づつコピーしてるのかな?
0276名前は開発中のものです。03/02/21 13:44ID:runOoWla
            o.
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無様に .  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /    モララーより     /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
0277名前は開発中のものです。03/05/21 20:23ID:Xr9rJYyQ
てts
0278名前は開発中のものです。03/06/20 23:54ID:DeguR1Lj
MSVMってもう完全に抹殺されたんかいな。

今年に入ってからの動向全然知らずに、一般人向けのアプレットゲーム作ってた。
そういやMSVMで動作確認してないなと思ってMSのサイト行ったらどこにもねえ。
Windows Updateにもねえ。ダウンロードでけへんがな。

とほほ、Flashで作り直すべ。
0279名前は開発中のものです。03/06/27 14:15ID:8I/cjQFx
MSJVM は新規ダウンロードできなくなったみたいね。

来年一月だったかでセキュリティホールに対する修正も出来なくなるとかで、
そのうち WindowsUpdate で MSJVM 削除するようになるかもしれないってさ。
0280名前は開発中のものです。03/07/02 12:15ID:/h88Q6Sl
Sunのを入れれ。
0281Homa03/10/02 16:31ID:MRWcIN/e
http://kutipatti.fc2web.com/index.html
上記のサイトを作ってみた。
ゲーム製作や、基礎講座等色々あるからドンドン活用してくだされ。
0282名前は開発中のものです。03/10/05 13:10ID:nWzLeATY
何もないじゃん。
0283名前は開発中のものです。03/10/13 18:41ID:Fi8p2+E6
誰か一緒に先行者ゲームに似たゲーム作らない?
先行者をギコに見立てて、ギコパロの先行者ゲーム版みたいな感じでさ
0284名前は開発中のものです。03/10/13 18:50ID:eiZ2Znq9
Javaアプレットで?
0285名前は開発中のものです。03/10/13 21:03ID:vAaZAwR4
× 一緒に作らない?
○ 作ってくれ。
0286名前は開発中のものです。03/10/13 23:20ID:Fi8p2+E6
アプレットでイインジャナイ?
0287名前は開発中のものです。03/10/15 02:02ID:384+STG0
ここはどうよ?
http://www.din.or.jp/~null/game/rpg/
0288名前は開発中のものです。03/10/15 08:40ID:1SM2wGBr
>>287
お、結構すごい。ちゃんと3Dなんだ。。。
0289名前は開発中のものです。03/10/22 13:14ID:AqHNgwI1
Java3Dでゲームを作りたいんですが、ひな形を教えてもらえませんか?
メインループとキー入力、描画処理といったところの書き方が、
よく分かりません。お願いします。
0290名前は開発中のものです。03/10/24 23:56ID:CUmyDoVD
Java3Dなんか使ったら一般ユーザが実行環境用意できないんじゃ…
ところでこいつの開発を再開して欲しい。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6003/ura/buster1/index.html
0291名前は開発中のものです。03/11/25 02:33ID:bFC0Dkpb
誰か、>>287の最強のデータとか持ってないか?
0292名前は開発中のものです。03/12/24 23:12ID:JEiw4c+Q
誰か凄いの紹介してくれよ。
0293名前は開発中のものです。04/01/16 02:00ID:IBnrTlSi
かなり重めだけど、
http://ikebukuro.cool.ne.jp/javacman/main.htm
0294名前は開発中のものです。04/01/16 17:03ID:OpJhtAPE
フライトシミュレータって操作むずいんだよな。
0295名前は開発中のものです。04/01/17 00:56ID:/8vojqoK
3Dだから限界って訳ではないけど、
http://www.benricute.com/game/index.htm
にも3Dのゲームが
0296名前は開発中のものです。04/01/17 02:21ID:6ai+veDu
作るならアプレットより
アプリケーションで作った方がいいよ。

0297名前は開発中のものです。04/01/18 00:05ID:R2AUtvDl
>>295
ちょっと面白いかも。
ここってオリジナルのゲームなんでしょ?
なのに、フリーで出まわってるゲームも置いてるなんて、なんだかなぁ。
0298JAVA初心者・・・04/01/19 04:41ID:7ZOz3AkQ
はじめまして!!
今宝探しゲーム作っているのですがどなたか参考になるソースもってませんか?
目標はFF9のミニゲームだった「ここほれ!チョコボ」です。
どなたかご協力お願いします<(_ _)>
0299名前は開発中のものです。04/01/19 15:27ID:snVCA4Sa
>>298
スレ立てといてなんでここで聞いてるんだよ
0300名前は開発中のものです。04/01/21 00:26ID:j6QTKwUD
海外のサイトだけど、
http://www.javagameplay.com/games.html
とか。
あまり面白くはないけど、すげーなと思う。
0301名前は開発中のものです。04/01/21 02:01ID:JJmOkv2J
漏れも海外のサイト紹介しちゃうぞ
http://www.classicgaming.com/jmsxemu/
0302名前は開発中のものです。04/01/21 09:01ID:j6QTKwUD
紹介されているページを見る限りでは、
グラフィックスに関してはほぼ何でも出来るが、
音まわりの処理が苦しい?
0303名前は開発中のものです。04/01/22 21:10ID:sEG1ecAb
http://www1.jawink.ne.jp/koji-y/

既にでてるかな?
0304名前は開発中のものです。04/01/23 01:56ID:hxTgIGSZ
何回かチャレンジしたけど、
ヘリも飛行機も操縦がムズ過ぎ。速いマシンほど速く動いてる?
もっと簡単だったら楽しいような…

じゃ、更に追加で、
http://www2.odn.ne.jp/~cdh88520/pfsa_top.html
同じサイト内だけど、
http://www2.odn.ne.jp/~cdh88520/starship_battle_shimulator_top.html
も。
下のは複雑すぎでした…
0305名前は開発中のものです。04/01/25 01:26ID:hok/ATwA
このすれっどをみて
ぼくは
じゃばよりふらっしゅのほうがいいんだなと
おもいました。
0306名前は開発中のものです。04/02/10 01:23ID:roXOg29f
>>305
そう思ったなら多分それが正解。
適材適所。
0307名前は開発中のものです。04/05/12 17:29ID:+KwjynEM
http://www15.tok2.com/home/sitappa/java/runner/exrunner.html
0308名前は開発中のものです。04/05/15 11:19ID:atd2UrGF
おお、久しぶりの書き込みだな。
せっかくの書き込みなのにすまないんだが、

>>307
すまん、全然たいしたことない。
ってゆーか、ほとんど正男じゃん。
もっと凄いjavaゲームはないものか。
0309名前は開発中のものです。04/06/07 18:19ID:KZ9AiAg4
ゲームの限界というより作り手の限界…
0310名前は開発中のものです。04/06/21 18:11ID:uNmG74S6

ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/sound/programmer_guide/contents.html

JAVAサウンドプログラマーズガイド
■ このスレッドは過去ログ倉庫に格納されています