Networking Real-Time Multiplayer Games

Ayla Myers

(Navigate these slides with spacebar)

What We'll Learn

What problems are there?

How do we solve those problems?

What decisions do we have to make?

Assumptions

We can send messages! (socket.io?)

Messages arrive in order

Client-server architecture

Thin Client

Thin Client

Thin Client

Thin Client

Thin Client

Thin Client

Thin Client

Client-Side Prediction

Client-Side Prediction

Client-Side Prediction

Client-Side Prediction

Latency Stabilization

Latency Stabilization

Latency Stabilization

Latency Stabilization

Latency Stabilization

Rewinds

Let's create a game simulation that is:

  • Deterministic
  • State-based
  • Takes inputs

Rewinds

Rewinds

Rewinds

Rewinds

Rewinds

Rewinds

Rewinds

Rewinds

Rewinds

Rewinds

Rewinds

Putting it Together

Trade-off between latency and chance of rewinds

Putting it Together

Putting it Together

Putting it Together

Putting it Together

Thank you!

Follow me at @bridgs_dev

See more at http://brid.gs

See it all in practice at this repo