SlideShare a Scribd company logo
HTML5@iPhoneゲーム開発
                                株式会社DeNA
                   ソーシャルメディア事業本部
  ソーシャルゲーム統括部スマートフォン開発グループ
       岸 弘倫<kishi dot hiromichi at dena dot jp>


             DeNA Technology Seminar #3           1
自己紹介
‣ 2009年DeNAに入社
 – モバゲーの3Dアバター関連開発
 – iアプリ開発
 – 子会社のMiniNationにて海外向けのiPhoneアプリ
   開発
‣ 現在
 – iPhone・Androidアプリ開発


            DeNA Technology Seminar #3   2
本日の
         本日の内容



‣ MiniNationからリリースしたiPhoneゲーム
  「Pirate Nation」
‣ HTML, CSS, Javascriptで主に開発
‣ 今日は開発で得たノウハウについて話します。
 – ゲームというよりHTML5でのiPhoneアプリ開発に
   ついてがメインです。
          DeNA Technology Seminar #3   3
Pirate Nationについて



     DeNA Technology Seminar #3   4
Pirate Nation
‣ モバゲー「海賊トレジャー」のiPhone移植版
 – スマートフォンに合わせてデザイン一新
 – 海外ユーザ向けにシステム見直し
‣ 8/30からApp Storeで提供開始
‣ US App StoreのTop Freeで最高3位




            DeNA Technology Seminar #3   5
Web技術でiPhoneゲーム開発
  Web技術でiPhoneゲーム開発
     技術       ゲーム
‣ Pirate NationはUIWebViewを使ってWebベー
  スで開発
‣ UIWebView
 – iPhoneアプリ上でHTMLレンダリングするView
 – 標準で利用可能
 – Mobile Safariと同じWebKit
 – 早い話が俺俺ブラウザをiPhoneアプリで簡単に
   作ることのできる便利なView
 ※AndroidもWebViewという同機能のViewが提供

             DeNA Technology Seminar #3   6
Web技術ベースの
      Web技術ベースのFW/PF
         技術ベース
‣ Titanium Mobile
  – http://www.appcelerator.com/products/titanium
    -mobile-application-development/
‣ PhoneGap
  – http://www.phonegap.com/
‣ Pirate Nationで採用しなかった理由(4月頃):
  – iOS4の規約変更
  – 採用事例の少なさ
  – ゲーム開発向けではない
                DeNA Technology Seminar #3          7
Webサイトとして提供しなかった理由
Webサイトとして提供しなかった理由
   サイトとして提供しなかった
‣ Webベースで開発するならWebサイトとして公
  開すればよいのでは?
                  ↓
‣ アプリを主体に使うiPhoneユーザのスタイル
‣ Mobile Safariだけでは実現できない機能
‣ App Storeという強力な導線


         DeNA Technology Seminar #3   8
Objective-
    Objective-C側で実装した機能
                 実装した機能
                   した
‣   Audio
‣   加速度センサー
‣   ページ遷移のトランジション
‣   リソースのキャッシュ
    – キャッシュ制御のためmanifest未使用
‣ セキュリティ強化
‣ Push Notification
‣ App Storeのアプリ内課金システム
  (In App Purchase)
             DeNA Technology Seminar #3   9
iPhone Web開発



   DeNA Technology Seminar #3   10
HTML5と
                HTML5とCSS3
‣ iPhone(Webkit)に絞ることでクロスブラウザを意識せ
  ずに開発可能
‣ HTML5
  – inputのtypeの追加とValidation
  – ローカルストレージ(今回は未使用)
‣ CSS3
  –   CSSセレクタの追加
  –   角丸、影、グラデーション、透明度などの指定
  –   transform(translate, scale, rotate, skewなど)の指定
  –   CSSアニメーション

                    DeNA Technology Seminar #3         11
CSSアニメーション
       CSSアニメーション
‣ HTML要素をCSSで指定してアニメーションさ
  せる仕様
‣ iPhoneのCSSアニメーションは高速
 – (webkit-transformと組み合わせた場合)
 – iPhone3G対応で活躍
   • DOM操作だとガクガク
   →上記を利用することで滑らかに
‣ アニメーション途中の座標を取得できないの
  で当たり判定のある表現には向かない
           DeNA Technology Seminar #3   12
CSSアニメーション例
          CSSアニメーション例1
             アニメーション
div {
   opacity: 1;
   -webkit-transition: opacity 1s linear;
}
div:hover {
   opacity: 0;
}



                    DeNA Technology Seminar #3   13
CSSアニメーション例
          CSSアニメーション例2
             アニメーション
div {
    -webkit-transition: 1s ease-in-out;
    -webkit-animation-name: anime;
}
// キーフレームでの指定も可能
@-webkit-keyframes anime {
    0%{ -webkit-transform: translate(10px, 10px); }
    50%{ -webkit-transform: rotate(90deg);        }
    100% {      -webkit-transform: scale(2); }
  }


                      DeNA Technology Seminar #3      14
iPhone開発の
        iPhone開発のTips
              開発
‣ clickイベントの検知は遅いのでtouchstart,
  touchendを使う
‣ position: fixedが使えない
 – WindowではなくViewportにfixされるため
‣ iframe内のスクロール方法が異なる
 – 2本指でフリックでスクロール



            DeNA Technology Seminar #3   15
(おまけ)ページの一部を固定する
 おまけ)ページの一部を固定する
‣ iPhone, iPadだとヘッダやフッタを固定するよ
  うなレイアウトの表現が難しい
‣ 「iScroll」
 – http://cubiq.org/iscroll
 – iPhone, iPadでもフリックしたときの動きをシミュ
   レートしてposition:fixedなレイアウト実現
 – オプションも豊富


           DeNA Technology Seminar #3   16
Canvasを使う



 DeNA Technology Seminar #3   17
海賊トレジャー移植の
  海賊トレジャー移植の問題点
    トレジャー移植
‣ 「海賊トレジャー」はFlashミニゲームが特徴
 – 大砲バトル、サルベージ
   ⇒iPhoneはFlash Playerが未搭載
‣ Flashゲームをどう実現するか?
 – 変更の容易性・即時性
                                         大砲バトル
 – 複数プラットフォームへの展開




            DeNA Technology Seminar #3           18
                                         サルベージ
Flash代替案
             Flash代替案
‣ Objective-C(OpenGL)
  ⇒開発コスト、変更コスト、移植性が問題
‣ Flash CS5のiPhoneアプリ変換機能
  ⇒規約変更に伴い選択肢からなくなる
‣ Canvas, SVG
  ⇒調査した結果そこそこのパフォーマンスが出た
   Canvasを採用


                DeNA Technology Seminar #3   19
Canvasとは
          Canvasとは
‣ CanvasとはJavascriptベースでブラウザ上に
  図を描画するための仕様
 – DOM操作と異なりフレーム単位で画面を再描画
‣ 大砲バトルとサルベージをCanvasで実装




          DeNA Technology Seminar #3   20
Demo



DeNA Technology Seminar #3   21
Canvasの
                                   Canvasの性能
                                                    Canvasベンチマーク

                            80.0
                            70.0



         Frame Per Second
                            60.0
                            50.0                                         iPhone3G
                                                                         iPhone3GS
                            40.0
                                                                         iPhone4
                            30.0                                         iPhone4(Viewport修正)
                            20.0
                            10.0
                             0.0
                                   1     10     20     30      40   50
                                                  描画画像数




‣ iPhone4が遅い                                  ※Canvas上に適当な画像を描画するだけのプログラムで計測

  – 原因1:Viewportの設定(表示の拡大処理が遅い)
    ⇒ディスプレイサイズに合わせて画像とcanvasを修正
  – 原因2:Retinaディスプレイの解像度が高すぎる
    →上位機種で必ずしもパフォーマンスが良くなるとは限らない
                                       DeNA Technology Seminar #3                              22
Canvas高速化Tips
         Canvas高速化Tips
               高速化
‣   座標や幅・高さの指定はintにする
‣   parseIntは使わない
‣   new Date()ではなくDate.now()を使う
‣   描画がネックの場合画像の解像度を落とす
‣   HTML要素とCSSアニメーションを併用(後述)




            DeNA Technology Seminar #3   23
CanvasとHTML+CSSアニメーション
 CanvasとHTML+CSSアニメーション
‣ Canvas
  – フレームごとの当たり判定や描画タイミングの制御可能
  – 高レベルなアニメーション指定、画面の一部のみを再描
    画する機能はない
‣ HTML+CSSアニメーション
  – 高レベルな指定方法を提供、高速
  – フレームごとの制御や描画タイミングの指定ができない
‣ 両者の得意な部分を担当する


           DeNA Technology Seminar #3   24
HTML要素とCSSアニメーションを
HTML要素とCSSアニメーションを併用
    要素    アニメーション
‣ 動きのない画像はHTML要素を重ねて表示
 – Canvasへの描画に掛かる時間を減らす
‣ 決まった動きをするものはHTML要素+CSSアニ
  メーションを利用
 – CSSアニメーションで動かすほうが高速
 – 高レベルな動作の指定ができる
‣ その他
 – Canvas要素に動きを指定して画面を揺らす
 – 塗り潰した要素を重ねて画面効果
         DeNA Technology Seminar #3   25
例:動きの少ない部分をHTML要素として表示
   きの少ない部分をHTML要素として表示
        部分     要素として


                      div要素で表現し、値によって
                      webkit-transform: scaleでバーを制御




                 ユーザが画面をタップしたときに

                 Img要素を重ね、webkit-transform: rotateで
                 向きを変えるのみ。

                 方向を回転させる
       DeNA Technology Seminar #3              26
例:CSSアニメーションを利用
  CSSアニメーションを
     アニメーション




              CSSアニメーションのキーフレームを
              使って動きを定義。
              パフォーマンスが良くなる他、
              細かい動きの表現や変更にも強くなる




   DeNA Technology Seminar #3   27
Canvasのメリット/デメリット



     DeNA Technology Seminar #3   28
Canvasの
       Canvasのメリット
‣ 開発環境の準備が楽
 – ブラウザですぐ確認可能
‣ Javascriptなので覚えることが少ない
‣ 既存のHTML要素との併用が容易




          DeNA Technology Seminar #3   29
Canvasの
       Canvasのデメリット
‣ 描画速度がネックで表現に限界
 – フィーチャーフォンのFlashゲーム+αぐらいなら実現
   可能
‣ 世代間のパフォーマンス差が激しい
‣ その他、Android 2.1系のCanvasの基本APIにバ
  グがあり、移植をする上でも問題
            ↓
  総合的に見ると現状はスマートフォン向けゲー
  ム開発の選択肢としてあまりオススメできない
           DeNA Technology Seminar #3   30
Pirate Nationリリースを通して



       DeNA Technology Seminar #3   31
Webベースにして良かった点
 Webベースにして良かった点
    ベースにして
‣ ユーザの反応を見て改良を即座に反映
 – アプリ再申請すると審査が終わるまで1-2週間
   ⇒Webだと即座に更新可能、出しわけ可能
‣ ゲームのバージョンの差異がない
‣ イベントなど新機能追加の容易さ
 – 例:期間限定セール、ハロウィンイベント



         DeNA Technology Seminar #3   32
現在の
         現在の課題
‣ Canvasの描画速度
 – 描画速度がボトルネック
 – アクション性の強いゲーム表現には限界がある
‣ サーバへのリクエストを減らす
 – リクエストのたびにウェイトの発生
   ⇒他のアプリと比べてストレスが大きい
 – 世界的にはネットワークが不安定な環境も多く、
   処理をクライアントに寄せる工夫が必要

          DeNA Technology Seminar #3   33
ご清聴ありがとうございました



     DeNA Technology Seminar #3   34

More Related Content

What's hot (14)

Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
 
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンいまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
Yuta Matsumura
 
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tipsゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
Daiki Kawanuma
 
大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister
大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister
大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister
xyz corporation
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
友太 渡辺
 
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
Yasuhiko Yamamoto
 
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015 この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Shinichi Hirauchi
 
Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全
Yoshito Tabuchi
 
初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!
naba0123
 
20140322 mvvm crossforwindowsstoreapps
20140322 mvvm crossforwindowsstoreapps20140322 mvvm crossforwindowsstoreapps
20140322 mvvm crossforwindowsstoreapps
Takayoshi Tanaka
 
.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略
Yuya Yamaki
 
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
株式会社ミツエーリンクス
 
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
 
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンいまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
Yuta Matsumura
 
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tipsゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
Daiki Kawanuma
 
大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister
大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister
大学サイトにおけるマルチデバイス対応のポイント + HTML5 CMS - Web Meister
xyz corporation
 
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
友太 渡辺
 
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
Yasuhiko Yamamoto
 
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015 この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Shinichi Hirauchi
 
Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全
Yoshito Tabuchi
 
初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!
naba0123
 
20140322 mvvm crossforwindowsstoreapps
20140322 mvvm crossforwindowsstoreapps20140322 mvvm crossforwindowsstoreapps
20140322 mvvm crossforwindowsstoreapps
Takayoshi Tanaka
 
.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略
Yuya Yamaki
 
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)これからのCMSマーケットトレンドとPHP (for fukuoka.php)
これからのCMSマーケットトレンドとPHP (for fukuoka.php)
株式会社ミツエーリンクス
 
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
 

Viewers also liked (20)

Web APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使うWeb APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使う
h_kishi
 
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
Yahoo! JAPAN Marketing Solution
 
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
Yahoo! JAPAN Marketing Solution
 
HTML5で作るiPhoneアプリケーション
HTML5で作るiPhoneアプリケーションHTML5で作るiPhoneアプリケーション
HTML5で作るiPhoneアプリケーション
だいすけ ふるかわ
 
デブサミ2009: iPhone開発者座談会
デブサミ2009: iPhone開発者座談会デブサミ2009: iPhone開発者座談会
デブサミ2009: iPhone開発者座談会
masayoshi takahashi
 
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
Katz Ueno
 
Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010
だいすけ ふるかわ
 
(エンジニアから見た)
最近のスマートウォッチ事情
(エンジニアから見た)
最近のスマートウォッチ事情(エンジニアから見た)
最近のスマートウォッチ事情
(エンジニアから見た)
最近のスマートウォッチ事情
Tomoya Yamamoto
 
Phone Appli「PA Sync」 説明資料
Phone Appli「PA Sync」 説明資料Phone Appli「PA Sync」 説明資料
Phone Appli「PA Sync」 説明資料
PA_Hitomi
 
iPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめiPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめ
Hiramatsu Ryosuke
 
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオンJava ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
健一 茂木
 
Office for iPad Office for iPhone 企業利用における問題点のまとめ
Office for iPad Office for  iPhone 企業利用における問題点のまとめOffice for iPad Office for  iPhone 企業利用における問題点のまとめ
Office for iPad Office for iPhone 企業利用における問題点のまとめ
adachiyosuke
 
コンピューター支援言語学習
コンピューター支援言語学習コンピューター支援言語学習
コンピューター支援言語学習
Parisa Mehran
 
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yideviPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
Tomohiro Kumagai
 
非It系総務の社内kintone促進 kintone Café japan
非It系総務の社内kintone促進 kintone Café japan非It系総務の社内kintone促進 kintone Café japan
非It系総務の社内kintone促進 kintone Café japan
naoya takata
 
女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-
女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-
女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-
CREATIVE SURVEY
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
Ryuji Yamashita
 
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
Kentaro Matsumae
 
iPhoneアプリ無料でできるプロモーション15の活動
iPhoneアプリ無料でできるプロモーション15の活動iPhoneアプリ無料でできるプロモーション15の活動
iPhoneアプリ無料でできるプロモーション15の活動
Hiromitsu Ishimori
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
Kanako Kobayashi
 
Web APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使うWeb APIでThriftをシリアライザとして使う
Web APIでThriftをシリアライザとして使う
h_kishi
 
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
Yahoo! JAPAN Marketing Solution
 
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
Yahoo! JAPAN Marketing Solution
 
HTML5で作るiPhoneアプリケーション
HTML5で作るiPhoneアプリケーションHTML5で作るiPhoneアプリケーション
HTML5で作るiPhoneアプリケーション
だいすけ ふるかわ
 
デブサミ2009: iPhone開発者座談会
デブサミ2009: iPhone開発者座談会デブサミ2009: iPhone開発者座談会
デブサミ2009: iPhone開発者座談会
masayoshi takahashi
 
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
Katz Ueno
 
Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010
だいすけ ふるかわ
 
(エンジニアから見た)
最近のスマートウォッチ事情
(エンジニアから見た)
最近のスマートウォッチ事情(エンジニアから見た)
最近のスマートウォッチ事情
(エンジニアから見た)
最近のスマートウォッチ事情
Tomoya Yamamoto
 
Phone Appli「PA Sync」 説明資料
Phone Appli「PA Sync」 説明資料Phone Appli「PA Sync」 説明資料
Phone Appli「PA Sync」 説明資料
PA_Hitomi
 
iPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめiPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめ
Hiramatsu Ryosuke
 
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオンJava ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
健一 茂木
 
Office for iPad Office for iPhone 企業利用における問題点のまとめ
Office for iPad Office for  iPhone 企業利用における問題点のまとめOffice for iPad Office for  iPhone 企業利用における問題点のまとめ
Office for iPad Office for iPhone 企業利用における問題点のまとめ
adachiyosuke
 
コンピューター支援言語学習
コンピューター支援言語学習コンピューター支援言語学習
コンピューター支援言語学習
Parisa Mehran
 
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yideviPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
Tomohiro Kumagai
 
非It系総務の社内kintone促進 kintone Café japan
非It系総務の社内kintone促進 kintone Café japan非It系総務の社内kintone促進 kintone Café japan
非It系総務の社内kintone促進 kintone Café japan
naoya takata
 
女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-
女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-
女性はグリー、男性はモバゲーのアプリデザインを支持!! -iphoneアプリデザイン調査-
CREATIVE SURVEY
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
Ryuji Yamashita
 
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
ニコニコ動画iPhoneアプリの作り方@スマートフォン2011講演資料
Kentaro Matsumae
 
iPhoneアプリ無料でできるプロモーション15の活動
iPhoneアプリ無料でできるプロモーション15の活動iPhoneアプリ無料でできるプロモーション15の活動
iPhoneアプリ無料でできるプロモーション15の活動
Hiromitsu Ishimori
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
Kanako Kobayashi
 

Similar to HTML5@iPhoneゲーム開発 (20)

DeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきたDeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきた
silvers ofsilvers
 
The forefront of html5 implementation
The forefront of html5 implementationThe forefront of html5 implementation
The forefront of html5 implementation
Satoshi Tanaka
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
 
HTML5で作るスマホブラウザゲーム
HTML5で作るスマホブラウザゲームHTML5で作るスマホブラウザゲーム
HTML5で作るスマホブラウザゲーム
Takumi Ohashi
 
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
Kei Nakazawa
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
Osamu Shimoda
 
ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324
Tak Inamori
 
Smartphone ui:ux」 de na creative seminar vol.1 レポート
Smartphone ui:ux」 de na creative seminar vol.1 レポートSmartphone ui:ux」 de na creative seminar vol.1 レポート
Smartphone ui:ux」 de na creative seminar vol.1 レポート
Masaru Kimura
 
MTセミナー2011/2/21 アイデアマンズ株式会社
MTセミナー2011/2/21 アイデアマンズ株式会社MTセミナー2011/2/21 アイデアマンズ株式会社
MTセミナー2011/2/21 アイデアマンズ株式会社
Kunihiko Miyanaga
 
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナーProgressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
Futomi Hatano
 
Mtddc hokkaido-2010-ideamans-session
Mtddc hokkaido-2010-ideamans-sessionMtddc hokkaido-2010-ideamans-session
Mtddc hokkaido-2010-ideamans-session
Kunihiko Miyanaga
 
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
ひさし App
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Kentaro Matsumae
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
Yasunobu Ikeda
 
Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介
Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介
Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介
Etsuji Kameyama
 
devsumi17 d-2
devsumi17 d-2devsumi17 d-2
devsumi17 d-2
dikehara
 
DeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきたDeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきた
silvers ofsilvers
 
The forefront of html5 implementation
The forefront of html5 implementationThe forefront of html5 implementation
The forefront of html5 implementation
Satoshi Tanaka
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
 
HTML5で作るスマホブラウザゲーム
HTML5で作るスマホブラウザゲームHTML5で作るスマホブラウザゲーム
HTML5で作るスマホブラウザゲーム
Takumi Ohashi
 
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
Kei Nakazawa
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
Osamu Shimoda
 
ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324
Tak Inamori
 
Smartphone ui:ux」 de na creative seminar vol.1 レポート
Smartphone ui:ux」 de na creative seminar vol.1 レポートSmartphone ui:ux」 de na creative seminar vol.1 レポート
Smartphone ui:ux」 de na creative seminar vol.1 レポート
Masaru Kimura
 
MTセミナー2011/2/21 アイデアマンズ株式会社
MTセミナー2011/2/21 アイデアマンズ株式会社MTセミナー2011/2/21 アイデアマンズ株式会社
MTセミナー2011/2/21 アイデアマンズ株式会社
Kunihiko Miyanaga
 
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナーProgressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
Futomi Hatano
 
Mtddc hokkaido-2010-ideamans-session
Mtddc hokkaido-2010-ideamans-sessionMtddc hokkaido-2010-ideamans-session
Mtddc hokkaido-2010-ideamans-session
Kunihiko Miyanaga
 
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
Html5conference2012 yota hisamichi_世界に向けたスマートフォンゲームを支える、 greeのテクニカルアーティストについて。
ひさし App
 
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Kentaro Matsumae
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
Yasunobu Ikeda
 
Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介
Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介
Current state and case introducation of AR (Autumn of 2012)- 拡張現実の現状と事例紹介
Etsuji Kameyama
 
devsumi17 d-2
devsumi17 d-2devsumi17 d-2
devsumi17 d-2
dikehara
 

Recently uploaded (6)

論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
Toru Tamaki
 
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
Matsushita Laboratory
 
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
Matsushita Laboratory
 
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
iPride Co., Ltd.
 
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptxSecurity-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
TsukasaKomatsubara
 
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Kazuki Ogiwara
 
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
論文紹介:「Amodal Completion via Progressive Mixed Context Diffusion」「Amodal Insta...
Toru Tamaki
 
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
ReonHata_LLMを利用した便利の副作用顕在化のためのアイデア発想支援手法の評価_JSAI2025
Matsushita Laboratory
 
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
第39回人工知能学会全国大会の企画セッション「生成AIが切り拓く仕掛学の可能性」の講演資料
Matsushita Laboratory
 
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
ECAモジュールの基礎調査.pptx 2025/05/30 の勉強会で発表されたものです。
iPride Co., Ltd.
 
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptxSecurity-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx
TsukasaKomatsubara
 
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Backend for Frontend を活用した 安全な OpenID Connect 認証認可の実現
Kazuki Ogiwara
 

HTML5@iPhoneゲーム開発

  • 1. HTML5@iPhoneゲーム開発 株式会社DeNA ソーシャルメディア事業本部 ソーシャルゲーム統括部スマートフォン開発グループ 岸 弘倫<kishi dot hiromichi at dena dot jp> DeNA Technology Seminar #3 1
  • 2. 自己紹介 ‣ 2009年DeNAに入社 – モバゲーの3Dアバター関連開発 – iアプリ開発 – 子会社のMiniNationにて海外向けのiPhoneアプリ 開発 ‣ 現在 – iPhone・Androidアプリ開発 DeNA Technology Seminar #3 2
  • 3. 本日の 本日の内容 ‣ MiniNationからリリースしたiPhoneゲーム 「Pirate Nation」 ‣ HTML, CSS, Javascriptで主に開発 ‣ 今日は開発で得たノウハウについて話します。 – ゲームというよりHTML5でのiPhoneアプリ開発に ついてがメインです。 DeNA Technology Seminar #3 3
  • 4. Pirate Nationについて DeNA Technology Seminar #3 4
  • 5. Pirate Nation ‣ モバゲー「海賊トレジャー」のiPhone移植版 – スマートフォンに合わせてデザイン一新 – 海外ユーザ向けにシステム見直し ‣ 8/30からApp Storeで提供開始 ‣ US App StoreのTop Freeで最高3位 DeNA Technology Seminar #3 5
  • 6. Web技術でiPhoneゲーム開発 Web技術でiPhoneゲーム開発 技術 ゲーム ‣ Pirate NationはUIWebViewを使ってWebベー スで開発 ‣ UIWebView – iPhoneアプリ上でHTMLレンダリングするView – 標準で利用可能 – Mobile Safariと同じWebKit – 早い話が俺俺ブラウザをiPhoneアプリで簡単に 作ることのできる便利なView ※AndroidもWebViewという同機能のViewが提供 DeNA Technology Seminar #3 6
  • 7. Web技術ベースの Web技術ベースのFW/PF 技術ベース ‣ Titanium Mobile – http://www.appcelerator.com/products/titanium -mobile-application-development/ ‣ PhoneGap – http://www.phonegap.com/ ‣ Pirate Nationで採用しなかった理由(4月頃): – iOS4の規約変更 – 採用事例の少なさ – ゲーム開発向けではない DeNA Technology Seminar #3 7
  • 8. Webサイトとして提供しなかった理由 Webサイトとして提供しなかった理由 サイトとして提供しなかった ‣ Webベースで開発するならWebサイトとして公 開すればよいのでは? ↓ ‣ アプリを主体に使うiPhoneユーザのスタイル ‣ Mobile Safariだけでは実現できない機能 ‣ App Storeという強力な導線 DeNA Technology Seminar #3 8
  • 9. Objective- Objective-C側で実装した機能 実装した機能 した ‣ Audio ‣ 加速度センサー ‣ ページ遷移のトランジション ‣ リソースのキャッシュ – キャッシュ制御のためmanifest未使用 ‣ セキュリティ強化 ‣ Push Notification ‣ App Storeのアプリ内課金システム (In App Purchase) DeNA Technology Seminar #3 9
  • 10. iPhone Web開発 DeNA Technology Seminar #3 10
  • 11. HTML5と HTML5とCSS3 ‣ iPhone(Webkit)に絞ることでクロスブラウザを意識せ ずに開発可能 ‣ HTML5 – inputのtypeの追加とValidation – ローカルストレージ(今回は未使用) ‣ CSS3 – CSSセレクタの追加 – 角丸、影、グラデーション、透明度などの指定 – transform(translate, scale, rotate, skewなど)の指定 – CSSアニメーション DeNA Technology Seminar #3 11
  • 12. CSSアニメーション CSSアニメーション ‣ HTML要素をCSSで指定してアニメーションさ せる仕様 ‣ iPhoneのCSSアニメーションは高速 – (webkit-transformと組み合わせた場合) – iPhone3G対応で活躍 • DOM操作だとガクガク →上記を利用することで滑らかに ‣ アニメーション途中の座標を取得できないの で当たり判定のある表現には向かない DeNA Technology Seminar #3 12
  • 13. CSSアニメーション例 CSSアニメーション例1 アニメーション div { opacity: 1; -webkit-transition: opacity 1s linear; } div:hover { opacity: 0; } DeNA Technology Seminar #3 13
  • 14. CSSアニメーション例 CSSアニメーション例2 アニメーション div { -webkit-transition: 1s ease-in-out; -webkit-animation-name: anime; } // キーフレームでの指定も可能 @-webkit-keyframes anime { 0%{ -webkit-transform: translate(10px, 10px); } 50%{ -webkit-transform: rotate(90deg); } 100% { -webkit-transform: scale(2); } } DeNA Technology Seminar #3 14
  • 15. iPhone開発の iPhone開発のTips 開発 ‣ clickイベントの検知は遅いのでtouchstart, touchendを使う ‣ position: fixedが使えない – WindowではなくViewportにfixされるため ‣ iframe内のスクロール方法が異なる – 2本指でフリックでスクロール DeNA Technology Seminar #3 15
  • 16. (おまけ)ページの一部を固定する おまけ)ページの一部を固定する ‣ iPhone, iPadだとヘッダやフッタを固定するよ うなレイアウトの表現が難しい ‣ 「iScroll」 – http://cubiq.org/iscroll – iPhone, iPadでもフリックしたときの動きをシミュ レートしてposition:fixedなレイアウト実現 – オプションも豊富 DeNA Technology Seminar #3 16
  • 18. 海賊トレジャー移植の 海賊トレジャー移植の問題点 トレジャー移植 ‣ 「海賊トレジャー」はFlashミニゲームが特徴 – 大砲バトル、サルベージ ⇒iPhoneはFlash Playerが未搭載 ‣ Flashゲームをどう実現するか? – 変更の容易性・即時性 大砲バトル – 複数プラットフォームへの展開 DeNA Technology Seminar #3 18 サルベージ
  • 19. Flash代替案 Flash代替案 ‣ Objective-C(OpenGL) ⇒開発コスト、変更コスト、移植性が問題 ‣ Flash CS5のiPhoneアプリ変換機能 ⇒規約変更に伴い選択肢からなくなる ‣ Canvas, SVG ⇒調査した結果そこそこのパフォーマンスが出た Canvasを採用 DeNA Technology Seminar #3 19
  • 20. Canvasとは Canvasとは ‣ CanvasとはJavascriptベースでブラウザ上に 図を描画するための仕様 – DOM操作と異なりフレーム単位で画面を再描画 ‣ 大砲バトルとサルベージをCanvasで実装 DeNA Technology Seminar #3 20
  • 22. Canvasの Canvasの性能 Canvasベンチマーク 80.0 70.0 Frame Per Second 60.0 50.0 iPhone3G iPhone3GS 40.0 iPhone4 30.0 iPhone4(Viewport修正) 20.0 10.0 0.0 1 10 20 30 40 50 描画画像数 ‣ iPhone4が遅い ※Canvas上に適当な画像を描画するだけのプログラムで計測 – 原因1:Viewportの設定(表示の拡大処理が遅い) ⇒ディスプレイサイズに合わせて画像とcanvasを修正 – 原因2:Retinaディスプレイの解像度が高すぎる →上位機種で必ずしもパフォーマンスが良くなるとは限らない DeNA Technology Seminar #3 22
  • 23. Canvas高速化Tips Canvas高速化Tips 高速化 ‣ 座標や幅・高さの指定はintにする ‣ parseIntは使わない ‣ new Date()ではなくDate.now()を使う ‣ 描画がネックの場合画像の解像度を落とす ‣ HTML要素とCSSアニメーションを併用(後述) DeNA Technology Seminar #3 23
  • 24. CanvasとHTML+CSSアニメーション CanvasとHTML+CSSアニメーション ‣ Canvas – フレームごとの当たり判定や描画タイミングの制御可能 – 高レベルなアニメーション指定、画面の一部のみを再描 画する機能はない ‣ HTML+CSSアニメーション – 高レベルな指定方法を提供、高速 – フレームごとの制御や描画タイミングの指定ができない ‣ 両者の得意な部分を担当する DeNA Technology Seminar #3 24
  • 25. HTML要素とCSSアニメーションを HTML要素とCSSアニメーションを併用 要素 アニメーション ‣ 動きのない画像はHTML要素を重ねて表示 – Canvasへの描画に掛かる時間を減らす ‣ 決まった動きをするものはHTML要素+CSSアニ メーションを利用 – CSSアニメーションで動かすほうが高速 – 高レベルな動作の指定ができる ‣ その他 – Canvas要素に動きを指定して画面を揺らす – 塗り潰した要素を重ねて画面効果 DeNA Technology Seminar #3 25
  • 26. 例:動きの少ない部分をHTML要素として表示 きの少ない部分をHTML要素として表示 部分 要素として div要素で表現し、値によって webkit-transform: scaleでバーを制御 ユーザが画面をタップしたときに Img要素を重ね、webkit-transform: rotateで 向きを変えるのみ。 方向を回転させる DeNA Technology Seminar #3 26
  • 27. 例:CSSアニメーションを利用 CSSアニメーションを アニメーション CSSアニメーションのキーフレームを 使って動きを定義。 パフォーマンスが良くなる他、 細かい動きの表現や変更にも強くなる DeNA Technology Seminar #3 27
  • 28. Canvasのメリット/デメリット DeNA Technology Seminar #3 28
  • 29. Canvasの Canvasのメリット ‣ 開発環境の準備が楽 – ブラウザですぐ確認可能 ‣ Javascriptなので覚えることが少ない ‣ 既存のHTML要素との併用が容易 DeNA Technology Seminar #3 29
  • 30. Canvasの Canvasのデメリット ‣ 描画速度がネックで表現に限界 – フィーチャーフォンのFlashゲーム+αぐらいなら実現 可能 ‣ 世代間のパフォーマンス差が激しい ‣ その他、Android 2.1系のCanvasの基本APIにバ グがあり、移植をする上でも問題 ↓ 総合的に見ると現状はスマートフォン向けゲー ム開発の選択肢としてあまりオススメできない DeNA Technology Seminar #3 30
  • 31. Pirate Nationリリースを通して DeNA Technology Seminar #3 31
  • 32. Webベースにして良かった点 Webベースにして良かった点 ベースにして ‣ ユーザの反応を見て改良を即座に反映 – アプリ再申請すると審査が終わるまで1-2週間 ⇒Webだと即座に更新可能、出しわけ可能 ‣ ゲームのバージョンの差異がない ‣ イベントなど新機能追加の容易さ – 例:期間限定セール、ハロウィンイベント DeNA Technology Seminar #3 32
  • 33. 現在の 現在の課題 ‣ Canvasの描画速度 – 描画速度がボトルネック – アクション性の強いゲーム表現には限界がある ‣ サーバへのリクエストを減らす – リクエストのたびにウェイトの発生 ⇒他のアプリと比べてストレスが大きい – 世界的にはネットワークが不安定な環境も多く、 処理をクライアントに寄せる工夫が必要 DeNA Technology Seminar #3 33
  • 34. ご清聴ありがとうございました DeNA Technology Seminar #3 34