月間1億の売上を誇るゲームを持つさくらソフトが開発技術公開!
   ソーシャルゲームディレクター・デザイナーも知っておくべき


     開発手法勉強会
&大ヒットゲームの負荷分散 tips 共有
&大ヒットゲームの負荷分散 tips 共有
&大ヒットゲームの負荷分散 tips 共有
&大ヒットゲームの負荷分散 tips 共有
&大ヒットゲームの負荷分散 tips 共有
             三上 隼人
本日の内容
• 第一部
 • 開発の現場
 • プログラミング事例紹介
• 第二部
 • 負荷分散
 • 運営時の顛末
          昨日のクローズド β で
            何が起きたか!
さくらソフト
• ソーシャルゲームプロバイダ
              一周年を記録した
              ロングランゲーム


             主婦層をガッチリ掴む
              ほぼ横ばいの継続率



               奥深いゲーム性
             多プラットフォーム展開
さくらソフト
• ソーシャルゲームプロバイダ




『神装ヴァルキリー』
装備変更でカード自体が変化!
さくらソフト
• ソーシャルゲームプロバイダ
• GSGL のシルバースポンサー
 • Microsoft MVP 上村がメンター




                       GSGL HP より拝借
さくらソフト
• ソーシャルゲームプロバイダ
• GSGL のシルバースポンサー
 • Microsoft MVP 上村がメンター
• 特色
 • 高い技術力

    「ソフト」と「インフラ」
        事例紹介と分析
ソフト
• 開発現場の構成:神装ヴァルキリーの場合




               (C) http://www47.tok2.com
現場の構成

          企画者
        チーフ開発者
         兼任で一人




    (C) http://www47.tok2.com
現場の構成




 デザイナー
 内製と外注

    (C) http://www47.tok2.com
現場の構成

開発者チーム
5人構成
経験:0〜10年




           (C) http://www47.tok2.com
現場の構成
      自己紹介
      • 三上 隼人
      • 経験:今日で二ヶ月
開発者チーム• ギルド機能担当
5人構成    • 一ヶ月→ 二週間
        なぜ、それができたのか?
経験:0〜10年




           (C) http://www47.tok2.com
要求の流れ




    (C) http://www47.tok2.com
機能追加や変更要求

    要求の特徴
 種類:機能、デザイン問わず
 時期:開始から公開直前まで
   件数:常に飽和状態




ソーシャルゲームの特徴


            (C) http://www47.tok2.com
新装ヴァルキリーの場合



     主要部分
   売り出す機能:着せ替え
 ソーシャル要素:フレンド、挨拶
  課金要素:アイテム、ガチャ
新装ヴァルキリーの場合
           自動デッキ     特典
ソート機能
                           カード合成



検索の絞り込
   み
              主要部分         トレード
           売り出す機能:着せ替え
         ソーシャル要素:フレンド、挨拶
クエスト
          課金要素:アイテム、ガチャ
                            ギルド



協力戦
         コンプボーナ
                   図鑑      プレゼント
            ス
新装ヴァルキリーの場合
           自動デッキ     特典
ソート機能
                           カード合成



検索の絞り込
   み
              主要部分         トレード
           売り出す機能:着せ替え
         ソーシャル要素:フレンド、挨拶
クエスト
          課金要素:アイテム、ガチャ
                            ギルド



協力戦
         コンプボーナ
                   図鑑      プレゼント
            ス
新装ヴァルキリーの場合
           自動デッキ     特典
ソート機能
                           カード合成



検索の絞り込
                           トレード
   み
              主要部分
・・・とはなりませんでした
           売り出す機能:着せ替え
         ソーシャル要素:フレンド、挨拶
          課金要素:アイテム、ガチャ
クエスト
                            ギルド



協力戦
         コンプボーナ
                   図鑑      プレゼント
            ス
事例紹介
• 工数を抑えられた事例
 • 対処法
   • 企画者、デザイナーと綿密な打ち合わせ
   • 必要事項をおさえて、最もシンプルに実装
 • 具体的には
   • 変更で品質低下
   • 奥が深いと勘違い
   • 手軽だったが変更に弱い
変更で品質低下
• チュートリアル
 • 主要機能
   • 一通りゲーム機能の紹介
 • 変更事例
   • 新機能追加
   • Flash の追加
   • 進行中のステータス変化
    • レベルアップ、カードドロップ、お金、経
   験値・・・ etc
チュートリアル
• ページ進行


クエスト1     ボス戦     結果
チュートリアル
  • 新機能の追加


クエスト1    合成   ボス戦   結果
チュートリアル
  • Flash の追加


クエスト1       合成      ボス戦       結果




         Flash( 次のページへ飛ばす )
チュートリアル
  • ステータス変化:レベルアップ


クエスト1            合成   ボス戦       結果


        レベルアップ




           Flash( 次のページへ飛ばす )
チュートリアル
  • ステータス変化:カードドロップ


クエスト1            合成   ボス戦     結果


        レベルアップ


 カードドロッ
    プ

           Flash( 次のページへ飛ばす ) あれ?
チュートリアル
   • 変更後


         カード   レベルアッ
クエスト1                  合成   ボス戦   結果
        ドロップ     プ




  ステータス:チュートリアル終了後に初期化

        企画者の頭の中では分かっていたこと
事例紹介
• 工数を抑えられた事例
 • 対処法
   • 企画者、デザイナーと綿密な打ち合わせ
   • 必要事項をおさえて、最もシンプルに実装
 • 具体的には
   • 変更で品質低下
   • 奥が深いと勘違い
   • 手軽だったが変更に弱い
ナビゲーションリンク
• ナビゲーションリンク


             表示中       他にもあるよ

• 神装ヴァルキリーの場合
 • 5 つ表示: 7, 8, 「 9 」 , 10, 11   など
奥が深かった・・・
•   とりあえずやってみる

      ... 6 7 8 9 10 11 1
                2 ...
•   前がダメなら


          1 2 3 4 5 6 ...
•   後ろがダメなら


     ... 4 5 6 7 8 9 10
•   if 文で状況を判断しながら、3つの for ループが必要?
整理してみると
•   必要なのは
    •リンクの開始位置
    •現在の位置
    •リンクの終了位置
    •全部で 5 つ:袖は2つまで

•   結果
    •最初に開始位置と終了位置を袖2つで初期化
    •開始位置が始端なら、始端から5つで終了位置を
    •else 終了位置が終端なら、終端から5つで開始位置を
    •if ... else ... 1つだけで大丈夫
ツリー表示
•   ツリー表示って?
    •昨日クローズド β リリースのツリー
    •サイトツリー
    •メニューツリー
    •階層構造なら何でも

•   画像で綺麗に表示するとしたら?
初期コスト重視
•   手で直接書いてしまおう
•   必要な画像は発注しよう


•   新しいモノが追加される度に
    •データの追加
    •レイアウトの変更
    •画像発注の追加
     →小さな工数が積み重なっていく
自動生成
•   そもそも必要だったもの
    •親子関係
    •世代が深くなると
     →前部分の画像が増えるだけ
    •画像要素は3つのパーツ

•   再帰処理で簡単に実装できる
    •業務では役に立たない代表格
    •スタックでも同じことができる
     →コード量増加
     →バグの温床
まとめ
• 工数を抑えられた事例
 • 対処法
   • 企画者、デザイナーと綿密な打ち合わせ
   • 必要事項をおさえて、最もシンプルに実装
 • 具体的には
   • 変更で品質低下
   • 奥が深いと勘違い   実務経験だけではな
   • 手軽だったが変更に弱い 積み重ねが大事
                く基礎学習、日々の


                学生が有利かも?

GSGL 2012 さくらソフト

  • 1.
    月間1億の売上を誇るゲームを持つさくらソフトが開発技術公開! ソーシャルゲームディレクター・デザイナーも知っておくべき 開発手法勉強会 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 三上 隼人
  • 2.
    本日の内容 • 第一部 •開発の現場 • プログラミング事例紹介 • 第二部 • 負荷分散 • 運営時の顛末 昨日のクローズド β で 何が起きたか!
  • 3.
    さくらソフト • ソーシャルゲームプロバイダ 一周年を記録した ロングランゲーム 主婦層をガッチリ掴む ほぼ横ばいの継続率 奥深いゲーム性 多プラットフォーム展開
  • 4.
  • 5.
    さくらソフト • ソーシャルゲームプロバイダ • GSGLのシルバースポンサー • Microsoft MVP 上村がメンター GSGL HP より拝借
  • 6.
    さくらソフト • ソーシャルゲームプロバイダ • GSGLのシルバースポンサー • Microsoft MVP 上村がメンター • 特色 • 高い技術力 「ソフト」と「インフラ」 事例紹介と分析
  • 7.
  • 8.
    現場の構成 企画者 チーフ開発者 兼任で一人 (C) http://www47.tok2.com
  • 9.
  • 10.
  • 11.
    現場の構成 自己紹介 • 三上 隼人 • 経験:今日で二ヶ月 開発者チーム• ギルド機能担当 5人構成 • 一ヶ月→ 二週間 なぜ、それができたのか? 経験:0〜10年 (C) http://www47.tok2.com
  • 12.
    要求の流れ (C) http://www47.tok2.com
  • 13.
    機能追加や変更要求 要求の特徴 種類:機能、デザイン問わず 時期:開始から公開直前まで 件数:常に飽和状態 ソーシャルゲームの特徴 (C) http://www47.tok2.com
  • 14.
    新装ヴァルキリーの場合 主要部分 売り出す機能:着せ替え ソーシャル要素:フレンド、挨拶 課金要素:アイテム、ガチャ
  • 15.
    新装ヴァルキリーの場合 自動デッキ 特典 ソート機能 カード合成 検索の絞り込 み 主要部分 トレード 売り出す機能:着せ替え ソーシャル要素:フレンド、挨拶 クエスト 課金要素:アイテム、ガチャ ギルド 協力戦 コンプボーナ 図鑑 プレゼント ス
  • 16.
    新装ヴァルキリーの場合 自動デッキ 特典 ソート機能 カード合成 検索の絞り込 み 主要部分 トレード 売り出す機能:着せ替え ソーシャル要素:フレンド、挨拶 クエスト 課金要素:アイテム、ガチャ ギルド 協力戦 コンプボーナ 図鑑 プレゼント ス
  • 17.
    新装ヴァルキリーの場合 自動デッキ 特典 ソート機能 カード合成 検索の絞り込 トレード み 主要部分 ・・・とはなりませんでした 売り出す機能:着せ替え ソーシャル要素:フレンド、挨拶 課金要素:アイテム、ガチャ クエスト ギルド 協力戦 コンプボーナ 図鑑 プレゼント ス
  • 18.
    事例紹介 • 工数を抑えられた事例 •対処法 • 企画者、デザイナーと綿密な打ち合わせ • 必要事項をおさえて、最もシンプルに実装 • 具体的には • 変更で品質低下 • 奥が深いと勘違い • 手軽だったが変更に弱い
  • 19.
    変更で品質低下 • チュートリアル •主要機能 • 一通りゲーム機能の紹介 • 変更事例 • 新機能追加 • Flash の追加 • 進行中のステータス変化 • レベルアップ、カードドロップ、お金、経 験値・・・ etc
  • 20.
  • 21.
    チュートリアル •新機能の追加 クエスト1 合成 ボス戦 結果
  • 22.
    チュートリアル •Flash の追加 クエスト1 合成 ボス戦 結果 Flash( 次のページへ飛ばす )
  • 23.
    チュートリアル •ステータス変化:レベルアップ クエスト1 合成 ボス戦 結果 レベルアップ Flash( 次のページへ飛ばす )
  • 24.
    チュートリアル •ステータス変化:カードドロップ クエスト1 合成 ボス戦 結果 レベルアップ カードドロッ プ Flash( 次のページへ飛ばす ) あれ?
  • 25.
    チュートリアル • 変更後 カード レベルアッ クエスト1 合成 ボス戦 結果 ドロップ プ ステータス:チュートリアル終了後に初期化 企画者の頭の中では分かっていたこと
  • 26.
    事例紹介 • 工数を抑えられた事例 •対処法 • 企画者、デザイナーと綿密な打ち合わせ • 必要事項をおさえて、最もシンプルに実装 • 具体的には • 変更で品質低下 • 奥が深いと勘違い • 手軽だったが変更に弱い
  • 27.
    ナビゲーションリンク • ナビゲーションリンク 表示中 他にもあるよ • 神装ヴァルキリーの場合 • 5 つ表示: 7, 8, 「 9 」 , 10, 11 など
  • 28.
    奥が深かった・・・ • とりあえずやってみる ... 6 7 8 9 10 11 1 2 ... • 前がダメなら 1 2 3 4 5 6 ... • 後ろがダメなら ... 4 5 6 7 8 9 10 • if 文で状況を判断しながら、3つの for ループが必要?
  • 29.
    整理してみると • 必要なのは •リンクの開始位置 •現在の位置 •リンクの終了位置 •全部で 5 つ:袖は2つまで • 結果 •最初に開始位置と終了位置を袖2つで初期化 •開始位置が始端なら、始端から5つで終了位置を •else 終了位置が終端なら、終端から5つで開始位置を •if ... else ... 1つだけで大丈夫
  • 30.
    ツリー表示 • ツリー表示って? •昨日クローズド β リリースのツリー •サイトツリー •メニューツリー •階層構造なら何でも • 画像で綺麗に表示するとしたら?
  • 31.
    初期コスト重視 • 手で直接書いてしまおう • 必要な画像は発注しよう • 新しいモノが追加される度に •データの追加 •レイアウトの変更 •画像発注の追加 →小さな工数が積み重なっていく
  • 32.
    自動生成 • そもそも必要だったもの •親子関係 •世代が深くなると →前部分の画像が増えるだけ •画像要素は3つのパーツ • 再帰処理で簡単に実装できる •業務では役に立たない代表格 •スタックでも同じことができる →コード量増加 →バグの温床
  • 33.
    まとめ • 工数を抑えられた事例 •対処法 • 企画者、デザイナーと綿密な打ち合わせ • 必要事項をおさえて、最もシンプルに実装 • 具体的には • 変更で品質低下 • 奥が深いと勘違い 実務経験だけではな • 手軽だったが変更に弱い 積み重ねが大事 く基礎学習、日々の 学生が有利かも?