【第21回 HTML5とか勉強会】 ゲーム開発はHTML5+スマホベースが新潮流:D89クリップ(28)
今回のHTML5とか勉強会のテーマは「HTML5+ゲーム」。mobage、アメーバピグ、GREE、カヤック、ユビキタスエンターテインメントの取り組みをレポートする
ゲーム開発でHTML5やCSS3、JavaScriptの使いどころは?
2011年9月27日、サイバーエージェント セミナールームで、「第21回 HTML5とか勉強会」が開催された。HTML5とか勉強会は、HTML5に関心のあるエンジニアやコーダー、デザイナ向けの勉強会だ。今回のテーマは「HTML5+ゲーム」。当日の様子をお伝えしよう。
「Smartphone 向け HTML5 ゲームの作り方」
まず、ディー・エヌ・エーの城戸氏(@sou)からプレゼンがスタートした。城戸氏はDeNAで海外向けWebViewHTML5アプリ開発や、内製タイトルのスマホ対応などを手掛けている。
mobageでは、さまざまなタイトルがすでにAndroid/iOS対応済みであることを紹介した。具体的にはHTML/CSS3ベース、Canvasベース、SWFベース(ExGame)といった複数の実現方法を使い分けている。
HTML/CSS3ベースについては、選択→アニメーション→選択を繰り返すようなコマンド選択方式のゲームで採用している。Canvasベースについては、アクション性がある即時反応性の必要なゲームで採用している。
コマンド選択方式のゲームは、データ管理やセキュリティをどうするかといった問題があり、データをローカルに保存するとチートされてしまうので、mobageではクライアント/サーバ型を採用することで対応しているとのこと。クライアント側は選択されたコマンドを送る、結果を再生するだけにとどめ、サーバー側に実行命令を投げるだけにしている。
もう1つは、攻撃、必殺技、回復などの複雑なアニメエフェクトをどうするかといった課題がある。例えばゲーム内でボス攻撃を表現する際に、ボス画像がせり出す、キャラクターが揺れる、ダメージ値がアニメーション表示される、ヒットポイントが減るといった複数のアニメーションを動かしていく必要がある。mobageでは、個々のアニメについてはCSS3で作り、それらをタイムライン上に並べ、関数にまとめているとのことだった。
アニメーション処理はCSS3とJavaScriptの組み合わせで実現しているので、1つ1つのアニメをjsDeferred(jQuery's Deferred Object)のメソッドチェーンでつなぎ合わせている。
Canvasベースについては、DeNAが開発したArctic.jsというActionScript3風に書けるライブラリを使っており、Arctic.jsについては近日公開予定とのことだった。
SWF再生実行は、ExGameという仕組みを使っている。SWFをそのまま実行でき、ActionScriptも解釈実行してくれる。JavaScriptを1行追加するだけでiOS上でSWFが動作する。ExGameについてはmobageプラットフォームにて提供している。
「アメーバピグのスマホ化」
サイバーエージェントの原一成氏 (@herablog)による発表。
まず、「こんなサイトは嫌だランキング」の紹介から始まった。
ユーザーが嫌だと思うサイトの例として、突然音が鳴る、ポップアップが開く、トップからオールFlash、画像が多くて、重い、メニューが英語、更新されない、文字が小さいなどの特徴が挙げられるとした上で、今回は軽いサイトを作る方法について、スマートフォン版アメーバピグを例として紹介した。
スマートフォン版アメーバピグは速さを重視し、その実現のためにHTML5などさまざまな技術をベースに作っている。実際に使っている技術として、HTML 5 Markup、CSS3/Sass(SCSS)、Canvas/Ai→Canvas、hashchange、gzip、YUI Compressor、css sprites、OptiPNG、Custom Data Attribute、Data URI scheme、viewport、Full screen modeなどを挙げた。
アバターを描く
アメーバピグではパーツの描画にImage、CSS sprite、SVG、Canvasの4つを検討した。
Imageは作るのは簡単だが、3G回線だと読み込みが遅い。CSS spriteはサイズは小さくなるが、アメーバピグはカラーバリエーションがたくさんあるので焼け石に水。SVGはAndroidでは表示されないといった問題があり、今回は、Canvasを採用することにしたそうだ。
アバターデータについてはイラストレーターで作成し、それをAI→Canvasというツールでソースコードとして吐き出し、整形して軽量化、さらにJSON化してGzip圧縮を掛けることによって88%のサイズダウンを実現できた。
ページ作成
ページ遷移を速くするために、全てを1枚のHTMLに書いて、画面遷移でロードが発生しないようにした。パーツはulタグで定義して表示時に持ってくるようにした。また、画像はなるべくData URI Schemeにしてロードが発生しないようにしている。
CSSはSassを使って記述したので、変数や関数を駆使して記述できた。
UIについては、スマートフォンの操作特性上、画面の下にボタンを置いている。
高速化
高速化のために、css sprites、画像最適化、Minify、ファイル結合、gzip圧縮などを使用した。
ImageOptimによる画像最適化では3%、Minifyでは33%、gzip圧縮では73%、トータルで67%のサイズダウンに成功した。
ポイント
最後にポイントとして、サーバへのリクエストを最小限にする、画像をできるだけ減らす、できることはやる、という3つを挙げた。
関連URL
「HTML5 ゲームと WebUI アーキテクチャ」
GREEではフィーチャーフォンのゲームをスマホに移植することが多いので、SWFをCanvasに変換して動かすライブラリを用意した。
また、HTML5で開発する利点として、マルチプラットフォーム、そしてリリースサイクルのコントロール(A/Bテスト、キャンペーン、イベントの実施)を挙げた。
HTML5でブラウザベースでも十分な表現力を持ったゲームが作れるようになってきたことを指摘し、開発スピードやマルチプラットフォームを考慮すると、ブラウザベースで作るのが効率が良いことをアピールした。
Web UIアーキテクチャ
Web UIアーキテクチャとは、HTML5による利点はそのままに、HTML5だけではできないことをネイティブアプリで補う方式だ。Web+ネイティブのハイブリッドアプリである。
ブラウザゲームをネイティブアプリでラップすることによって、シングルサインオン、スクリーンショット付きひとこと、カメラ、プッシュ通知、アプリ内課金などを実現できる。
実装方法
WebViewを組み込んだアプリを作成し、JavaScriptでネイティブアプリと通信し、ネイティブの機能を実行してJavaScriptで返すことで実装している。
WebUIアーキテクチャを採用している例
WebUIアーキテクチャを採用している例として、Facebook、Google+、OpenFeint SDKなどが挙げられた。
tico
現在ticoというWeb UI Frameworkを開発しているいて、Web、ネイティブ間の通信をハンドリングしてくれている。
まとめ
HTML5でブラウザベースでも十分な表現力を持ったゲームが作れることをアピールした。また、開発スピードやマルチプラットフォームを考慮するとブラウザベースで作るのが効率が良いことを指摘した。ネイティブの力を借りることでゲームの体験を向上できるが、どこまでをネイティブに任せるかの線引きが重要であるとのことだった。
「JSクイズゲームの作り方(HTML5実力テストの紹介)」
続いて、面白法人カヤック 吾郷氏(@kyo_ago)の発表があった。HTML5実力テストの紹介をした。HTML5実力テストとは、HTML5の仕様を中心にしたJavaScript、HTML/CSSに関してのテストが受けられるjsdo.it上のイベントである。
JavaScript 21問、HTML/CSS 16問で、開始1週間の得点は以下の通り。
- JavaScriptコース 平均点 38.5点
- HTML/CSSコース 平均点 46.2点
この平均点を見ても、難易度の高い問題であることがうかがえる。採点結果の他に全体順位、偏差値、レーダーチャートなどが見られる。
裏HTML5実力テスト
HTML5実力テストは、もともと4月1日に「世界的なJavaScript協会で開催している試験がjsdo.it上で受けられるようになりました」的なネタで出す予定だった。
そのとき作っていた問題は、一般的にjsquizと呼ばれるようなJavaScriptに関する問題だった。
ライブラリの中身で使われているテクニック
この実力テストで出題される内容は、普段業務などで使うことは少ないが、ライブラリの中身などで結構使われている。jQueryの中のコードをベースに作っている問題もある。
「あなたを“魅了する”開発環境 enchant.js/PRO」
ユビキタスエンターテインメント 伏見氏(@sidestepism)による発表。
伏見氏は、UEI秋葉原リサーチセンター所属で、“9leap”プロジェクトリーダー、enchant.js 開発チーム所属。
enchant.js はHTML5 + JavaSriptのゲームエンジンで、2011年4月にリリースし、オープンソース(MIT & GPL Dual License)で提供されているとのこと。元々は昔のBASICみたいなものがほしい」というアイデアから始まった。国産なので、日本語の情報も多いのがメリットだ。
9leapという投稿型JavaScriptゲームサイトでは、そのほとんどがenchant.jsを用いたゲームだという。
enchant.jsの特徴
早くて軽くて気持ちいいのがenchant.jsの特徴。
コードが短く書けて、ループやpreload、互換性などの面倒な部分はライブラリで吸収してくれる。このため、ゲームの本質的な部分に集中でき、ライブラリ自体のコードも短く、何をしているのか把握しやすい。
9leapに投稿されている2Dレースゲームでは、ソースコードは300行、10KBに収まっている。
拡張性や通信もバッチリ
enchant.jsではJavaScriptそのものの拡張性を生かしているので、プラグインも簡単に書ける。物理エンジンもリリース予定だ。
また、通信もサポートしやすい作りになっており、Twitter連携もでき、node.js + WebSocketを使えば、JavaScriptだけでネットゲームが作れる。
イベントも多数実施
UEI主催の「9leap Game Programming Camp」というイベントは東京、仙台、札幌で開催し、6時間でenchant.jsを学びながら、ミニゲームを1本作るという内容で実施された。
IGDA Japan&UEI主催の「福島 Game Jam」というイベントでは、被災地をゲーム作りで応援するということで、即席チームで協力し、30時間でゲームを作るという内容で実施され、6チームがenchant.jsを採用した。
また、UEIの社内Hackathonでは「14時間でネットゲームを3本作ろう」「8時間でTwitter連携ゲームを10本作ろう」などのお題が設定されているということで、enchant.js の効率の良さや、気持ち良さがアピールされた。
ライブコーディング
ここで伏見氏によるライブコーディングが行われた。ものの数分でクマのキャラクターがブラウザ上で動くようになり、enchant.jsの効率の良さをアピールした。
enchant PRO
しかしJavaScriptはあくまでSandbox内での実行なので、カメラへのアクセス、ファイルシステムへのアクセス、写真撮影や画像認識、OpenGL、ソースコードの隠蔽など、できないこともたくさんある。それを打破するためにenchant PROを作った。
enchant PROはAndroid向け開発環境で、WebViewの中でJavaScriptを実行できる。必要に応じてAndroidのAPIをたたくことができ、UIはHTML5+CSSで書ける。ネイティブアプリにコンパイルされないので動的な更新が可能だ。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
関連URL
まとめ
この勉強会は、各社が実際のサービスでどのようにHTML5やCSS3、JavaScriptなどを活用しているのかが具体的に分かる、非常に内容の濃い勉強会であったように感じられる。
スマートフォンの高性能化に伴い、スマートフォン向けHTML5対応サービスも、今後増えていくことが予想される。
この勉強会はある程度定期的に開催しているようなので、HTML5に興味のある方は、ぜひ参加してみてほしい。
筆者紹介
akio0911(ブロガー・iPhoneアプリ開発者)
AR(拡張現実)・iOSアプリ開発・書評・グルメがメインのブログ「拡張現実ライフ」の中の人。cocos2d for iPhoneレッスンノートを執筆(共著)。 世田谷ものづくり学校の自由大学にてアプリクリエイター道場の講師を担当。アプリクリエイターにメイキングストーリーをインタビューしていく番組「ハイパーアプリクリエイターズ」も手掛ける
- Yamaguchi Mini Maker Faireに西日本のMakerが集結!
- 「Makeすることで世界は変わる」〜「Make」編集長が語るMakerムーブメント
- みんな笑顔のお祭り〜Maker Faire: Taipei 2013
- 生物学からMakerムーブメントまで、ニコニコ学会βの範囲がさらに広がる!
- 人とコンピュータの未来 インタラクション2013レポート
- 開発者のスタ誕「CROSS VS」が開催、おばかアプリ選手権賞は…
- 誰もが研究者の時代? ニコニコ学会βレポート
- メリーおばか! 聖夜にふさわしいおばかアプリ、お台場に集結
- 世界に誇る日本の学生のバーチャルリアリティ力
- 「アドテック東京」で「アホテック東京」を作った話
- 手軽に家電が作れる時代に小さな会社だからできること
- 五輪より熱い!? ベスト8が頂点競う おばかアプリ選手権
- 『FabLife』のインターネット黎明期のようなワクワク感
- JSエンジニアがアドビに聞く “iPhoneでFlashが動いたらアドビはFlashの開発を続けたか”
- 何食わぬ顔で、その荒野の真ん中に躍り出よ
- jQuery MobileなどUIフレームワークの基礎を学ぼう
- Retina ディスプレイを搭載し、薄型化した
- 超エンジニアミーティングに集ったテクノロジ
- 僕らはみんな何かの作り手だ!
- Kinectで巨乳になれるワールドカップ2012レポート
- おばかの“合コン”「ばかコン」、Ruby使いの女子大生モデル・池澤あやかさんも参加
- 【第29回 HTML5とか勉強会レポート】 次のモバイルアプリはどのフレームワークで作る?
- 【第27回 HTML5とか勉強会レポート】 LESSやTwitter Bootstrapで簡単デザイン
- 女子大生が異彩を放った「おばかアプリブレスト大会」
- 【おばかアプリ公開ブレスト ザリガニワークス徹底分解】 分解して振り切って、余白でコミュニケーションを
- 【HTML5とか勉強会レポート Webと電子書籍】 なぜWebではなく電子書籍なのか?
- 【HTML5とか勉強会 Webと家電】 家電のUIになるブラウザ
- 【Qtカンファレンスインタビュー】 Qt5で10億人ユーザーへ、OSSコミュニティ化でますます健在に
- 【第24回 HTML5とか勉強会レポート】 108もあるぞ! HTML5の要素数
- 【@ITスマートフォンアプリ選手権レポート】 学生からプロまで入り乱れてのアプリ合戦頂上対決!
- 【「iPhone・iPadアプリ大賞2011」レポート】 グランプリは生徒と先生が作った役に立つARアプリ
- 【第23回 HTML5とか勉強会レポート】 HTML5のデバイス&位置情報系APIを使いこなせ!
- 作りたい欲求を刺激するMake:07@東工大レポート
- 500作品が競った「Mashup Awards 7」表彰式
- 【第22回 HTML5とか勉強会レポート】 Processing.js、SVG、WebGL。HTML5周辺のグラフィック関連技術
- 【Google Developer Day 2011 Japanレポート】 HTML5で今までにないサイトを作る
- 【第21回 HTML5とか勉強会】 ゲーム開発はHTML5+スマホベースが新潮流
- 【東京ゲームショウ2011】 ゲームは、スマートフォン、拡張現実、そしてナチュラルインターフェイスに
- 第5回おばかアプリ選手権レポート 見よ! コレジャナーイアプリの数々を!
- Adobeが作ったHTML作成ツール、Edgeの本気度
- 【Chrome+HTML5 Conferenceレポート 】HTML5づくしの1日
- 【おばかアプリブレスト会議レポート 】おばかな人知が集結したブレスト会議
- 【15分で体験するApple WWDC 2011 Keynote】「iCloud」が示す「こちら側」を中心とした世界観とは?
- jQuery Mobile+PhoneGap連携でDreamweaverはスマホアプリ開発ツールに?
- 歌あり笑いあり過去最大規模となった技術者の祭典
- 「無料モデルに興味はない」「プログラマは創造的だ」〜セオドア・グレイ氏インタビュー
- Windows 7でも「おばかアプリ選手権」は大爆笑でした
- 4回目を迎えたおばかアプリ選手権、その見所とは
- おばかアプリ作成のための超まじめな勉強会レポート
- Flash CS5のiPhoneアプリ変換機能は無駄にならない
- デザイナだからこそ作れるUXに企業が注目している
- マッシュアップを超えたマッシュアップを−Mashup Awards 5表彰式レポート
- 3回目にして完成形を迎えた「おばかアプリ選手権」
- Web標準に準拠し独自技術Silverlightで補完する
- 3回目はあるのか? おばかアプリ選手権レポート
- クリエイターであるためにFlash待ち受けを出し続ける
- ユーザーエクスペリエンスのadaptive path訪問記
- 第1回おばかアプリ選手権はこうして行われた
- Adobe MAXレポート:Webにおけるグラフィック表現手段としてのFlash
- ケータイ版AIRでFlash Liteの成功パターンを踏襲
- ペパボ社長・家入氏が語る、バカとまじめの振り子の関係
- 植物の「緑さん」がブロガーになるまで
- Chumby開発者が語る 誕生秘話とビジネスモデル
- Mashup Awards授賞式レポート マッシュアップ+ひとひねり=MA4の受賞作
Copyright © ITmedia, Inc. All Rights Reserved.