Javaアプレットのゲームの限界は!
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/08 23:35ID:kmeAWDumなんか凄いの作れないの?
もう携帯だけの過去の遺物?
0161名前は開発中のものです。
02/05/31 14:15ID:???適当に試したがあっさりフリーズした。
0162名前は開発中のものです。
02/05/31 15:08ID:???古いバージョンのJREじゃないと動かないアプレットがあったり、JavaPlug-inの自動インストール(バージョンアップ)中に古いプラグインのアンインストールに失敗して中断してしまったり、なにかと問題が生じてます。
Sunだけの問題では無いでしょうけれど、期待してるだけに、もちょっとなんとかならないかなぁと思います。
0163名前は開発中のものです。
02/05/31 22:25ID:9ytySeJEエロゲをネットでやるのは技術面より改正風営法か何かの関係で面倒だとか
0164名前は開発中のものです。
02/05/31 22:26ID:???で、インストールを前提とするならFlashでもActiveXでもいいじゃん、
と無限ループ
0165名前は開発中のものです。
02/05/31 22:49ID:???0166名前は開発中のものです。
02/05/31 23:20ID:???未だにISDNだから、起動時間より
アプレットの読み込み時間のほうが長いっす。
0167名前は開発中のものです。
02/06/01 00:18ID:???ちなみに最近のJavaPlug-inはclass、jar、その他リソースをキャッシング出来るの知ってる?
当然キャッシュがきかない場合(1回目他)は意味無いけど。
うちの場合はプラグイン起動に5秒くらいかかるかな?
例えばBizTechのページとか見に行くと、プラグインの起動が終わるまでリンクなどがアクセス不能で待っていなくちゃならない。かなりストレス。
一度起動しちゃえば気にならないんだけど。
(BizTechサイトではJava使ってユーザーのトラッキングしてるらしい)
0168名前は開発中のものです。
02/06/01 11:42ID:zMTxHoSs噂では表示が高速化されて3Dのゲームも作れるようになる
とか言われてたけど。
どこかにくわしく説明してるとこないですか。
チップス集とか。
0169名前は開発中のものです。
02/06/01 12:43ID:???http://java.sun.com/j2se/1.4/ja/docs/ja/relnotes/features.html
どこかって、少なくとも本家のサイトには行ったんだよね?
3Dのゲーム云々って、どこで言われてたの?
0170名前は開発中のものです。
02/06/01 20:22ID:???http://www.javagaming.org/
にサンプルと解説があるよ。
実際になんか書いてみるならjava.awt.image.BufferStrategy使うのが楽。
1.4での3Dの強化って言うのは多分DirectBuffer使って
OpenGLラッパーが高速になるって話だと思う。これ↓
http://java.sun.com/products/jfc/tsc/articles/jcanyon/
0171名前は開発中のものです。
02/06/02 15:45ID:???最新の1.4でもURLの末尾が.jarか.classで終わってないとキャッシュしない。
まあ.jarに必要なリソース全部ブチ込めば済む話だけど
0172名前は開発中のものです。
02/06/04 05:06ID:???リソース読めないってバグがあったような…
0173名前は開発中のものです。
02/06/22 10:44ID:4frAFN1Uhttp://japan.internet.com/webtech/20020619/11.html
MS、XP でも Java を標準サポートするよう路線変更
各種報道によると、Microsoft (NASDAQ:MSFT) は、今夏リリース予定の Windows XP 用サービスパック1 (SP1) に『Java Virtual Machine (JVM)』を含めることを決定したという。
Microsofot は Sun Microsystems (NASDAQ:SUNW) から反トラスト法違反訴訟を起こされており、打開策をさぐっているのがうかがえる。
0174名前は開発中のものです。
02/06/22 10:51ID:???0175名前は開発中のものです。
02/06/22 11:09ID:dD3kwTx.http://itpro.nikkeibp.co.jp/free/NT/NEWS/20020619/3/index.shtml
0176名前は開発中のものです。
02/06/22 12:02ID:1339MhGYJRE1.3.1 なんかは Applet 含んでいなくても Java コンソールとかいうのを起動して、
それで結局 Swing のクラス群をだらだらと長い時間かけて読み込むんだよね。
やる気無いとしか思えなかったね。JRE1.4 は、確か、ディフォルトでは Java コンソール
起動しないから、割と起動が速い。
0177名前は開発中のものです。
02/06/22 12:03ID:1339MhGY0178名前は開発中のものです。
02/06/22 13:54ID:???そう?ウチのキャッシュ見たらgifやjpgがかなり溜まってたよ
0179名前は開発中のものです。
02/06/22 15:34ID:???ブラウザ一般のキャッシュとごっちゃにしてないか?
ブラウザが直接読み込んだ画像はもちろんキャッシュされるが
Java Plug-inは利用しないから意味ない。
少なくとも漏れの場合は実際にキャッシュしてくれなかったから
URLの末尾に ?x=.jar を付けるとかの回避策が必要になった。
それがバグなのか仕様なのか調べて発見したソース↓
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/disk_caching.html#How
http://java.sun.com/products/plugin/1.3/docs/ja/cache.html#How
0180178
02/06/26 01:17ID:???>ブラウザ一般のキャッシュとごっちゃにしてないか?
はぁ・・・・・脱力・・・・
ちなみにウチのキャッシュのディレクトリは・・・・
C:\WINDOWS\.jpi_cache\file\1.0
だよ。
コントロールパネルから「キャッシュビューア」で確認しても、種類がJPEGやGIFのファイルが沢山溜まってるよ。
Javaコンソールでも(トレースレベル1以上で)
「キャッシュから http://xxxxx.xxxxx.xx/xxx.gif をロードしています」
ってメッセージが確認できるし。実際そうなんだから仕方ないよ。
0181名前は開発中のものです。
02/06/26 21:52ID:???http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/applet_caching.html
話は変わるがキャッシュディレクトリのパスが予測可能というのは
ある種の攻撃が可能になりそうでフアーン
http://memo.st.ryukoku.ac.jp/archive/200205.month/3953.html
0182名前は開発中のものです。
02/06/26 22:32ID:???確認した。確かに.jpgや.gifはキャッシュされてた。
つまりドキュメントが古いままなのか。スマソ。
でも漏れの場合必要だったのは.lzhで、これは相変わらずディスクには
キャッシュされなかった。これも確認したから間違いない。
なんかメモリにはキャッシュされてるっぽいけど。
ファイル名の後ろにランダムな文字列がつくからローカルファイル起動は大丈夫だな。
0183名前は開発中のものです。
02/06/26 22:43ID:???lzhって…
kiss でも作ってんの?
0184名前は開発中のものです。
02/06/27 22:55ID:???Java Web Start バージョン 1.2 Beta のダウンロードが可能になりました。
MacOSでは標準インストールされているらしい、"Java Web Start"。
Windowsマシンでの普及率は・・・・・・・・
キラーアプリが現れればイッキに普及もあり得るけど、現状のJavaじゃ苦しいでしょうねぇ。Web Start 自体の熟成度もまだイマイチっぽいし・・・・
0185名前は開発中のものです。
02/06/28 00:37ID:???0186名前は開発中のものです。
02/06/28 00:42ID:???どのへんがセキュリティホールになるんでしょうか?
0187名前は開発中のものです。
02/06/29 14:36ID:???「*.exeは安易にダウンロードして実行しては危ない」という知識はある。けど
「Javaは安全」のような、誤った認識を持っていたりした場合。
Web Start アプリケーションには、ローカルリソースにフルアクセスする権限を持たせる事も出来る。確か権限を与えて良いかどうかなどの確認を求めてくると思ったけど、知識の無いユーザーがそんな事聞かれても困っちゃう訳で。
*.exeをダウンロードして実行するのは危ないって言い聞かされてたけど、Javaは安全らしいし、ウィルス検知ソフトもインストールしてあるし・・・・みたいな。
ブラウザ上のリンクをワンクリックして自動インストールされたJavaアプリの安全性なんて、普通のユーザーには解らないだろうから。
>>185も、そのレベルのユーザーであると自分を認識できているという事では。
或いは、アクセス制限を課せられているはずのアプリが制限以上の権限を持ってしまうセキュリティホールがあるだろうって事だろうか?
個人的には Web Start は便利なシステムになり得ると思う。可能性として。特に会社内のイントラシステム向けアプリの自動配布(アップデート)に便利かなと。
けど、現状のクライアントサイドJavaアプリのパフォーマンスはどうも。GUIの応答速度とか。なぜJavaで組んだのかと、ユーザーから不評を買いそう。
0188187
02/06/29 14:40ID:???0189名前は開発中のものです。
02/06/30 03:29ID:???脱衣ブロック崩しなんだよな…
0190名前は開発中のものです。
02/06/30 04:12ID:???Javaアプレットの?
0191名前は開発中のものです。
02/06/30 11:29ID:???バカ供が変にアジったおかげでそういう嫌な認識が広まってるよね。
0192名前は開発中のものです。
02/06/30 17:28ID:???さほど広まってはいないだろうとも思うけどね。
そういう中途半端な知識を持っているのは、やっぱり限られた特殊な層だろうと思う。(けど、そういう半端な層のユーザーが一番厄介な存在なんだろうなぁ・・・・)
大部分の人はJava自体を知らないでしょう。
セキュリティに敏感な人の多くは「MSのJavaVMにセキュリティーホールが発見されましたので、安全の為にブラウザでJavaを使用しないように設定変更しましょう」のような知識は持っているかも。
ソフトウェア開発関係の人なら、正しい認識を持っている・・・・・とは言いきれないでしょうね。Javaから逃げているMS信奉者も少なくないだろうし。
一般向けにJavaとは何かを紹介したオンラインの記事があったら、見てみたいな。どんな風に紹介されているんだろう。
やっぱり「巨大企業マイクロソフト対その他大勢」的な記事の一部で触れられる事が多いのかな。
0193名前は開発中のものです。
02/07/04 23:43ID:???いや結構流行ってるぞ
俺ニュースあたりを見ると2、3日に1回ぐらいで脱衣ブロック崩しのニュースが入るぞ。
0194名前は開発中のものです。
02/07/05 11:58ID:???0195名前は開発中のものです。
02/07/05 14:38ID:???0196名前は開発中のものです。
02/07/05 21:34ID:???192は189へのレスじゃないぞ。よく読め。
0197194
02/07/07 23:45ID:???俺ニュースってコレであってる?
0198名前は開発中のものです。
02/08/08 22:00ID:???0199名前は開発中のものです。
02/08/08 22:21ID:???バカの習性。
バカの習性。
0201名前は開発中のものです。
02/11/03 01:58ID:???SUNも変な意地張らないでさ。
0202201
02/11/03 01:59ID:???0203あぼーん
NGNG0204名前は開発中のものです。
02/11/03 21:19ID:???結局はやってないのかな。
0205名前は開発中のものです。
02/11/09 23:32ID:???0206名前は開発中のものです。
02/11/10 12:51ID:???現状でもそんなに使えないわけではないよ。
0207名前は開発中のものです。
02/11/10 14:15ID:???0208名前は開発中のものです。
02/11/10 21:47ID:???1.4からはゲームに使えるような機能の拡張もあったし。
とはいえ、ランタイムがほとんどのOSで標準ではないという、こっちは致命的っぽい問題があるんだが…。
0209名前は開発中のものです。
02/11/11 20:51ID:???GUI : SWTという早くて恰好良い(Java臭くない)GUIのツールキットがある。アルファブレンド使えるし。
ランタイム : 配布パッケージに含めてしまう。10MBくらいしかないので、大作だったら誤差の範囲内。
・・・負け惜しみ臭いモナー
0210名前は開発中のものです。
02/11/11 21:18ID:???まぁ、アプレットだとそうだよなー
Javaアプレットゲームなんて昔のショックウェーブに次いでショボゲーの代名詞だし。
というかちっともスタンドアロンのほうが立ち上がらないほうが問題?
0211名前は開発中のものです。
02/11/12 18:39ID:???Java好きだけど、スタンドアロンが立ち上がる(ex.最新JREのPC普及率が5割を突破する)のは
もうあり得ないだろう。Javaの生みの親がSUNじゃなくてIBMだったら・・・と思うことしきり。
それに、生産性が高くてスタンドアロンのゲームが作れる言語と言えば、
Javaはいまやその代表の座をC#に譲っているからね。
生産性が高くてスタンドアロンでマルチプラットフォーム、という限定をつけたら
まだJavaがトップを突っ走っているとは思うけど、ゲームってマルチプラットフォームで
ある必要性が基本的に存在しない分野だからなぁ。
0212名前は開発中のものです。
02/11/12 19:19ID:???C# ってゲームにおいては Java の座を継いだのか…
それはそれで哀れだなぁ…
代表ゲームが Robocode と Terrarium だからまぁ、
どっちもどっちなんだけど。
0213名前は開発中のものです。
02/11/13 00:20ID:???いや、C#を褒めるつもりで書いたんだけど・・・
でもC#はJavaの座を継承した、というのは誹謗中傷に近い発言だったかも。
C#って、Javaよりも生産性が高く、しかもWindowsべったりだから高速で、
セキュリティには無関心だけどパフォーマンスとUIには力を入れるMSが
オーナーだから、ゲームに凄く向いていると思うのですよ。
といいつつ僕はJavaでへこへこ書いてるんだけどね。
0214名前は開発中のものです。
02/11/13 01:45ID:???大きめなやつを書いたことが無いから分からん。
0215名前は開発中のものです。
02/11/13 09:11ID:???>>214
急に描画が止まったり、フレームレートが揺らいで
ユーザーにとって不快、という問題につきますな。
GCなくてもそうなるヘボいプログラムばかりなので、
ちょっとぐらいよさそうな気がしますが(汗)
C#+DX9でどれくらい行けるかが注目してます。
Javaアプレット?
何年たってもあのままじゃあ誰も使わなくなるって。
0216名前は開発中のものです。
02/11/13 12:14ID:d9pe3DQB何か大きな変更を加えたり、VMの種類やバージョンが変わるたびに
GCで引っかかるポイントが変わるのでブチ切れそうになります。
確実な回避方法がないだけにいっそう。
0217名前は開発中のものです。
02/11/13 12:19ID:???スムーズな動きが必須のゲーム(格闘ゲームやシューティングとか)は
作りにくいって事かな。
ところでC#もGCあるよね?
0218名前は開発中のものです。
02/11/13 17:37ID:???0219あぼーん
NGNG0220名前は開発中のものです。
02/11/13 21:54ID:???ライブラリが使いしてたら自分が使いまわしても意味ないし…。
0221あぼーん
NGNG0222名前は開発中のものです。
02/11/14 07:51ID:???なるほど。
0223名前は開発中のものです。
02/11/14 08:08ID:???それだと API 内部の挙動がバージョン毎に
違うのが問題で、GC だけどうにかすれば良いってモンでも無いような。
そーゆー意味では C# は GC があっても Java よりは相当楽だろうね。
0224名前は開発中のものです。
02/11/14 12:11ID:???C#はバージョンごとに共同が違ったりしないの?
0225名前は開発中のものです。
02/11/14 12:15ID:n6HwOeB2それなりにリアルタイムゲーム方面も考慮してくれるんじゃないかと。
俺は人柱になる気はないけどね。
0226名前は開発中のものです。
02/11/14 13:05ID:???> 何年たってもあのまま
な責任の10%くらいはMicrosoftにあるかと。
90%くらいはSunの自爆だが
0227あぼーん
NGNG0228名前は開発中のものです。
02/11/14 19:15ID:???0229名前は開発中のものです。
02/11/14 20:58ID:???まだバージョンが少ない(藁
M$が事実上独占してるしなあ・・・
Server版の.NETランタイムはGCの挙動がチト違うそうだ。
違いをたしかめたわけじゃないけど。
0230あぼーん
NGNG0231名前は開発中のものです。
02/11/15 12:36ID:???これからバージョンが増えてってWin32 APIの悪夢が
再来することは目に見えてるだろ
JavaだってSunが事実上独占してるけど(ry
0232あぼーん
NGNG0233名前は開発中のものです。
02/11/15 21:29ID:???0234あぼーん
NGNG0235名前は開発中のものです。
02/11/15 22:02ID:19ikqMY5だれが助けてください。
0236あぼーん
NGNG0237名前は開発中のものです。
02/11/16 01:28ID:???複数の原因が考えられるので、答えるのが面倒くさい。
0238あぼーん
NGNG0239名前は開発中のものです。
02/11/16 04:22ID:???0240あぼーん
NGNG0241age
02/11/18 03:43ID:hCRk4P1V私も同じ問題で困っていました。おかげで、アプレットが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の例に修正方法を書きます。
0242age
02/11/18 03:44ID:hCRk4P1Vstatic 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あぼーん
NGNG0244名前は開発中のものです。
02/11/18 05:31ID:???それってディスプレイの設定が24bitカラーのときっすか?
0245sage
02/11/18 06:07ID:hCRk4P1Vいや、内部形式として、24bitカラーとして扱う場合です。
いちお、256色モードのときも試してみました。
MicroSoftだと、ディザ256で、Sunだと、タイリング256で表示されました。
通常のnew MemoryImageSource()だと、32bitカラーで、上位8bitがαチャンネル
として認識されるので固まるときがあるのではないかなぁと思います。
0246名前は開発中のものです。
02/11/18 06:09ID:???鬱だ氏脳。
0247名前は開発中のものです。
02/11/18 06:21ID:???>通常のnew MemoryImageSource()だと、
>32bitカラーで、上位8bitがαチャンネルとして認識される
のは知ってるんだけど、
>ので固まるときがある
とどう結びつくのかが良くわからん。詳しい人解説キボンヌ。
Java内部でアルファブレンドしようとするので遅くなるとか?
0248名前は開発中のものです。
02/11/18 06:36ID:???最後に、パフォーマンス・フォーラムの外では 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:???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あぼーん
NGNG0251名前は開発中のものです。
02/11/18 07:19ID:???実験できるソースがあるんだったら 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:???ご苦労様です。
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あぼーん
NGNG0256名前は開発中のものです。
02/11/18 21:46ID:???Javaももうちょっとそういう部分を支援すべきかもね。
0257名前は開発中のものです。
02/11/19 01:12ID:???あわないんだよなぁ。
今流行のSWTなんてGUIに偏りまくってて、ゲームに応用するの辛いんだ。
なんせピクセルの論理演算さえできないという。アルファブレンドはできるのに。
0258名前は開発中のものです。
02/11/19 01:50ID:???0259あぼーん
NGNG0260名前は開発中のものです。
02/11/19 03:44ID:???Java でゲームすんだったら素直に AWT & Java3D にしとけば…
■ このスレッドは過去ログ倉庫に格納されています