Androidでのグラフィックス処理は機種ごとに大きく挙動が異なる 85
ストーリー by headless
相違 部門より
相違 部門より
あるAnonymous Coward 曰く、
ゲーム開発者向けイベントCEDEC 2013にて「モバイルGPUでのハイエンドレンダリングエンジン開発事例」というセッションが行われたが、グラフィックエンジン開発における最大の難関は、やはりAndroid端末のモデルごとの相違だったらしい(4Gamer.netの記事)。
Android端末に搭載されているGPUは複数のメーカーから複数の種類が供給されており、その処理能力や機能が異なるのだが、性能を向上させるためにネイティブコードで開発する場合はデバッグ機能が不十分で、ブレークポイントで止められないこともあるという。
また、OSから取得した画面のリフレッシュレートが実際のリフレッシュレートと異なる、Android 4.0以下では垂直同期信号が取得できないといった問題のほか、スレッドの使い方で端末ごとに処理速度が変化する、GPUによってはオブジェクトの描画順で性能が大きく変動するなどの問題もあるそうだ。
Androidでは端末ごとに最適化を行わないとパフォーマンスが落ちる、というのはよく言われるが、実際に統計データとして発表された例は珍しい。スマートフォンでのゲーム開発は簡単などといわれがちではあるが、実際はそんなことはなく大変であるようだ。
まずベンチマークソフトを作ります。 (スコア:5, おもしろおかしい)
Androidを扱ってる雑誌、ネットサイト等にそのベンチマークソフトを使った
GPUのの比較記事を載せてもらいます。
出来るだけ機種毎の差を強調して、低評価をさも悪であるかのように叩くとよいでしょう。
そのベンチマークがデファクトスタンダードになれば、
自分で最適化しなくともGPUメーカの方が(そのベンチマークに)最適化してくれます。
ベンチマークは、あらかじめ自分の作るゲームに都合のいい評価基準を設けて置きましょう。
Re:まずベンチマークソフトを作ります。 (スコア:1)
それスパコン作ってる人とかにも言ってあげて
Re: (スコア:0)
これはどちらもジョークだろ。お固い頭ですな
スパコンの方なんか、
「2位ではダメなんですか」
に対する答えが
「ベンチマークソフトを作ります」
でもいいくらい秀逸だ
そこでWindows RT (スコア:4, おもしろおかしい)
Dell以外のサードパーティーは撤退してしまったから、Surface RT以外のハードウェアを考慮する必要がほとんどないよ!
Re: (スコア:0)
Surface以外のWindows RTはマジでいらなかったと思う
Re: (スコア:0)
むしろSurface RTもいらなかった
Re: (スコア:0)
WindowsRTでx86エミュレーションが動いて
完全に互換性保てたのなら欲しかった
intelの問題なのかnvidiaの問題なのかは知らない
Re: (スコア:0)
.NET・WPF拡大のきっかけになったかもしれないのに。
ここらはMSが欲張りすぎたというか、今すぐにでも開き直って許しちゃえばいろいろやりたいんですけどねぇ。
Re: (スコア:0)
RT機でデスクトップアプリが動いても全く嬉しくない。
Re: (スコア:0)
欲張りすぎたから、.NETのデスクトップアプリが動かなくなったの?
「モダンアプリが旧型アプリを駆逐するので、.NETのデスクトップアプリなぞ不要!」みたいに思ってたってこと?
Re: (スコア:0)
WindowsRTを使う意味がない・・・既存のWindows用ウィルス、マルウェアが動かず、Windows8用アプリが使えるのが魅力なのに。
Re: (スコア:0)
iOSやAndroidを見てるのに、WindowsPhoneと互換性を持たせなかったのが理解不能。
Re:そこでWindows RT (スコア:1)
iOSやAndroidの失敗を見てるからこそそうしたことはMSのページのデザインフィロソフィーあたりに書いてある
結果をみれば、より失敗する方向に舵を切ってたってことですかね……。
当たり前だろ (スコア:3, おもしろおかしい)
ハードメーカは差別化したいんだからスペックが細分化するのは当然だな。
この分裂するH/Wの差分を権力により系統化して押し付けたのがM$で
だからM$は「邪悪」でLinuxを使いM$を駆逐するべきだと言い出していたのだから
ANdoroidならそんな「邪悪」なことをしない解決法があるのだろう。つか身勝手な
統一H/Wを押し付けてくるような「邪悪」なことをするのなら切腹して詫びるのが
先だと思うね。
Re:当たり前だろ (スコア:4, 参考になる)
> ハードメーカは差別化したいんだからスペックが細分化するのは当然だな。
それは一時的な現象。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, すばらしい洞察)
>誰が? 標準的なAPIを提供したことを問題にする者などいない。当時のMicrosoftが批判されたのはそのような点ではない。
ですねぇ。それに DirectX は MS 主導というより HW の新機能をいかに MS が標準 API 化するか、という観点で進められていたように思います。当時は保守的な OpenGL に対抗する API として PC ゲーム開発者を心躍らせたり踊らされたりしました。glide をはじめとする 3D チップ ベンダーの専用 SDK が乱立した時代からすると DirectX は良いことした方だと思っています。
あと、記事について。PC ゲーム方面からすると、この程度の差異は GDI や DirectX 以来ずっと言われていることなので、何を今さらという感じです。
そもそも PowerVR が手前からポリゴン描くのも常識だと思いますし、HW 待ち (ですよね?) のウェイトを含む API 呼び出しを別スレッドにしたらシングルコアでも速度向上したとか当たり前すぎて...。ゲーム メーカーからは「こんな風にモバイル GPU を使い倒した!」とか「こんなすごいフレームワーク作った!」とか、そういう前向きな話をこそもっと聞きたいですね。
Re: (スコア:0)
その前向きな話が元記事なんだが
読んでないね
Re: (スコア:0)
>それに DirectX は MS 主導というより HW の新機能をいかに MS が標準 API 化するか、という観点で進められていたように思います。当時は保守的な OpenGL に対抗する
DirectXのAPIは3Dだけにあらず。
OpenGLは3D向けのAPI。そもそも対等に比べること自体が変。
DirectXは、サウンド、入力インターフェース、ネットワーク通信、そして3D、もちろん2Dも。
>glide をはじめとする 3D チップ ベンダーの専用 SDK が乱立した時代からすると DirectX は良いことした方だと思っています。
個人的にはその前の個人向け3Dグラフィックカード第一弾とも言えるEDGE 3Dを思い出
Re:当たり前だろ (スコア:1)
DirectX の前にもMSはWinGというAPIを出していたことをここを見ているどのくらいの人たちが知っていたり覚えているのだろうか?
これはDirectXが出た当時、諸手を挙げて歓迎ムードじゃなかっただろ! てことを暗に言いたいのだろうか。
WinDepthだっけか?
あれはちょこっと遊んだ。WinG使ってましたな。
Re: (スコア:0)
>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 をプレイする時に見た記憶があります。
Re:当たり前だろ (スコア:3, 興味深い)
該当セッション聞きましたが、他にもOpenGLES2.0の仕様に準拠してないなども挙げられてました。
全体的にiOSはほとんど問題発生しなかったけど(あってもGPUの差異によるもの)、
AndroidはOSが返す値と実際に設定されてるGLの状態が違ったり、
仕様に準拠してないせいでいきなりクラッシュしたりで、
まず実装の状態を自分で実測することが大事だと言われてました。
個人的な感想ですが、
セッション全体でメーカーさんが地道に沢山の端末を調査・実測してデータベースを作り〜
という話を聞いてて開発予算の無い中小企業では真似できないなと思いました。
iOS開発でかかる予算とAndroid開発でかかる予算、掛けた工数に対するリターンなども考えると
ネイティブで書かずにUnityなどに面倒くさいことは任せた方がいい気もします。
Re: (スコア:0)
>数年でほとんどが淘汰された。もう、ほとんどのPCはチップセット内蔵のものを使用している。
今はチップセット内蔵からCPU内蔵になっている。
それとゲームは結局AMDかNVIDIAのGPU利用。
CPU内蔵の物でゲームできないor動作がカクカクすると某有名質問サイトでド素人たちが大量にいつもわいている。
Re: (スコア:0)
>Androidならそんな「邪悪」なことをしない解決法があるのだろう。
OSとアプリの接合点はAPIです。
これはWindowsだろうがMacだろうがAndroidだろうがiOSだろうが変わりません。
この本当の意味が理解できないなら、勉強してください。
Re: (スコア:0)
アプリのAPIの下支えをしているのはBSPなので
そこがハードウェアベンダーが鎬を削っている所なのですが
Re:当たり前だろ (スコア:1)
と言うか、MPUの中のグラフィックチップに相当する部分の抽象化(仮想化?)があんまし出来てないのでは。
一応、OpenGL/ESと言う枠組みがあるんだけど、GL/ESからグラフィックチップを叩くドライバの最適化が甘いとか言う話であって、BSPで触る必要がある部分が関わってる割合が低い部分なのでは…(と言うか、この手の部分をBSP経由でしか叩けないというのは、さすがにないでしょうから)
Re:当たり前だろ (スコア:1)
見受けられるというかWinGの頃の感じというか結局はGlide使った
ゲームが売れてますの時代
解像度の違いで結構悩みそうってのがadkをかじり始めた時の
戸惑いでした
Windowsなら
ままよ、800x600のウィンドウでフルスクリーン無し
って割り切れた
#おっと主題からはずれたか
スマートフォンでのゲーム開発が簡単だというのは (スコア:3, 興味深い)
主に規模の小さいゲームやブラウザゲーに対しての話だと思うんですけれどねえ。
ネイティヴでガリガリに作りこんだりすれば開発難易度が高いというのは、少なくとも開発の現場では周知だと思うのですが。
Re:スマートフォンでのゲーム開発が簡単だというのは (スコア:1)
その通りだが、実際のデータとして公開したのが少ないので貴重ってことなんでしょ
自分たちが苦労したので、他社も苦労しろと思っている会社が多いのかも(^^;
もっと情報共有すれば、もう少し楽になるかも?
Re: (スコア:0)
> 自分たちが苦労したので、他社も苦労しろと思っている会社が多いのかも
ビジネスの話でいえば、
Appleからカネもらう、もしくは他社がAndroidのゲームに参入してくるのを抑止したいならAndroidを叩く。
いわゆる牽制球。
そのうえで、今回のタレこみは
「一番大変だった」とは言いつつ「全体としてiOSと比べてどのくらいの困難だったか」が示されていない。
つまり、
開発のほぼすべてがすべて順調で、GPU関連で少しだけ躓いただけでも
「もっとも大変だったのはGPUの違いだ」と言えてしまう。
その程度のネタ。
Re: (スコア:0)
「Androidでも直叩きすれば大変だよ」
「そらそうだろ」
ぐらいのどこにでもあるような話だよな。
ピコピコゲームや一枚絵ゲーならともかくゲーム専用機レベルのものを作るなら
むしろ厳しい世界だよ、ってところでしょう。
対象台数(市場規模)もAndroid 全数ではなく苦労に応じた台数になるってこと。
開発環境的にも開発キットをハードベンダーが出してサポートしてくれる専用機と
ハードベンダーとチップ屋とOSが絡むので大変そうだなと。
もはや専用機の時代じゃないと言われる中での反論的な話に思える。
Re: (スコア:0)
〜と比較してandroidは難しいと言ってるのでは。〜にはiPhoneやNDSやPSPみたいな固定仕様の端末が入ると。
高度なグラフィックス処理が必要なゲームなんて作らなければいいんじゃないか (スコア:2)
海外ならともかく日本じゃ携帯ゲーム機が相変わらずそれなりの勢力なんだし
あえてスマフォで遊ぶ程度のゲーマーがそこまで高度なゲームを求めてるとも思えんけどな。
スマフォで遊ぶにしてもiPhoneのシェアが米国と並ぶくらいに高いとなると、ゲームメインで考える人間ならそっち選んでる可能性の方が高そうだしね。
今の状況で無理にAndroidでゲームする人の為に苦労しても、労多くして幸少ない結果にしかならんと思うけどな。
完全に時代遅れの論調、もしくは新規参入阻止のための意図的な誤情報 (スコア:1)
iOSなら巨大な一枚岩、というのは前提からしてウソですよ。
iOS搭載端末でもハードやOSバージョンなどピンキリです。
最適化が必要だというならiOSでもいくつものパターンの最適化を織り込む必要があります。
また、そこまでやっても「iOSでしか使えない実装」になりますし、
最悪のリスクであるリジェクトリスクが重くのしかかります。
そのうえ、全世界で市場はAndroidに完全に傾いています。
たとえばiPhone5(の、ハードとソフトが一体化したもの)に特化した実装を書くくらいなら
Androidでの主要GPUハードに特化した実装を書くほうが
ユーザーベースでももはや数が上ですし、
人気が出たら他ハードへの最適化実装も追加で入れればいいだけです。
上記は、3Dゲームにおける「WindowsとMacの関係」と非常に近い状態です。
もはやiOSはMac程度の扱いしかされていません。
Re:完全に時代遅れの論調、もしくは新規参入阻止のための意図的な誤情報 (スコア:1)
Windows凋落とMac隆盛という現状「WindowsとMacの関係」という発想が全くの時代遅れですね。
もうAndroidで一般向けのゲームソフトは商売にならないことがはっきりしていて、撤退したメーカの
多くは、iOSに注力しています。iOS端末のGPUは一貫してPowerVR系だし、アセンブラ等を使っての
特化した最適化は許されていません。
Re:完全に時代遅れの論調、もしくは新規参入阻止のための意図的な誤情報 (スコア:1)
>もうAndroidで一般向けのゲームソフトは商売にならないことがはっきりしていて、
>撤退したメーカの多くは、iOSに注力しています。
ユーザーベースの話がいつの間にやら
「ちょっと前までのiOS黄金時代でのビジネスの話」にすり替わってますね。
話のすり替えは周囲の迷惑ですのでやめてください。
2年前とは状況はまったく変わってるんですよ。
日本にいると想像もつかないかもしれませんが、
全世界でのAndroid機種の販売シェアは8割にもおよび、
サムスン1社だけでAppleを超え、
ハイエンドスマホに限定してもすでにAndroidのほうがシェアが大きくなっています
(おおよそ、ハイエンドAndroidが4割、iOSが3割、激安Androidが3割程度)。
>iOS端末のGPUは一貫してPowerVR系だし、アセンブラ等を使っての特化した最適化は許されていません。
それだけが前提なら、AndroidでSnapdragon向け実装を書いただけで
iOSのユーザーベースを簡単に越えられますね。はい終わり。
Re:完全に時代遅れの論調、もしくは新規参入阻止のための意図的な誤情報 (スコア:1)
>もうAndroidで一般向けのゲームソフトは商売にならないことがはっきりしていて、撤退したメーカの多くは、iOSに注力しています。
>iOS端末のGPUは一貫してPowerVR系だし、アセンブラ等を使っての
特化した最適化は許されていません。
…と言うか、パソコンのFPSやTPSをそのまんま移植したようなのがたくさんAndroid Marketに出ていた時期がありましたが(今は知らない)、そういう端末の特性に合わないオーバースペックなゲームが中心だったからでは?
# 買い切り形式の大戦略とか出たら、戦闘画面がメガドライブ時代と同じでも真っ先に買うのにな(´・ω・`)
結局、可能な限りパソコンと同じような物を作って売っては見たけど、そういうものを消費者の大半が望んでなかった上に開発費も嵩んであぼーん。と言う感じなんじゃないですかね。
# Android系で最近の贔屓はねこースクロール2 [pokotan.jp]のような、FlashゲーをAIRで動くようにしたユルい奴。
Re: (スコア:0)
お、おう...
Androidユーザーの方がiPhoneユーザーよりもアプリを購入していることが明らかに
http://gigazine.net/news/20130815-cheap-android-apps/ [gigazine.net]
Re: (スコア:0)
お前、その記事のタイトルしか読んでないだろ。タイトルに釣られないで最後まで読めよ。
Re: (スコア:0)
iOSなんて一言も書いていないのにどんだけコンプレックスを持っているんだ?
出してくるところがきもちわるい
Re: (スコア:0)
> iOSなんて一言も書いていないのに
タレこみ元の記事が思いっきりiOSとの比較記事なんですが。
せめて周囲を見渡してから行動できるようになったほうがいいと思いますよ。
Re: (スコア:0)
ハードウェアメーカーにとっては、Androidは予想通り [blogs.com]Windowsと同様の儲からないレッドオーシャンになったってことか。
Re:完全に時代遅れの論調、もしくは新規参入阻止のための意図的な誤情報 (スコア:2)
件の会社は、そこに星の海を作るかもね。
っと。
Re: (スコア:0)
> ハードウェアメーカーにとっては、Androidは予想通り [blogs.com]Windowsと同様の儲からないレッドオーシャンになったってことか。
本当の意味でスマホやタブレットのハードウェア専業のメーカーなんてのは実際にはほとんどなく、
たいていは通信機器の最新技術の開発、半導体技術の開発などで利益を上げつつの
ビジネス全体の一部で必要なのがスマホやタブレットの実開発、ってのが実際ですが
まぁそれは置いとくとして
iOSは利用者からカネを巻き上げる集金システムになった、ってときに
まともな消費者なら不満を覚えるべきだと思いますよ。
これは大まじめな話。
AKB48やネットゲームのガチャにカネつぎ込んでいる知り合いは何人もいますが、まぁ割愛
Re: (スコア:0)
> 人気が出たら他ハードへの最適化実装も追加で入れればいいだけです。
元記事は自社製品がiOSで実績のあったエンジンをAndroidに移植したって話だろ…
開発者の人たちがAPIがOpenGL ESで同じだから簡単wwwって思ってやってみて
どういう目にあったんだろうね。
ちゃんと読んでるなら、「追加で入れればいいだけ」なんて言えないと思うけどなぁ。
Re: (スコア:0)
>元記事は自社製品がiOSで実績のあったエンジンをAndroidに移植したって話だろ…
つまり前提が極端にiOSに有利ということです。
iOSだけ土俵が整えられており、Androidは未開のジャングルだったところからですから。
>開発者の人たちがAPIがOpenGL ESで同じだから簡単wwwって思ってやってみて
>どういう目にあったんだろうね。
元記事は読んでますか?
メジャー機種に向けた基本実装を書くだけなら簡単だったと思いますよ。
この時点でiOSのユーザーベースを超えていますのでビジネスとして成立してしまいます。
その先、コストも対象ユーザーベースも度
Re:完全に時代遅れの論調、もしくは新規参入阻止のための意図的な誤情報 (スコア:2, 参考になる)
>>元記事は自社製品がiOSで実績のあったエンジンをAndroidに移植したって話だろ…
>iOSだけ土俵が整えられており、Androidは未開のジャングルだったところからですから。
いや、そもそもの前提が違いますよ。
PlayStation 3とXbox 360で実績のあったエンジンを、iOS→Androidと段階移植した、という話ですから、
>開発者の人たちがAPIがOpenGL ESで同じだから簡単www
って部分は間違ってないんじゃないすかね。
Re:完全に時代遅れの論調、もしくは新規参入阻止のための意図的な誤情報 (スコア:1)
>>開発者の人たちがAPIがOpenGL ESで同じだから簡単www
>って部分は間違ってないんじゃないすかね。
OpenGLの開発者なら、それこそ
「速度を出そうとするなら」ハードウェア差異を山ほど考えなきゃいけないと理解してなきゃダメですよ。
これは本当の意味でのOpenGL開発のイロハですので
今回のタレこみ元の記事の開発者の方が「性能を出すことを含めて簡単」と考えていたと仮定するのは
途轍もなく失礼なことです。
Re:テストが大変 (スコア:1)
数が多いってったって
Android向けのチップセットって大別すると
スナドラ、Tegra、サムチョン
の3つな訳で、それ以外の有象無象なんて上記からすると無視してもいいくらいだから
気にするほどの事はないとおもうのだけれど
Re:テストが大変 (スコア:1)
> 数が多いってったって
> 気にするほどの事はないとおもうのだけれど
実際その通りです。
アプリを自由に開発できる立場の場合、対応機種を絞り込む自由もあります。
そしてiOS開発なみに少数に絞り込んでも、もはやAndroidのほうがユーザーベースが多くなります。
それに対し、キャリアなどの支配下で
キャリアの販売するすべてのスマホで正しく動作するアプリを作り保守しろ、などでは
特殊な端末があった場合に大変な対応を要求される場合もあります。
しかしこれを嫌うというなら独立でもなんでもすればいい。
大企業の傘の下にいる場所代みたいなものです。
Android批判したいが先行した人は、上記を理解せず
「Android開発はとにかく機種ごとの個体差が大きくて地獄、iOS開発は個体差がなく楽」
と主張しますが、
Androidで対応機種を絞り込んでもiOSのユーザーベースを超えるようになった現在では
実態と全くかけ離れた主張です。
Re:テストが大変 (スコア:2)
>GooglePlayでは、開発者側が明示的にアプリの配布対象とする機種の制限ができます。
確かにそうだけど、開発者がすべての端末をテストできるわけでもないから、
制限するといってもバックカメラの有無とかSDHCの有無とか、おおざっぱなものではないでしょうか。
実際にちゃんと動くかどうかはあんまりあてにならないのでは?