Submit Search
Upload
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
•
Download as PPTX, PDF
•
22 likes
•
24,958 views
エピック・ゲームズ・ジャパン Epic Games Japan
Follow
2017年7月2日に行われたライセンシー様向けMO勉強会の資料です。実践編① (登壇者: Byking 鈴木孝司さま)
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 88
Download now
Recommended
猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について
エピック・ゲームズ・ジャパン Epic Games Japan
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法
エピック・ゲームズ・ジャパン Epic Games Japan
ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門
ssuser221848
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
エピック・ゲームズ・ジャパン Epic Games Japan
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるレベル制作事例
UE4におけるレベル制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
Masahiko Nakamura
Recommended
猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について
エピック・ゲームズ・ジャパン Epic Games Japan
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法
エピック・ゲームズ・ジャパン Epic Games Japan
ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門
ssuser221848
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
エピック・ゲームズ・ジャパン Epic Games Japan
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるレベル制作事例
UE4におけるレベル制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
Masahiko Nakamura
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
com044
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
Masahiko Nakamura
UE4の色について v1.1
UE4の色について v1.1
エピック・ゲームズ・ジャパン Epic Games Japan
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
IndieusGames
UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計
Masahiko Nakamura
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Tatsuhiro Tanaka
Unity5とUE4の比較
Unity5とUE4の比較
Masahiko Nakamura
More Related Content
What's hot
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
com044
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
エピック・ゲームズ・ジャパン Epic Games Japan
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
エピック・ゲームズ・ジャパン Epic Games Japan
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
Masahiko Nakamura
UE4の色について v1.1
UE4の色について v1.1
エピック・ゲームズ・ジャパン Epic Games Japan
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
IndieusGames
UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計
Masahiko Nakamura
What's hot
(20)
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
UE4の色について v1.1
UE4の色について v1.1
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計
Viewers also liked
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Tatsuhiro Tanaka
Unity5とUE4の比較
Unity5とUE4の比較
Masahiko Nakamura
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
Masahiko Nakamura
ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017
Toshiaki Nakazawa
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Guerrilla
UE4を使用したゲーム開発の為のネットワーク対応その1
UE4を使用したゲーム開発の為のネットワーク対応その1
fuminyami
【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap
Unity Technologies Japan K.K.
Viewers also liked
(7)
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Unity5とUE4の比較
Unity5とUE4の比較
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
UE4を使用したゲーム開発の為のネットワーク対応その1
UE4を使用したゲーム開発の為のネットワーク対応その1
【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap
Similar to UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
今さら聞けないWebサーバの基本知識と選び方
今さら聞けないWebサーバの基本知識と選び方
Endoh Shingo
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
Daichi Koike
Photon Webhooks & IPv6対応の最新情報
Photon Webhooks & IPv6対応の最新情報
GMO GlobalSign Holdings K.K.
本番環境で使いたいPHP
本番環境で使いたいPHP
Takuya Sato
DeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャ
Haruto Otake
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
hiroi10
ちゃんとWeb会議
ちゃんとWeb会議
Masayuki Abe
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
Daisuke Masubuchi
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
日本マイクロソフト株式会社
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善
Takashi Honda
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
Developers Summit
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
Yosuke Hiraishi
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?
Kei Mikage
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
Shotaro Uchida
SharePoint 2013 Preview レビュー
SharePoint 2013 Preview レビュー
Hirofumi Ota
CPUの同時実行機能
CPUの同時実行機能
Shinichiro Niiyama
Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋
Yuto M
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
Shinra_Technologies
マルチデバイス時代の高速化
マルチデバイス時代の高速化
Shin Takeuchi
Similar to UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
(20)
今さら聞けないWebサーバの基本知識と選び方
今さら聞けないWebサーバの基本知識と選び方
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
db tech showcase 東京 2014 - Couchbase Serverを用いた大規模データ収集基盤
Photon Webhooks & IPv6対応の最新情報
Photon Webhooks & IPv6対応の最新情報
本番環境で使いたいPHP
本番環境で使いたいPHP
DeNAのサーバー"コード"レスアーキテクチャ
DeNAのサーバー"コード"レスアーキテクチャ
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
ちゃんとWeb会議
ちゃんとWeb会議
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
SharePoint 2013 Preview レビュー
SharePoint 2013 Preview レビュー
CPUの同時実行機能
CPUの同時実行機能
Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
マルチデバイス時代の高速化
マルチデバイス時代の高速化
More from エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
エピック・ゲームズ・ジャパン Epic Games Japan
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を使った映像制作 (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
Hair Groom入門 (UE4 Character Art Dive Online)
Hair Groom入門 (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
エピック・ゲームズ・ジャパン Epic Games Japan
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
Twinmotion 2021とAEC分野向けソリューションのご紹介
Twinmotion 2021とAEC分野向けソリューションのご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
エピック・ゲームズ・ジャパン Epic Games Japan
More from エピック・ゲームズ・ジャパン Epic Games Japan
(20)
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)
Hair Groom入門 (UE4 Character Art Dive Online)
Hair Groom入門 (UE4 Character Art Dive Online)
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
Twinmotion 2021とAEC分野向けソリューションのご紹介
Twinmotion 2021とAEC分野向けソリューションのご紹介
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
1.
2.
バイキングとスピーカーについて • http://byking.jp/ • 対戦型のマルチプレイアクションタイプのゲームが得意 •
近年はUE4を採用することが多いです • 本日のスピーカー • 株式会社バイキング CTO 鈴木孝司 • レンダリング・ネットワーク・サーバー・ゲームプレイ・I/O・最適化・デバッ グ・・・
3.
はじめに • サンプルプロジェクトの作成及び確認はUE4.16を用いています • DedicatedServerの運用はUE4.12.5で行っています •
大変申し訳無いのですが、スライド中の情報は不正確だったり 場合によっては誤っている事もあると思います • ツッコミがあったら共有お願いします! • 自分が見つけていない、より良い制御方法などもあるかと思い ますが、現状鈴木が把握している内容で紹介させて頂きます • 明確なドキュメントが不足している気がします・・・
4.
お題目 • レプリケート • 遅延 •
RepNotify • RPC • ReliableとUnreliable • RPCと帯域 • 帯域幅設定 • レプリケートとRPCの使い分け • DedicatedServer • ListenServerとの違い • Cosmetic • 遷移フロー例 • 負荷軽減
5.
Replicate
6.
レプリケート • サーバー上にあるアクターをクライアント上で再現するための情報伝達 • サーバー上で生まれた、AActor::bReplicatesがtrueのアクターが対象 •
そのアクターのうちReplicate対象と指定されているプロパティのみが対象 • UPROPERTY(Replicated) or UPROPERTY(replicatedUsing=xxx) • 送信されるのは変更された部分のみ • デフォルトで対象になっているアクター • GameState、PlayerController、PlayerState、Pawn • 逆にレプリケートされないアクター • GameMode、AIController、Hud関連、GameInstanceなど • 送信間隔は、帯域幅やAActor::NetPriority、Aactor::NetUpdateFrequencyなどの 影響を踏まえて制御される • うまく扱えば与えられたネットワーク帯域を効率よく利用したコードが書けます • 遅延することはあれど、サーバー上のプロパティはいつか必ず同期される。
7.
レプリケート遅延 ActorA ActorB ActorD ActorE 十分な帯域があれば、すべてのアク ターが送信できます ActorC ActorA ActorB ActorD ActorE ActorC
8.
レプリケート遅延 ActorA ActorB ActorD ActorC ActorA ActorB ActorD ActorE ActorC ActorE ActorF ActorG ActorH 帯域が要求に対して不十分な場合プラ イオリティ付けされたリストの先頭か ら指定帯域まで送信されます ActorF 優 先 順 位
9.
プライオリティについて補足 • プライオリティ値 • おおざっぱにいって
「前回送信してからの時間」* 「ActorNetPriority」 • 前ページのようにそのTickで送信できなかったアクターは時間が伸びてすこしず つプライオリティが上がります。 • つまり、帯域が飽和している状態続いた場合、 NetPriorityの設定によって送信間隔がかなり変わる可能性があります • 参考ソースコード • AActor::GetNetPriority • オーバーライド可能なのでタイトルに合わせて自由に実装することも可能 • FActorPriority::FActorPriority
10.
レプリケート遅延 FatActorA ActorD ActorE FatActorB 変化していない FatActorA プライオリティが高くても 変化してなければノーカン ※ただしプロパティ 検査コストはかかる ActorD ActorE
11.
NetPriorityデモ • 帯域飽和状態 • NetUpdateFrequencyは100固定 •
上画面がサーバーで下画面がクライアント • 「すべてのキャラクターがNetPriority=100」と 「ステージ左側のキャラクターだけNetPriority=10000」を 切り替える
12.
13.
NetPriorityデモ YouTube Link
14.
NetPriorityデモ • 同じアクターでもNetPriorityの違いによってレプリケートの挙 動に差が出る • ただし、NetPriorityの制御が行われるのは帯域が飽和している 時のみ •
帯域が十分であればすべてのアクターがレプリケートされる
15.
レプリケートまとめ • レプリケート帯域が十分にあればNetUpdateFrequencyの頻度で、 クライアントにパラメータが送信されます • 帯域が飽和するとアクターの更新間隔が悪化していく •
プロパティ量や頻度について適切にコントロールする • NetPriorityは帯域が飽和しているときだけ有効な事に注意する
16.
RepNotify
17.
ReplicatedUsing(RepNotify) • 「クライアント上で」レプリケーションによってパラメータが変 更された時に 指定した関数を呼び出す • 変化しなかった時は呼び出されない •
クライアントと同じようにサーバーでも同じ関数が呼び出された ほうが便利 • ネイティブコードでプロパティを書き換えただけの場合サーバー上では 呼び出されない • ブループリントは「あるノード」がそれを処理している 0 1 0 1 Notify呼び出し
18.
サーバー上のRepNotifyコールバック このノードが RepNotifyを呼び出す (※値が変化しなくても) 呼び出されない どちらもクライアント側では 動作します
19.
NativeコードでサーバーRepNotify Setterを用意して ローカルでRepNotify関数を呼び出す ようにすると良いです
20.
RepNotifyが 呼ばれないことがある・・・?
21.
• 値が変化したときに呼び出し • 値はレプリケートによって書き換えられる •
レプリケートの間隔は設定や帯域依存 RepNotifyの仕組み
22.
値を素早く切り替えると RepNotifyイベントが起きない事がある。 0 1 0
1 0 0 1 0 1 0
23.
連続的に変化するプロパティの RepNotify消失 0 1 2 0
1 2 0 1 2 0 2 正常 消失
24.
連続的に変化するプロパティの RepNotifyによるレアバグ • 消失する可能性のあるRepNotifyコールバックに、クリティカル なコード (インスタンスの生成やアセットのプリローディング) などが含まれているとバグを生む •
更新間隔が長いだけであれば、 AActor::ForceNetUpdate()を呼び 出して素早くレプリケート情報を送信することで回避・軽減で きるかも • 帯域的には無駄になるが、プロパティをレプリケートしつつ ReliableMulticastRPCでさらに値を送信することも可能
25.
RPC
26.
RPCについて 公式ドキュメントより
27.
ServerRPC クライアントからサーバーになにかをお願いする時に呼び出す サーバーに何かを伝える場合はこれしかありません。 お小遣い頂戴
28.
ServerRPCを呼び出せるアクター • クライアント側 • RoleがAutonomousProxy •
AutonomousProxyに設定されるのは、 PlayerControllerとそこにPossessしているPawn • 加えて、上記アクターが保持しているコンポーネントでも呼び出し可能 • サーバー側 • すべてのアクターが呼び出し可能でローカルで呼び出しが完結する
29.
ServerRPCが正しく動作しない例 • RoleがSimurateProxyに設定されているアクターが呼び出した場 合、すべてドロップ • 例 •
クライアント側のGameStateに実装されたServerRPC • サーバープロセス上だけで動作するので意味がないです。 • 自分が操作していないPawnのServerRPC • 特に警告などもないので慣れない内はハマりやすい
30.
ClientRPC 特定のクライアントだけに メッセージを送る際に使う 今月は赤字
31.
何に使うのか • 主な用途はServerRPCに対する返答 • クライアント「ABC弾をターゲット(x,y,z)に向かって発射!」 •
サーバー「あなたは今動作出来ない状態なので弾が出せません!」 • クライアントからの要求を受けたが、ワールドに対して影響を与える必要が無く、 リクエスト送信者に対してだけなにかを返答を行いたいときに使います。
32.
ClientRPCを呼び出せるアクター • RemoteRoleがAutonomousProxyのアクター • PlayerControllerおよび操作対象のPawn •
ServerRPCに対して対になります
33.
MulticastRPC ごはんよー ごはんよー ごはんよー ごはんよー サーバーが自分を含む 全員に同じメッセージを送信
34.
Reliable と Unreliable
35.
Reliable • 特徴 • 呼び出した回数分「必ず」送信される •
パケロス時の再送制御付き • パケットのコピーが送信者のプロセス上に保 存される
36.
ReliableRPCを呼びすぎると どうなるのか • 受信確認が届かずに再送用のバッファが溢れた場合 ReliableBufferOverflowという警告と共に、即座に接続が切断され る
37.
Unreliable • 特徴 • マルチキャストとそれ以外で挙動がちょっと違う •
ClientとServer • 呼び出し回数分リクエストが送信される • 再送制御が無いので、パケットロストした場合は失われる • Multicast • これだけ挙動が違っていて、RPCリクエストは一旦バッファに蓄積されて、 アクターのレプリケート時に一緒に送信される • つまり送信が遅延する • バッファに蓄積された「同じRPC」が一定数を超えた場合、 送信すらされずに破棄される • 送信回数はパケロスが無かったとしても、保証されません
38.
RPCと帯域
39.
RPCは優先的に帯域を使う ActorB ActorC RPC先輩が使った帯域の余りを レプリケートに割り当てます RPC1 RPC2 RPC1RPC3 ActorA RPC4 RPC1 RPC2 RPC1RPC3 ActorA RPC4
40.
帯域を超えるRPC呼び出し 帯域設定を超えて送信される RPC1 RPC2 RPC3 RPC1 RPC2 RPC3 大きな構造体や配列を引数に使う とかんたんに飽和するので注意 ※10K / 60fpsだと1tickあたり 166byte程度しか無い
41.
さらにもっと呼び出すと 帯域設定を超えて送信される!
42.
エンジンは設定された帯域に 合わせようと頑張るので・・・
43.
こうなります・・・ 大量のRPC レプリケートが しばらく沈黙 レプリケーションに多大な悪影響!
44.
RPCでしょ レプリケートが 動作しない! レプリケートは なんか遅いしね RPC レプリケートは 信用できない! 何時くるの?! RPCにしていく よ 全部Reliableで いいね! 通信帯域が 飽和すると・・ RPC
45.
といっても、 タイトルによっては デフォルトの帯域制限値ではどうしても不足することもある
46.
枠を増やすしかない!
47.
帯域幅設定 ***Engine.ini の ConfiguredInternetSpeed 各クライアントに対して 12345 byte/secの制限 12K
* 4 client = 49KByte/sec 現在の帯域幅値表示 Displayall Player CurrentNetSpeed
48.
ConfiguredInternetSpeed 以外の帯域幅設定方法 • void APlayerController::SetNetSpeed(int32 NewSpeed); •
プレイヤーコントローラー毎に個別設定が可能 • ネイティブコードからアクセスする • Max(Internet)ClinetRateで制約される • お手軽で思い通りに操作できるのでオススメ • AGameNetworkManagerを使う • Ini設定などがあるため動きそうな気がする • 試しに設定してもデフォルトでは ゲームに影響を与えない模様。 • これもネイティブコードを触る必要がありそう • 未検証。すいません • 帯域設定は サーバーからクライアント向けの設 定のみ • クライアントからはRPC送信になるので帯域制限は ない
49.
帯域制御デモ • SetNetSpeedを呼び出して、リアルタイムに割当帯域を変える • ネイティブコードからしかアクセスできないので、BP版を作成 した。
50.
帯域制御デモ YouTube Link
51.
技術要件やハードの制約などと相談して 適切な値を設定して下さい
52.
RPCでアクタのステートを 変更する時の注意点 サーバー クライアントA クライアントB RPC(アクタAの顔色を青にして) レプリケート レプリケート あとから接続して来たクライ アントに情報が行き渡らない
53.
RPCについてまとめ • 即座送信や再送制御は便利 とても頼りがいがある •
呼び出し回数については注意が必要 UnreliableMulticastRPCは間引かれたり遅延したりする Reliableは回数保証 • 引数のデータサイズに気を付ける FHitResultとかを引数にいれてはいけません • 大量に呼び出すと 通信帯域を食いつぶしてレプリケーションが断続的に動作しなくなる事がある せっかくNetPriorityやFrequencyを設定してもすべて無意味に • ターゲットに合わせて通信帯域を設定
54.
MulticastRPCと レプリケートの使い分け
55.
プロパティの変化を伝えるだけなら RPCでもレプリケートでも同じことが出来る
56.
それぞれの特徴 • ReliableMulticastRPC • とても重要でサーバー側が呼び出した回数分処理される必要があるもの •
ロストしない • 即時送信 • 大量に呼び出されるとレプリケート帯域が悪化するので注意する • 信頼性が高い • UnreliableMulticastRPC • 最悪メッセージがロストする • 遅延する • 連続送信してしまったときに間引かれれる • 大量送信に対する保険 • 帯域は消費する • UnreliableClientRPC • 即時送信&ロストを許容 • Replicate+ClientRPCで値の変化を約束しつつ、即時性を与えるという組み合わせも考えられる • Replicate • プロパティを書き換える事が必要 • いつか必ず同期する • 遅延しても良い情報はReliableMulticastRPCではなくReplicateを使うべき • 送信間隔による変化のロストや遅延が考えられる
57.
わかりにくいのでフローチャート化
58.
NO! YES! YES! NO! プロパティを使えない イベント同報処理 ロスト不可 ReliableMulticastRPC UnreliableMulticastRPC
59.
Replicate NO! YES! YES! NO! YES! NO! どんな時でも 遅延は許せない ロスト不可 ロスト不可 ReliableMulticastRPC UnreliableMulticastRPC or Replicate UnreliableClientRPC or ReliableMulticastRPC
60.
• やはりReliableMulticastRPCは便利で使いたくなる • 帯域が逼迫していなければレプリケートはほとんど遅延しない •
帯域に余裕をもたせることがとても重要!
61.
SpawnActorを最速で レプリケートするトリック
62.
SpawnActorの遅延 • SpawnActorで生成されたアクターはレプリケーションでクライ アントに伝達される • 空き帯域が十分でない状態でアクタを生成すると、 リモートクライアント上でのアクターの生成が遅延する。 利用可能帯域によっては生成されないことすらある。 •
クライアント上の生成位置のズレなどが生まれる • 移動の軌跡を描きたいといった場合に問題が生ずる可能性がある • 初期座標などをレプリケートしてクライアント側で対処する • アクター生成をできるだけ早く処理するトリックを紹介
63.
最速アクター生成デモ • ボタンに反応してプレイヤーキャラクターが2つの弾を同時に 発射する • 茶色の玉はアクターを生成しただけ •
白い玉はアクターを生成し、そのアクターに対してRPCを呼ぶ • 動画前半は帯域制限なし、動画後半は帯域制限有り • 左上がListenServerで下側の2つがClientです • 帯域制限があるときに生成される玉はクライアントごとに違う
64.
Actor生成の後RPCを呼び出す RPC無し 茶玉 RPC有り 白玉
65.
動画 YouTube Link
66.
DedicatedServer
67.
DedicatedServerについて • Listenとの違い • コスト •
Cosmetic • Nativeコードでの注意 • DedicatedServerの遷移フロー • パフォーマンス制御
68.
ListenServerとの違い • 低コスト • RPCやReplicateの仕組みを使っていればネットコード自体は基本同じ •
DedicatedServerはviewportが無い • ローカルのカメラも無い • AController::IsLocalController() == true のPlayerControllerが無い • グローバルIPを割り当てることができる • NAT越え不要 • 大半のプレイヤーがトラブルなく接続できる • データセンターは基幹回線網に接続されているのでpingも良い • 自律的に動く • コンソールコマンドなどで直接操作はできない • クライアントからRPCを送信して操作する • 外部のゲームサーバー管理サーバーと通信して操作する
69.
ハードウェア資源コスト Client DedicatedServer CPU資源 あるだけ使う (250%以上) 大量のスレッド 1コアを100%として ロビー
5% バトル中 60% MaxTickRate : 60 ※Xeon E5-2698 v3 @ 2.30GHz メモリ 4GB+ 仮想メモリ(VIRT) 1.5GB 物理メモリ(RES) 0.8GB GPU 必要 不要 安価なクラウドサーバーで動作可能 軽量なゲームであれば、1コアに2プロセス以上も可能
70.
Cosmetic • DedicatedServer上で動くべきではないブループリントノードは Cosmetic指定が適用されている • UIやサウンドなど •
これらのノードはDedicatedServerでは処理がスキップされます
71.
NativeコードでCosmetic関数 • NativeコードにはCosmeticの様な自動的にスキップ処理をおこな うような機構は無い • それぞれ
IsNetMode(NM_DedicatedServer) などを用いて適切に処理する • BPコードをNativeコードに移した時にnullアクセスバグが起こりやすい • BPはnullアクセスがあっても警告のみで継続して動作する
72.
デディケートサーバーの 遷移フロー例
73.
LEVEL:バトルレベル LEVEL:ロビー LEVEL:ロビー LEVEL:バトルレベル すべてのプレイヤーが揃って、 全員の必要なアセットの読み込みが終わった ServerTravel(ロビー) プレイヤーを待つ ServerTravel(バトルレベル) バトルが終わったら全員いなくなるのを待つ マッチング DedicatedServerサーバーに接続 サーバーから退出 Open(マッチング) バトル
74.
ServerTravel時の注意 • 移動前に必要なアセットを予め読み込んでおく • トラベル時にブロック読み込みが長時間発生するとタイムアウトが発 生する可能性があるため •
ちなみに最初にクライアントがサーバーに接続する際も 最低でもタイムアウトしない程度にアセットをプリロードする必要があります。 • 接続エラーや切断 • 問題が発生した場合はGameDefaultMapへ移動する • GameDefaultMapは UGameMapsSettings::SetGameDefaultMap(FString&); でオーバーライドできる
75.
デプロイとテスト バージョン違いによって、接続できるが正しく実行できない現象 が起こる。 ソースコントロールのリビジョン番号を埋め込むなどで早い段階 でバージョンの相違が検出できるようにしておいたほうが良い。
76.
サーバーのパフォーマンス制御
77.
アクタやコンポーネントのTick省略 FTickFunction BlueprintはActor単位で
78.
パケット数制御 • 通信負荷軽減の為にPacketの数を制御したい • Packetの送信数はサーバーのTick回数×クライアント数 •
IniのNetServerMaxTickRateで最大Tick回数を制限する • NetClientTicksPerSecond • 1秒間に処理するクライアント数の制限値 • ListenServerならデフォルトで有効 • Dedicatedserverで適用したい場合は、コマンドラインオプション limitclientticks を つける • MagiciansDeadでは使っていません • あまりに低い値を設定しても効果が無い • ACKパケットだけが入ったパケットが送信されるためパケット数が余り減らない。謎
79.
レプリケーション負荷制御 • サーバーはTick毎に、レプリケート対象のアクターのプロパティを検査して変更を検出 する • アクターやレプリケート対象のプロパティが多いと、この検査コストが処理負荷として大きな比 重を占めることがある •
アクター毎に適切な NetUpdateFrequency を設定する • 重要性が低いものは更新間隔を低めにしておく • 必要あればランタイム中にNetUpdateFrequencyを手動で変更してもよい • 更新したいタイミングが明示的であれば、更新間隔自体を長めに設定しておきつつ、 値のセットと同時にAActor::ForceNetUpdate()をつかってすぐさま送信しても良い • Dormancyという機能もあるらしい • 更新間隔の自動制御 • net.UseAdaptiveNetUpdateFrequency(UE4.16ではデフォルトで有効) • 更新間隔の実績値を基準として次の更新予定を設定する • 値の範囲 • AActor::MinNetUpdateFrequency(下限) ~ AActor::NetUpdateFrequency(上限)
80.
まとめ
81.
まとめ • RPCの使いすぎは危ない • メリットとデメリットを把握してレプリケートで十分な所はレプリ ケートを用いる •
帯域が飽和しなければレプリケートは迅速に行われることを胸に刻む • 帯域を適切に設定して効率よく使う • NetUpdateFrequencyとNetPriorityを適切にコントロールする
82.
謝辞&参考資料 • イラスト屋様 • バイキングスタッフ •
CedricさんのUE Network解説ドキュメント http://cedric- neukirchen.net/Downloads/Compendium/UE4_Network_Compendiu m_by_Cedric_eXi_Neukirchen.pdf • 公式ドキュメント • UE4 Auswerhub
83.
勤務地 東京(東新宿) 勤務時間 10:00~18:30 (昼休み13:00~14:00) 給与 固定給制月給 ※経験・能力を考慮の上、決定。 例
プログラマー 業界歴11年 月給45万円 プログラマー 業界未経験 月給22万円 休日・休暇 完全週休2日制(土・日) 祝日 年末年始 有給休暇 結婚記念日 家族の誕生日 ※選考希望の方は弊社HPまでご連絡ください。 http://byking.jp/recruit/ 開発者募集中! 世界にどデカイ爪痕を残さないか!?
84.
ご清聴ありがとうございました!
85.
おまけ P2Pキー同期の通信モデル
86.
P2Pキー同期モデル Client ListenServer 物理コントローラー PlayerController1 (Authority) PlayerController2 (Automonious) 2Pキャラ 物理コントローラー 1Pキャラ 2Pキャラ 1Pキャラキーバッファ1P キーバッファ2P キーバッファ1P キーバッファ2P Unreliable ClientRPC Unreliable ServerRPC キャラクターはレプリケートOFF
87.
• P2Pであれば1HOPで通信できてお手軽 • キーデータは複数フレーム分を束ねて送る •
Reliableだと再送が起きた時にブロックするのでUnreliableが良い
88.
3人以上のルームを作りたい場合は • サーバー経由(2HOP)のメッセージのやり取りが必要になる • メッシュ型ネットワークが構成できると良いがむずかしい •
やっぱりUE4を頼らずに独自実装にならざるを得ない
Editor's Notes
本日のお題目はこのようになっておりますRPCレプリケートなどについて補足後、デディケートサーバーを扱う時のTIPSというながれで話させていただこうと思います。
まずはこれです。
公式ドキュメントを開くと目につく表だと思うのですが、最初見るとよくわからないこれRPCは赤枠で囲った所の挙動が重要です。
まずはシンプルなものから話します。サーバーRPCです
Autonomous オータァナァマァス
次にクライアントRPCです。特定のクライアントを指定して送信します。
リライアブル
ちなみに Lanなんとかと書いてある設定値は –lanplay コマンドライン引数に入れた時に適用されます。
ゲームロジックに影響を与えないコンポーネント - 例えばパーティクルのようなもの - はTick単位でDedicatedServer上で動作をカットすることができます。
おまけ
Download now