パスワードを忘れた? アカウント作成
9862714 story
Android

Androidでのグラフィックス処理は機種ごとに大きく挙動が異なる 85

ストーリー by headless
相違 部門より
あるAnonymous Coward 曰く、

ゲーム開発者向けイベントCEDEC 2013にて「モバイルGPUでのハイエンドレンダリングエンジン開発事例」というセッションが行われたが、グラフィックエンジン開発における最大の難関は、やはりAndroid端末のモデルごとの相違だったらしい(4Gamer.netの記事)。

Android端末に搭載されているGPUは複数のメーカーから複数の種類が供給されており、その処理能力や機能が異なるのだが、性能を向上させるためにネイティブコードで開発する場合はデバッグ機能が不十分で、ブレークポイントで止められないこともあるという。

また、OSから取得した画面のリフレッシュレートが実際のリフレッシュレートと異なる、Android 4.0以下では垂直同期信号が取得できないといった問題のほか、スレッドの使い方で端末ごとに処理速度が変化する、GPUによってはオブジェクトの描画順で性能が大きく変動するなどの問題もあるそうだ。

Androidでは端末ごとに最適化を行わないとパフォーマンスが落ちる、というのはよく言われるが、実際に統計データとして発表された例は珍しい。スマートフォンでのゲーム開発は簡単などといわれがちではあるが、実際はそんなことはなく大変であるようだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2013年08月24日 13時17分 (#2447266)

    Androidを扱ってる雑誌、ネットサイト等にそのベンチマークソフトを使った
    GPUのの比較記事を載せてもらいます。
    出来るだけ機種毎の差を強調して、低評価をさも悪であるかのように叩くとよいでしょう。
    そのベンチマークがデファクトスタンダードになれば、
    自分で最適化しなくともGPUメーカの方が(そのベンチマークに)最適化してくれます。

    ベンチマークは、あらかじめ自分の作るゲームに都合のいい評価基準を設けて置きましょう。

  • そこでWindows RT (スコア:4, おもしろおかしい)

    by Anonymous Coward on 2013年08月24日 13時10分 (#2447264)

    Dell以外のサードパーティーは撤退してしまったから、Surface RT以外のハードウェアを考慮する必要がほとんどないよ!

    • by Anonymous Coward

      Surface以外のWindows RTはマジでいらなかったと思う

      • by Anonymous Coward

        むしろSurface RTもいらなかった

      • by Anonymous Coward

        WindowsRTでx86エミュレーションが動いて
        完全に互換性保てたのなら欲しかった

        intelの問題なのかnvidiaの問題なのかは知らない

        • by Anonymous Coward
          せめて.NETのデスクトップアプリが動けばねぇ。
          .NET・WPF拡大のきっかけになったかもしれないのに。
          ここらはMSが欲張りすぎたというか、今すぐにでも開き直って許しちゃえばいろいろやりたいんですけどねぇ。
          • by Anonymous Coward

            RT機でデスクトップアプリが動いても全く嬉しくない。

          • by Anonymous Coward

            欲張りすぎたから、.NETのデスクトップアプリが動かなくなったの?
            「モダンアプリが旧型アプリを駆逐するので、.NETのデスクトップアプリなぞ不要!」みたいに思ってたってこと?

        • by Anonymous Coward

          WindowsRTを使う意味がない・・・既存のWindows用ウィルス、マルウェアが動かず、Windows8用アプリが使えるのが魅力なのに。

      • by Anonymous Coward

        iOSやAndroidを見てるのに、WindowsPhoneと互換性を持たせなかったのが理解不能。

  • 当たり前だろ (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2013年08月24日 13時10分 (#2447263)

    ハードメーカは差別化したいんだからスペックが細分化するのは当然だな。
    この分裂するH/Wの差分を権力により系統化して押し付けたのがM$で
    だからM$は「邪悪」でLinuxを使いM$を駆逐するべきだと言い出していたのだから

    ANdoroidならそんな「邪悪」なことをしない解決法があるのだろう。つか身勝手な
    統一H/Wを押し付けてくるような「邪悪」なことをするのなら切腹して詫びるのが
    先だと思うね。

    • Re:当たり前だろ (スコア:4, 参考になる)

      by nmaeda (5111) on 2013年08月24日 15時49分 (#2447328)

      > ハードメーカは差別化したいんだからスペックが細分化するのは当然だな。

      それは一時的な現象。PCでいえば90年代後半には、用途やクラス別に多種多様なGPUベンダーが存在したが、数年でほとんどが淘汰された。もう、ほとんどのPCはチップセット内蔵のものを使用している。

      実際、ARMむけGPUを提供するベンダも限られており、採用数が多いとなるとさらに限られる。

      > この分裂するH/Wの差分を権力により系統化して押し付けたのがM$で

      DirectXはアプリ開発者やエンドユーザにとって必要なものだったと思うが。当時の数多あるGPUベンダーがバラバラに独自APIを提供しては、誰もついて行けない。(もちろん、高いパフォーマンスの独自APIを別途提供するから、必要ならそれを使え、というなら何の問題もないが)

      > だからM$は「邪悪」でLinuxを使いM$を駆逐するべきだと言い出していたのだから

      誰が? 標準的なAPIを提供したことを問題にする者などいない。当時のMicrosoftが批判されたのはそのような点ではない。

      そもそも、
      > 性能を向上させるためにネイティブコードで開発する場合はデバッグ機能が不十分で、ブレークポイントで止められないこともあるという。
      とか、
      > OSから取得した画面のリフレッシュレートが実際のリフレッシュレートと異なる、
      > Android 4.0以下では垂直同期信号が取得できないといった問題のほか、
      > スレッドの使い方で端末ごとに処理速度が変化する、
      など、多くが、商品の差別化と無関係。バグや実装の差異によるものだ。Androidがマルチベンダーであり、AppleがiOSを他社に提供しないという方針の違いであって当然のこと。特に日本国内は端末ベンダーが多いという独自市場だ。NECが撤退し、パナがそれに続くか否かと云った状況だが、もう少し減っても良い。

      親コメント
      • Re:当たり前だろ (スコア:3, すばらしい洞察)

        by Anonymous Coward on 2013年08月24日 16時16分 (#2447340)

        >誰が? 標準的なAPIを提供したことを問題にする者などいない。当時のMicrosoftが批判されたのはそのような点ではない。

        ですねぇ。それに DirectX は MS 主導というより HW の新機能をいかに MS が標準 API 化するか、という観点で進められていたように思います。当時は保守的な OpenGL に対抗する API として PC ゲーム開発者を心躍らせたり踊らされたりしました。glide をはじめとする 3D チップ ベンダーの専用 SDK が乱立した時代からすると DirectX は良いことした方だと思っています。

        あと、記事について。PC ゲーム方面からすると、この程度の差異は GDI や DirectX 以来ずっと言われていることなので、何を今さらという感じです。

        そもそも PowerVR が手前からポリゴン描くのも常識だと思いますし、HW 待ち (ですよね?) のウェイトを含む API 呼び出しを別スレッドにしたらシングルコアでも速度向上したとか当たり前すぎて...。ゲーム メーカーからは「こんな風にモバイル GPU を使い倒した!」とか「こんなすごいフレームワーク作った!」とか、そういう前向きな話をこそもっと聞きたいですね。

        親コメント
        • by Anonymous Coward

          その前向きな話が元記事なんだが
          読んでないね

        • by Anonymous Coward

          >それに DirectX は MS 主導というより HW の新機能をいかに MS が標準 API 化するか、という観点で進められていたように思います。当時は保守的な OpenGL に対抗する
          DirectXのAPIは3Dだけにあらず。
          OpenGLは3D向けのAPI。そもそも対等に比べること自体が変。
          DirectXは、サウンド、入力インターフェース、ネットワーク通信、そして3D、もちろん2Dも。

          >glide をはじめとする 3D チップ ベンダーの専用 SDK が乱立した時代からすると DirectX は良いことした方だと思っています。
          個人的にはその前の個人向け3Dグラフィックカード第一弾とも言えるEDGE 3Dを思い出

          • DirectX の前にもMSはWinGというAPIを出していたことをここを見ているどのくらいの人たちが知っていたり覚えているのだろうか?

            これはDirectXが出た当時、諸手を挙げて歓迎ムードじゃなかっただろ! てことを暗に言いたいのだろうか。

            WinDepthだっけか?
            あれはちょこっと遊んだ。WinG使ってましたな。

            親コメント
          • by Anonymous Coward

            >OpenGLは3D向けのAPI。そもそも対等に比べること自体が変。

            おっと、そうですね。じゃあ Direct3D (Graphics) との比較ということで。
            ネットワーク通信は DirectPlay でしたっけ?仕事で使ったことがありますが、結構早くに消滅してしまった印象です。お手軽だったんですが…。

            >2MB版と4MB版を持っていました。4MB版に搭載されていたGPUはNVIDIAのNV1でした。

            NV1 は最近『良い戦略、悪い戦略』という本を読んだ時に見かけて懐かしい気持ちになりました。EDGE 3D でバーチャファイターをプレイした記憶がよみがえります。

            >DirectX の前にもMSはWinGというAPIを出していたことをここを見ているどのくらいの人たちが知っていたり覚えているのだろうか?

            またなつかしい。そのころはプログラムを組んでませんでしたが、Windows 3.1 で 3×3 EYES をプレイする時に見た記憶があります。

      • by Anonymous Coward on 2013年08月25日 0時01分 (#2447514)

        該当セッション聞きましたが、他にもOpenGLES2.0の仕様に準拠してないなども挙げられてました。

        全体的にiOSはほとんど問題発生しなかったけど(あってもGPUの差異によるもの)、
        AndroidはOSが返す値と実際に設定されてるGLの状態が違ったり、
        仕様に準拠してないせいでいきなりクラッシュしたりで、
        まず実装の状態を自分で実測することが大事だと言われてました。

        個人的な感想ですが、
        セッション全体でメーカーさんが地道に沢山の端末を調査・実測してデータベースを作り〜
        という話を聞いてて開発予算の無い中小企業では真似できないなと思いました。

        iOS開発でかかる予算とAndroid開発でかかる予算、掛けた工数に対するリターンなども考えると
        ネイティブで書かずにUnityなどに面倒くさいことは任せた方がいい気もします。

        親コメント
      • by Anonymous Coward

        >数年でほとんどが淘汰された。もう、ほとんどのPCはチップセット内蔵のものを使用している。
        今はチップセット内蔵からCPU内蔵になっている。
        それとゲームは結局AMDかNVIDIAのGPU利用。
        CPU内蔵の物でゲームできないor動作がカクカクすると某有名質問サイトでド素人たちが大量にいつもわいている。

    • by Anonymous Coward

      >Androidならそんな「邪悪」なことをしない解決法があるのだろう。

      OSとアプリの接合点はAPIです。
      これはWindowsだろうがMacだろうがAndroidだろうがiOSだろうが変わりません。

      この本当の意味が理解できないなら、勉強してください。

      • by Anonymous Coward

        アプリのAPIの下支えをしているのはBSPなので
        そこがハードウェアベンダーが鎬を削っている所なのですが

        • と言うか、MPUの中のグラフィックチップに相当する部分の抽象化(仮想化?)があんまし出来てないのでは。
          一応、OpenGL/ESと言う枠組みがあるんだけど、GL/ESからグラフィックチップを叩くドライバの最適化が甘いとか言う話であって、BSPで触る必要がある部分が関わってる割合が低い部分なのでは…(と言うか、この手の部分をBSP経由でしか叩けないというのは、さすがにないでしょうから)

          --
          --暮らしの中に修行あり。
          新しいblogはじめました。 [hateblo.jp]
          親コメント
          • by Minno86 (40623) on 2013年08月24日 21時32分 (#2447473)
            確かにWindowsで言うDirectX相当が(個人の私感ですが)無いように
            見受けられるというかWinGの頃の感じというか結局はGlide使った
            ゲームが売れてますの時代
            解像度の違いで結構悩みそうってのがadkをかじり始めた時の
            戸惑いでした
            Windowsなら
             ままよ、800x600のウィンドウでフルスクリーン無し
            って割り切れた
            #おっと主題からはずれたか
            親コメント
  • by Anonymous Coward on 2013年08月24日 13時49分 (#2447274)

    主に規模の小さいゲームやブラウザゲーに対しての話だと思うんですけれどねえ。
    ネイティヴでガリガリに作りこんだりすれば開発難易度が高いというのは、少なくとも開発の現場では周知だと思うのですが。

    • その通りだが、実際のデータとして公開したのが少ないので貴重ってことなんでしょ

      自分たちが苦労したので、他社も苦労しろと思っている会社が多いのかも(^^;
      もっと情報共有すれば、もう少し楽になるかも?

      親コメント
      • by Anonymous Coward

        > 自分たちが苦労したので、他社も苦労しろと思っている会社が多いのかも

        ビジネスの話でいえば、
        Appleからカネもらう、もしくは他社がAndroidのゲームに参入してくるのを抑止したいならAndroidを叩く。
        いわゆる牽制球。

        そのうえで、今回のタレこみは
        「一番大変だった」とは言いつつ「全体としてiOSと比べてどのくらいの困難だったか」が示されていない。
        つまり、
        開発のほぼすべてがすべて順調で、GPU関連で少しだけ躓いただけでも
        「もっとも大変だったのはGPUの違いだ」と言えてしまう。
        その程度のネタ。

      • by Anonymous Coward

        「Androidでも直叩きすれば大変だよ」
        「そらそうだろ」
        ぐらいのどこにでもあるような話だよな。
        ピコピコゲームや一枚絵ゲーならともかくゲーム専用機レベルのものを作るなら
        むしろ厳しい世界だよ、ってところでしょう。
        対象台数(市場規模)もAndroid 全数ではなく苦労に応じた台数になるってこと。
        開発環境的にも開発キットをハードベンダーが出してサポートしてくれる専用機と
        ハードベンダーとチップ屋とOSが絡むので大変そうだなと。

        もはや専用機の時代じゃないと言われる中での反論的な話に思える。

    • by Anonymous Coward

      〜と比較してandroidは難しいと言ってるのでは。〜にはiPhoneやNDSやPSPみたいな固定仕様の端末が入ると。

  • つまりカードゲームみたいなのだけにしておけば問題ないんじゃないかな。
    海外ならともかく日本じゃ携帯ゲーム機が相変わらずそれなりの勢力なんだし
    あえてスマフォで遊ぶ程度のゲーマーがそこまで高度なゲームを求めてるとも思えんけどな。
    スマフォで遊ぶにしてもiPhoneのシェアが米国と並ぶくらいに高いとなると、ゲームメインで考える人間ならそっち選んでる可能性の方が高そうだしね。

    今の状況で無理にAndroidでゲームする人の為に苦労しても、労多くして幸少ない結果にしかならんと思うけどな。
  • iOSなら巨大な一枚岩、というのは前提からしてウソですよ。
    iOS搭載端末でもハードやOSバージョンなどピンキリです。
    最適化が必要だというならiOSでもいくつものパターンの最適化を織り込む必要があります。
    また、そこまでやっても「iOSでしか使えない実装」になりますし、
    最悪のリスクであるリジェクトリスクが重くのしかかります。

    そのうえ、全世界で市場はAndroidに完全に傾いています。
    たとえばiPhone5(の、ハードとソフトが一体化したもの)に特化した実装を書くくらいなら
    Androidでの主要GPUハードに特化した実装を書くほうが
    ユーザーベースでももはや数が上ですし、
    人気が出たら他ハードへの最適化実装も追加で入れればいいだけです。

    上記は、3Dゲームにおける「WindowsとMacの関係」と非常に近い状態です。
    もはやiOSはMac程度の扱いしかされていません。

    • Windows凋落とMac隆盛という現状「WindowsとMacの関係」という発想が全くの時代遅れですね。
      もうAndroidで一般向けのゲームソフトは商売にならないことがはっきりしていて、撤退したメーカの
      多くは、iOSに注力しています。iOS端末のGPUは一貫してPowerVR系だし、アセンブラ等を使っての
      特化した最適化は許されていません。

      親コメント
      • >もうAndroidで一般向けのゲームソフトは商売にならないことがはっきりしていて、
        >撤退したメーカの多くは、iOSに注力しています。

        ユーザーベースの話がいつの間にやら
        「ちょっと前までのiOS黄金時代でのビジネスの話」にすり替わってますね。
        話のすり替えは周囲の迷惑ですのでやめてください。
        2年前とは状況はまったく変わってるんですよ。

        日本にいると想像もつかないかもしれませんが、
        全世界でのAndroid機種の販売シェアは8割にもおよび、
        サムスン1社だけでAppleを超え、
        ハイエンドスマホに限定してもすでにAndroidのほうがシェアが大きくなっています
        (おおよそ、ハイエンドAndroidが4割、iOSが3割、激安Androidが3割程度)。

        >iOS端末のGPUは一貫してPowerVR系だし、アセンブラ等を使っての特化した最適化は許されていません。

        それだけが前提なら、AndroidでSnapdragon向け実装を書いただけで
        iOSのユーザーベースを簡単に越えられますね。はい終わり。

        親コメント
      • >もうAndroidで一般向けのゲームソフトは商売にならないことがはっきりしていて、撤退したメーカの多くは、iOSに注力しています。
        >iOS端末のGPUは一貫してPowerVR系だし、アセンブラ等を使っての
        特化した最適化は許されていません。

        …と言うか、パソコンのFPSやTPSをそのまんま移植したようなのがたくさんAndroid Marketに出ていた時期がありましたが(今は知らない)、そういう端末の特性に合わないオーバースペックなゲームが中心だったからでは?

        # 買い切り形式の大戦略とか出たら、戦闘画面がメガドライブ時代と同じでも真っ先に買うのにな(´・ω・`)

        結局、可能な限りパソコンと同じような物を作って売っては見たけど、そういうものを消費者の大半が望んでなかった上に開発費も嵩んであぼーん。と言う感じなんじゃないですかね。

        # Android系で最近の贔屓はねこースクロール2 [pokotan.jp]のような、FlashゲーをAIRで動くようにしたユルい奴。

        --
        --暮らしの中に修行あり。
        新しいblogはじめました。 [hateblo.jp]
        親コメント
      • by Anonymous Coward

        お、おう...

        Androidユーザーの方がiPhoneユーザーよりもアプリを購入していることが明らかに
        http://gigazine.net/news/20130815-cheap-android-apps/ [gigazine.net]

        • by Anonymous Coward

          お前、その記事のタイトルしか読んでないだろ。タイトルに釣られないで最後まで読めよ。

    • by Anonymous Coward

      iOSなんて一言も書いていないのにどんだけコンプレックスを持っているんだ?
      出してくるところがきもちわるい

      • by Anonymous Coward

        > iOSなんて一言も書いていないのに

        タレこみ元の記事が思いっきりiOSとの比較記事なんですが。

        せめて周囲を見渡してから行動できるようになったほうがいいと思いますよ。

    • by Anonymous Coward

      ハードウェアメーカーにとっては、Androidは予想通り [blogs.com]Windowsと同様の儲からないレッドオーシャンになったってことか。

      • 件の会社は、そこに星の海を作るかもね。
        っと。

        親コメント
      • by Anonymous Coward

        > ハードウェアメーカーにとっては、Androidは予想通り [blogs.com]Windowsと同様の儲からないレッドオーシャンになったってことか。

        本当の意味でスマホやタブレットのハードウェア専業のメーカーなんてのは実際にはほとんどなく、
        たいていは通信機器の最新技術の開発、半導体技術の開発などで利益を上げつつの
        ビジネス全体の一部で必要なのがスマホやタブレットの実開発、ってのが実際ですが
        まぁそれは置いとくとして

        iOSは利用者からカネを巻き上げる集金システムになった、ってときに
        まともな消費者なら不満を覚えるべきだと思いますよ。
        これは大まじめな話。
        AKB48やネットゲームのガチャにカネつぎ込んでいる知り合いは何人もいますが、まぁ割愛

    • by Anonymous Coward

      > 人気が出たら他ハードへの最適化実装も追加で入れればいいだけです。

      元記事は自社製品がiOSで実績のあったエンジンをAndroidに移植したって話だろ…
      開発者の人たちがAPIがOpenGL ESで同じだから簡単wwwって思ってやってみて
      どういう目にあったんだろうね。

      ちゃんと読んでるなら、「追加で入れればいいだけ」なんて言えないと思うけどなぁ。

      • by Anonymous Coward

        >元記事は自社製品がiOSで実績のあったエンジンをAndroidに移植したって話だろ…

        つまり前提が極端にiOSに有利ということです。
        iOSだけ土俵が整えられており、Androidは未開のジャングルだったところからですから。

        >開発者の人たちがAPIがOpenGL ESで同じだから簡単wwwって思ってやってみて
        >どういう目にあったんだろうね。

        元記事は読んでますか?
        メジャー機種に向けた基本実装を書くだけなら簡単だったと思いますよ。
        この時点でiOSのユーザーベースを超えていますのでビジネスとして成立してしまいます。

        その先、コストも対象ユーザーベースも度

        • >>元記事は自社製品がiOSで実績のあったエンジンをAndroidに移植したって話だろ…
          >iOSだけ土俵が整えられており、Androidは未開のジャングルだったところからですから。

          いや、そもそもの前提が違いますよ。
          PlayStation 3とXbox 360で実績のあったエンジンを、iOS→Androidと段階移植した、という話ですから、
          >開発者の人たちがAPIがOpenGL ESで同じだから簡単www
          って部分は間違ってないんじゃないすかね。

          親コメント
          • >>開発者の人たちがAPIがOpenGL ESで同じだから簡単www
            >って部分は間違ってないんじゃないすかね。

            OpenGLの開発者なら、それこそ
            「速度を出そうとするなら」ハードウェア差異を山ほど考えなきゃいけないと理解してなきゃダメですよ。
            これは本当の意味でのOpenGL開発のイロハですので
            今回のタレこみ元の記事の開発者の方が「性能を出すことを含めて簡単」と考えていたと仮定するのは
            途轍もなく失礼なことです。

            親コメント
typodupeerror

Stay hungry, Stay foolish. -- Steven Paul Jobs

読み込み中...