アドビ システムズが主催する、Adobe Developer Connection(ADC)連動した開発者向けイベント「ADC MEETUP」。第4回目は、「Social Gaming」をテーマとして2月28日に開催された。

そのセッション5では、グリー株式会社のCTOである藤本真樹氏により、同社が開発しているGREE SDK用のAIR Native Extensionと、それを利用したソーシャルゲーム開発のノウハウについて講演が行われた。

1 グリーがAdobe AIRを選ぶ理由

2011年9月、グリーはスマートフォン向けのゲーム開発ツールとしてAdobe AIRを採用することを発表した。それ以降、GREE SDK用のAIR Native Extensionの開発を行うとともに、グリー自身でもAdobe AIR 3を使ってソーシャルゲームの開発に取り組んでいる。

Adobe AIRの他にも、Unityやcocos2Dなど、様々なミドルウェアが登場してきている中で、なぜグリーはAdobe AIRに力を入れることになったのか。藤本氏は、3つの理由を挙げる。(→ビデオ時間 3:30)

1つ目は、Adobe AIR 3から搭載された「ネイティブ拡張(Native Extensions)」。もともとAdobe AIRには興味を持っていたが、開発環境として採用するには難しい面も感じていたという。ネイティブ拡張により、開発できる幅が広がり、その問題が解消した。

2つ目は、Adobe AIRのパフォーマンス。藤本氏によれば、普通に作っていてもパフォーマンスで苦労することはあまりないものの、特にGPU環境だとビットマップレンダリングのパフォーマンスが高い点にさらに注目しているそうだ。

3つ目は、Flashコミュニティ。Flashデベロッパーは数が多く、彼らがこれまでに培ってきたアセットや経験をソーシャルゲームに活かせるのではないかと期待している。

また藤本氏は個人的に、Adobe AIRは他よりもオーサリングツールが充実している点も挙げた。

2 グリーの開発アーキテクチャ

ソーシャルゲームを開発するとなると、サーバサイドも必要になる。グリーでは、node.jsを採用している。(→ビデオ時間 8:20)

Webアプリであれば、リクエスト/レスポンスのトランザクションを繰り返すだけで成り立つことが多い。しかし、ソーシャルゲームとなると、さらにRAW SocketやWebSocketなどを使ってサーバーとのコネクションを維持する、プッシュ通知を行うなどの必要も出てくる。そうした点と世の中の流れを考慮した結果、node.jsを採用するに至ったという。

3 Adobe AIRで開発する際のTIPS

最後に、藤本氏がこれまでに行ったAdobe AIR 3によるソーシャルゲーム開発をもとに、いくつかのTIPSが紹介された。(→ビデオ時間 14:00)

1つ目は、メモリ消費の節約方法。スマートフォンではメモリが限られている。特にAndroidの場合、ゲームでアプリを使い過ぎると、OSにより終了させられてしまう。メモリ消費の節約については皆さんも普段から心がけているだろうが、藤本氏によれば、Adobe AIRではローカルでSQLiteが使えるため、これを活用すればさらにメモリ消費を節約することができるとのこと。

2つ目は、Captive Runtimeを利用する際のサイズへの注意。Captive Runtimeを使えばランタイムごとアプリを提供することができるので便利だ。ただし、それによりアプリサイズが約10MBほど増えてしまう。特にiOSでは20MBのサイズ制限があるため、注意が必要だ。

3つ目は、flash.system.Capabilitiesを使ったデバイス検知。Androidと一口にいってもデバイスの種類は多岐にわたる。場合によっては、ゲーム内で機種判別を行うこともあり、その場合はflash.system.Capabilitiesを使えばよいとのこと。

ソーシャルゲームの開発で重要であり、かつ難しいのが「サーバー側との通信」だと藤本氏は述べる。そこで最後に紹介されたのが、WebSocketを利用する場合に、Adobe AIR側でのSocket.IOを使った開発に役立つライブラリ「websocket-as」だ。ただし、グリーではwebsocket-asをそのままではなく、WebSocketのセキュリティモデルなどを考慮し、カスタマイズして使っているとのこと。

「Webアプリの場合と違って、ネイティブアプリの場合は定番のフレームワークがありません。私たちがSDKを開発しながらゲームも開発しているのは、その課程でいいフレームワークを構築できたら、皆さんに提供し、開発しやすい環境を整えたいと思っているからです。また、GREE Platformのグローバル化も進んでいます。Flashクリエイターの皆さんがこれまでのアセットや経験を活かしてアプリを作り、それを世界中に向けて発信できる環境ができつつあります」

関連記事

ADC MEETUP ROUND 04「Social Gaming」レポート