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への取り組み強化中

GameTalkNight AmebaGames