38
Networked Graphics Building Networked Virtual Environments and Networked Games Chapter 4: More Than Two

Chapter 4: More Than Two

  • Upload
    koko

  • View
    79

  • Download
    1

Embed Size (px)

DESCRIPTION

Chapter 4: More Than Two. BOIDS. SIMPLE PEER TO PEER. PEER TO PEER WITH MASTER. Host E. Host E. Host E. Host E. Host D. Host D. Host D. Host D. Host A. Host A. Host A. Host A. Host C. Host C. Host C. Host C. Host B. Host B. Host B. Host B. code(Flock flock). - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 4: More Than Two

Networked GraphicsBuilding Networked Virtual Environments and Networked GamesChapter 4: More Than Two

Page 2: Chapter 4: More Than Two

BOIDS

Page 3: Chapter 4: More Than Two
Page 4: Chapter 4: More Than Two

Network RendererDatamodel

IBoids

Config BoidsSystem

BehaviorIProtocol

Page 5: Chapter 4: More Than Two

-_remoteFlocks : Collection-_localFlock : Flock-_numBoids : int

Datamodel

-_flockID : int-_color : Color3f-_flock : Collection

Flock

-_geometry : Shape3D-_position : Vector3f-_velocity : Vector3f

Boid

IBoids

-_port : int-_ip : string

FlockRemote

Page 6: Chapter 4: More Than Two

SIMPLE PEER TO PEER

Page 7: Chapter 4: More Than Two
Page 8: Chapter 4: More Than Two
Page 9: Chapter 4: More Than Two

-_remoteFlocks : Collection-_localFlock : Flock-_numBoids : int

Datamodel

-_flockID : int-_color : Color3f-_flock : Collection

Flock

-_geometry : Shape3D-_position : Vector3f-_velocity : Vector3f

Boid

IBoids

-_port : int-_ip : string

FlockRemote

FlockRemoteFlag

Page 10: Chapter 4: More Than Two

Network

+code(in flock : Flock) : string+decode(in str : string)+setDatamodel(in datamodel : Datamodel)+setRenderer(in renderer : Renderer)+setNetwork(in network : Network)

«interface»IProtocol

Datamodel

-_sendSocket : DatagramSocket-_receiveSocket : DatagramSocket

UDPNetwork

Page 11: Chapter 4: More Than Two

Protocol

ProtocolP2PSimple

Datamodel

Network

Renderer

+code(in flock : Flock) : string+decode(in str : string)+setDatamodel(in datamodel : Datamodel)+setRenderer(in renderer : Renderer)+setNetwork(in network : Network)

«interface»IProtocol

Page 12: Chapter 4: More Than Two

PEER TO PEER WITH MASTER

Page 13: Chapter 4: More Than Two
Page 14: Chapter 4: More Than Two
Page 15: Chapter 4: More Than Two

-_remoteFlocks : Collection-_localFlock : Flock-_numBoids : int

Datamodel

-_flockID : int-_color : Color3f-_flock : Collection

Flock

-_geometry : Shape3D-_position : Vector3f-_velocity : Vector3f

Boid

IBoids

-_port : int-_ip : string

FlockRemote

Page 16: Chapter 4: More Than Two

Inactive Active

code(Flock flock)

create Announce messagesend message to master host

code(Flock flock)

create State messagesend message to every participating host

Page 17: Chapter 4: More Than Two

Inactive/Active

decode(String str) and Announce message

extract flock from received stradd FlockRemoteFlag to the Datamodel add FlockRemoteFlag to the Renderer

decode(String str) and State message

extract flock identifier from received strretrieve FlockRemoteFlag from Datamodel update FlockRemote from data on str

Inactive/Active

decode(String str) and Announce message

extract flock from received stradd FlockRemoteFlag to the Datamodel add FlockRemoteFlag to the Renderercreate an Announce message for local flocksend the created Announce message to the remote hostfor each registered remote flock { send the received Announce to remote flock create Announce message for remote flock send created Announce message to sender of flock}

decode(String str) and State message

extract flock identifier from received strretrieve FlockRemoteFlag from Datamodel update FlockRemote from data on str

Page 18: Chapter 4: More Than Two

PEER TO PEER WITH RENDEZVOUS

Page 19: Chapter 4: More Than Two

Rendez vous

Server

Rendez vous

Server

Rendez vous

Server

Rendez vous

Server

Rendez vous

Server

Rendez vous

Server

Page 20: Chapter 4: More Than Two
Page 21: Chapter 4: More Than Two

-_remoteFlocks : Collection-_localFlock : Flock-_numBoids : int

Datamodel

-_flockID : int-_color : Color3f-_flock : Collection

Flock

-_geometry : Shape3D-_position : Vector3f-_velocity : Vector3f

Boid

IBoids

-_port : int-_ip : string

FlockRemote

Page 22: Chapter 4: More Than Two

Inactive Active

code(Flock flock)

create Announce messagesend message to server

code(Flock flock)

create State messagesend message to server

Inactive/Active

decode(String str) and Announce message

extract flock from received stradd FlockRemoteFlag to the Datamodel add FlockRemoteFlag to the Renderer

decode(String str) and State message

extract flock identifier from received strretrieve FlockRemoteFlag from Datamodel update FlockRemote from data on str

Page 23: Chapter 4: More Than Two

Inactive/Active

receive() and Announce message

extract flock from received stradd FlockRemote to the datamodelfor each registered remote flock { send the received Announce to remote flock create Announce message for remote flock send created Announce message to sender of flock}

Page 24: Chapter 4: More Than Two

CLIENT/SERVER

Page 25: Chapter 4: More Than Two

Server

Server Server

Server

Server

Server

Page 26: Chapter 4: More Than Two
Page 27: Chapter 4: More Than Two

-_remoteFlocks : Collection-_localFlock : Flock-_numBoids : int

Datamodel

-_flockID : int-_color : Color3f-_flock : Collection

Flock

-_geometry : Shape3D-_position : Vector3f-_velocity : Vector3f

Boid

IBoids

Page 28: Chapter 4: More Than Two

Network

+code(in flock : Flock) : string+decode(in str : string)+setDatamodel(in datamodel : Datamodel)+setRenderer(in renderer : Renderer)+setNetwork(in network : Network)

«interface»IProtocol

Datamodel

-_sendSocket : DatagramSocket-_receiveSocket : DatagramSocket

UDPNetwork

UDPNetworkClient

Page 29: Chapter 4: More Than Two

Inactive Active

code(Flock flock)

create Announce messagesend message to rendezvous server

code(Flock flock)

create State messagesend message to every participating host

Inactive/Active

decode(String str) and Announce message

extract flock from received stradd Flock to the Datamodel add Flock to the Renderer

decode(String str) and State message

extract flock identifier from received strretrieve Flock from Datamodel update Flock from data on str

Page 30: Chapter 4: More Than Two

Inactive/Active

decode(String str) and Announce message

extract flock from received stradd FlockRemote to the Datamodel for each registered remote flock { create stripped version of the received Announce send the stripped Announce to remote flock create Announce message for remote flock send created Announce message to sender of flock}

decode(String str) and State message

extract flock identifier from received strfor each registered remote flock that is not the sender { send the received State to remote flock}

Page 31: Chapter 4: More Than Two

MULTICAST

Page 32: Chapter 4: More Than Two
Page 33: Chapter 4: More Than Two
Page 34: Chapter 4: More Than Two

-_remoteFlocks : Collection-_localFlock : Flock-_numBoids : int

Datamodel

-_flockID : int-_color : Color3f-_flock : Collection

Flock

-_geometry : Shape3D-_position : Vector3f-_velocity : Vector3f

Boid

IBoids

Page 35: Chapter 4: More Than Two

Network

+code(in flock : Flock) : string+decode(in str : string)+setDatamodel(in datamodel : Datamodel)+setRenderer(in renderer : Renderer)+setNetwork(in network : Network)

«interface»IProtocol

Datamodel

-_sendSocket : DatagramSocket-_receiveSocket : MulticastSocket

UDPNetworkMulticast

Page 36: Chapter 4: More Than Two

InactiveActive

code(Flock flock)

create Announce messagesend message to multicast group

code(Flock flock)

create State messagesend message to multicast group

JoinedInactive

code(Flock flock)

join multicast group

Page 37: Chapter 4: More Than Two

Inactive/Active

decode(String str) and Announce message

extract flock from received stradd Flock to the Datamodel add Flock to the Renderer

decode(String str) and State message

extract flock identifier from received strretrieve Flock from Datamodel update Flock from data on str

Page 38: Chapter 4: More Than Two

SUMMARY