![Page 1: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/1.jpg)
G54GAM -‐ Games
• Mul.player Games
![Page 2: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/2.jpg)
Mul.player Games
• Single Player – Pre-‐defined challenges, “campaigns”
– Ar.ficial Intelligence controlled opponents using Finite State Machines – Simple MVC design
– Player vs “the game”
• Mul.-‐Player – More than one player can play in the same environment at the same
.me
– Interac.on with other players forms a key challenge of the game play
– How can we build such a system?
– What are some of the issues that arise?
![Page 3: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/3.jpg)
![Page 4: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/4.jpg)
Where is the view?
• Local – Players are co-‐located – Share the same console / screen / pc
– Share or split screen into two or four sec.ons – Arcade games, racing, figh.ng, co-‐opera.ve shooters
• Networked / Online – Players are physically separated – Game play is shared over the network / Internet – Many combina.ons of players 2 -‐> ??
– FPSs, MMORPGs
![Page 5: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/5.jpg)
Sta.c Shared View – Bomber Man
![Page 6: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/6.jpg)
Adap.ve Shared View – Street Fighter
![Page 7: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/7.jpg)
Adap.ve Shared View – Street Fighter
![Page 8: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/8.jpg)
Same Model Static or Adaptive View
Controller B
Controller A
![Page 9: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/9.jpg)
Split-‐Screen View – Mario Kart
![Page 10: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/10.jpg)
Same Model
Controller B
Controller A
View B
View A
![Page 11: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/11.jpg)
Networked / Online Game Play
• Players are physically separate • Where is the game?
• Master and slave – Usually two players, local network
• Dedicated server and Clients – Mul.ple players, local network, internet
• (Peer-‐to-‐peer) – Largely theore.cal
![Page 12: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/12.jpg)
Master and Slave
Master Game Instance Slave Game
Instance
![Page 13: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/13.jpg)
Model
Controller A
View A
![Page 14: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/14.jpg)
Model
Controller B
Controller A
View B
View A
Controller B
network
![Page 15: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/15.jpg)
Client Server
Game Server
Client
Client Client
Client Client
![Page 16: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/16.jpg)
Model
Controllers
View C
Controller C
View B
Controller B
View A
Controller A
![Page 17: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/17.jpg)
Dynamic Master-‐Slave
Client
Client Client
Client
![Page 18: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/18.jpg)
Dynamic Master-‐Slave
Client
Client Client
Client
![Page 19: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/19.jpg)
Dynamic Master-‐Slave
Client
Client Client
Client
![Page 20: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/20.jpg)
Model
Controllers
View C
Controller C
View B
Controller B
View A
Controller A
![Page 21: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/21.jpg)
Sadly it’s not that simple
• Game loop runs at 30 Hz
• Renderer redraws at 50-‐100 Hz
• Each input has to… – Travel from the client to the server
– Be processed by the server – Wait for the server loop to update the model
– Travel from the server to the client
– Be drawn onscreen • For several players on the Internet playing a fast paced game
– This is very slow – Requires a lot of bandwidth (each client needs to know about the current state
of the model every loop) – Packets get lost or delayed or arrive out of order
![Page 22: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/22.jpg)
Decoupling
Check input
Update Simula.on 1/frequency
As fast as possible / fixed frequency
Draw Frame when possible
As fast as possible
Interpolate Mo.on
(Network latency?)
![Page 23: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/23.jpg)
Local Replica.on
• Give each client its own replica of the model to use
• The server is the authority on what is happening • The Client
– Receives regular snapshots of the server model • UDP (fast, but unreliable @~20Hz)
– Has a local replica of the server’s logic – Between snapshots uses its local replica of the model to calculate the current state to render the view
– Tells the server what it is doing, so the server can update the master model
![Page 24: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/24.jpg)
Model
Controllers
View C
Controller C
View B
Controller B
View A
Controller A
Model A
Model B
Model C
delays
![Page 25: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/25.jpg)
Lag
• Network delays lead to logical Inconsistencies • A player shoots at another player
– The player/client thinks they hit – The fire command takes some .me to get to the server
– The server thinks the player missed
• Two players try to pick up the same gold – We both arrived at the gold at the same .me – Who picked up the gold?
– We both did, we both saw that we did
– Who gets to keep it?
![Page 26: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/26.jpg)
Lag
• Implementa.on needs to have – Speed (otherwise it feels slow and jerky) – Synchronisa.on (to avoid logical inconsistencies) – Not use too much bandwidth (remember dial-‐up) – Cope with packet loss
• Client predic.on • En.ty interpola.on • Lag compensa.on
![Page 27: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/27.jpg)
En.ty Interpola.on
• Client is responsible for frame-‐to-‐frame movement simula.on and rendering – X is moving at speed Y with direc.on Z, so move it a bit
– 100Hz • Server is responsible for the bigger picture, the context and the consequences – X has picked up the gold, Y hasn’t – X has fired a gun and hit Y – X has pressed UP so start them moving
– 20Hz
![Page 28: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/28.jpg)
Lag Compensa.on
• Dead Reckoning – X is moving at speed Y
– We haven’t received a snapshot but need to draw a frame, so move it a bit ourselves
– It’s likely that X will con.nue to move at speed Y because there’s nothing near it
– …allows smoother graphics than the network allows
• Deltas – Only tell the client what has changed, rather than send the full model
snapshot
– Send full snapshot ajer a network delay so that the client gets back in sync
– …reduces bandwidth use
![Page 29: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/29.jpg)
Client Predic.on
• The player pressed up • Send the command to the server controller
• While we’re wai.ng for the updated snapshot, start moving anyway
• Rewind if we got it wrong • …the game feels more responsive than the network allows
![Page 30: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/30.jpg)
Server-‐side Lag Compensa.on
• The server keeps a record of current round-‐trip-‐.me for all the clients (.me for a packet to travel from client-‐>server-‐>client)
• Remember where everything was up to a second ago • When a new command is received, es.mate when it was sent rather than when it was received
• Use a historical snapshot of the model to work out what happened
• …the command is executed hopefully as if there was no lag
![Page 31: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/31.jpg)
lag
![Page 32: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/32.jpg)
Scalability
• Basic client server model – Is reasonable for small numbers of players
• Second Life – 15 million registered accounts – Average 10000 players at any one .me?
• World of Warcraj – 11 million paying subscribers
![Page 33: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/33.jpg)
Scalability
• Moderated Awareness – Server(s) maintains the complete model for all players – Client receives only a subset of the model relevant to the player – Where the player is and what is nearby
• Lobbies – A master server maintains a browse-‐able list of all ac.ve servers that a
player can join
• Instances – Mul.ple iden.cal instances of the server model – Each player inhabits only one – Create new instances as required
• …can make the game bigger by adding more server hardware, does not affect the clients
![Page 34: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/34.jpg)
Lobby
Master Server
DM Server
CTF Server
Team Server
Client
Client Client
Client
Client
Client
![Page 35: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/35.jpg)
Instances
Server
Client Client
Client Client
Server
Client Client
Client Client
Server
Client Client
Client Client
Server
Client Client
Client Client
![Page 36: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/36.jpg)
Second Life Grid
Server Server
Server Server
Server Server
Server
Server
Server
![Page 37: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/37.jpg)
Social Challenges
![Page 38: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/38.jpg)
Different Altudes to the Game
• Degree of lusory altude – Taking pleasure in playing the game – Accep.ng that rules lead to limita.ons – Accep.ng the rules as play is an end in itself
• Rela.onship to the rules – How much the player adheres to the rules
• Opera.onal – the formal rules • Implicit – the social rules
– Acknowledges the authority of the rules • Can/should they be broken?
• Interest in winning – How much the player wants to win
![Page 39: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/39.jpg)
Types of Players
• Standard Player – Possesses lusory altude
– Acknowledges authority of the rules – Typical interest in winning
• Dedicated Player • Unsportsmanlike Player
• Cheat • Spoil-‐Sport
![Page 40: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/40.jpg)
Types of Players
• Standard Player • Dedicated Player
– Extra-‐zealous lusory altude – Special interest in understanding and mastering the rules
– Intense interest in winning • Unsportsmanlike Player • Cheat • Spoil-‐Sport
![Page 41: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/41.jpg)
Types of Players
• Standard Player • Dedicated Player • Unsportsmanlike Player
– Some.mes dedicated, some.mes a cheat – Adheres to opera.onal rules, violates implicit rules
– Intense interest in winning • Cheat • Spoil-‐Sport
![Page 42: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/42.jpg)
Types of Players
• Standard Player • Dedicated Player • Unsportsmanlike Player
• Cheat – Pretends to possess lusory altude – Violates opera.onal rules in secret – Intense interest in winning
• Spoil-‐Sport
![Page 43: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/43.jpg)
Types of Players
• Standard Player • Dedicated Player • Unsportsmanlike Player
• Cheat • Spoil-‐Sport / Griefer
– No pretense about lack of lusory altude – No interest in adhering to any rules – No interest in winning
![Page 44: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/44.jpg)
Breaking the Rules
• A big problem in online games
• Making use of dominant strategies in order to win – Standard player vs dedicated player – Trick jumping, camping, weapon imbalances, short cuts
• Breaking opera.onal rules – Hacking the client – Using bots to automate play
• Breaking implicit rules – Mul.ple concurrent sessions – Killing team members / Spying for the other team
– Subver.ng game economy (“gold farming”)
– Disrup.ng the play of other players
![Page 45: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/45.jpg)
![Page 46: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/46.jpg)
![Page 47: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/47.jpg)
Reducing Rule Breaking
• Sanc.oned Chea.ng – Make chea.ng a form of game play – Difficult to maintain meaningful play
• Formalise implicit rules as opera.onal rules – Viola.ons are punished within the scope of the game
– Killing a team-‐mate = lose a point – Gold farming
• Violates EULA (“opera.onal rule”) • Account is banned
![Page 48: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/48.jpg)
Reducing Rule Breaking
• Technical Measures – Never trust the client – Aoempt to hinder the use of bots / client hacks
• PunkBuster / The Warden / Valve An.-‐Cheat System et al search the clients memory for known hacks, scripts, behaviours
• Impossible to completely stop client hacking
• Occasionally punishes innocent players – Ban offenders by email, IP address and MAC address
• Social Measures – Player empowerment
• Allow players to vote out or mute offensive players
– Employ moderators to police the game
![Page 49: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/49.jpg)
Model
Controllers
View C
Controller C
View B
Controller B
View A
Controller A
Model A
Model B
Model C
delays
![Page 50: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/50.jpg)
![Page 51: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/51.jpg)
![Page 52: G54GAM’&Games& - cs.nott.ac.ukpszmdf/g54gam/g54gam_lecture10.pdf · Mul.player&Games& • SinglePlayer& – Pre’defined&challenges,&“campaigns”& – Ar.ficial&Intelligence&controlled&opponents&using&Finite&State&Machines&](https://reader036.vdocument.in/reader036/viewer/2022070901/5f4898a8a104fc1b74556d42/html5/thumbnails/52.jpg)
References
• hop://developer.valvesojware.com/wiki/Source_Mul.player_Networking
• hop://www.youtube.com/watch?v=0OiamBxxoXA