Aiming 開発ゲームの裏側

Post on 21-May-2015

12.143 views 0 download

Transcript of Aiming 開発ゲームの裏側

Aiming 開発ゲームの裏側

株式会社 Aimingリードソフトウェアエンジニア

牧野 克俊

今日のテーマ

幻塔戦記グリフォンがどう作られているかざっと話しつ

つ振り返ってみる

目次1. プロジェクトの概要2. グラフィック3. メモリ使用量4. ユーザインターフェイス5. リソースのダウンロード6. Unity への要望

1. プロジェクトの概要

プロジェクトの概要• オンラインアクションゲームの開発• スマートフォン( iOS,Android )で遊べる– 動作端末の目安は iPhone4S 程度

• 開発期間は約1年2ヶ月(リリースまで)

メンバー構成• MMORPG やブラウザゲームの開発経験が

あるメンバーが中心• 人数– 企画:6人– プログラマ:9人• クライアント5人、サーバ4人

– グラフィッカー:10人 + α

2. グラフィック

基本ルール• 最初に決めたルール– Drawcall は 50 を目安– リアルタイムライティングなし– テクスチャは可能な限り小さく

グラフィック(キャラクター)• パーツをプログラムで結合– 髪の毛、顔、上半身、下半身、右手武器、左

手武器• テクスチャは 1024 * 1024 を 1 枚– 結合後に収まるようにパーツを割り振る

• ポリゴン数は約 2000– パーツによっては増減有り

グラフィック(キャラクター)

グラフィック(モンスター)• ボス– テクスチャサイズは 512 * 512– ポリゴン数は約 3000

• ザコ– テクスチャサイズは 128 * 128– ポリゴン数は約 500 〜 1500– 一度に十数体出現する

グラフィック(モンスター)

グラフィック(背景)• テクスチャ– 1024 * 1024 を約 2 枚– 1024 * 1024 ライトマップ 1 枚– 512 * 512 マップ上のオブジェクト用

• ポリゴンは数千程度– 基本的に板です

• 可能な限り α で抜かない

グラフィック(背景)

グラフィック(エフェクト)• パーティクルで作成• テクスチャは複数のエフェクト間で使い

回している• 半透明、加算がやっぱりきつい

グラフィック(エフェクト)

グラフィックを振り返って• 描画速度は良好• キャラクター構築の負荷が高い• スキニングの負荷が高い– ポリゴン数が多いと特に顕著

• エフェクトの描画負荷– 数が多いのでカリングをした

• エフェクトのロードタイミング– 初めてエフェクトが発生するときに読み込んで

いるがいまいち

3. メモリ使用量

メモリ使用量• 全体の使用量目安– 200 MB 程度

• おおよその内訳– メッシュ: 3 MB– テクスチャ: 40 MB– アニメーション: 10 MB– サウンド: 10 MB

メモリ使用量を振り返って• ガベージコレクト– プレイ中に関しては問題になっていない– シーン切り替え時や大量のリソースをアン

ロードしたときには結構時間がかかる• Animation.AddClip でもりもりメモリ使わ

れた– 登録してある Animation 自体を複製

4. ユーザインターフェイス

ユーザインターフェイス• NGUI を使用• 基本ルール– 位置はアンカーを使って指定– 縦の比率を基準にスケール

ユーザインターフェイス

ユーザインターフェイス• ワークフロー– プログラマがモック作成(機能のみ入ったも

の)– グラフィッカーが見た目、位置等修正

• スクリーンサイズによって重ならないようにするのはグラフィッカー頼み

• 日本語はビットマップフォントを使用

ユーザインターフェイスを振り返って

• NGUI はまあまあ良い• パネル間の優先順位付け• ビットマップフォントでは文字数が足り

ない– チャット、掲示板等自由入力以外は問題ない– ダイナミックフォントにしたい

5. リソースのダウンロード

リソースのダウンロード• アセットバンドルを使用– 現在総ファイル数約 2000!

• LoadFromCacheOrDownload を使用• 設定ファイルはアセットバンドル化して

いない• Editor 上では Resources.LoadAssetAtPath

を使うようにしている

リソースのダウンロード• AssetBundle の分け方– 背景:クエスト単位– モンスター:1体–装備:1個– アニメーション:職業– サウンド:1曲( SE はまとめている)– エフェクト:同テクスチャ– UI :アトラス単位

リソースのダウンロードを振り返って

• ダウンロード時間が長い– エリア解放等のタイミングに合わせる形で分

割してはいるものの・・・• アセットの更新判断– 限りなく自己申告に近い・・・– テクスチャからどのプレハブで使われている

かが探しにくい

6. Unity への要望「こうなったらうれしいなー」

Unity への要望• Mono のバージョン上げて欲しい!–非同期処理関係の強化

• アセットバンドルを再設計しませんか?– バージョンごとの互換性– キャッシュの仕組み– もともとあくまで WebPlayer 用

ご清聴ありがとうございました!