SlideShare a Scribd company logo
1 of 24
Download to read offline
アプリエンジニアがサーバーサイドで最初に勉強するべきこと
南 @_y_minami
2019.06.22~23 MS GAME JAM in Kyoto
自己紹介
◼ 南(みなみ)
◼ Twitter
南@エンジニア兼ティーアドバイザー
@_y_minami
◼ 本業は某名刺管理の会社でエンジニアをやっています。
◼ 今年に入ってゲームの個人開発はじめました。
2
自己紹介 - 最近作った & 作っているもの
3
• C#
• Unity
• .NET Core
• Magic Onion
• Docker
• Microsoft Azure
Container Instances
• Microsoft Azure PlayFab
※PlayFabは今のところ画面中央のゲームのみ使用
GoogleAnalyticsのようなデータ分析や
オンラインゲームに必要なサービスをマネージドで提供
※ゲーム内の多くのキャラクターデータは
Unity Technologies Japan 様のデジタルアセットデータを
ユニティちゃんライセンス条項に基づいて
使用させていただいています。
© Unity Technologies Japan/UCL
4
アプリエンジニアがサーバーサイドで最初に勉強するべきこと
5
データの取り扱い方法
6
いろいろなデータがある
いろいろなデータがある
7
マスタデータ
• キャラクターマスタ
• ガチャマスタ
• エネミーマスタ
• アイテムマスタ
ユーザーデータ
• ユーザー
• 名前
• レベル
• インベントリ
• ギルド
ログデータ
• 行動ログ
• ログインログ
• バトルログ
• アイテムログ
• 課金ログ
8
いろいろなデータストアがある
いろいろなデータストアがある
9
RDB
(Relational Database)
Azure SQL Database
Amazon Aurora
DocumentDB
Azure Cosmos DB
Amazon DynamoDB
KVS
(Key-Value Store)
Azure Cache for Redis
Amazon ElastiCache
Azure Table Storage
Azure PlayFab
DWH
(Data Warehouse)
Azure SQL Data Warehouse
Google BigQuery
10
データの特性や使い方を考慮して
適切なデータストアを使おう!
11
なるほどわからん🤔
それぞれのケースを紹介
12
マスタデータ
• キャラクターマスタ
• ガチャマスタ
• エネミーマスタ
• アイテムマスタ
ユーザーデータ
• ユーザー
• 名前
• レベル
• インベントリ
• ギルド
ログデータ
• 行動ログ
• ログインログ
• バトルログ
• アイテムログ
• 課金ログ
マスタデータ
13
RDB を使用。
サーバー起動時に DB からロードして
メモリ上にキャッシュする。
Azure SQL Database
RDB の性能が必要ではないが、
リリース後の運用を考えるとベター。
マスタデータ
14
Excel でマスタを管理/生成できる。
DB に入れた後も GUI ツールで直感的に管理できる。
非エンジニアが作業しやすいのは大事。
マスタデータ
15
小規模な開発ならば RDB 以外でも大丈夫。
例えば PlayFab の TitleData 機能で管理も可能。
作るもの/規模感によってはお手軽。
無料で使えるのも Good。
ユーザーデータ
16
RDB と Redis を使用。
RDB より高速で動作する Redis はキャッシュに最適。
まず Redis を検索して、見つからなければ RDB を見に行く。
Azure SQL Database
Azure Cache for Redis
ユーザーデータ
17
PlayFab の UserData 機能で管理することも可能。
作るもの/規模感によってはお手軽。
無料で使えるのも Good。
ログデータ
18
要件と予算よって使い分け。
がっつり利用するなら Azure SQL Data Warehouse や Google Big Query。
「とりあえずログを残して置きたい」くらいなら Azure Table Storage。
Azure SQL Data Warehouse
Azure SQL Database
Azure Table Storage
ログデータ
19
PlayFab で管理することも可能。
標準でログインログや購入ログなどを取得できるほか、
自分でイベントログを仕込むことが可能らしい(未検証)
20
まとめ
21
オンライゲームにおいて
データ周りの設計はとても大事。
データの取り扱い方法を理解せずに
サーバーサイドの設計はできない。
しっかり勉強しましょう!
22
という一方で
23
とりあえず PlayFab に必要な機能は揃ってます。
しかも無料で。
まずはここからスタート!
ご清聴ありがとうございました!

More Related Content

What's hot

C# で i phone ゲーム開発
C# で i phone ゲーム開発C# で i phone ゲーム開発
C# で i phone ゲーム開発
Katsutoshi Makino
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減
Mikito Yoshiya
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
historia_Inc
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
 

What's hot (20)

5分で入門するAzure PlayFab
5分で入門するAzure PlayFab5分で入門するAzure PlayFab
5分で入門するAzure PlayFab
 
Unity って何?
Unity って何?Unity って何?
Unity って何?
 
C# で i phone ゲーム開発
C# で i phone ゲーム開発C# で i phone ゲーム開発
C# で i phone ゲーム開発
 
Unity講習会(初級)
Unity講習会(初級)Unity講習会(初級)
Unity講習会(初級)
 
Unityと.NET
Unityと.NETUnityと.NET
Unityと.NET
 
各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について
 
Unity入門ハンズオン
Unity入門ハンズオンUnity入門ハンズオン
Unity入門ハンズオン
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減
 
Unity ゲーム開発
Unity ゲーム開発Unity ゲーム開発
Unity ゲーム開発
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
 
PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話PhotonCloudで一ヶ月ゲーム作った話
PhotonCloudで一ヶ月ゲーム作った話
 
ヴィジュアルエフェクト初級者講座
ヴィジュアルエフェクト初級者講座ヴィジュアルエフェクト初級者講座
ヴィジュアルエフェクト初級者講座
 
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
 
GCPでCI環境を構築する
GCPでCI環境を構築するGCPでCI環境を構築する
GCPでCI環境を構築する
 
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書  UNREAL FEST EXTREME 2021 SUMMERMetaHumanサンプル解体新書  UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
 
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
 
【Unite Tokyo 2019】Unityでこんなに変わった!ぱちんこ映像開発ワークフロー
【Unite Tokyo 2019】Unityでこんなに変わった!ぱちんこ映像開発ワークフロー【Unite Tokyo 2019】Unityでこんなに変わった!ぱちんこ映像開発ワークフロー
【Unite Tokyo 2019】Unityでこんなに変わった!ぱちんこ映像開発ワークフロー
 
Adobe AIR で作る カジュアルゲーム開発
Adobe AIR で作る カジュアルゲーム開発Adobe AIR で作る カジュアルゲーム開発
Adobe AIR で作る カジュアルゲーム開発
 
3(0)分ハッキング
3(0)分ハッキング3(0)分ハッキング
3(0)分ハッキング
 
Unity道場京都スペシャル3 モノビットエンジンでマルチプレイゲーム開発 ~はじめの一歩~
Unity道場京都スペシャル3 モノビットエンジンでマルチプレイゲーム開発 ~はじめの一歩~Unity道場京都スペシャル3 モノビットエンジンでマルチプレイゲーム開発 ~はじめの一歩~
Unity道場京都スペシャル3 モノビットエンジンでマルチプレイゲーム開発 ~はじめの一歩~
 

Similar to アプリエンジニアがサーバーサイドで最初に勉強するべきこと

【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
モノビット エンジン
 
GREE TechTalk グリーのクライアント技術戦略
GREE TechTalk グリーのクライアント技術戦略GREE TechTalk グリーのクライアント技術戦略
GREE TechTalk グリーのクライアント技術戦略
Daniel-Hiroyuki Haga
 
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX  ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX  ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
日本マイクロソフト株式会社
 

Similar to アプリエンジニアがサーバーサイドで最初に勉強するべきこと (20)

【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
 
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
 
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
 
GREE TechTalk グリーのクライアント技術戦略
GREE TechTalk グリーのクライアント技術戦略GREE TechTalk グリーのクライアント技術戦略
GREE TechTalk グリーのクライアント技術戦略
 
関西ゲーム勉強会Lt ver2
関西ゲーム勉強会Lt ver2関西ゲーム勉強会Lt ver2
関西ゲーム勉強会Lt ver2
 
スタートアップで培ったアーキテクチャ設計ノウハウ
スタートアップで培ったアーキテクチャ設計ノウハウスタートアップで培ったアーキテクチャ設計ノウハウ
スタートアップで培ったアーキテクチャ設計ノウハウ
 
Reinvent2017 recap-gaming-session-2
Reinvent2017 recap-gaming-session-2Reinvent2017 recap-gaming-session-2
Reinvent2017 recap-gaming-session-2
 
【Unite Tokyo 2018】「リトルチャンピオンズ」癖になるアクションゲームの開発事例
【Unite Tokyo 2018】「リトルチャンピオンズ」癖になるアクションゲームの開発事例【Unite Tokyo 2018】「リトルチャンピオンズ」癖になるアクションゲームの開発事例
【Unite Tokyo 2018】「リトルチャンピオンズ」癖になるアクションゲームの開発事例
 
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX  ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX  ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
N01_多様に活用可能なマイクロソフトのゲーム関連技術や開発の DX ~高品質リアルタイムビジュアライズのリモート活用からリアルタイムコラボレーションま...
 
.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能
 
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
 
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2) 初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
 
エンジニアが牽引する3Dアバター事業とAIの活用 [DeNA TechCon 2019]
エンジニアが牽引する3Dアバター事業とAIの活用 [DeNA TechCon 2019]エンジニアが牽引する3Dアバター事業とAIの活用 [DeNA TechCon 2019]
エンジニアが牽引する3Dアバター事業とAIの活用 [DeNA TechCon 2019]
 
なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)
なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)
なぜ私たちは「効率化」を目指すのか(DeNA Games Tokyo)
 
.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
ゆうMUG講演「きれいなマイクロソフトは好きですか?」
ゆうMUG講演「きれいなマイクロソフトは好きですか?」ゆうMUG講演「きれいなマイクロソフトは好きですか?」
ゆうMUG講演「きれいなマイクロソフトは好きですか?」
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみました
 

More from YutoNishine (6)

Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK Azure PlayFab Unity SDK vs C# SDK
Azure PlayFab Unity SDK vs C# SDK
 
入門者の方向け Azure PlayFab の簡単な紹介
入門者の方向け Azure PlayFab の簡単な紹介入門者の方向け Azure PlayFab の簡単な紹介
入門者の方向け Azure PlayFab の簡単な紹介
 
Unity + PlayFab + Azure Functions
Unity + PlayFab + Azure FunctionsUnity + PlayFab + Azure Functions
Unity + PlayFab + Azure Functions
 
ゲーム特化の BaaS! Unity + PlayFab 入門!
ゲーム特化の BaaS! Unity + PlayFab 入門!ゲーム特化の BaaS! Unity + PlayFab 入門!
ゲーム特化の BaaS! Unity + PlayFab 入門!
 
C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携
 
ゲーム特化の BaaS! Unity + PlayFab 入門!
ゲーム特化の BaaS! Unity + PlayFab 入門!ゲーム特化の BaaS! Unity + PlayFab 入門!
ゲーム特化の BaaS! Unity + PlayFab 入門!
 

Recently uploaded

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

アプリエンジニアがサーバーサイドで最初に勉強するべきこと