chapter 4: more than two
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 PresentationTRANSCRIPT
![Page 1: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/1.jpg)
Networked GraphicsBuilding Networked Virtual Environments and Networked GamesChapter 4: More Than Two
![Page 2: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/2.jpg)
BOIDS
![Page 3: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/3.jpg)
![Page 4: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/4.jpg)
Network RendererDatamodel
IBoids
Config BoidsSystem
BehaviorIProtocol
![Page 5: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/5.jpg)
-_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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/6.jpg)
SIMPLE PEER TO PEER
![Page 7: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/7.jpg)
![Page 8: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/8.jpg)
![Page 9: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/9.jpg)
-_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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/10.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/12.jpg)
PEER TO PEER WITH MASTER
![Page 13: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/13.jpg)
![Page 14: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/14.jpg)
![Page 15: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/15.jpg)
-_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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/16.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/17.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/18.jpg)
PEER TO PEER WITH RENDEZVOUS
![Page 19: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/19.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/20.jpg)
![Page 21: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/21.jpg)
-_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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/22.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/23.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/24.jpg)
CLIENT/SERVER
![Page 25: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/25.jpg)
Server
Server Server
Server
Server
Server
![Page 26: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/26.jpg)
![Page 27: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/27.jpg)
-_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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/28.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/29.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/30.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/31.jpg)
MULTICAST
![Page 32: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/32.jpg)
![Page 33: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/33.jpg)
![Page 34: Chapter 4: More Than Two](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/34.jpg)
-_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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/35.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/36.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/37.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062422/56813c9d550346895da649b3/html5/thumbnails/38.jpg)
SUMMARY