SlideShare une entreprise Scribd logo
1  sur  70
おまえだれやねん
うつみ けいすけ
KLab (Osaka) Developer
よく忘れるもの:名刺入れ
マイブーム:禁酒ダイエット
刺青エンジニアって覚えてください
Golang,PHP,C#
今年もISUCON頑張ります(TeamKu’s
CrystalFantasiaのサーバー作りました。
!!!!注意!!!!
この発表には敢えて極端な言い回しや、
過激な表現がふんだんに含まれています。
※また、この発表は私個人の見解であり、所属する組織の公式見解ではありません。
ご注意くださいまし。
2015/06/30 15:00
∼永眠∼
で、何の話?
jenkinsで
自動ビルド??
自動でUnitTest??
当 た り 前
そんなものはエンジニアだけ
で勝手にやっててください。
Agenda
ツール紹介
作るときの注意点
いつ何をどう作るか
まとめ
おまけ
まずは作った
開発支援系ツールをご紹介
※お見せできるものは最後のおまけスクショとかにあるますよ
プロト∼コア開発
AssetBundleGenerator for Unity
CCMS (Creative Contents Management System)
リソース更新システム
CMS
デバッグツール
Webサーバーキャッシュ管理
コア開発∼リリース
S3Manager
AssetBundleManager
WwiseSoundManager
マスタデータ管理ツール
マスタデータバリデータ
土下座システム
メンテナンス管理
ガチャ&クエストシュミレータ
マスタデータGenerator
WebViewGenerator
リリース∼サービスアウト
CMS (Contents Management System)
イベントカレンダー
カスタムレポート
マスタデータバリデータ(随時追加
サーバーエラーログ監視ツール
開発支援ツールを
作る際の注意点
夢や理想なんて捨てちまえ
開発支援ツールはプロダクトと共に成長していくもの
いきなり大掛かりな仕組みを作ると後戻りできない
理想を語っていても使ってもらえないシステムは無価値
小さなツールをたくさん作る
開発に2日以上かかるのは多分課題分解ミスってる
他人に頼るな
サードパーティー製のライブラリで本当にいいの?
結局それが足かせになってない?
必要十分以上のことやろうとしてない?
結局中に手突っ込むことになった経験ない?
お前が使うんじゃねぇんだよ
ゲームはユーザー様に遊んでいただくもの
開発支援ツールはプロジェクトみんなが使うもの
プログラマだけが使うものではない
エラー内容などは日本語でおk
お前だけわかってても意味ねぇよ(*´ω`*)
単一な仕組みを作れ
システムの利用者に理解を求めない
理解が不要なほど単純なオペレーションにする
複数の仕組みを組み込まない
組み込んだとしても、利用者に意識させない
元に戻す機能なんて不要
運用が始まると出したものを消すことはほぼ不可能
消去するシステムは絶対作らない
不要なデータが出てもそれは運営コストとして諦めも肝心
消去する必要がある場合は承認を経てエンジニアが責任を
持って対応する
自動化!自動化ぁぁっぁぁ!!!って騒ぐな
なんでも自動化したらいいってもんでもない
人の目、人の手で確認しなければいけないポイントは自
動化しない
逆にそれ以外は極力自動化しましょう。
見極め大事
全ては1オペレーションで
オペレーション手順が増えれば増えるほどミス発生率が急
上昇!!
利用者の自由をなくす
一定のことしかできなくていい
迷いはミスを生む
ツールは集約しろ
CMSなどブラウザベースで動作するツールにする
複数のウインドウを行き来するのは集中が途切れる
あのツールってどこにあったっけ?とか無駄
情報も集約しないと誰もみねぇ
ChatworkでもSlackでもなんでもいい。
僕はChatwork派ですけどね|д゚)チラッ
でも github てめぇはダメだ。(プロジェクト全員見れる場
合を除く
特にエラーに関しては派手に通知
いつ、何をどう作るのか
プロトや仕様が
固まっていない時期
この時期は
イテレーション速度が重要
ビルド時間を圧縮 for Unity
ビルド時間が長くなる要因
ビルドマシンのスペック
Assetに含まれる膨大なexample
モバイル向けに最適化される画像
初期に含まれやすいゲーム内データ
→アニメーションやサウンドなど
ビルドマシン
上長にご相談ください
膨大なexample
$ find . -name 'examples' | xargs -n 10 rm -rf
とかやっとけばいいんじゃないですかね
(すっとぼけ
モバイル向けに最適化される画像
CacheServer 導入すると早くなるよ
上長に相談
初期に含まれやすいゲーム内データ
これをどうにかする
できるだけ早いうちにAssetBundle化する
アニメーションファイルの更新とかだけでリビルド不要に
なる
適当にS3とかに置いて、DLする仕組みを雑でも作る
コア∼リリースの
モリモリ作る時期
この時期は
ヒアリングしまくる
誰が何に困っているかを知る
オペレーションコストが高いもの
非効率なこと
オペレーションなどミスった箇所
属人化しているもの
責任分界点を明確に!
作ったものには責任を。
各部署で最後まで面倒みる
ゲームで必要になる更新要素
AssetBundle
サウンドデータ (Bank
マスタデータ(sqlite
訴求用画像 (S3
プログラム
製作者が本番に更新できるように
ゲームで必要になる更新要素
AssetBundle→クリエイティブ
サウンドデータ (Bank→サウンド
マスタデータ(sqlite→プランナー
訴求用画像 (S3→プランナー
プログラム→プログラマ
全てのオペレーションを誰でも安心
してできる環境を作るのは
プログラマであり、その責任である。
でないと、全ての質問とか問題をプ
ログラマに持ってこられることにな
るよ?
いいの?(*´ω`*)
(ヾノ・ ・`)ムリムリ
じゃあやりましょう!
作りましょう!!!!!
リリース∼その後
仏の顔は一度まで
運用でミスが出てしまうのは仕方ない
次出さないようきちんと分析する
障害の度にユーザーは離れていく
ツールをいっぱい作ると結果的に工数削減
になるので、
本当にやりたいことに専念できます。
やりましょう!!!
作りましょう!!!!!
まとめ
ツール単体はプロダクトに依存しないように作る
状況に応じた完成度でいい
利用者は運用初心者を想定しろ
初期∼中期は特にツールに力を入れる
集約大事
必要最低限以上は求めない
仕様は限りなく縛り尽くす
ご清聴
ありがとうございました。
壁紙とかDLできるよ!

→ https://www.crystalfantasia.com/info/
続きのおまけはお時間あれば…
おまけ
AssetBundleGenerator
アニメーションやUIチームが自分たちで正確な
AssetBundleを作る
管理ツールに生成されたものをうp
実機で更新が自動で走る
CCMS
(Creative Contents Management System)
クリエイティブデータを発注∼納品まで管理する
リソースをベースとしたスレッド形式で、リテイクなどの
依頼を時系列に見れる
もちろんリテイク依頼時の参考画像等もUPLOADできる
社内横断ツールへ進化
WwiseBankManager
Wwise(サウンドエンジン)のエクスポートしたファイルを
解析できる仕組みをつくる
管理ツールでサウンドチームがエクスポートされたZIPを
うp
実機で更新が自動で走る
マスタデータ管理
モンスターのデータや、クライアント側で表示するために必
要な情報はサーバーではなく、クライアント側に持ってて無
通信で表示してくれる。
例えばモンスターの名前や属性。
マスタデータ管理~2~
結局はDBなのでCSV管理されている
CMSでプランナーがうp
クライアントで保持しているデータに変更があれば
実機で更新が自動で(ry
DebugTool
キャッシュ管理
マスタチェッカー
マスタチェッカー(ルール
土下座システム(報酬付与
メンテ管理
メンテ管理
ガチャシュミレータ
WebView管理&Preview
カスタムレポート
イベントカレンダー

Contenu connexe

Tendances

そろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでそろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやで
なおき きしだ
 
開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて
Takaaki Kasai
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
sk44_
 

Tendances (20)

だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
 
TDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめTDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめ
 
そろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでそろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやで
 
開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて
 
フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!
 
pythonで始める筋トレ(競技プログラミング)
pythonで始める筋トレ(競技プログラミング)pythonで始める筋トレ(競技プログラミング)
pythonで始める筋トレ(競技プログラミング)
 
フロントエンドというカオスな世界について
フロントエンドというカオスな世界についてフロントエンドというカオスな世界について
フロントエンドというカオスな世界について
 
Pythonで始める競技プログラミング
Pythonで始める競技プログラミングPythonで始める競技プログラミング
Pythonで始める競技プログラミング
 
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
 
テストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3devテストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3dev
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
 
プログラマーのお仕事
プログラマーのお仕事プログラマーのお仕事
プログラマーのお仕事
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
 
Firefox OS勉強会 2nd TypeScript+AngularJS
Firefox OS勉強会 2nd TypeScript+AngularJSFirefox OS勉強会 2nd TypeScript+AngularJS
Firefox OS勉強会 2nd TypeScript+AngularJS
 
Javaプログラミング入門【第1回】
Javaプログラミング入門【第1回】Javaプログラミング入門【第1回】
Javaプログラミング入門【第1回】
 
TypeScript 入門してみる
TypeScript 入門してみるTypeScript 入門してみる
TypeScript 入門してみる
 
ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)
 
TypeScript 独習会
TypeScript 独習会TypeScript 独習会
TypeScript 独習会
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 

Similaire à プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜

社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
Fumihiro Sunada
 

Similaire à プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜 (20)

PHPMATSURI2011 LT大会
PHPMATSURI2011 LT大会PHPMATSURI2011 LT大会
PHPMATSURI2011 LT大会
 
VSのバージョンアップを促すアプリを作ってみた
VSのバージョンアップを促すアプリを作ってみたVSのバージョンアップを促すアプリを作ってみた
VSのバージョンアップを促すアプリを作ってみた
 
Roo
RooRoo
Roo
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
 
BarCamp is very fun! & Kayak is also fun!
BarCamp is very fun! & Kayak is also fun!BarCamp is very fun! & Kayak is also fun!
BarCamp is very fun! & Kayak is also fun!
 
オンライン・ワークショップで最新のスキルを共有しよう。
オンライン・ワークショップで最新のスキルを共有しよう。オンライン・ワークショップで最新のスキルを共有しよう。
オンライン・ワークショップで最新のスキルを共有しよう。
 
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshellはじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshell
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
XPagesDay 2016 「私がハマった失敗例」
XPagesDay 2016 「私がハマった失敗例」XPagesDay 2016 「私がハマった失敗例」
XPagesDay 2016 「私がハマった失敗例」
 
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた: Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
 
Cannaをフォークしてみた
CannaをフォークしてみたCannaをフォークしてみた
Cannaをフォークしてみた
 
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
社内勉強会LT資料(進化せよ!原始時代の開発から脱却せよ)
 
Html5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けようHtml5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けよう
 
チームビルディング~本物のチームを作る方法~
チームビルディング~本物のチームを作る方法~チームビルディング~本物のチームを作る方法~
チームビルディング~本物のチームを作る方法~
 
難しいよね、コードレビュー
難しいよね、コードレビュー難しいよね、コードレビュー
難しいよね、コードレビュー
 
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
技術書執筆のススメ 〜Only1なエンジニアになるためのセルフブランディング〜の発表資料
 
従来型 「domino web 開発」を見なおそう!201611 Notes Consortium Open Seminar 公開版
従来型 「domino web 開発」を見なおそう!201611 Notes Consortium Open Seminar 公開版従来型 「domino web 開発」を見なおそう!201611 Notes Consortium Open Seminar 公開版
従来型 「domino web 開発」を見なおそう!201611 Notes Consortium Open Seminar 公開版
 
How you can speed up serverless development by local
How you can speed up serverless development by localHow you can speed up serverless development by local
How you can speed up serverless development by local
 
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
 

プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜