SlideShare ist ein Scribd-Unternehmen logo
1 von 92
Downloaden Sie, um offline zu lesen
@hunterloftis
Making Sense of Multiplayer
Hunter Loftis
Engineering Manager, Heroku
@ Connect.Tech 2018
1962
1987
1996
1998
2004
Pre-2011
"Netcode" experts
C++, TCP, UDP, ICMP, routing
@hunterloftis
2011 Renaissance
WebSocket protocol (+Node.js)
@hunterloftis
Shared Spaces
Shared Spaces
Shared Spaces
Shared Spaces
Shared Spaces
@hunterloftis
But...
@hunterloftis
Most people fail the first time.
@hunterloftis
Most people fail the first time.
I did!
@hunterloftis
Most people fail the first time.
I did!
... and the second, third, and fourth times too.
@hunterloftis
Common issues
@hunterloftis
Common issues
• Choppy updates
@hunterloftis
Common issues
• Choppy updates
• Laggy controls
@hunterloftis
Common issues
• Choppy updates
• Laggy controls
• Changes being applied and then un-applied
@hunterloftis
Common issues
• Choppy updates
• Laggy controls
• Changes being applied and then un-applied
• Inconsistent client behavior
@hunterloftis
Common issues
• Choppy updates
• Laggy controls
• Changes being applied and then un-applied
• Inconsistent client behavior
• Rule breaking
@hunterloftis
We're ignoring decades of
experience!
@hunterloftis
Netcode 101
@hunterloftis
What is real-time multiplayer?
@hunterloftis
What is real-time multiplayer?
A Lie.
"It turns out it’s all an illusion. A
massive sleight-of-hand."
- Glenn Fiedler,
Networking for Game Programmers
@hunterloftis
@hunterloftis
100% Scientific
bandwidth / $
compute / $
speed of light / $
Time
@hunterloftis
bandwidth / $
compute / $
speed of light / $
Time
@hunterloftis
Sharing an environment over
thousands of miles is impossible.
@hunterloftis
Instead, create an illusion:
@hunterloftis
Instead, create an illusion:
1. Input gives feedback immediately.
@hunterloftis
Instead, create an illusion:
1. Input gives feedback immediately.
2. Players believe they are sharing an environment.
@hunterloftis
Instead, create an illusion:
1. Input gives feedback immediately.
2. Players believe they are sharing an environment.
3. Everyone eventually ends up in the same state.
@hunterloftis
How? Entities + Stacked State
@hunterloftis
How? Entities + Stacked State
View
@hunterloftis
How? Entities + Stacked State
View
Predicted
@hunterloftis
How? Entities + Stacked State
View
Predicted
Interpolated
@hunterloftis
How? Entities + Stacked State
View
Predicted
Interpolated
Authoritative
@hunterloftis
How? Entities + Stacked State
View
Predicted
Interpolated
Authoritative
@hunterloftis
Entities
@hunterloftis
Entities
@hunterloftis
Entities
• Have a unique ID.
@hunterloftis
Entities
• Have a unique ID.
• Belong to an owner.
@hunterloftis
Entities
• Have a unique ID.
• Belong to an owner.
• Belong to a timeline.
Entities provide a way to partition state
{
id: 4,
x: 50,
y: 22,
angle: 0,
health: 0.7,
firing: false
}
@hunterloftis
Entities from different timelines can coexist.
time = 1.5s
time = 1.75s
@hunterloftis
Divergence sacrifices accuracy for smoothness.
@hunterloftis
Authoritative State
sendToServer({ hit: true })
@hunterloftis
Input In - State Out
Server
{ leftKey: true }
[{ id: 1, x: -10, y: 0 }
{ id: 2, x: 10, y: 0 }]
{ rightKey: true }
@hunterloftis
Authoritative Server
@hunterloftis
Authoritative Server
• Prevents cheating
@hunterloftis
Authoritative Server
• Prevents cheating
• Ensures eventual consistency
@hunterloftis
Authoritative Server
• Prevents cheating
• Ensures eventual consistency
• Allows secrets
@hunterloftis
"Update Rate"
How frequently the server sends updates to clients.
(eg, 10 Hz)
@hunterloftis
Interpolated State
@hunterloftis
Interpolation
@hunterloftis
Interpolation
• Stores the last two authoritative states in history.
@hunterloftis
Interpolation
• Stores the last two authoritative states in history.
• Animates from history[0] to history[1].
@hunterloftis
Interpolation
• Stores the last two authoritative states in history.
• Animates from history[0] to history[1].
• Extrapolates if new data doesn't arrive on time.
history[0] history[1] extrapolated
@hunterloftis
Predicted State
@hunterloftis
Client-Side Prediction
@hunterloftis
Client-Side Prediction
• Records a buffer of local input.
@hunterloftis
Client-Side Prediction
• Records a buffer of local input.
• Applies the buffer over the most recent
authoritative state.
@hunterloftis
Client-Side Prediction
• Records a buffer of local input.
• Applies the buffer over the most recent
authoritative state.
• Only simulates a subset of the rules.
@hunterloftis
Local input stacks on top of authoritative history to
push local entities further in time.
history[0] history[1]
input inputinput
@hunterloftis
View State
@hunterloftis
View State
@hunterloftis
View State
• Isn't propagated across the network.
@hunterloftis
View State
• Isn't propagated across the network.
• May be different per-client.
@hunterloftis
View State
• Isn't propagated across the network.
• May be different per-client.
• Adds details to authoritative state.
@hunterloftis
Putting it all together
@hunterloftis
A moment in time
Server
input 45input 46input 47
state (43)state (42)
state (41)
input 44
state (40)
@hunterloftis
Player B
Sees himself start moving up
immediately, then sees Player A
start moving up.
Player A
Sees herself start moving up
immediately, then sees Player B
start moving up.
Both players press UP at the same time.
@hunterloftis
Player B
Sees himself stop moving
immediately, then sees Player A
stop moving at the same height.
Player A
Sees herself stop moving
immediately, then sees Player B
stop moving at the same height.
Both players release UP at the same time.
@hunterloftis
The illusion has limits
Latency
Fighters/Sports
Twitchy shooters
Today's demo
Real-time strategy
Chess
@hunterloftis
Questions so far?
@hunterloftis
Questions so far?
View
@hunterloftis
Questions so far?
View
Predicted
@hunterloftis
Questions so far?
View
Predicted
Interpolated
@hunterloftis
Questions so far?
View
Predicted
Interpolated
Authoritative
@hunterloftis
Questions so far?
View
Predicted
Interpolated
Authoritative
@hunterloftis
ctdf.herokuapp.com
@hunterloftis
Questions?
https://github.com/hunterloftis/dogfight
http://www.pages.drexel.edu/~ecb44/print.html
https://www.pcgamer.com/netcode-explained/
http://www.gabrielgambetta.com/client-server-game-architecture.html
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
http://www.gamasutra.com/view/news/128323/Seven_Years_Of_World_Of_Warcraft.php
https://gafferongames.com/post/what_every_programmer_needs_to_know_about_game_networking
https://stackoverflow.com/questions/11436311/realtime-multiplayer-game-principles-for-tcp-and-node-js
"250 Handdrawn Textures" art by Daniel Cook
Plane sprites by Sujit Yadav
Particle sprites by Kenney

Weitere ähnliche Inhalte

Was ist angesagt?

PostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical ReplicationPostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical Replication
Atsushi Torikoshi
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
tcaesvk
 

Was ist angesagt? (20)

Riot Games - Player Focused Pipeline - Stampedecon 2015
Riot Games - Player Focused Pipeline - Stampedecon 2015Riot Games - Player Focused Pipeline - Stampedecon 2015
Riot Games - Player Focused Pipeline - Stampedecon 2015
 
GDC2011 - Motivating Players in Open Worlds
GDC2011 - Motivating Players in Open WorldsGDC2011 - Motivating Players in Open Worlds
GDC2011 - Motivating Players in Open Worlds
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성
 
02. 게임 전투 공식
02. 게임 전투 공식02. 게임 전투 공식
02. 게임 전투 공식
 
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
Vitess: Scalable Database Architecture -  Kubernetes Community Days Africa Ap...Vitess: Scalable Database Architecture -  Kubernetes Community Days Africa Ap...
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
 
PostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical ReplicationPostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical Replication
 
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
 
Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
 
Advanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applicationsAdvanced Flink Training - Design patterns for streaming applications
Advanced Flink Training - Design patterns for streaming applications
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
 

Ähnlich wie Making Sense of Multiplayer

Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
Tomas Doran
 
An Introduction to Druid
An Introduction to DruidAn Introduction to Druid
An Introduction to Druid
DataWorks Summit
 

Ähnlich wie Making Sense of Multiplayer (20)

Scylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at TwitterScylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
Scylla Summit 2017: Managing 10,000 Node Storage Clusters at Twitter
 
InfectNet Technical
InfectNet TechnicalInfectNet Technical
InfectNet Technical
 
Cloud-Native Observability
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native Observability
 
Managing 10,000 Node Storage Clusters at Twitter
Managing 10,000 Node Storage Clusters at TwitterManaging 10,000 Node Storage Clusters at Twitter
Managing 10,000 Node Storage Clusters at Twitter
 
[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 
Meetup on Apache Zookeeper
Meetup on Apache ZookeeperMeetup on Apache Zookeeper
Meetup on Apache Zookeeper
 
AdhearsionConf 2013 Keynote
AdhearsionConf 2013 KeynoteAdhearsionConf 2013 Keynote
AdhearsionConf 2013 Keynote
 
Thinking in Properties
Thinking in PropertiesThinking in Properties
Thinking in Properties
 
Killzone Shadow Fall: Threading the Entity Update on PS4
Killzone Shadow Fall: Threading the Entity Update on PS4Killzone Shadow Fall: Threading the Entity Update on PS4
Killzone Shadow Fall: Threading the Entity Update on PS4
 
Code reviews vs Pull requests
Code reviews vs Pull requestsCode reviews vs Pull requests
Code reviews vs Pull requests
 
An Introduction to Druid
An Introduction to DruidAn Introduction to Druid
An Introduction to Druid
 
Fire kit ios (r-baldwin)
Fire kit ios (r-baldwin)Fire kit ios (r-baldwin)
Fire kit ios (r-baldwin)
 
akka-scalaphx-jun2015
akka-scalaphx-jun2015akka-scalaphx-jun2015
akka-scalaphx-jun2015
 
Test Automation in the Microservices Oriented Enterprise by Shawn Wallace
Test Automation in the Microservices Oriented Enterprise by Shawn WallaceTest Automation in the Microservices Oriented Enterprise by Shawn Wallace
Test Automation in the Microservices Oriented Enterprise by Shawn Wallace
 
Inside the IT Territory game server / Mark Lokshin (IT Territory)
Inside the IT Territory game server / Mark Lokshin (IT Territory)Inside the IT Territory game server / Mark Lokshin (IT Territory)
Inside the IT Territory game server / Mark Lokshin (IT Territory)
 
DMCA#21: reactive-programming
DMCA#21: reactive-programmingDMCA#21: reactive-programming
DMCA#21: reactive-programming
 
Modern API Security with JSON Web Tokens
Modern API Security with JSON Web TokensModern API Security with JSON Web Tokens
Modern API Security with JSON Web Tokens
 
Best Practices for Design Hardware APIs
Best Practices for Design Hardware APIsBest Practices for Design Hardware APIs
Best Practices for Design Hardware APIs
 
BeJUG JAX-RS Event
BeJUG JAX-RS EventBeJUG JAX-RS Event
BeJUG JAX-RS Event
 

Mehr von Hunter Loftis

Mehr von Hunter Loftis (10)

Painting with Light: 3D Rendering in Golang
Painting with Light: 3D Rendering in GolangPainting with Light: 3D Rendering in Golang
Painting with Light: 3D Rendering in Golang
 
Painting with Light (Scenic City Summit)
Painting with Light (Scenic City Summit)Painting with Light (Scenic City Summit)
Painting with Light (Scenic City Summit)
 
Stop js-1999
Stop js-1999Stop js-1999
Stop js-1999
 
Production-Ready Node.js
Production-Ready Node.jsProduction-Ready Node.js
Production-Ready Node.js
 
Playing with Photons in JavaScript
Playing with Photons in JavaScriptPlaying with Photons in JavaScript
Playing with Photons in JavaScript
 
Nobody Wants Junior Engineers
Nobody Wants Junior EngineersNobody Wants Junior Engineers
Nobody Wants Junior Engineers
 
Stop JavaScripting like it's 1999
Stop JavaScripting like it's 1999Stop JavaScripting like it's 1999
Stop JavaScripting like it's 1999
 
We Will All Be Game Developers
We Will All Be Game DevelopersWe Will All Be Game Developers
We Will All Be Game Developers
 
ConvergeSE: We Will All Be Game Developers
ConvergeSE: We Will All Be Game DevelopersConvergeSE: We Will All Be Game Developers
ConvergeSE: We Will All Be Game Developers
 
ForwardJS: We Will All Be Game Developers
ForwardJS: We Will All Be Game DevelopersForwardJS: We Will All Be Game Developers
ForwardJS: We Will All Be Game Developers
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

Making Sense of Multiplayer