unity * スマートフォン開発で学んだこと

Post on 26-Jun-2015

12.723 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Unity × スマートホン開発で

学んだこと

Lead Software Engineer牧野 克俊

2012/10/28

自己紹介

自己紹介

• 牧野 克俊–オンラインゲーム開発を8年ほ

どやってきました–PC 、コンソール〜ブラウザゲー

ム–クライアント〜サーバまで担当

会社紹介

Aimingとは

タイトル

Lord of Knights(iOS / RPG ストラテジー)

タイトル

タイトル

剣と魔法のログレス ( ブラウザ/ MMORPG )

タイトル

タイトル

Blade Chronicle(PC / MMORPG )

タイトル

タイトル

RPG 三国志(PC / MMOROPG )

クイーンズブレイドTHE CONQUEST

( ブラウザ / RPG ストラテジー)

はじめに

はじめに

• チームは PC オンラインゲームの開発経験が多い

はじめに

• チームは PC オンラインゲームの開発経験が多い

• 初めてのスマートホン開発

はじめに

• チームは PC オンラインゲームの開発経験が多い

• 初めてのスマートホン開発• Unity を使って開発

はじめに

なぜ Unity ?

はじめに

• マルチプラットフォーム対応必須!

• 研究開発大変そう・・・

はじめに

• いろいろ検討した結果・・・

はじめに

はじめに

• Write Once, Run Anywhere

Program/Resource

はじめに

• 低レイヤー層を吸収

Unity

Application

Graphic Sound IO

はじめに

• 拡張可能

Unity

Application

Graphic Sound IOExtend

はじめに

• 比較的安価

はじめに

• チームは PC オンラインゲームの開発経験が多い

• 初めてのスマートホン開発• Unity を使って開発

開発中に起こった事例を紹介します

1. ファイル管理

ファイル管理

Unity 推奨は「ファイル管理は

Asset Server を使ってください」

ファイル管理

でも・・・

ファイル管理

「いつも通り Git(Subversion)で

いいよね?」「 Asset Server お金かかかる

し」

ファイル管理

実際やってみると・・・

ファイル管理

「テクスチャがはられてないよ?」

「 Prefab がおかしいよ?」

ファイル管理

あれ?

ファイル管理

meta ファイルのコミットを

忘れている!

ファイル管理

なんとか防げないかな・・・

ファイル管理

• Git(Subversion) フックスクリプト–pre-commit hook でチェック

ファイル管理

• Git(Subversion) フックスクリプト–pre-commit hook でチェック

•対応する meta ファイルがない

•meta ファイルだけ存在する

ファイル管理

Git(Subversion) でファイル管理できます

ファイル管理

でも正直・・・

ファイル管理

Asset Server の導入をお勧めします

2. 動作確認

動作確認

「 Editor 上ですぐに動作確認できるから楽だねー」

動作確認

そろそろ実機で確認してみるか・・・

動作確認

「あれ動かないよ?」「 Editor 上と見た目が違う

な・・・」

動作確認

• スマートホンで動かない–メモリの使い過ぎ–使えない関数、機能がある–GPU の違い–トランポリンサイズの違い

動作確認

• 画面サイズの違いによる違和感–UI の大きさ–指で隠れてしまう

動作確認

実機確認を簡単にできるようにしないと・・・

動作確認

• 開発機として Mac を増やす• 自動ビルドの活用

動作確認

• 開発機として Mac を増やす–iOS アプリ作成できるのは Mac

だけ–Android アプリも作成できるの

で スマートホン開発では Mac おすすめ

動作確認

• 自動ビルドの活用–Jenkins でパッケージ (.ipa.apk)

作成–生成されたパッケージを取って

きてデバイスにインストール

動作確認

• さらにテスト時は–Web からワンタッチでインス

トール<a href="itms-services://?action=download-manifest&url=http://***/***.plist></a>

動作確認

• iOS アプリのビルドは面倒• 自分で頻繁にビルドしなくて

も良い環境構築を

3. データ設定

データ設定

「 UnityEditor で全部設定できるようにしようか」

データ設定

• オブジェクト配置• 敵の配置(ポップ位置の指

定)• イベント配置• パラメータ設定

データ設定

「シーンをまたいだ設定がやりにくい・・・」

「一覧性が悪い・・・」

データ設定

• オブジェクト配置• 敵の配置(ポップ位置の指

定)• イベント配置• パラメータ設定

データ設定

最終的にパラメータ系は Excel(Google Spread Sheet) で設定

データ設定

• UnityEditor で設定–レベル内で完結するもの–配置位置

• Excel で設定–バランスを取るために一覧する

必要があるもの

4. パフォーマンス

パフォーマンス

「スマートホンは非力だからポリゴン数には気をつけよ

う」

パフォーマンス

あれ?速度でないぞ・・・

パフォーマンス

スマートホンではポリゴン数よりも Drawcall

数が重要だった!

パフォーマンス

• iPhone 4 はこれでほぼ同じ FPS–2400 ポリゴン Drwacall 400–50000 ポリゴン Drwacall 200

パフォーマンス

Drawcall をどう減らす?

パフォーマンス

• マテリアルの共通化–テクスチャのアトラス化

• キャラクタのメッシュ、テクスチャをプログラムで結合

パフォーマンス

Drawcall 数を減らしたのにまだ遅い・・・

パフォーマンス

フィルレートが問題だった!

パフォーマンス

• iPhone 4 で全画面を覆う半透明テクスチャを重ね合わせてみた–背景 +2枚をオーバーレイで FPS

16

パフォーマンス

どうやって減らす?

パフォーマンス

• ライティングなし–ライトマップのみ–ピクセル(フラグメント)シェーダはシンプルに

• α で抜くのではなくポリゴンで形状を作る

• レンダリング解像度を減らす

パフォーマンス

• Drawcall 数を減らす• Overdraw 面積を減らす

4. 通信

通信

「 3G 回線だから慎重に作ろう」

通信

• 3G 回線に対するイメージ–帯域が狭い–レイテンシが大きい–すぐ切断される

通信

10 年前のネットワーク環境のつもりで

通信

大きな問題は出ていない!

通信

• あえて注意するとしたら–スレッドはやめた方がいい–必要以上に通信しない

通信

通信をヘビーに使うゲームはまだ未リリース・・・

最後に

最後に

• なんだかんだで Unity 便利です!

最後に

• なんだかんだで Unity 便利です!• スマートホンはやっぱりまだ非力

最後に

• なんだかんだで Unity 便利です!• スマートホンはやっぱりまだ非力• 通信はあんまり怖くない

top related