10年越しのショック
このカテゴリで記事を書くのは約6年振りになります。(^^;
会社のJavaScript勉強会が始まる前の定時後、他のチームの方からMacBookをちょっとだけ借りる事ができたので、10年間「やろうやろう」と思っていて、一度もやっていなかった、Javaで動く自作のサンプルアクションゲームの実行をMac OS上で行ってみました。

Oh!! 動くっ!動くぞっ!
………と思いきや………
なんと実行速度が、当時(2004)開発していたVAIO PCG-Z505GR/K (Pentinum III 650MHzのWindows 2000フラッグシップモデル。ちなみにこの時点で既に枯れたマシン)上の速度10倍…いや、体感的に20倍以上の遅さだったという… 紙芝居のオジさんが、紙を切り替える速度よりも遅い結果です。
開発開始当時はJDK 1.5のbetaが出たばかりで、「Javaにもついにジェネリクスが載った」という事、「JDK 1.4(正確には1.4.2)上のDirectXの性能が私のベンチマーク(BG転送"8x8ピクセルマップチップ"x"32x32マス"x"3面" per 1/60 frame)にパスした」という事で、「ちょっくらJavaでも勉強するか。ゲームでも作りながら…」と、開発を始めた訳なのですが、まさかCore 2 Duo 2.4GHz上でこんな結果になるとは思いもよりませんでした…
なんかJavaのグラフィックにパフォチュー設定があるのかもしれませんが、デフォでこれって、あんまりな気がしました。(´・ω・`)
他にも、ビット転送にも不具合があるっぽくて、自機のストックアイコンの表示もおかしい感じでした。

左がWindows、右がMac OS。
自機と盾の重なりがおかしい…
このゲームは自機のストックアイコンも自機と同じパワーアップ表示を行う上に、装備の表示を16x16で見栄えの良い様に調整して表示をしています。盾は縮小表示をしているので、もしかしたら他の場所でも大きな問題を抱えている可能性があると思われます。(処理が遅すぎて先に進められないから検証できなかったですが…)
という事で、将来またちゃんと何かを作る時があれば、APIをもっと勉強して、もっと効率の良い、どのプラットフォームでも動くゲームを作ってみたいものですね。
会社のJavaScript勉強会が始まる前の定時後、他のチームの方からMacBookをちょっとだけ借りる事ができたので、10年間「やろうやろう」と思っていて、一度もやっていなかった、Javaで動く自作のサンプルアクションゲームの実行をMac OS上で行ってみました。

Oh!! 動くっ!動くぞっ!
………と思いきや………
なんと実行速度が、当時(2004)開発していたVAIO PCG-Z505GR/K (Pentinum III 650MHzのWindows 2000フラッグシップモデル。ちなみにこの時点で既に枯れたマシン)上の速度10倍…いや、体感的に20倍以上の遅さだったという… 紙芝居のオジさんが、紙を切り替える速度よりも遅い結果です。
開発開始当時はJDK 1.5のbetaが出たばかりで、「Javaにもついにジェネリクスが載った」という事、「JDK 1.4(正確には1.4.2)上のDirectXの性能が私のベンチマーク(BG転送"8x8ピクセルマップチップ"x"32x32マス"x"3面" per 1/60 frame)にパスした」という事で、「ちょっくらJavaでも勉強するか。ゲームでも作りながら…」と、開発を始めた訳なのですが、まさかCore 2 Duo 2.4GHz上でこんな結果になるとは思いもよりませんでした…
なんかJavaのグラフィックにパフォチュー設定があるのかもしれませんが、デフォでこれって、あんまりな気がしました。(´・ω・`)
他にも、ビット転送にも不具合があるっぽくて、自機のストックアイコンの表示もおかしい感じでした。

左がWindows、右がMac OS。
自機と盾の重なりがおかしい…
このゲームは自機のストックアイコンも自機と同じパワーアップ表示を行う上に、装備の表示を16x16で見栄えの良い様に調整して表示をしています。盾は縮小表示をしているので、もしかしたら他の場所でも大きな問題を抱えている可能性があると思われます。(処理が遅すぎて先に進められないから検証できなかったですが…)
という事で、将来またちゃんと何かを作る時があれば、APIをもっと勉強して、もっと効率の良い、どのプラットフォームでも動くゲームを作ってみたいものですね。
コメント
プログラミングに関して全く詳しくないですが…
後から考えてみたのですが…
これはOSのグラフィック周りというよりも、JavaのVMの問題のような気がします。
また、私のプログラムがシンプルなビットマップ転送をかなりヘビーに行なっているせいもあると思ってます。
それでもWindows上で10年前に実現できた事ができないという事実はあるので、Javaの「グラフィック周りの」「可搬性は低い」という事が今回の実験で分かって良かったです。(Mac OSというよりも)
>OSの違いなんでしょうかね…
これもJava VMの実装のような気がします。
Finderのウィンドウ表示なんて、かなりヌルヌル動くので、「遅いなんて事はありえない」と思ってます。
でも、結果的には「これが現実」なんですよね…
>BootCampやパラレルズ
なんですよねー。
持っている人が周りで誰一人としていないのがなんとも…です。
最近は、JavaScript や HTML5 のWebサイト開発案件では、Mac OSが物凄くシェアを伸ばしているので(会社ではかなり支持されてます。Chrome + Unix環境が動くという事で)、こっち系の開発でもできたら、Mac OSを買いたいのですけどねぇ…
また、私のプログラムがシンプルなビットマップ転送をかなりヘビーに行なっているせいもあると思ってます。
それでもWindows上で10年前に実現できた事ができないという事実はあるので、Javaの「グラフィック周りの」「可搬性は低い」という事が今回の実験で分かって良かったです。(Mac OSというよりも)
>OSの違いなんでしょうかね…
これもJava VMの実装のような気がします。
Finderのウィンドウ表示なんて、かなりヌルヌル動くので、「遅いなんて事はありえない」と思ってます。
でも、結果的には「これが現実」なんですよね…
>BootCampやパラレルズ
なんですよねー。
持っている人が周りで誰一人としていないのがなんとも…です。
最近は、JavaScript や HTML5 のWebサイト開発案件では、Mac OSが物凄くシェアを伸ばしているので(会社ではかなり支持されてます。Chrome + Unix環境が動くという事で)、こっち系の開発でもできたら、Mac OSを買いたいのですけどねぇ…
コメントの投稿
この方のMacBookは、私のiMacとOSのバージョンが同じ(10.5.8)ですが、ちょっと調べてみた所、メモリのバス速度やプロセッサの速度からみて、この年代のMacBookだとグラフィック周りはIntel GMAのオンボードグラフィクスのようですね。
まさかグラボが足を引っ張っている…なんて事は無いかもしれませんが、Core2Duoの2.4Ghzでそこまで遅くなるというのは、ちょっと意外な結果でしょうね。(^^;
>自機のストックアイコンの表示もおかしい感じ
OSの違いなんでしょうかね…
BootCampやパラレルズなどで、MacOSXとWindowsのデュアルブート環境になっていると、検証ができるのかもしれませんよね。(^^;