SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
“Playground”とAndroid
- マルチPF対応ゲームエンジン内のAndroid対応 Kei Nakazawa(@muo_jp) / KLab Inc.
Android端末はバラエティに富んでいる
CPUアーキテクチャ

グラフィックス

サウンド

ARM(v7-a, v8-a,…)

QUALCOMM(Adreno)

QUALCOMM

NVIDIA(Tegra)

Wolfson

ImgTec(Power VR)

Texas Instruments

ARM(Mali)

YAMAHA

MIPS(mips32r2)

Intel(x86, x86_64)

そして多くのOSバージョンと端末ベンダー固有のドライバ群…
多くのデバイスでテストする←必然
テスト用端末の中で何が起こって
いるかを早期に掴むことは重要
社内テスト端末限定の機能として
アプリ実行状況モニタリングサー
ビスを作った
様々な端末でテストしているうちに
見えてきたこと
サウンド重視のモバイルゲーム設計
通常の「システムクロック=正義」実装だと音ズレが激しくて詰む
90秒程度の曲再生で最終的に250ms以上ズレるとかざら
→音飛びを検出し、ゲーム進行ロジックを音飛び結果に対して補正する
やってみると…
ある曲の再生時間誤差計測例
(Y軸=再生位置-システムクロック)

Xperia acro HD/4.0.4

Galaxy S4/4.2.2
83ms
0ms
-83ms
Galaxy Nexus/4.2.2
スピリチュアルやね。。。
OSとドライバの限界
端末とOSバージョンの組み合わせ、負荷状況で出力タイミングが変わる
Android 4.1以降(現実的には4.2以降)ではLow Latency Audioを利用できる
全パターン網羅するのは基本的に無理筋
全体のズレを許容した上で最善を求めるのが良い筋
プレイアビリティに強く関わるのは
大きな差よりもジッタ(ゆらぎ)
このままゲームに使うと…

50ms(3f)+

フレームが飛んでガックガク
蛇行運転で酔うような感覚
3フレーム以上飛ぶケースがある

※前掲図の時間軸拡大
ジッタ低減策を投入
サウンド再生時間とシステムクロッ
クの情報をブレンド

13ms(∼1f)

「ゲームとして都合の良い、一貫性
のあるタイムスタンプ」を生成
音飛び時もスムージングをかける
サウンド起因のタイムスタンプ差を
1フレーム以下に収めた(元の30%弱)
今後
限定的に利用しているLow Latency Audioを、より広い範囲の端末で

利用できるようにサウンドライブラリを改修
Android 4.4の新機能を利用してサウンド出力時間差を

ある程度把握して改善に活かせないか調査中
https://github.com/KLab/PlaygroundOSS のissuesなどでご意見ください
宣伝
オーディオの話と、AndroidにおけるDRMの話を

”Effective Android”に寄稿しました
他にも熱いトピック目白押しなので

ぜひお買い求め下さい
http://tatsu-zine.com/books/effective-android

Más contenido relacionado

Más de Kei Nakazawa

Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていることWebの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていることKei Nakazawa
 
13.11.02 inside playground(抄)
13.11.02 inside playground(抄)13.11.02 inside playground(抄)
13.11.02 inside playground(抄)Kei Nakazawa
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築Kei Nakazawa
 
12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えること12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えることKei Nakazawa
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッションKei Nakazawa
 
12.08.25 tab api hackathon
12.08.25 tab api hackathon12.08.25 tab api hackathon
12.08.25 tab api hackathonKei Nakazawa
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐Kei Nakazawa
 
とある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組みとある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組みKei Nakazawa
 
12.04.22 勉強会イントロ
12.04.22 勉強会イントロ12.04.22 勉強会イントロ
12.04.22 勉強会イントロKei Nakazawa
 
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LTAndroid好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LTKei Nakazawa
 
12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料Kei Nakazawa
 
11.12.21 Lecturedroid 02
11.12.21 Lecturedroid 0211.12.21 Lecturedroid 02
11.12.21 Lecturedroid 02Kei Nakazawa
 
11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)Kei Nakazawa
 
11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミング11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミングKei Nakazawa
 
11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料Kei Nakazawa
 
ABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jpABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jpKei Nakazawa
 

Más de Kei Nakazawa (16)

Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていることWebの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
 
13.11.02 inside playground(抄)
13.11.02 inside playground(抄)13.11.02 inside playground(抄)
13.11.02 inside playground(抄)
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築
 
12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えること12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えること
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
 
12.08.25 tab api hackathon
12.08.25 tab api hackathon12.08.25 tab api hackathon
12.08.25 tab api hackathon
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐
 
とある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組みとある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組み
 
12.04.22 勉強会イントロ
12.04.22 勉強会イントロ12.04.22 勉強会イントロ
12.04.22 勉強会イントロ
 
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LTAndroid好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
 
12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料
 
11.12.21 Lecturedroid 02
11.12.21 Lecturedroid 0211.12.21 Lecturedroid 02
11.12.21 Lecturedroid 02
 
11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)
 
11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミング11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミング
 
11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料
 
ABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jpABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jp
 

“Playground”とAndroid - マルチPF対応ゲームエンジン内のAndroid対応