制作を支えたツール達 (パズル戦隊デナレンジャー)

23
Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 第 5 第 DeNA 第第第第第第第第 xAiming 第第第第第第第第第第第第 : 第第第第第第第第第第 Apr. 28, 2015 渡渡 渡 Japan 渡渡渡渡渡渡渡渡渡渡渡渡 渡渡 渡渡渡 渡渡渡渡渡渡渡渡 DeNA Co., Ltd.

Upload: denastudy

Post on 28-Jul-2015

1.376 views

Category:

Software


2 download

TRANSCRIPT

Page 1: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

第 5 回 DeNA ゲーム開発勉強会 xAiming

パズル戦隊デナレンジャー : 制作を支えたツール達

Apr. 28, 2015

渡辺 亮Japan リージョンゲーム事業本部技術・編成部 開発第三グループDeNA Co., Ltd.

Page 2: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

自己紹介 渡辺 亮 ( わたなべ りょう )

DeNA でゲームを作り始めて 5 年目⁃ ブラウザソーシャルゲームの開発・運用を

いくつか担当⁃ 海外向けのアプリソーシャルゲーム

Blood Brothers のリードエンジニアを経て⁃ パズル戦隊デナレンジャーの

クライアントエンジニアに

サーバエンジニアですが、クライアントも始めました、というパターン

割となんでもやってます2

Page 3: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

アジェンダ「パズル戦隊デナレンジャー」の開発・制作で利用したツール ( の一部 ) と知見をご紹介します

クラッシュレポートとシューティング : Crittercism & LiftEngineステージデータの制作 :Tiled Map Editorアニメーション・エフェクトの制作 :SpriteStudio

その他、今回は触れませんが :

CocosBuilder(UI), TexturePacker( スプライトシート作成 ),

Jenkins( ビルドサーバ , 一部ツールの非エンジニア向けインタフェース ) など3

Page 4: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

デナレンジャーチームのミッションヒットさせるのは言うまでもなく、道を作る

ゲームクライアント開発力向上⁃ サーバエンジニア出身のメンバー多い⁃ 開発ノウハウ溜める

新しい自社フレームワーク・ライブラリの安定化⁃ LiftEngine (2D ゲームフレームワーク )

⁃ DeAL ( サウンドライブラリ )

ツール選定⁃ 後続タイトルの開発も考慮に入れて

4

Page 5: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

クラッシュレポートとシューティング :Crittercism & LiftEngine

5

Page 6: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Crittercism mAPM (Mobile Application Performance Management) のサービス

⁃ クラッシュレポーティングに限らない• アプリケーションの利用分析• API アクセスなどのパフォーマンス分析

⁃ 現時点ではクラッシュレポータとしてのみ利用 特に役に立ったもの :

⁃ スタックトレースの自動 Symbolicate⁃ ゲームのユーザ ID との紐付け⁃ クラッシュ数推移の集計

6

Page 7: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Crittercism

7

Page 8: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

LiftEngine によるデバッグ支援 独自のメモリアロケータ

⁃ 解放するメモリ領域を特定パターンで塗りつぶす→ 解放済みメモリへのアクセスを識別できる

遅延解放⁃ delete されたら、塗りつぶしだけしておき

実際のメモリ解放は少し待ってから行う⁃ 解放するとき、内容が書き換わっていないか

チェック→ 予期せぬメモリ破壊を検出できる

8

Page 9: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

クラッシュ対応 その他の取り組み PC に接続したスマートフォンを使用して QA

⁃ Xcode でデバッガ起動した状態で QA⁃ クラッシュしてブレークしたらそのまま開発者のも

とへ QA メンバに端末ログ採取を徹底 長時間の耐久プレイテスト ベータテストでのクラッシュ調査

9

Page 10: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

ステージデータの制作 :Tiled Map Editor

10

Page 11: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Tiled Map Editor

11

Page 12: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Tiled Map Editor 座標ごとにタイルを置いてマップデータを作る レイヤーを複数持てる

⁃ デナレンジャーの場合は• ギミックレイヤー• 悪のオーラレイヤー• ブロックレイヤー• セルレイヤー

 といった具合。ゲーム上の概念と合わせやすい プロパティ (key-value) だけ持つレイヤーも

⁃ 必要スコアなどの設定値を保持するために利用 Cocos2d-x 用のローダーがある

12

Page 13: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

パズルのレイヤー構造

13

ギミック

悪のオーラ

ブロック

セル

Page 14: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

イマイチだったところも 座標ごとに持てるデータはタイルの ID のみ

⁃ 座標ごとに構造体を持ちたいケースには不適⁃ 細かい設定を必要とするギミックがあるとつらい

マップデータと描画情報が密結合している⁃ 本当は 2 次元配列のマップデータだけでよかった⁃ Tiled Map におけるレイヤーは、バッチ描画の単位。

ゲーム内の概念とは無関係⁃ Cocos2d-x 用のローダーが、画像のロードまで

行っている 編集時にバリデーションが効かない

開発期間の折り合いがつけば、専用に作ってもよかった。14

Page 15: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

アニメーション・エフェクトの制作 :SpriteStudio

15

Page 16: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

アニメーション作成ツールの選定 データの量産に向いているか

⁃ 制作を担当するデザイナーの視点で 導入実績が豊富か

⁃ ツールの普及度が高いほど、制作を外注しやすい 再生用ライブラリの品質

⁃ オープンソースであれば手を入れることも可能

16

Page 17: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

色々検討した AnimationBuilder ( 自社ツール ), Spine▲ データ量産しづらい (※)• 既存データを組み合わせての新しいアニメーション作成• タイムライン上でのキーフレーム編集の使い勝手

など

DragonBones◯ Flash の拡張機能 → Flash のスキルを活用できる▲ 再生用ライブラリがいまいち▲ c++ での導入実績少ない

※ 対象とするアニメーションの複雑度による。

  比較的シンプルなアニメーションを大量生産するなら SpriteStudio

17

Page 18: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

コンシューマでの採用実績もあり、パフォーマンスにも期待⁃ プロトタイプの時点では結構よく動いていた

Optpix SpriteStudio を採用

18

Page 19: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

ところが… Cocos2d-x 用の標準プレイヤーが遅すぎる

⁃ 高速化した• DeNA流 cocos2d-x との付き合い方

http://www.slideshare.net/dena_study/denacocos2d-x

出力されるデータの中身に無駄が多い( プロジェクトファイル内の全画像の参照が全アニメーションに含まれる )→ 無駄なロードが大量に発生⁃ 使ってない画像の参照情報をツールで一括削除⁃ 後続のプロジェクトではプロジェクトファイルの

分割単位を工夫

19

Page 20: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

ところが… エンジニアが頑張ることが多かった

⁃ SpriteStudio のデータに、ゲーム中の Sprite や他のアニメーションを attach したい場合など

⁃ AnimationBuilder が得意な部分

20

Page 21: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

ところが… パーティクル使えない

⁃ デナレンジャーでは簡易パーティクルを実装⁃ ランダム性が必須でなければそれっぽく手付け

( デザイナーが頑張る )

⁃ SpriteStudio の最新バージョンではサポート済

21

Page 22: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

デナレンジャーの反省を活かして 後続のタイトルでは AnimationBuilder と

SpriteStudio を併用⁃ AnimationBuilder のアニメーションノードとして

SpriteStudio アニメーションを利用可能例えば…• 個別キャラクターのスプライトアニメーション :

SpriteStudio で制作• キャラクターの移動曲線 : AnimationBuilder で制作

→ プログラムでキャラクターを差し替えて汎用的に使える

AnimationBuilder での制作については : ⁃ FINAL FANTASY Record Keeper 演出データについて

http://www.slideshare.net/dena_study/20141111-dena-study21

22

Page 23: 制作を支えたツール達 (パズル戦隊デナレンジャー)

Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

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

23