講演動画:https://youtu.be/jykrWtBQEz0
2019年10月6日に行われた「UNREAL FEST EAST 2019」における「メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例」の登壇資料です。
●公式サイト
https://unrealengine.jp/unrealfest/
===
Nintendo Switch用ソフト『DAEMON X MACHINA(デモンエクスマキナ)』の開発について、エンジニアからはUE4をどのように活用しメカアクションを実現したか、また、アーティストからは本作の特徴的なルックの一つであるVFXをメインに、お伝えします。
This document discusses WebRTC and provides information about its capabilities and implementations. It covers topics like how WebRTC enables real-time communication directly in the browser between computers, mobile devices, and Internet of Things devices using APIs for audio/video streaming and peer-to-peer data sharing without plugins. It also discusses how WebRTC uses UDP and works around issues like NAT traversal using STUN, TURN, and ICE to establish connections.
講演動画:https://youtu.be/jykrWtBQEz0
2019年10月6日に行われた「UNREAL FEST EAST 2019」における「メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例」の登壇資料です。
●公式サイト
https://unrealengine.jp/unrealfest/
===
Nintendo Switch用ソフト『DAEMON X MACHINA(デモンエクスマキナ)』の開発について、エンジニアからはUE4をどのように活用しメカアクションを実現したか、また、アーティストからは本作の特徴的なルックの一つであるVFXをメインに、お伝えします。
This document discusses WebRTC and provides information about its capabilities and implementations. It covers topics like how WebRTC enables real-time communication directly in the browser between computers, mobile devices, and Internet of Things devices using APIs for audio/video streaming and peer-to-peer data sharing without plugins. It also discusses how WebRTC uses UDP and works around issues like NAT traversal using STUN, TURN, and ICE to establish connections.
Okinawa Open Days 2015 (2015年12月18日)の発表資料です。
"What is the ultimate protocol for online games?"
It's the presentation slides at Okinawa Open Days 2015 on Dec 18, 2015.
今年3月に発売されたFINAL FANTASY XV WINDOWS EDITIONでは、マルチプレイ実装にPhoton Serverを採用しています。コンソールのバージョンとも親和性が高く、なんと約1週間で動作するところまで到達しました!
本セッションでは、FF15内でのパケット送信のカスタマイズやマルチプレイ特有の実装、バックエンドサーバーの構成などのご紹介に加え、Photonのイントロダクションと最新情報も合わせてご案内いたします。内容の濃い45分間、ご期待ください!
This document discusses Hortonworks Data Platform (HDP) updates and releases. It notes that HDP will have more frequent releases of components like Spark, Hive, and Ambari, while having longer release cycles for core Hadoop components. HDP 2.5 is highlighted as including interactive Hive queries using LLAP, enterprise Spark support in Zeppelin notebooks, real-time applications support in Storm and HBase/Phoenix, streamlined operations using Ambari, and dynamic security with Atlas and Ranger integration.
This document discusses the evolution of Hadoop and its use cases in the adtech industry. It describes how Hadoop was initially used primarily for batch processing via Hive and MapReduce. Over time, improvements like Tez, Presto, and Impala enabled faster interactive SQL queries on big data. The document also outlines how the Hadoop ecosystem is now used for real-time log collection, reporting, model generation, and more across the entire adtech stack. Key recent developments discussed include improvements in Hive like LLAP that enable sub-second SQL and ACID transactions, as well as tools like Cloudbreak for deploying Hadoop clusters in the cloud.
Dynamic Resource Allocation in Apache SparkYuta Imai
Dynamic resource allocation in Apache Spark allows executors to be dynamically added or removed based on the workload of applications. Extra executors are added when applications have pending tasks to help balance workload, and idle executors are removed to free resources for other applications. The dynamic allocation policies control when executors are requested or removed based on factors like pending tasks and executor idle time. An external shuffle service is also used to improve shuffle performance.
今回のウェビナーでは、Hadoop1.xからみなさまに深く親しまれてきたApache Hiveが昨今、どのような形で高速化されてきたかについて話します。MapReduceからTezに変わった実行エンジン、インデックスを持ったカラムナーファイルフォーマットであるORC、モダンなCPUを最大限に活用するVectorization、Apache Calciteを利用したCost Based Optimizerによる実行計画の最適化、そして1秒以下のクエリレスポンスを実現するLLAPについて説明します。いずれの機能も数行の設定やコマンドで活用可能なものばかりですが、今回はそれらの背景でどんな仕組みが動いているのか、どんな仕組みで実現されているのかということについて話します。
The story about how to figure out what to measure, and how you can benchmark that. This slide deck tells the idea of benchmarking and does not tell actual commercial/open source benchmark tools.
What the end of support of Windows 10 will mean?Atomu Hidaka
What is the end of Windows 10 support? We have investigated and considered the past end of Windows support to find out what will happen when support ends. Although the end of support for Windows 10 is only half a year away, there are not many people who understand from a technical point of view what will happen when support ends, so we have summarized the facts that have happened in the past.
12. ⾮非同期型/サーバー集中処理理型
• FPSなど
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
まずはサーバーからPlayerに世界の状態のSnapshotが配布
されて、それをもとにそれぞれのプレイヤーマシンで画⾯面レンダリング
13. ⾮非同期型/サーバー集中処理理型
• FPSなど
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
State
State
render
render
Snapshot
サーバーは⾃自分のペースで次のフレームの世界のスナップショットを作り、
同じように配る
14. ⾮非同期型/サーバー集中処理理型
• FPSなど
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
State
State
render
render
Snapshot
Command
Command
同時にプレイヤーも活動を始める。プレイヤーからはコマンドがサーバーに
送られてくる。
15. ⾮非同期型/サーバー集中処理理型
• FPSなど
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
State
State
render
render
Snapshot
Command
Command
State
render
render
Snapshot
各プレイヤーのF2で送信されたコマンドは、サーバー上のF3のフレームで
処理理(当たり判定やアイテム取得判定)され、世界のスナップショットに反映され
ふたたびプレイヤーに配られる
16. ⾮非同期型/サーバー集中処理理型
• FPSなど
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
State
State
render
render
Snapshot
Command
Command
State
render
render
Snapshot
State
render
render
Snapshot
State
render
render
Snapshot
Command
Command
Command
Command
Command
Command
あとはその繰り返し
17. ⾮非同期型/サーバー集中処理理型
• FPSなど
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
State
State
render
render
Snapshot
Command
Command
State
render
render
Snapshot
State
render
render
Snapshot
State
render
render
Snapshot
Command
Command
Command
Command
Command
Command
• Client、Serverはそれぞれ独立したクロックで動作する
• Clientはコマンド送信と画面描画のみを管理し、当たり判定などはサーバー側で行う。
• なので自分の発行したコマンドの結果はサーバーからの返事をまって見た目上の世界に適用
される。
18. ⾮非同期型/サーバー集中処理理型
• FPSなど
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
State
render
Snapshot
Command
render
Snapshot
render
Snapshot
render
Snapshot
Command
Command
Command
• 実際には下記のようにレイテンシの高いユーザーがいることが多い。
• そういったユーザーのから見た世界は、サーバーよりも遅れている。(ラグ)
State
render
State
render
State
render
State
render
Command
Command
Command
Command
19. • PSU
PlayerA
PlayerB
F1
F2
F3
F4
F5
F6
Server
F1
F2
F3
F4
F5
F6
F1
State
F2
F3
F4
F5
F6
State
render
render
Snapshot
State
State
render
render
Snapshot
Command
Command
State
render
render
Snapshot
State
render
render
Snapshot
State
render
render
Snapshot
Command
Command
Command
Command
Command
Command
• Client、Serverはそれぞれ独立したクロックで動作する
• Client側でダメージやアイテム取得を判断して、Server側でValida@on
• サーバー側を待つ処理がより少ないので快適度があがる
⾮非同期型/クライアント分散処理理型
参考 hAp://www.mmorpg.com/gamelist.cfm/game/215/view/forums/thread/104863/PSU-‐netcode.html
22. レイテンシについての実際の調査
• Unreal Tournament 2003
– 3% packet loss and 140ms latency at
maximum
– 75ms以上だとユーザーがラギーに感じる
– 100msを超えると遊びづらくなる
T.
Beigbeder,
R.
Coughlan,
C.
Lusher,
J.
PlunkeA,
E.
Agu,
and
M.
Claypool,
“The
effects
of
loss
and
latency
on
user
performance
in
unreal
tournament
2003,”
in
Proceedings
of
the
3rd
ACM
SIGCOMM
Workshop
on
Network
and
System
Support
for
Games,
ACM,
Portland,
Ore,
USA,
2004.
23. • FIFA soccer
– 150msを超えるとゲームが成り⽴立立たない
– 実際の平均レイテンシは118ms
レイテンシについての実際の調査
M.
Dick,
O.
Wellnitz,
and
L.
Wolf,
“Analysis
of
factors
affec@ng
players’
performance
and
percep@on
in
mul@player
games,”
in
Proceedings
of
the
4th
ACM
SIGCOMM
Workshop
on
Network
and
System
Support
for
Games,
ACM,
Hawthorne,
NY,
USA,
2005.
25. • A racing game
– レイテンシが50msを超えるとラップタイムが落落ち
始める
– だが上級者なら150msくらいまで影響を受けない
– 50ms以下のレイテンシはユーザーに気づかれない
– 200msを超えると明らかにラギーに感じる
– 500msになるとゲームが成り⽴立立たない
レイテンシについての実際の調査
L.
Pantel
and
L.
C.
Wolf,
“On
the
impact
of
delay
on
real-‐@me
mul@player
games,”
in
Proceedings
of
the
12th
Interna@onal
Workshop
on
Network
and
Opera@ng
Systems
Support
for
Digital
Audio
and
Video,
ACM,
Miami,
Fla,
USA,
2002.
26. • Shen Zhou Online(MMORPG)
– 150ms以下のレイテンシにおける平均プレイ
時間は4時間
– 250msだと平均1時間
レイテンシについての実際の調査
K.-‐T.
Chen,
P.
Huang,
and
C.-‐L.
Lei,
“How
sensi@ve
are
online
gamers
to
network
quality?”
Communica@ons
of
the
ACM,
vol.
49,
no.
11,
pp.
34–38,
2006.
27. • Half-‐‑‒Life(FPS)
– 50msを超えると結構つらい
レイテンシについての実際の調査
T.
Henderson
and
S.
Bhah,
“Networked
games—a
QoS-‐
sensi@ve
applica@on
for
QoS-‐insensi@ve
users?”
in
Proceedings
of
the
ACM
SIGCOMM
Workshop
on
Revisi@ng
IP
QoS:
What
Have
We
Learned,
Why
Do
We
Care?
pp.
141–147,
ACM,
Karlsruhe,
Germany,
2003.
28. • Madden NFL Football
– 500msくらいまでならユーザーは気づかない
– 750msになるとラギーだと思われ始める
レイテンシについての実際の調査
J.
Nichols
and
M.
Claypool,
“The
effects
of
latency
on
online
Madden
NFL
football,”
in
Proceedings
of
the
14th
Interna@onal
Workshop
on
Network
and
Opera@ng
System
Support
for
Digital
Audio
and
Video,
pp.
146–151,
ACM,
Cork,
Ireland,
2004.
40. ネットワークについての⼯工夫
Server
Player
A
Master
snapshot
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
Snapshot1
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
最初のスナップショットを送信
41. ネットワークについての⼯工夫
Server
Player
A
Master
snapshot
Player
B:
pos[0]=A,
pos[1]=E,
pos[2]=C,
health=D
Snapshot1
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
Ack
Player
AがAck
Player
Bが移動
42. ネットワークについての⼯工夫
Server
Player
A
Master
snapshot
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=H
Snapshot1
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
Ack
Snapshot2
Player
B:
pos[0]=A,
pos[1]=E,
pos[2]=C,
health=D
?
次のフレームのスナップショットを送るが、Ackされない
マスターのSnapshotは
常に進んで行く
43. ネットワークについての⼯工夫
Server
Player
A
Master
snapshot
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=H
Snapshot1
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
Ack
Snapshot1
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
?
Snapshot1
Player
B:
pos[0]=A,
pos[1]=E,
pos[2]=C,
health=H
次の送信時には、Ackされていないところから
最新のフレームまで送信
44. ネットワークについての⼯工夫
Server
Player
A
Master
snapshot
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=H
Snapshot1
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
Ack
Snapshot1
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
health=D
?
Snapshot1
Player
B:
pos[0]=0,
pos[1]=+2,
pos[2]=0,
health=-‐2
更にデータサイズを小さくするため、前のフレームから
の差分を取るデルタ圧縮方式を利用している
48. Player
B
最新のスナップショット
Player
B:
pos[0]=A,
pos[1]=B,
pos[2]=C,
velocity=...
次のスナップショットの予測
Player
B:
pos[0]=A’,
pos[1]=B’,
pos[2]=C’,
velocity=...
Player
B
Player
B
次のスナップショットが
到着するまでの間の
Player Bの予測はクライ
アント側で予測して描画
する
さらにネットワーク依存を軽減する:
Prediction