Submit Search
Upload
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
•
10 likes
•
3,957 views
Keisuke Utsumi
Follow
DevLOVE現場甲子園2015『西日本大会』
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 68
Download now
Download to read offline
Recommended
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題
AimingStudy
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
こんなに違う!Unityアプリケーション講座
こんなに違う!Unityアプリケーション講座
Unity Technologies Japan K.K.
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入
Hiroki Tamiya
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
COLOPL, Inc.
Unityと.NET
Unityと.NET
AimingStudy
Recommended
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題
AimingStudy
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
こんなに違う!Unityアプリケーション講座
こんなに違う!Unityアプリケーション講座
Unity Technologies Japan K.K.
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入
Hiroki Tamiya
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
COLOPL, Inc.
Unityと.NET
Unityと.NET
AimingStudy
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
エピック・ゲームズ・ジャパン Epic Games Japan
Aiming 開発ゲームの裏側
Aiming 開発ゲームの裏側
Katsutoshi Makino
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話
Hiroto Imoto
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
YutoNishine
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
sairoutine
50分でわかるブループリントについて
50分でわかるブループリントについて
Masahiko Nakamura
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
Kouji Hosoda
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Kouji Hosoda
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン
光晶 上原
GTMF 2017 ノンゲーム分野から学ぶUE4の活用テクニック Epic Games Japan
GTMF 2017 ノンゲーム分野から学ぶUE4の活用テクニック Epic Games Japan
Game Tools & Middleware Forum
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
gree_tech
Mono is Dead
Mono is Dead
melpon
More Related Content
What's hot
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
エピック・ゲームズ・ジャパン Epic Games Japan
Aiming 開発ゲームの裏側
Aiming 開発ゲームの裏側
Katsutoshi Makino
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話
Hiroto Imoto
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
YutoNishine
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
sairoutine
50分でわかるブループリントについて
50分でわかるブループリントについて
Masahiko Nakamura
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
Kouji Hosoda
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Kouji Hosoda
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン
光晶 上原
GTMF 2017 ノンゲーム分野から学ぶUE4の活用テクニック Epic Games Japan
GTMF 2017 ノンゲーム分野から学ぶUE4の活用テクニック Epic Games Japan
Game Tools & Middleware Forum
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
What's hot
(20)
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
UE4 Performance and Profiling | Unreal Dev Day Montreal 2017 (日本語訳)
Aiming 開発ゲームの裏側
Aiming 開発ゲームの裏側
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話
Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
50分でわかるブループリントについて
50分でわかるブループリントについて
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン
GTMF 2017 ノンゲーム分野から学ぶUE4の活用テクニック Epic Games Japan
GTMF 2017 ノンゲーム分野から学ぶUE4の活用テクニック Epic Games Japan
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方
Viewers also liked
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
gree_tech
Mono is Dead
Mono is Dead
melpon
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
kyon mm
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
Noriyuki Mizuno
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
Kazuhito Miura
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
Akira Kubo
ゲームエンジンの中の話
ゲームエンジンの中の話
Masayoshi Kamai
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
Keisuke Utsumi
チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用
Keisuke Utsumi
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
kyon mm
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
kyon mm
シューティングゲームのプレイを支える技術
シューティングゲームのプレイを支える技術
sasaron 397
The Lego Scrum Awakens
The Lego Scrum Awakens
Masanori Kado
衝突判定
衝突判定
Moto Yan
弾幕の科学――モデル化、生成、ランク、おもてなし
弾幕の科学――モデル化、生成、ランク、おもてなし
IGDA Japan
Async await in C++
Async await in C++
cppfrug
Nexus and LeSS #rsgt2016
Nexus and LeSS #rsgt2016
Takao Kimura
焦らず急いでの意味
焦らず急いでの意味
kyon mm
Kaizen process with test #hackt
Kaizen process with test #hackt
kyon mm
Viewers also liked
(20)
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
QAエンジニアを通じて弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
Mono is Dead
Mono is Dead
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
「自動家は見た! 〜自動化の現場の真実〜」-システムテスト自動化カンファレンス2015「.reviewrc(おいしが)」発表枠 #stac2015
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
ゲームエンジンの中の話
ゲームエンジンの中の話
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
シューティングゲームのプレイを支える技術
シューティングゲームのプレイを支える技術
The Lego Scrum Awakens
The Lego Scrum Awakens
衝突判定
衝突判定
弾幕の科学――モデル化、生成、ランク、おもてなし
弾幕の科学――モデル化、生成、ランク、おもてなし
Async await in C++
Async await in C++
Nexus and LeSS #rsgt2016
Nexus and LeSS #rsgt2016
焦らず急いでの意味
焦らず急いでの意味
Kaizen process with test #hackt
Kaizen process with test #hackt
Similar to CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
Practical game development with Stingray
Practical game development with Stingray
Naoji Taniguchi
Herlockサービス紹介
Herlockサービス紹介
SONICMOOV CO.,LTD.
Unityネイティブプラグインの勧め
Unityネイティブプラグインの勧め
KLab Inc. / Tech
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
Kentarou Mukunasi
ngCore engine for mobage platform
ngCore engine for mobage platform
Toru Yamaguchi
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
KLab Inc. / Tech
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツール
Yoshiaki Sugimoto
Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -
Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -
Hideki Akiba
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
Google io2011報告
Google io2011報告
cat kaotaro
Docker meetup tokyo_public_r001
Docker meetup tokyo_public_r001
cyberblack28 Ichikawa
Androidとは何か
Androidとは何か
Koji Shigemura
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Yoshimura Soichiro
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
IGDA Japan
20101127 Android Usability Seminar
20101127 Android Usability Seminar
Visso株式会社
Platform.html5
Platform.html5
Masakazu Muraoka
知っ徳!納徳!Magic Leap 《デバイス編》
知っ徳!納徳!Magic Leap 《デバイス編》
Sadao Tokuyama
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
モノビット エンジン
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
Toru Yamaguchi
Similar to CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
(20)
Practical game development with Stingray
Practical game development with Stingray
Herlockサービス紹介
Herlockサービス紹介
Unityネイティブプラグインの勧め
Unityネイティブプラグインの勧め
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
ngCore engine for mobage platform
ngCore engine for mobage platform
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツール
Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -
Creative Cloud デザインツールの便利な8つの機能 - ADC MEETUP ROUND 08 SESSION2 -
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Google io2011報告
Google io2011報告
Docker meetup tokyo_public_r001
Docker meetup tokyo_public_r001
Androidとは何か
Androidとは何か
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
20101127 Android Usability Seminar
20101127 Android Usability Seminar
Platform.html5
Platform.html5
知っ徳!納徳!Magic Leap 《デバイス編》
知っ徳!納徳!Magic Leap 《デバイス編》
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
1.
2.
おまえだれやねん うつみ けいすけ KLab (Osaka) Developer 刺青だらけのエンジニア Golang,PHP,C#(Unity) CrystalFantasiaのServerリーダー PHPカンファレンス関西 関西ゲーム勉強会 Kansai
Users' Group of Golang(KUG2) Team Ku’s
3.
Agenda 質問タイム クリファンの紹介 使っている技術の紹介 ゲーム開発現場について 技術ではどうにもならなくてやってみたこと サービスの新規開発で気をつけたいこと
4.
質問タイム
5.
実行端末 モバイル端末 据え置き機
6.
実行端末 モバイル端末 据え置き機
7.
ジャンル スマホ コンシューマ
8.
ジャンル スマホ コンシューマ
9.
収益型 コンテンツ課金型 広告収益型
10.
収益型 コンテンツ課金型 広告収益型
11.
CrystalFantasiaのご紹介 完全自社開発オリジナルタイトル 2014/11/12より配信開始 140万DL(2015/01時点 iOS/Androidにて提供 Unityを使った爽快アクションゲーム
12.
13.
2015/06/30 15:00 ∼永眠∼
14.
CrystalFantasiaのご紹介 よくあるHTTPベースのAPI+Unityのゲーム 開発チーム:20~30人 プランナー:4∼6人 クリエイティブ:6人∼10人 サウンドエンジニア:1人 クライアントエンジニア:8人
15.
_人人人人人人人人人人人人人_ > サーバーエンジニア:1人 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
16.
使っているた技術の紹介
17.
Client情報管轄 CIツール Webサーバー 使っているた技術の紹介
18.
使っているた技術の紹介 PHPフレームワークは(ほぼ)自作 DietCakeをベースに構築 300行にも満たない超軽量フレームワーク 何もしてくれない。でもそれがいい
19.
使っているた技術の紹介 バックエンドのスクリプトも基本PHPベースで実装 遅くても気にしない。 アプリの実装資産を使う方が安心・安全 python/golangの方が得意かも?って思っても気にしない
20.
使っているた技術の紹介 効率的なキャッシュ利用 OPcache オペレーションコードのキャッシュ APCu 設定データの保持 memcache リトライ制御用のレスポンスキャッシュ redis その他ゲーム内データキャッシュ
21.
使っているた技術の紹介 インテグレーション(CI:チープなインテグレーション jenkinsではビルドするだけ リソースのパイプラインは自前実装 sed芸とかもありました ChatWork通知もふんだんに活用
22.
使っているた技術の紹介 サーバー DSAS(自社運営のホスティングサービス) KLabの誇る変態最高峰のインフラチーム Blogもよろしくお願いします パフォーマンス Webサーバー6台 DB/memcached/redisサーバー(master/slave各1台) 処理能力:3500Request/Sec 平均レスポンス時間:28ms *ベンチマーク数値
23.
と、その前に
24.
技術っぽい出だしだけど
25.
_人人人人人人人人人人_ > それも、ここまで <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
26.
高度な技術話は他の人に任せて
27.
少人数(1人)でも立派にチームとして、 開発チーム全体と渡り合い、 回していくお話をしましょう。
28.
ゲーム開発現場について
29.
ゲーム開発の特徴 結局はサービスなのでそんなに変わらない 大きく違うところ コンテンツ更新頻度が高い 利便性ではなく楽しさを提供する
30.
ゲーム開発の特徴 コンテンツの更新頻度 ガチャのキャラ追加 イベントの追加(クリスマスとか 機能追加とは比べ物にならない頻度で更新されていく
31.
ゲーム開発の特徴 利便性ではなく楽しさ エンターテイメントサービスである 最大の敵は競合よりもユーザーの退屈/飽き
32.
自社サービス提供で気をつけるポイント デプロイするものはプログラムだけじゃない 設定データ お知らせ 詫び石 クリエイティブ素材 サーバーアプリケーション クライアントアプリケーション
33.
設定データ 一番更新頻度が高い 週に2~3回なんてザラにある 開発環境で何度も修正してバランス調整
34.
お知らせ/侘び石 サービス提供ではユーザー満足度を左右する大事なもの メンテナンス予定 バージョンアップ予定 イベント告知 詫び石 ユーザー神の怒りを沈める供物 配りすぎると運営大打撃
35.
クリエイティブ素材 サービスの中で一番収益性の高いコンテンツ かっこいい!かわいい!つよい!欲しい! ユーザーに刺さるのはコンテンツがメイン でも制作コスト高め ダウンロードが多いとユーザーストレスの原因に 日本では月末のジレンマがある
36.
サーバーアプリケーション PHPなのでデプロイは楽 キャッシュクリアのタイミングだけがシビア できるだけ全サーバーで同時に切り替わる工夫 頻度はそんなに高くないので、できるだけ設定データでい ろんなことができるように設計/構築することが楽するため の第一歩
37.
クライアントアプリケーション 一番更新頻度は低い その分一番神経使う Apple様審査コワイヨー 多少のことはサーバーで対処できるように設計するのも大事 容量問題(最近やっと両方100MBになったね 公開からの浸透待ち
38.
サービス提供するエンジニアとして 提供サービスのコンテンツの収益モデルを意識する 各チームがどういうお仕事してるか知る コンテンツ提供の品質を担保する
39.
技術ではどうにもならなくて やってみたこと
40.
一人でも他チームと同じように動くために いろんなサービス/ツールを「使わない」最低限にする 他のチームを正しく頼る/きちんと分業する 僕のクローンを量産する コンテキストスイッチの削減
41.
サービス/ツールを「使わない」最低限にする ツールで解決できるかもね 今発生している課題に対して最適? 多機能過ぎて浮ついた使い方にならない? 結局中のコード読んでツールの障害対応、したことない? 最適なものはやはり自前実装に限る
42.
他のチームを正しく頼る/きちんと分業する 正しく頼るためにはお互いの仕事を知る必要がある 依頼などの方針インターフェイスを予め決めておく 人に寄り添った対応ではリソースが膨大に消費される
43.
クローンを量産 日々依頼されることは管理画面だけで完結できるようにする 細かいタスクほどクローン(ツール)化すれば成果が出やすい 一度依頼されたルーチンタスクはクローン(ツール)がやってく れる
44.
コンテキストスイッチの削減 一人なので、何をやるにしてもコンテキストスイッチが発生 頭切り替えのオーバーヘッド 切り替え=タバコ…本数増える… それでも大量発生するので、そのタイミングで最大の成果を 出すためにフルコミットする
45.
開発/運用ツールの充実 CMS(管理画面)の作り方 収益コンテンツ制作の高速化 イテレーションスピードアップツール 夢や理想なんて捨てちまえ
46.
CMSの作り方 CMSはエンジニアも全員使うようにつくる オペレーションが複雑/煩雑にならないように フロントアプリと同じプロジェクトとして扱う
47.
オペレーションが複雑/煩雑にならないように やりたいこと1つに付き 1画面 1インプット 1クリック オペレーション数が増えれば増えるほど操作ミスなどの問題発生す る原因になる 利用者の自由をなくす 利用者に理解を求めない
48.
フロントアプリと同じプロジェクトとして扱う 同じ言語で実装する フロントで利用するモデルをCMS用に拡張して実装する ゲーム内で起こらないことはCMSでも発生させない。
49.
よくある UPDATE player SET
level = level + 10 WHERE player_id = 123; Playerのレベル上げて
50.
よくある UPDATE player SET
level = level + 10 WHERE player_id = 123; Playerのレベル上げて
51.
よくある Playerのレベル上げて $player = Player::getById(123); $nowLevel
= $player->getLevel(); $newLevel = $nowLevel + 10; $addExp = Exp::getNeedExp($newLevel) - $player->exp; $player->addExp($addExp);
52.
イテレーションスピードアップツール 完全社内制作のクリエイティブ素材なので最適なツールなど ない クリエイティブ素材なのでエンジニアでは正当性確認できな い 作ったものは自身でその場で一人で確認できる環境を PCとスマホ実機では全く同じようにはいかない
53.
夢や理想なんて捨てちまえ 必要最低限でいい。必要になったら追加しよう。 運用ツールはサービスとともに成長するもの いきなり大掛かりなものを作り始めると後戻りできない 理想を語っていても使ってもらえない仕組みは無価値 小さなツールをたくさんつくろう 開発に2日以上かかるのは課題分解ミスってる可能性
54.
責任分界点を明確に 担当範囲が曖昧だと、責任感も曖昧になる 作ったものには責任を 各チーム、ユーザーに届けるまで面倒を最後までみる 責任が持てる環境をつくる
55.
責任が持てる環境をつくる 担当者が単一でユーザーへ正しいデータを提供できるように エンジニアが寝ていても安心して更新作業ができる メンバーが全員安心してユーザーに正しいデータを提供でき る環境を整備するのもエンジニアの責任 あたりまえのことをあたりまえに
56.
情報は必ず集約する サービスの通知などは必ず一つに集約 サービスの性質で深夜の通知も気にしなければならない CMSと情報ツールだけでおおよその状況がわからなければな らない エラーとか障害は絵文字や画像を使ってインパクト重視 分散すればするほど、誰も見なくなる
57.
サービスの新規開発で 気をつけたいこと
58.
フェーズを意識した開発を プロトフェーズ 本実装/制作フェーズ 運用フェーズ
59.
プロトフェーズ 捨てる前提でつくる バッドノウハウを蓄積する期間 コード品質なんかよりイテレーション速度が重要 各チームがどんな作業発生するかを見ておく 収益コンテンツの特性と、コスト感を把握しておく
60.
本実装/制作フェーズ 初期でイテレーションスピードアップツールをつくる 仕様と収益コンテンツを見て再度整理する 大きな仕様変更がプロト最後であった時は要注意 運用フェーズを意識した開発運用をするようにする この時からすでに運用リハーサルだと思う
61.
運用フェーズ 開発環境のミスやエラーには気を使う 開発環境で起きた問題はいつか本番でも必ず起こる 誰が何に困ってるかを調べる 属人化してる作業がないか?
62.
障害が起こってしまったら しゃーない 次を防ぐ 障害はチャンス
63.
しゃーない いくらデバッグしても出るものは出る しゃーない。しゃーない。 責めない きちんと包み隠さず報告できる空気をつくる
64.
次を防ぐ きっちりヒアリングして原因を探る ダブルチェックします!は対策じゃない なにかしらのツールや、通知系のチェッカーをつくる
65.
障害はチャンス 月に3回起こる障害の一つを潰せたら…? 社内評価も上がって 月に1杯ビール飲む時間ができる 年で12杯もお得!!!! やっぱり障害はないほうがいいに決まってる
66.
最後に
67.
最後に サービス提供するなら、きちんと収益を見据えましょう とは言ってもエンターテイメントなので収益だけじゃダメ 所属するチームのプランナーが考えた最高のゲームをそのま まの温度感でユーザーに届けられるエンジニアになる 技術だけに頼らずにチームを大切に 一人はやっぱり寂しい
68.
ご清聴 ありがとうございました。
Download now