SlideShare a Scribd company logo
1 of 82
Download to read offline
Unityだったら簡単!
マルチプレイ用ゲームサーバ開発
~実践編~
株式会社ミクシィ
小端 みより
3
小端 みより (ゲームエンジニア)
コンシューマゲーム業界から株式会社ミクシィに入社
未発表タイトルを含む、複数の新規タイトル開発を行う
(すべてがオンラインマルチプレイ対応)
自己紹介
Unityサーバを作るまで
4
5
リレーサーバを用いたマルチプレイ実装が主流
これは結局のところP2P型の通信モデルなので、
サーバは原則的にロジックに関与しない
つまりクライアント処理型の実装ということ
これまでのマルチプレイ実装
クライアント処理型
6
リレーサーバを用いたマルチプレイ実装なので
次のようなメリットがある
— 対応したミドルウェアやサービスが豊富
— クラウド型のサービスならサーバ不要であり手軽
— クライアントで完結するのでプロトタイピングに最適
その一方で
7
— クライアント処理なのでチートされやすく
通信も不安定になりやすい (ホストマイグレーションなど)
— 実装が複雑化しやすい傾向にあり大人数もしくは
大規模なタイトルの開発は難しい
と決して万能ではない
それならば
8
クライアント処理型で難しかった
— チート耐性および通信の安定性を備え持ち
— リアルタイムで大人数、大規模なマルチプレイゲーム
これらを実現するために、専用サーバを用いた
サーバ処理型の実装にすればよい?
でも専用サーバ開発って
9
— サーバを実装するのって言語とかが違って難しそう
— どうやって作ればよいのかわからない
— クライアント処理型の手軽さに及ばない
こういったネガティブな印象がある気がする・・
極論として
10
PU〇GやF〇rtniteのようなゲームを気軽に開発できるような
そんな便利な方法があったら嬉しいですよね
(いや・・そんなことできるのか・・・???????)
11
我々にはUnityがあります!
Unityサーバは
12
その名の通りUnityで作る専用サーバなので
— 我々が得意(ですよね?)とするC#で実装できる
— Unityの機能、AnimationやPhysicsやAIを活用できる
— サーバとクライアントを同時に単一プロジェクトで開発
などなど
13
よさそうですね・・?
というわけで実際に作ってみます
目標を高めに設定
14
技術難易度の高いことに挑戦すれば幅広いゲームジャンルに
対応できるはず・・という理由で
— アクション性の高いオンラインマルチプレイのゲーム
— サーバとクライアントを単一Unityプロジェクトで作成
(サーバはLinux、クライアントはiOS/Android上で動作)
— サーバをクラウド上で動作させ20人以上でマルチプレイ
おおまかな設計
15
— サーバ集中処理型の通信モデルを採用し
上り/下り共に非同期的に最大で毎秒30回の通信を行う
— ゲームは60FPSで動作し (物理は30FPS)
DOTSでなく使い慣れたコンポーネントモデルを採用
— サーバ/クライアント間でコードおよびアセットを共有し
Editor上で任意にサーバやクライアントを実行可能
サーバ集中処理型とは
16
非常にシンプルな構成ですね
クライアント A
ゲームサーバ
1. 入力を送信
2. アップデート
3. 結果を送信
クライアント B
4. 結果を表示
ただし
17
次のような懸念点が考えられる
— サーバ集中処理型は設計をシンプルにできる一方で
ネットワーク遅延の影響が大きそう
— 特にアクションゲームにおいてどれほど影響を与えるのか
そもそもちゃんとゲームプレイが成立するのか
18
と、いう感じで我々は
Unityサーバの開発を開始したのであった・・
そして、その中で直面した課題と
その解決方法について次章で説明していきます
Unityサーバ
7つの課題と解決法
19
7つの課題とは
20
Q1 どの通信ライブラリを使えばいい?
Q2 TCPとUDPどっちを使う?
Q3 再送制御による遅延を回避するには?
Q4 MTUって何?
Q5 ラグはなくせるのか?
Q6 サーバとクライアント同一プロジェクトで管理できる?
Q7 専用サーバをどうやって運用したらいい?
21
Q1
どの通信ライブラリを使えばよい?
Unity公式のもの
22
(UNETのことはもう忘れよう・・)
— Unity Transport Package (com.unity.transport)
https://github.com/Unity-Technologies/multiplayer
— マニュアルやサンプルプロジェクトを見れば簡単
— DOTSなどの新機能にも対応
— ただし現時点においてプレビュー版である点に注意
非公式ライブラリ
23
非公式のC#で書かれた通信ライブラリも利用可能
— 例としてはLiteNetLib
https://github.com/RevenantX/LiteNetLib
— RUDP(TCPライクに扱えるUDP)通信ライブラリ
— 認証付きコネクションやMTU探索、IPv6にも対応
— こちらもシンプルで扱いやすい
Unity公式ブログに
24
ゲーム設計によってどんな実装を行うのが望ましいかという
フローチャートがあるのでこちらもご覧ください
Navigating Unity’s multiplayer Netcode transition
https://blogs.unity3d.com/2019/06/13/navigating-unitys-
multiplayer-netcode-transition/
結論
25
— 公式のMultiplayerパッケージがわかりやすく新機能も
サポートしているが、まだ開発中なので注意
— 現時点においてはLiteNetLibのようなライブラリが選択肢
となるため、我々はこれを採用した
26
Q2
TCPとUDPどっちを使う?
初めて使うならTCP
27
— ポピュラーなので情報が多い(HTTPやWebSocketもこれ)
— プロトコルとしての信頼性が高く扱いやすい
— なので通信実装の入門用に最適
ただし
— リアルタイム性を要求される通信において問題がある
なぜTCPは信頼できる?
28
— 確認応答(Ack)および再送制御
相手に届いたことが確認できるまで送信を繰り返すので
コネクションが維持されている限り必ず届く
— 順序制御
受信時シーケンス番号をもとに並び替えが行われるので
送信順序と受信順序が必ず一致する
再送制御による遅延の問題
29
一旦パケットロスが生じて再送制御が行われている間、
順序制御により以後の受信がドミノ倒し的に遅延してしまう
受信側
送信側
1 2 3 4 5 6
1 (2はまだ・・?)
2
2,3,4,5
TCPの設計思想は
30
”どんなに遅れても順序通り必ず届く” なので仕方がない
しかしこの特性は
毎秒何十回という頻度で通信を行い、即時到達性が要求
されるゲーム用途において、非常に致命的である
結論
31
— 情報の充実性や信頼性においてTCPは優れており、
入門用に最適である
— 一方遅延を生じやすい性質のため、
アクション性を重視するゲームジャンルに適さず
我々はTCPを採用しなかった
32
Q3
再送制御による遅延を
回避するには?
そこで出番のUDP
33
— データグラムと呼ばれるシンプルな通信操作のみ行える
— コネクション処理も再送制御も順序制御も存在しない
— だから遅延が生じにくい
— 逆に信頼性を要求される用途では工夫が必要
UDPで信頼性を得るには
34
RUDP(ReliableUDP)として知られる実装が有効
ただしこれは一般に、
再送制御や順序制御をUDP上で実装したものであって
TCP同様に再送制御による遅延が発生する
ではどうするか・・?
“Redundant”UDP
35
— 送信メッセージを冗長化させることにより
一定のパケットロス耐性を持たせた実装
— ただし冗長性を上回る量のパケットロスが発生した場合
対処できないため別途、復帰処理を実装する必要がある
冗長化の例
3636
受信側
送信側
1,-,-
1 2 3,4 5
2,1,- 3,2,1 4,3,2 5,4,3
再送制御なしでも冗長性の範囲ならメッセージを復元できる
結論
37
— UDPは低遅延である一方で信頼性に問題がある
— しかしUDPとメッセージの冗長化を組み合わせることで
TCPでは難しかった低遅延と信頼性が両立できるので
我々はこの方法を採用した
38
Q4
MTUって何?
MTUとは
39
— 1回の通信で転送可能なデータグラムの上限サイズ
≒ メッセージサイズの上限
— そのサイズわずか576~1500バイト
(通信経路によって変動する)
— 超過した場合はパケットの分割が行われるか
そもそも到達しない
つまり
40
一度に送信できるメッセージのサイズは限られる上に、
前記の冗長化テクニックと組み合わせるとさらに少なくなる
(MTU 1500 / 3 で1フレームあたり 500バイト以下とか・・)
なのでメッセージサイズをギリギリまで削減する必要がある
メッセージサイズを削減するには
41
— プレイヤーの視界外のオブジェクトをカリングする
— 対象オブジェクトとの距離や優先順位に応じて
通信頻度を落とし、通信のタイミングを分散させる
— データそのものを圧縮する
float -> half 変換などが定番 (値域と精度に注意)
カリングおよび通信分散
42
プレイヤーキャラクタやNPC、近くのオブジェクトを優先
2
3
4
1
デルタ圧縮
43
その他にはデルタ圧縮というテクニックもある
— 送信内容をキャッシュしておく
— 次回の送信時にキャッシュと比較し更新された
オブジェクトやプロパティのみを送信する
(全く更新されていないなら、そもそも送信を行わない)
またZlibなどの
44
圧縮ライブラリを組み合わせる手もあるが・・
— 圧縮後のサイズがわからないと使いづらい
(逐次圧縮可能なライブラリならあるいは)
— 前記のテクニックにより元々のデータが効率的な配列に
なっている場合はあまり有効でなかったりする
結論
45
— UDPのメッセージサイズはMTUに依存するだけでなく
冗長化テクニックにより、さらに制限される
— 我々はカリングやデルタ圧縮などのテクニックを
組み合わせることにより、メッセージサイズを削減
することにした
46
Q5
ラグはなくせるのか?
ラグはなぜ発生するのか
47
一般に ”ラグ = 通信遅延” と思われがちだが
近年の通信環境の改善により、国内であれば通信遅延は
非常に小さい (東京都内~データセンタ間で1、2ミリ秒)
実際には、前記の再送制御により生じる一時的な遅延や
通信サイクルに起因する遅延の影響が大きい
そもそもオフラインゲームでは
48
タイミング次第で入力の反映に17ミリ秒の揺れ幅が生じる
17ミリ秒 (= 1000 / 60)
アップデート レンダリング待機ダリング 待機
入力の反映
通信サイクルによる遅延
49
通信サイクルが33ミリ秒の場合、タイミング次第で遅延に
最大66ミリ秒の振れ幅が生じる
Server
Client
ベスト ワースト
というわけで
50
オンラインゲームは宿命としてラグが発生するものであって
また遅延量に、かなりの振れ幅があるということ
(遅延が一定であると見なしてはいけない)
これを踏まえた上で、体感上のラグを打ち消すための
テクニックを利用したい
時刻差異を利用する例
51
— サーバと各クライアント間でゲーム時刻を同調しておく
— サーバでは送信する際にメッセージにその時点の
ゲーム時刻を書き出しておく
— クライアントはこのメッセージ上の時刻とクライアントの
時刻の差異を利用し、体感上のラグを相殺できる
例えば位置予測
52
#1: 0.00秒
(0.0, 0.0)
#2: 0.10秒
(2.0, 1.0)
今(予測): 0.15秒
(3.0, 1.5)
前回の時刻および座標から、現時点の位置を予測できる
結論
53
— オンラインゲームにおいてラグは宿命であり、なおかつ
遅延の量は常に一定ではない
— 我々はサーバとクライアント間の時刻差異を利用した
位置予測などのテクニックで体感上のラグを
打ち消すことにした
54
Q6
サーバとクライアント
同一プロジェクトで管理できる?
同一プロジェクトだと
55
— サーバとクライアントで使用するアセットやコードが混在
— しかしサーバ実行時にTextureやAudioClipは必要ない
(消費メモリやロード時間が長くなるだけ)
つまりビルド設定に応じて
使用するアセットを切り替えられることが望ましい
シーンおよびアセットは
56
— その名称だけでサーバ用なのかクライアント用かを
区別できるようにしておく
(名称に”_Client”のようなサフィックスを含めるなど)
— こうしておけばビルド用のスクリプトで対象外のアセットを
除外することができる
57
サーバ実行時のシーンビュー
(Rendererなどを除去)
クライアント実行時の
Editorシーンビュー
コードの分割
58
— サーバとクライアント間で共有したくないコードは
AssemblyDefinition を使用すれば除外することができる
(ただし異なるアセンブリ間は循環参照できないので注意)
— ただし現状(Unity2019.1)、DefineConstraints
(シンボル定義に応じ含める/含めないを切り替えられる)
の挙動が怪しいので今後の修正に期待したい
結論
59
— 各シーンやアセットがサーバ用かクライアント用か判別
できるようにしおけば、ビルド時に切り替えられる
— AssemblyDefinitionを使えば使用するコードの切替も
可能であり、我々はビルド用スクリプトでそれらを切り替え
られるようにした
60
Q7
専用サーバをどうやって
運用したらいい?
ホスティングサービスの利用
61
— 例としてはAWSのGameLiftというサービス
https://aws.amazon.com/jp/gamelift/
— ゲームサーバのホスティングに特化されている
— サーバのバイナリをアップロードすれば、起動や監視
オートスケーリングなどの運用を自動でやってくれる
— Unity向けのSDKも提供されている
注意点として
62
— 一般的なEC2インスタンスではGPUをサポートしていない
ので、サーバはHeadlessモードでビルドする必要がある
その他にも
63
Azureなどホスティングサービスの選択肢があり、
今後はUnity公式のホスティングサービスも開始されるはず
専用サーバの利用はより手軽になっていくことが予想される
結論
64
— ホスティングサービスを利用することで、
専用サーバは比較的手軽に運用することができる
— 我々はホスティングサービスのうちのひとつである
GameLiftを利用する事にした
Unityサーバを開発してみて
まとめ
65
これらは結局どうだった?
66
— クライアント処理型で難しかった
チート耐性や通信の安定性、大人数や大規模なゲーム
— 専用サーバのネガティブな印象
言語、作り方がわからない、手軽さが損なわれないか
— サーバ集中処理型の懸念点
遅延がどの程度影響するのか、ゲームとして成立するのか
これらは結局どうだった?
67
— クライアント処理型で難しかった
チート耐性や通信の安定性、大人数や大規模なゲーム
— 専用サーバのネガティブな印象
言語、作り方がわからない、手軽さが損なわれないか
— サーバ集中処理型の懸念点
遅延がどの程度影響するのか、ゲームとして成立するのか
チート耐性は
68
— サーバ集中処理型はクライアント側で行える操作が
限られるため基本的にチート耐性は高いと考えられる
— とはいえ、パケット分析による自動化ツール作成などが
想定されるため、通信の暗号化を行う必要がある
通信の安定性は
69
— ほんとうに通信状態が悪い場合、を除き安定的に動作した
— とはいえ WiFi <-> キャリア回線 の切り替わりなどでは
切断を生じるため、再接続および復帰処理の実装が重要
大人数や大規模なゲームにも
70
— プロファイラを使用しサーバの通信処理を最適化
最終的に1スレッドあたり40人程度まで捌けるように
— 無論このあたりの数値はゲームデザインに依存するもので
あり、逆にリアルタイム性が重視されないジャンルならば
100人規模であっても対応できるのではないか
これらは結局どうだった?
71
— クライアント処理型で難しかった
チート耐性や通信の安定性、大人数や大規模なゲーム
— 専用サーバのネガティブな印象
言語、作り方がわからない、手軽さが損なわれないか
— サーバ集中処理型の懸念点
遅延がどの程度影響するのか、ゲームとして成立するのか
やってみると意外に簡単
72
— やはりC#や.NETなど普段から使い慣れているUnityの
開発環境がそのまま使えるメリットは大きい
— もちろんネットワークの知識は必要とされるものの
そこを身に着けさえすれば、通常の開発とそう大差はない
— Unityだからこそのデバッグのしやすさもある
手軽さも損なわれない
73
— サーバとクライアントが単一プロジェクトで完結できる
という点では手軽
— もっとも、ホスティングサービス上でサーバを動作させる
ため更新の都度、バイナリをデプロイする必要があり手間
— ローカル環境上でサーバを起動し、クライアントから
直接接続できるしくみを用意しておくと捗る
これらは結局どうだった?
74
— クライアント処理型で難しかった
チート耐性や通信の安定性、大人数や大規模なゲーム
— 専用サーバのネガティブな印象
言語、作り方がわからない、手軽さが損なわれないか
— サーバ集中処理型の懸念点
遅延がどの程度影響するのか、ゲームとして成立するのか
遅延も対策すれば怖くない
75
— 通信ライブラリのドロップ&遅延シミュレーションの機能で
低品質な通信環境を前提としたテストが行える
— これによりUDP+冗長化や、位置予測などの遅延対策が
正しく動作することを確認できた
— ダメ元で50ms程度遅延させてみたところ・・
“まあ、すごくラグいけど操作できなくもない”
むしろ・・
76
モバイル機器では負荷の高いPhysicsなどの処理を
オフロードでき、クライアントの負荷を軽減できる
77
そして・・
社内プレイ会のもよう
78
その他ここがよかった
79
— 使い慣れた言語&エンジンなので、通信のハードルさえ
乗り越えればゲームロジックの実装に集中できる
— Editor上で直接サーバとクライアントをデバッグや
プロファイリングできるので作業効率が高かった
— Unityを扱える企画メンバーがゲームを直接、拡張できる
今後の課題
80
— サーバとクライアントのコードが混在しているがゆえの
紛らわしさがあるため、より分離性のある設計にしたい
— Unityサーバ開発を基盤化し、他のプロジェクトでも
手軽に扱えるようにしたい
今後、機会があればもっとUnity寄りの話などできれば・・
81
本講演は以上です
皆様もぜひ試してみてください
ご清聴ありがとうございました
82
Ver. 2019_09_24_1

More Related Content

What's hot

大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化DeNA
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnity Technologies Japan K.K.
 
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なことhistoria_Inc
 
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】GMO GlobalSign Holdings K.K.
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...エピック・ゲームズ・ジャパン Epic Games Japan
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]DeNA
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいYutoNishine
 
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -Takehito Gondo
 

What's hot (20)

大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
 
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと
 
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
Unityで PhotonCloudを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【導入編】
 
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
 
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
 
Photonのサービス選択の勘どころ
Photonのサービス選択の勘どころPhotonのサービス選択の勘どころ
Photonのサービス選択の勘どころ
 
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
 
Fortniteを支える技術
Fortniteを支える技術Fortniteを支える技術
Fortniteを支える技術
 
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演)  #UE4DDUE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演)  #UE4DD
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
 

Similar to 【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~

VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...Game Tools & Middleware Forum
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準Takahiro Hozumi
 
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報モノビット エンジン
 
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!モノビット エンジン
 
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」モノビット エンジン
 
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会モノビット エンジン
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用DeNA
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来Syuichi Murashima
 
Hpc server講習会第3回応用編
Hpc server講習会第3回応用編Hpc server講習会第3回応用編
Hpc server講習会第3回応用編Osamu Masutani
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術Toru Yamaguchi
 
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューションUnityTechnologiesJapan002
 
SoftLayer最新動向と賢い利用方法
SoftLayer最新動向と賢い利用方法 SoftLayer最新動向と賢い利用方法
SoftLayer最新動向と賢い利用方法 Kimihiko Kitase
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Osamu Masutani
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本terada
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)Yasuhiko Yamamoto
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議Shinra_Technologies
 

Similar to 【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~ (20)

VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準
 
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報
 
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!
【CEDEC2017】新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!
 
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
【モノビットエンジン勉強会inサイバーコネクトツー】 第一部「モノビットエンジンVer2.0シリーズ概要」
 
「Monobit Revolution Server」のご紹介
「Monobit Revolution Server」のご紹介「Monobit Revolution Server」のご紹介
「Monobit Revolution Server」のご紹介
 
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
Web サービス インフラの近未来
Web サービス インフラの近未来Web サービス インフラの近未来
Web サービス インフラの近未来
 
Hpc server講習会第3回応用編
Hpc server講習会第3回応用編Hpc server講習会第3回応用編
Hpc server講習会第3回応用編
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション
【Unite Tokyo 2019】Render Streaming - WebRTC を用いたストリーミングソリューション
 
SoftLayer最新動向と賢い利用方法
SoftLayer最新動向と賢い利用方法 SoftLayer最新動向と賢い利用方法
SoftLayer最新動向と賢い利用方法
 
Google Container Engine を始めてみよう
Google Container Engine を始めてみようGoogle Container Engine を始めてみよう
Google Container Engine を始めてみよう
 
Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編Windows HPC Server 講習会 第2回 開発編
Windows HPC Server 講習会 第2回 開発編
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
第4回「クラウドを支えるKVMの現在と未来」(2011/07/07 on しすなま!)
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
 

More from UnityTechnologiesJapan002

10分でわかる Unityコンピュータービジョン
10分でわかる Unityコンピュータービジョン10分でわかる Unityコンピュータービジョン
10分でわかる UnityコンピュータービジョンUnityTechnologiesJapan002
 
ROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉するROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉するUnityTechnologiesJapan002
 
Unityでロボットの教師データは作れる!
Unityでロボットの教師データは作れる!Unityでロボットの教師データは作れる!
Unityでロボットの教師データは作れる!UnityTechnologiesJapan002
 
産業用ロボット開発におけるUnityの活用
産業用ロボット開発におけるUnityの活用産業用ロボット開発におけるUnityの活用
産業用ロボット開発におけるUnityの活用UnityTechnologiesJapan002
 
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能についてUnityTechnologiesJapan002
 
中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクス
中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクス中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクス
中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクスUnityTechnologiesJapan002
 
Unityでお手軽ロボット開発「toio SDK for Unity」最新事例
Unityでお手軽ロボット開発「toio SDK for Unity」最新事例Unityでお手軽ロボット開発「toio SDK for Unity」最新事例
Unityでお手軽ロボット開発「toio SDK for Unity」最新事例UnityTechnologiesJapan002
 
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜UnityTechnologiesJapan002
 
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~UnityTechnologiesJapan002
 
【Unity道場 自動車編】Unityで実現する産業向けxRソリューション
【Unity道場 自動車編】Unityで実現する産業向けxRソリューション【Unity道場 自動車編】Unityで実現する産業向けxRソリューション
【Unity道場 自動車編】Unityで実現する産業向けxRソリューションUnityTechnologiesJapan002
 
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~UnityTechnologiesJapan002
 
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例UnityTechnologiesJapan002
 
【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツイン
【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツイン【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツイン
【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツインUnityTechnologiesJapan002
 
【Unity道場 自動車編】モビリティへの活用に向けて
【Unity道場 自動車編】モビリティへの活用に向けて【Unity道場 自動車編】モビリティへの活用に向けて
【Unity道場 自動車編】モビリティへの活用に向けてUnityTechnologiesJapan002
 

More from UnityTechnologiesJapan002 (20)

5分でわかる Sensor SDK
5分でわかる Sensor SDK5分でわかる Sensor SDK
5分でわかる Sensor SDK
 
10分でわかる Unityコンピュータービジョン
10分でわかる Unityコンピュータービジョン10分でわかる Unityコンピュータービジョン
10分でわかる Unityコンピュータービジョン
 
5分でわかる Unity Forma
5分でわかる Unity Forma5分でわかる Unity Forma
5分でわかる Unity Forma
 
ROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉するROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉する
 
Unityでロボットの教師データは作れる!
Unityでロボットの教師データは作れる!Unityでロボットの教師データは作れる!
Unityでロボットの教師データは作れる!
 
ARとUnity-Robotics-Hubの連携
ARとUnity-Robotics-Hubの連携ARとUnity-Robotics-Hubの連携
ARとUnity-Robotics-Hubの連携
 
産業用ロボット開発におけるUnityの活用
産業用ロボット開発におけるUnityの活用産業用ロボット開発におけるUnityの活用
産業用ロボット開発におけるUnityの活用
 
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
 
UnityとROSの連携について
UnityとROSの連携についてUnityとROSの連携について
UnityとROSの連携について
 
中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクス
中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクス中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクス
中国深センから盛り上がる、ソフトウェアフレンドリーなロボティクス
 
Unityでお手軽ロボット開発「toio SDK for Unity」最新事例
Unityでお手軽ロボット開発「toio SDK for Unity」最新事例Unityでお手軽ロボット開発「toio SDK for Unity」最新事例
Unityでお手軽ロボット開発「toio SDK for Unity」最新事例
 
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
 
5分でわかる Unity点群
5分でわかる Unity点群5分でわかる Unity点群
5分でわかる Unity点群
 
5分でわかる Unity Reflect
5分でわかる Unity Reflect5分でわかる Unity Reflect
5分でわかる Unity Reflect
 
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
 
【Unity道場 自動車編】Unityで実現する産業向けxRソリューション
【Unity道場 自動車編】Unityで実現する産業向けxRソリューション【Unity道場 自動車編】Unityで実現する産業向けxRソリューション
【Unity道場 自動車編】Unityで実現する産業向けxRソリューション
 
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
【Unity道場 自動車編】トヨタのxR活用で進める現場DXへの挑戦 ~UnityとHoloLens 2を用いて~
 
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
【Unity道場 自動車編】空間再現ディスプレイの概要と活用事例
 
【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツイン
【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツイン【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツイン
【Unity道場 自動車編】 リアルタイム3D技術が支えるデジタルツイン
 
【Unity道場 自動車編】モビリティへの活用に向けて
【Unity道場 自動車編】モビリティへの活用に向けて【Unity道場 自動車編】モビリティへの活用に向けて
【Unity道場 自動車編】モビリティへの活用に向けて
 

【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~