SlideShare a Scribd company logo
1 of 28
AmebaGames
技術への挑戦
リアルタイム基盤
AmebaGames
技術戦略室 山田 元基
自己紹介
山田 元基
2008年 新卒入社
Ameba統括本部
Amebaゲーム事業本部
技術戦略室
経歴
2008年 サイバーエージェント入社
2011年 ブログ開発3年経験後ゲーム開発を担当
2011年〜 天空のクリスタリアなど4本のゲームに関わる
2013年 社員総会でベストエンジニア賞受賞
2014年〜 AmebaGamesの技術戦略を立案、実行
・サーバサイドエンジニア。現在はマネジメントがメイン
・趣味
旅行・・・月に1度どこかに出かけてリフレッシュ♪
映画・・・スターウォーズは2回観たけど、もう1回行く予定
ゲーム・・シミュレーションが好き。
最近はStarWarsバトルフロントをプレイ中
本日の流れ
①リアルタイム通信基盤開発
②リアルタイム通信基盤のシステム
③現在開発中のチャット基盤の紹介
④AmebaGamesの技術への挑戦
①リアルタイム通信基盤開発
リアルタイム通信基盤「duck」を開発
・リアルタイム処理のプラットフォーム
・高速、高機能、高信頼性
・同時接続1万以上可能
・OSS公開予定
リアルタイム通信基盤「duck」開発経緯
・社内技術イベントのイノテック会議で提案発表、優勝
・提案者であるMario氏が開発着手
(現在はAmebaFRESH!担当)
・2015年4月にプロダクトリリース
エンジニア主導で立案から開発まで実行
なぜリアルタイム通信基盤を開発するのか?
自社でリアルタイム通信基盤を開発した
3つの理由
なぜリアルタイム通信基盤を開発するのか?
①ゲームのトレンド
・オンラインゲームが主流
・対戦、協力型のマルチプレイを基本としたゲームが増加
・今後開発するゲームに搭載は必須になっている
マルチプレイが好きな人は多い!!
自社タイトルにも
マルチプレイが続々!
なぜリアルタイム通信基盤を開発するのか?
②リアルタイム通信技術の蓄積
・技術難易度が高くノウハウ蓄積が重要な技術
・最新技術の導入、カスタマイズが可能
・MMORPG全盛期に向けた技術への投資
開発・運用ノウハウを習得するためには手を動かすのが近道
sock.js
websocket
MQTT
Protocol
Buffers
node.js
AeroSpike
MessagePack
golang
広く深い知識が必要
なぜリアルタイム通信基盤を開発するのか?
③実行できるチーム・組織
・サーバサイド技術に強い開発者が多い
・最新技術に責任を持って挑戦をするリーダーがいる
・挑戦を後押ししてもらえる環境
リアルタイム通信など基盤技術に携わりたい人が多い!
なぜリアルタイム通信基盤を開発するのか?
①ゲームのトレンド
②リアルタイム通信技術の蓄積
③実行できる人材・組織
なぜリアルタイム通信基盤を開発するのか?
ゲーム開発の重要な技術を
自社で開発・運用を行いノウハウを蓄積して
新しい価値を提供するため
②リアルタイム通信基盤(duck)
システム
duckの開発期間と人数
開発期間
・約10ヶ月
開発人数
・初期は1名で開発。リリース時4名
特徴
・少数精鋭チーム
duckのシステム
■プラットフォーム
・PCブラウザ/スマホブラウザ
・ネイティブアプリ
・Macでの開発を想定
duckのシステム
■通信プロトコル
・sock.js
・webSocket
・MQTT
■エンコーディング
・JSON
・MessagePack
・ProtocolBuffers
duckのシステム
■サーバサイド
・Golang
■データストア
・AeroSpike
ネイティブアプリ「ウチの姫さまがいちばんカワイイ」
Webブラウザアプリ「スクールファンファーレ」
duck導入事例
duckの今後の導入
ネイティブアプリ
「ガールフレンド(♪)」
その他開発中タイトルも
対応予定
③現在開発中の
チャット基盤の紹介
チャット基盤「gossipy」を開発
・ユーザー間のメッセージを高速に処理
・duck基盤ノウハウ利用したチャットシステム
・3つの機能を提供
1.購読型メッセージング
2.ダイレクトメッセージング
3.ユーザー状態通知
・絶賛開発中
プレゼンス機能フロー図
なぜチャット基盤を開発したか
・新規タイトルでチャットを導入する話が上がった
・リアルタイム基盤との親和性が高く開発効率化が行える
・今後のゲームにおいて標準機能となる基盤になる可能性が高い
基盤開発を行うメリットが大きいと判断
AmebaGamesの
技術への挑戦
AmebaGamesの技術への挑戦
①STF(スマートフォン検証システム)
②ImageHayabusa(画像処理オンデマンドサービス)
③octo(Unity AssetBundle配信システム)
①STF(スマートフォン検証システム)
・スマートフォンを遠隔操作できるシステム
・Smartphone Test Farmの略称
・100台以上の端末を同時操作可能
・デバック、テストの効率化に貢献
・OSSとして発表
http://openstf.io/
https://github.com/openstf/stf
②ImageHayabusa(画像処理オンデマンドサービス)
・画像処理をオンデマンドで行い配信するサービス
・現在はリサイズ、最適化、形式変換に対応
・配信先のデバイスに合わせて自動で最適化
・デザイン作業効率化を目指して
PSDデータからの画像書き出し開発中
・現在は社内限定サービス
https://hayabusa.io/
https://speakerdeck.com/gunta/hua-xiang-bian-huan-night-
imagehayabusa-dezainzuo-ye-xiao-lu-hua
③octo(Unity AssetBundle配信システム)
・UnityのAssetBundle配信の効率化を目指して開発
・基本機能設計を共通化して品質向上
・バージョン管理から配信まで一括対応。
新機能リリース時の負荷削減
・絶賛開発中。今春以降のサービスに導入
最後に
・サービスがHITするための技術への挑戦が大前提
・新しい技術には積極的にチャレンジする
・自身が挑戦をする気になれば組織は全力サポート
・VRやAIへの取り組み強化中

More Related Content

What's hot

スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話Akihiro Sugeno
 
タイピング練習のすゝめ
タイピング練習のすゝめタイピング練習のすゝめ
タイピング練習のすゝめKatsuhiro Morishita
 
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話Hiroto Imoto
 
Unity 5.3 の In-App Purchase を試してみた
Unity 5.3 の In-App Purchase を試してみたUnity 5.3 の In-App Purchase を試してみた
Unity 5.3 の In-App Purchase を試してみたMori Tetsuya
 
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 
20140829 第24回 Unity 勉強会 - Unity meets SpriteStudio
20140829 第24回 Unity 勉強会 - Unity meets SpriteStudio20140829 第24回 Unity 勉強会 - Unity meets SpriteStudio
20140829 第24回 Unity 勉強会 - Unity meets SpriteStudioMori Tetsuya
 
非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきたMeyco U
 
Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906Takayuki Niinuma
 
【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程
【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程
【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程株式会社エスカドラ
 
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~Syougo Yoshino
 
OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」
OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」
OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」Web Technology Corp.
 
コンピュータシステムの原理を理解させる
アクティブ・ラーニング
コンピュータシステムの原理を理解させる
アクティブ・ラーニングコンピュータシステムの原理を理解させる
アクティブ・ラーニング
コンピュータシステムの原理を理解させる
アクティブ・ラーニングSusumu Yamazaki
 
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」akipii Oga
 
KLabのVR/ARへの取り組み
KLabのVR/ARへの取り組みKLabのVR/ARへの取り組み
KLabのVR/ARへの取り組みmiki koganei
 
【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”
【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”
【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”UnityTechnologiesJapan002
 
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へakipii Oga
 
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
【Unity道場スペシャル 2018仙台】UnityでステージをつくるのじゃUnity Technologies Japan K.K.
 

What's hot (20)

ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
 
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
スマホ版ログレスでグローバル展開を想定したサーバ構築をAnsibleで試してみた話
 
タイピング練習のすゝめ
タイピング練習のすゝめタイピング練習のすゝめ
タイピング練習のすゝめ
 
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話
 
Unity 5.3 の In-App Purchase を試してみた
Unity 5.3 の In-App Purchase を試してみたUnity 5.3 の In-App Purchase を試してみた
Unity 5.3 の In-App Purchase を試してみた
 
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
 
20140829 第24回 Unity 勉強会 - Unity meets SpriteStudio
20140829 第24回 Unity 勉強会 - Unity meets SpriteStudio20140829 第24回 Unity 勉強会 - Unity meets SpriteStudio
20140829 第24回 Unity 勉強会 - Unity meets SpriteStudio
 
非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた非ゲーム業界のデザイナーが CEDECに参加してきた
非ゲーム業界のデザイナーが CEDECに参加してきた
 
Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906
 
【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程
【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程
【エスカドラ】 SpriteStudio Friendshipバナー キャラクターアニメーション制作工程
 
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive OnlineUE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
 
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
 
Vi Boot Camp #1
Vi Boot Camp #1Vi Boot Camp #1
Vi Boot Camp #1
 
OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」
OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」
OPTPiX SpriteStudio 勉強会#03 「今回は中~上級者向け! キーワードは『達人のコツ』と『2Dツールの可能性』、そして『グロテスク』!!」
 
コンピュータシステムの原理を理解させる
アクティブ・ラーニング
コンピュータシステムの原理を理解させる
アクティブ・ラーニングコンピュータシステムの原理を理解させる
アクティブ・ラーニング
コンピュータシステムの原理を理解させる
アクティブ・ラーニング
 
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
 
KLabのVR/ARへの取り組み
KLabのVR/ARへの取り組みKLabのVR/ARへの取り組み
KLabのVR/ARへの取り組み
 
【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”
【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”
【Unite Tokyo 2019】映像制作はUnityでさらなる高みへ メイキング オブ next "Gift ”
 
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
 
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
 

Similar to GameTalkNight AmebaGames

AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化
AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化
AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化Hiroki Takaba
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話Masayoshi Kamai
 
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話AimingStudy
 
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜Unite2017Tokyo
 
YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割
YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割
YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割KayoMiyata
 

Similar to GameTalkNight AmebaGames (6)

AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化
AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化
AppStoreとGooglePlayの両プラットフォームに選ばれるUI/UX最適化
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
 
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
 
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
【Unite 2017 Tokyo】Unityで出来る『見える開発』のススメ 〜スマホゲーム「ららマジ」開発事例〜
 
YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割
YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割
YouTube再生回数2,000万回突破「クマーバチャンネル」を支えるエンジニアの役割
 

GameTalkNight AmebaGames