Submit Search
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
10 likes
10,011 views
エピック・ゲームズ・ジャパン Epic Games Japan
2017年7月2日に行われたライセンシー様向けMO勉強会の資料です。実践編② (登壇者: ソレイユ株式会社 田中さま 衣笠さま)
Engineering
Read more
1 of 29
Download now
Downloaded 81 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
More Related Content
PDF
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
com044
PPTX
Online MultiPlay Game Design
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4におけるレベル制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
com044
Online MultiPlay Game Design
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるレベル制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
What's hot
(20)
PDF
60fpsアクションを実現する秘訣を伝授 基礎編
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
ゆるゆるUE4ネットワーク入門
ssuser221848
PDF
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4 アセットロード周り-アセット参照調査-
com044
PPTX
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
なぜなにFProperty - 対応方法と改善点 -
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4におけるエフェクトの為のエンジン改造事例
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
猫でも分かるUE4.22から入ったSubsystem
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
[CEDEC2018] UE4アニメーションシステム総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
猫でも分かる UE4のAnimation Blueprintの運用について
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Epic Online Services でできること
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
非同期ロード画面 Asynchronous Loading Screen
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
Masahiko Nakamura
PDF
UE4.25 Update - Unreal Insights -
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4におけるアニメーション制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
Tatsuya Iwama
60fpsアクションを実現する秘訣を伝授 基礎編
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
ゆるゆるUE4ネットワーク入門
ssuser221848
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 アセットロード周り-アセット参照調査-
com044
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
なぜなにFProperty - 対応方法と改善点 -
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるエフェクトの為のエンジン改造事例
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4.22から入ったSubsystem
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2018] UE4アニメーションシステム総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かる UE4のAnimation Blueprintの運用について
エピック・ゲームズ・ジャパン Epic Games Japan
Epic Online Services でできること
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
非同期ロード画面 Asynchronous Loading Screen
エピック・ゲームズ・ジャパン Epic Games Japan
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
Masahiko Nakamura
UE4.25 Update - Unreal Insights -
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるアニメーション制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 コリジョン検証 -HitとOverlapイベントが発生する条件について-
Tatsuya Iwama
Ad
Viewers also liked
(14)
PDF
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
UE4 Lightmass for Large Console Games (UE4 Lightmass Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
モバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイルゲーム制作について
Masahiko Nakamura
PDF
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
猫でも分かるUMG
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Practical usage of Lightmass in Architectural Visualization (Kenichi Makaya...
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
脱Unity!? UE4でVR開発のここが変わった
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Robo Recallで使われている最新のVR開発テクニックをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Unreal Engine最新機能 アニメーション+物理ショーケース!
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
[CEDEC+KYUSHU 2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介! + UE4.18 モバイ...
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 Lightmass for Large Console Games (UE4 Lightmass Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
モバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイルゲーム制作について
Masahiko Nakamura
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUMG
エピック・ゲームズ・ジャパン Epic Games Japan
Practical usage of Lightmass in Architectural Visualization (Kenichi Makaya...
エピック・ゲームズ・ジャパン Epic Games Japan
脱Unity!? UE4でVR開発のここが変わった
エピック・ゲームズ・ジャパン Epic Games Japan
Robo Recallで使われている最新のVR開発テクニックをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine最新機能 アニメーション+物理ショーケース!
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC+KYUSHU 2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介! + UE4.18 モバイ...
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
エピック・ゲームズ・ジャパン Epic Games Japan
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
Ad
More from エピック・ゲームズ・ジャパン Epic Games Japan
(20)
PDF
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4を使った映像制作 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Hair Groom入門 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Twinmotion 2021とAEC分野向けソリューションのご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
エピック・ゲームズ・ジャパン Epic Games Japan
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を使った映像制作 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
Hair Groom入門 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
エピック・ゲームズ・ジャパン Epic Games Japan
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
Twinmotion 2021とAEC分野向けソリューションのご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
1.
Multiplayer Online DeepDive ソレイユ株式会社 UE4でのマルチプレイアクションゲームの開発 2017/07/02
2.
会社紹介 ソレイユ株式会社 開発Title ● Devil’s Third
(WiiU) ● Devil’s Third Online (PC) ● NARUTO TO BORUTO シノビストライカー(PS4/Xbox One/PC) 開発中 ● その他開発中Title複数 Devil’s ThirdはUE3、他はUE4で開発中 2
3.
スピーカー紹介 ソレイユ(株) エンジニア 衣笠
友宣 Devil’s Third SeriesでGame Rule周りを担当 UE3のReplication周りはよく触っていた それ以前はXbox・Xbox 360・PC・PS3でのOnline機能開発を経験 C++の勉強会などを聴きに行っている 3
4.
アジェンダ ● Dedicated Server
vs Listen Server それぞれの利点、欠点 ● Application Server ● 通信プロトコル ● TCP接続 4
5.
Dedicated Server と
Listen Server UE4でのMultiplay Gameの通信方式には2種類の形式がある 一つ目はDedicated Server。もう一つはListen Server Full Mesh P2Pには対応していない 5
6.
Dedicated Server ● Game
Clientとは別にGameを制御するServer ● Dedicated ServerはGame運営側に設置されているのが一般的。開発中はLocalで 起動することも ● Dedicated ServerはClientと同じPlatformである必要は無く、WindowsやLinuxで稼 働し、PS4のClientと通信するなどの運用も可能。描画は行わないので、Resourceは 少なくて済む ● 1つの対戦Group毎に1つのDedicated Serverを起動する必要がある ● 一台のServer内で複数Process起動することが可能 6
7.
Dedicated Serverの概念図 Dedicated Server Client
Client Client Client 各ClientはDedicated Serverと通信をしながらGameを進行する 7
8.
Dedicated Serverの利点 ● 特定のClientに処理が集中せず、安定した負荷がかかる ●
実際のGame進行、判定がServer側で行われるので、Cheatされにくい ● 通信状態が悪いほかのClientの影響を受けにくい ● Clientが切断されてもGame進行を止めなくて良い ● Gameの進行が運営の安定制御下にある前提で実装できるので、信頼性が高い ● 限定的な更新ならDedicated Server側だけの更新で済む場合も 8
9.
Dedicated Serverの欠点 ● Serverの設置、運営、通信にCostがかかる ●
Session毎にServerを割り当て、Dedicated Server Processを起動する仕組みが必要 になる ● ClientのBuildとほぼセットでServer ProgramもBuildする必要がある 9
10.
Listen Server Listen Serverは対戦するClientの1つがServerも兼ねる。 別途Serverを置く必要は無い Listen
Server local player処理も する Client Client Client Client Client Client 10
11.
Listen Serverの利点 ● 対戦用にDedicated
Server用のServerを用意する必要が無いためServer Costが比 較的安く済む ● 通信的に近いUserをMatchingさせることで、Dedicated ServerよりもResponseが良く なる可能性がある 11
12.
Listen Serverの欠点 ● Listen
ServerになったClientに処理と通信が集中しやすい ● Listen ServerになったClientの通信状態が悪いとSession全体に影響する ● Listen ServerになったClientが切断するとSessionがそのまま終了してしまう ※回避方法が無くはないが、実装が大変になる 12
13.
Listen Serverが有利になる例 Dedicated ServerとClientの距離関係によってはListen
Serverの方がResponseが良くな るCaseがある 具体的には、Dedicated Serverがアメリカ東海岸にあり、Clientが西海岸にいる場合、全 ての通信が東海岸と西海岸を往復することになる Listen Server Typeで、なるべく近いUser同士をMatchingさせることによって、Dedicated ServerよりもResponseが良い条件を産み出せる 13
14.
どちらのServer Typeで開発するか 今までのTitleはDedicated Serverで運営していたが、開発中の幾つかのTitleはListen Serverでの運営を検討中 ◯
Server周りのCostが大幅に下がるのは嬉しい ◯ うまくMatchingすればResponseも良くなる? ✗ 商業Baseでの事例が少ない ✗ Listen ServerになったClientに負荷が集中するのが心配 14
15.
Listen Serverでの開発 Listen ServerはServerとClient両方の処理が必要になる ●
Listen ServerにRepNotify Eventは来ない ○ 各Clientに変数Replicateした時の処理はListen Serverも呼ぶ必要がある ● Server Typeの方針変更時にServer処理Client処理の修正が入る Dedicated ServerとListen Server両対応の複製処理を書いておくと変更に強い ● World::GetNetMode()で分岐する ● BlueprintCosmetic関数指定子(未経験) 15
16.
Application Server TitleやPublisher独自の機能を実現するためPlatform Serverとは別に通信するServer ●
Login Bonusの付与 ● 独自性の高いEvent開催とRanking System、それに伴う報酬付与 ● Publisher Accountとの紐付け ● Publisher決済Systemの使用 ● User DataのCloud保存 ● Platform間の機能差異の吸収(UEでも吸収しきれないような機能) 16
17.
通信Protocol Online Gameで通信に使用するProtocol ● UDP ●
TCP ○ HTTP/HTTPS ■ REST API ○ WebSocket Application Serverとの通信はREST APIやWebSocketが多いのでは? HTTPを扱うUE ModuleはFHttpModuleのようだが大変そう 大変そうで一般的なものなら誰かがPluginを作っているはず 17
18.
REST API Plugin REST
APIでJSONを扱う通信Plugin ● Json Query ○ https://wiki.unrealengine.com/JSON_Query ✗ License未記載! ● VaRest ○ https://wiki.unrealengine.com/VaRest_Plugin ○ MIT License ● WebApiプラグイン ○ https://github.com/HogeTatu/UE4Plugin_WebApi ○ MIT License Object配列など未対応の場合もある。採用時は使用構造に対応しているか確認を 18
19.
TCP通信 Application ServerによってはTCP接続を要求される事もある TCP接続はSockets moduleをBuild.csに追加して、以下のClassを使ってSocket Programmingを行う ●
FTcpSocketBuilder: Socket作成Parameter設定Class ● ISocketSubsystem: Socket関連機能の各Platform差異吸収Interface ● FSocket: Socketの実体Class 19
20.
TCP通信 手順は以下が参考になる listenで待受する場合 ● https://wiki.unrealengine.com/TCP_Socket_Listener,_Receive_Binary_Data_From _an_IP/Port_Into_UE4,_(Full_Code_Sample) connectで接続に行く場合 ● https://wiki.unrealengine.com/Third_Party_Socket_Server_Connection ○
Connect()時に注意点がある 20
21.
TCPの罠: Connectの問題 connectは3Way Handshakeによって接続する 通信待ちが入るので一瞬では終わらない ●
blocking mode: 完了までconnectは返ってこない ● non-blocking mode: すぐに返ってくる ○ POSIX: EINPROGRESSのerrorを返す ○ Winsock: 成功(0)を返す Windowsでnon-blocking socketのConnect()からtrueが返ってきても接続は未完了! 完了するまで送信は失敗する 21
22.
TCPの罠: Connectの問題 Non-Blocking Socketで接続完了を知るには? POSIXではselect()を使う UE4ではFSocket::GetConnectionState()が相当する Connect後SCS_Connectedを返したら接続完了 PS4のGetConnectionStateには4.16の時点でBugがある UDNで何人か報告しているので最新のdepoで確認を 22
23.
TCPの罠: Signalの問題 TCP socketで送信関数(send,
sendto, sendmsg)を呼び出した時、 通信相手が接続を切断した状態だと、 ● POSIX: SIGPIPEのSignalが発生する(抑制されてなければ) ● Winsock: SOCKET_ERRORを返す (Windows「Signal is 何?」) Signal Handlerが何も設定されていないProcessは異常終了する 23
24.
TCPの罠: Signalの問題 Mac: 4.11で対応 https://www.unrealengine.com/ja/blog/unreal-engine-4-11-released ●
Bugfix: Disabled the SIGPIPE signal on BSD sockets to prevent silent program termination on Mac when using network connections. SIGPIPEでEngine Codeを検索してみると ● signal(SIGPIPE, SIGIGN)でSIGPIPEを無視 ● setsockopt()でSO_NOSIGPIPEのOptionを指定して、SocketのSIGPIPEを抑制 24
25.
TCPの罠: Signalの問題 PS4: WebRTCには4.12で対応しているが、BSD
Socketは4.16時点で未対応 https://www.unrealengine.com/ja/blog/unreal-engine-4-12-released ● Bugfix: Fixed occasional WebRTC crash on SIGPIPE. SIGPIPEが発生したらcrash不可避。抑制するしかない ● 対応方法 ○ 送信関数のflagにMSG_NOSIGNAL bitを立てる ○ SDK提供の送信APIを使用する UDNには報告されているのでそのうち直るはず 25
26.
64bit値の取り扱い DB indexなど通信時に64bit値が現れる事がある 64bit値はBPでは直接扱えない ● USTRUCT ○
DisplayAll, GetAllではやっぱり見えない ○ Replicationはnative code改造しないと無理 ● FString/FName ○ 変換の取り回し JSON parserの対応 ● 64bit整数として取り出すparserは用意されてない 26
27.
まとめ ● Dedicated ServerとListen
Serverの特性を考慮して採用検討を ● 開発段階ではどちらにも対応しておくとmeritがある ● Application ServerとのREST API通信はPluginがある ● TCP通信とまつわるBugの対応(Bugは見つけてUDNに報告しましょう) ● 64bit値とUEの相性 27
28.
ご清聴ありがとうございました ネットワークエンジニア募集しています。 ていうか、エンジニア全般募集しています。 その他職種も絶賛募集中です。 興味があればウェブサイトからご連絡ください。 http://soleilgamestudios.com/ 28
29.
質疑応答 29
Download