スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 後は、真面目に作るだけ | トップページ | テキスト描画を移植中 »

iOSシミュレータの性能は・・・

今は、iOS版Nostalgic UFO Battlerの開発中で、基本機能絡みのAPI等についての動作確認が終わったので、真面目に移植作業を始めたのだが、Nostalgic UFO BattlerはOpenGLを使って60FPS描画している事もあり、iOSシミュレータ上では本来の速度で動作しない感じだ。

作者的には、最初のAndroid版アプリである所のAndroid版Mirror-DTC クライアント開発時に、まずは、Androidエミュレータを使ってみたのだが、あまりの遅さに、即刻、実機デバッグに切り替えた経緯がある。

で、iOSシミュレータについては、Androidエミュレータとは異なり、一見、処理速度は高速で、昨日書いた様に、音声出力処理については、Mac mini Late2014で動作させているiOSシミュレータの方がiPad Airの実機よりも高速に動作している感じだった。

しかし、今日は、真面目な移植作業の最初として、まず、宇宙空間の星々がスクロールする背景描画を実装したのだが、iOSシミュレータ上ではスクロール速度が、かなり、遅かった訳だ。

なので、iOSアプリ開発の経験が無い作者的には、iOSというのは、こんなに遅いのか? と、心配になった訳なのだが、iPad Airで実機動作させてみた所では、仕様通りの速度でスクロールが行われた。

と、いう事で、遅いのはiOSではなくてiOSシミュレータみたいなのだが、まあ、iOSシミュレータ上でも、15FPSくらいの速度でスクロールしている事はしているので、ちょっとした動作確認なら、iOSシミュレータでも、出来ない事はないかもしれない。

ちなみに、背景のスクロール処理というのは、256x256の3枚のテクスチャー画像を転送しておき、それらを切り替えながら、各画面で2回に分けて描画する事で実現している。

何故、それらを切り替えるのか、というと、背景の星々はランダムに点滅している訳なのだが、実際には、そう見せる為に、光っている状態の画像と消えている状態の画像を予め用意し、それらを切り替える事で、点滅している様に見せているからだ。

何故、そんな回りくどい事をしているのか、というと、全背景をテクスチャーに転送しておくと、その描画は1回のコマンドで行えるからなのだが、星々の点滅の度に、テクスチャー転送をしていると遅くなる。

なので、点滅まで行わせる事を想定して、3枚のテクスチャーを転送している訳なのだが、何故、2枚ではなく3枚なのか、というと、2枚だと、点滅する星が常に同じになってしまうので、見ていると違和感があったからだ。

つまり、3枚の画像を持たせる事で、点滅にバリエーションを持たせる事が出来るので、そういう格好にしてある訳だ。

さらに、何故、テクスチャーの解像度を256x256という低解像度にしてあるのか、というと、メモリ使用量を減らす、という事もあったのだが、テクスチャーの解像度が画面の解像度よりも低ければ、描画時に拡大処理されるので、そのピンボケな感じが背景として望ましい感じだったからだ。

で、描画を2回に分けて行うのは、一つの画像をスクロール用に使う場合の常道手段になる訳なのだが、これを実現する為には、テクスチャー上の位置指定と画面上の位置指定が正しく機能していなければならない。

そして、今日の時点で、背景のスクロールは問題なく行われる感じになっているので、描画処理の基本は問題ない感じなのだが、Nostalgic UFO Battlerでは、テキスト描画も行っていて、OS XとiOSでは、テキスト描画関連のAPIは異なる様なので、次は、テキスト関連の処理を何とかする必要がある。

= この記事に関連する公開中ソフト =

ノスタルジックUFOバトラー

UfoBattler.jpg

(2016/10/25追記)

« 後は、真面目に作るだけ | トップページ | テキスト描画を移植中 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63694890

この記事へのトラックバック一覧です: iOSシミュレータの性能は・・・:

« 後は、真面目に作るだけ | トップページ | テキスト描画を移植中 »

2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google