GSGL 2012 さくらソフト

33
月間1億の売上を誇るゲームを持つさくらソフトが開発技術公開! ソーシャルゲームディレクター・デザイナーも知っておくべき 開発手法勉強会 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 &大ヒットゲームの負荷分散 tips 共有 三上 隼人

Transcript of GSGL 2012 さくらソフト

月間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

デザイナーデザイナー内製と外注内製と外注

現場の構成

(C) http://www47.tok2.com

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

現場の構成

(C) http://www47.tok2.com

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

自己紹介自己紹介• 三上 隼人 三上 隼人• 経験:今日で二ヶ月 経験:今日で二ヶ月• ギルド機能担当 ギルド機能担当

• 一ヶ月→ 二週間 一ヶ月→ 二週間なぜ、それができたのか?なぜ、それができたのか?

要求の流れ

(C) http://www47.tok2.com

機能追加や変更要求

(C) http://www47.tok2.com

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

ソーシャルゲームの特徴ソーシャルゲームの特徴

新装ヴァルキリーの場合

主要部分主要部分売り出す機能:着せ替え売り出す機能:着せ替え

ソーシャル要素:フレンド、挨拶ソーシャル要素:フレンド、挨拶課金要素:アイテム、ガチャ課金要素:アイテム、ガチャ

新装ヴァルキリーの場合

主要部分主要部分売り出す機能:着せ替え売り出す機能:着せ替え

ソーシャル要素:フレンド、挨拶ソーシャル要素:フレンド、挨拶課金要素:アイテム、ガチャ課金要素:アイテム、ガチャ

カード合成カード合成

トレードトレード

ギルドギルド

ソート機能ソート機能

検索の絞り込検索の絞り込みみ

クエストクエスト

協力戦協力戦

プレゼントプレゼント図鑑図鑑コンプボーナコンプボーナ

スス

特典特典自動デッキ自動デッキ

新装ヴァルキリーの場合

主要部分主要部分売り出す機能:着せ替え売り出す機能:着せ替え

ソーシャル要素:フレンド、挨拶ソーシャル要素:フレンド、挨拶課金要素:アイテム、ガチャ課金要素:アイテム、ガチャ

カード合成カード合成

トレードトレード

ギルドギルド

ソート機能ソート機能

検索の絞り込検索の絞り込みみ

クエストクエスト

協力戦協力戦

プレゼントプレゼント図鑑図鑑コンプボーナコンプボーナ

スス

特典特典自動デッキ自動デッキ

新装ヴァルキリーの場合

主要部分主要部分売り出す機能:着せ替え売り出す機能:着せ替え

ソーシャル要素:フレンド、挨拶ソーシャル要素:フレンド、挨拶課金要素:アイテム、ガチャ課金要素:アイテム、ガチャ

カード合成カード合成

トレードトレード

ギルドギルド

ソート機能ソート機能

検索の絞り込検索の絞り込みみ

クエストクエスト

協力戦協力戦

プレゼントプレゼント図鑑図鑑コンプボーナコンプボーナ

スス

特典特典自動デッキ自動デッキ

・・・とはなりませんでした

事例紹介• 工数を抑えられた事例• 対処法• 企画者、デザイナーと綿密な打ち合わせ• 必要事項をおさえて、最もシンプルに実装

• 具体的には• 変更で品質低下• 奥が深いと勘違い• 手軽だったが変更に弱い

変更で品質低下• チュートリアル• 主要機能• 一通りゲーム機能の紹介

• 変更事例• 新機能追加• Flashの追加• 進行中のステータス変化• レベルアップ、カードドロップ、お金、経験値・・・ etc

チュートリアル

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

• ページ進行

チュートリアル

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

• 新機能の追加

合成合成

チュートリアル

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

• Flashの追加

合成合成

Flash(次のページへ飛ばす )

チュートリアル

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

• ステータス変化:レベルアップ

合成合成

Flash(次のページへ飛ばす )

レベルアップレベルアップ

チュートリアル

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

• ステータス変化:カードドロップ

合成合成

Flash(次のページへ飛ばす )

レベルアップレベルアップ

カードドロッカードドロッププ

あれ?あれ?

チュートリアル

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

• 変更後

合成合成カードカードドロップドロップ

レベルアッレベルアッププ

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

企画者の頭の中では分かっていたこと企画者の頭の中では分かっていたこと

事例紹介• 工数を抑えられた事例• 対処法• 企画者、デザイナーと綿密な打ち合わせ• 必要事項をおさえて、最もシンプルに実装

• 具体的には• 変更で品質低下• 奥が深いと勘違い• 手軽だったが変更に弱い

ナビゲーションリンク• ナビゲーションリンク

• 神装ヴァルキリーの場合• 5 つ表示: 7, 8, 「 9」 , 10, 11 など

表示中 他にもあるよ

奥が深かった・・・• とりあえずやってみる

• 前がダメなら

• 後ろがダメなら

• if文で状況を判断しながら、3つの forループが必要?

... 6 7 8 9 10 11 1 2 ...

1 2 3 4 5 6 ...

... 4 5 6 7 8 9 10

整理してみると• 必要なのは

• リンクの開始位置• 現在の位置• リンクの終了位置• 全部で 5つ:袖は2つまで

• 結果• 最初に開始位置と終了位置を袖2つで初期化• 開始位置が始端なら、始端から5つで終了位置を• else 終了位置が終端なら、終端から5つで開始位置を• if ... else ... 1つだけで大丈夫

ツリー表示• ツリー表示って?

• 昨日クローズド βリリースのツリー• サイトツリー• メニューツリー• 階層構造なら何でも

• 画像で綺麗に表示するとしたら?

初期コスト重視• 手で直接書いてしまおう• 必要な画像は発注しよう

• 新しいモノが追加される度に• データの追加• レイアウトの変更• 画像発注の追加→小さな工数が積み重なっていく

自動生成• そもそも必要だったもの

• 親子関係• 世代が深くなると→前部分の画像が増えるだけ

• 画像要素は3つのパーツ

• 再帰処理で簡単に実装できる• 業務では役に立たない代表格• スタックでも同じことができる→コード量増加→バグの温床

まとめ• 工数を抑えられた事例• 対処法• 企画者、デザイナーと綿密な打ち合わせ• 必要事項をおさえて、最もシンプルに実装

• 具体的には• 変更で品質低下• 奥が深いと勘違い• 手軽だったが変更に弱い

実務経験だけではな実務経験だけではなく基礎学習、日々のく基礎学習、日々の積み重ねが大事積み重ねが大事

学生が有利かも?学生が有利かも?