Upload
merilyn-robbins
View
215
Download
1
Embed Size (px)
Citation preview
Burnout 3: Case StudyBurnout 3: Case Study(Outline)(Outline)
What is Burnout 3?What is Burnout 3? What does this mean?What does this mean? How did we satisfy these constraints?How did we satisfy these constraints?
RacecarsRacecars Traffic systemTraffic system Aggressive drivingAggressive driving
What did we learn?What did we learn?
What is Burnout 3?What is Burnout 3?
RacingRacing Aggressive drivingAggressive driving CrashingCrashing TrafficTraffic Fast paced, twitch gamingFast paced, twitch gaming
What does this mean?What does this mean?
RacingRacing Cars must be in the right position, travelling at the right Cars must be in the right position, travelling at the right
speedspeed Car movement should be as smooth and similar to offline Car movement should be as smooth and similar to offline
as possibleas possible Cars will only change speed/direction graduallyCars will only change speed/direction gradually
Aggressive drivingAggressive driving Cars really, really must be in the right position, travelling Cars really, really must be in the right position, travelling
at the right speedat the right speed Important events must be the same on all consoles Important events must be the same on all consoles
(slam/shunt/takedown)(slam/shunt/takedown)
What does this mean?What does this mean?
CrashingCrashing Cars must be in the right position, travelling at the right Cars must be in the right position, travelling at the right
speedspeed Cars must be able to change velocity sharplyCars must be able to change velocity sharply
TrafficTraffic Traffic system must handle up to 254 cars without maxing Traffic system must handle up to 254 cars without maxing
out bandwidth (10kB/s)out bandwidth (10kB/s) Fast paced, twitch gamingFast paced, twitch gaming
Client must be authoritativeClient must be authoritative
RacecarsRacecars
Client owns their own positionClient owns their own position Your car doesn’t jump or move unexpectedlyYour car doesn’t jump or move unexpectedly Open to cheatingOpen to cheating
Racecars version 0.1Racecars version 0.1
Send matrix and velocity in update packetSend matrix and velocity in update packet Put the racecar where the packet says, when it Put the racecar where the packet says, when it
arrivesarrives Cars are seen in the pastCars are seen in the past Cars jump when latency varies (and it does!)Cars jump when latency varies (and it does!) Simple and cheap (memory + CPU)Simple and cheap (memory + CPU)
Racecars version 0.5Racecars version 0.5
Buffer messageBuffer message Apply it when its time has comeApply it when its time has come
Cars are smootherCars are smoother Cars are even more ‘in the past’ because buffering adds Cars are even more ‘in the past’ because buffering adds
latencylatency If you don’t apply packets you receive ‘late’ you are If you don’t apply packets you receive ‘late’ you are
artificially increasing packet loss tooartificially increasing packet loss too Uses slightly more memory, but still cheap in terms of Uses slightly more memory, but still cheap in terms of
CPUCPU More complicated, and applying ‘late’ messages makes it More complicated, and applying ‘late’ messages makes it
even more complicatedeven more complicated
Racecars final versionRacecars final version
When message arrives extrapolate position When message arrives extrapolate position forwards in timeforwards in time
First attempt: extrapolating position using First attempt: extrapolating position using velocityvelocity
Second attempt: Lightweight version of Second attempt: Lightweight version of physicsphysics Cars are seen in the presentCars are seen in the present Not as smooth as version 0.5Not as smooth as version 0.5 Expensive in CPUExpensive in CPU
Traffic SystemTraffic System
Size of traffic ID/position/orientation 10 bytesSize of traffic ID/position/orientation 10 bytes Traffic system is updating up to 254 cars at Traffic system is updating up to 254 cars at
onceonce So total packet size to send position and So total packet size to send position and
orientation of all traffic is 2540 bytes!orientation of all traffic is 2540 bytes! Traffic system must be deterministicTraffic system must be deterministic
Traffic SystemTraffic System
Based on lanesBased on lanes Traffic cars follow a param along a laneTraffic cars follow a param along a lane Traffic cars stop at traffic lightsTraffic cars stop at traffic lights Traffic cars change lane at certain points Traffic cars change lane at certain points
(splitters)(splitters) Divergence detectionDivergence detection
In game replays helped lots!In game replays helped lots!
Crashing trafficCrashing traffic
If a car crashes you can’t remove it from the traffic If a car crashes you can’t remove it from the traffic systemsystem It becomes invisible, and ignored by physicsIt becomes invisible, and ignored by physics
Traffic ownershipTraffic ownership You detect that an unowned traffic car has crashedYou detect that an unowned traffic car has crashed You start sending out updates (you own it)You start sending out updates (you own it) Other people apply your updatesOther people apply your updates Is possible for more than one player to own a traffic carIs possible for more than one player to own a traffic car
Can’t afford to extrapolate, so run in the past (racecar Can’t afford to extrapolate, so run in the past (racecar version 0.5)version 0.5) Change to past masked by smoke and particles!Change to past masked by smoke and particles!
Aggressive DrivingAggressive Driving
Send extra info in updates Send extra info in updates (slam/shunt/takedown)(slam/shunt/takedown)
Send multiple times in case of packet loss, but Send multiple times in case of packet loss, but only for about half a secondonly for about half a second
PickupsPickups
Similar to aggressive drivingSimilar to aggressive driving Two players can get the same pickupTwo players can get the same pickup
End of raceEnd of race
Send results packetSend results packet Race timeRace time Fastest lapFastest lap Crash damageCrash damage PickupsPickups
Susceptible to cheatingSusceptible to cheating
What we learntWhat we learnt
Plan to network from the outsetPlan to network from the outset Traffic systemTraffic system
Try anything unknown in prototypeTry anything unknown in prototype RacecarsRacecars Crashing trafficCrashing traffic
Networking strategy is game-specificNetworking strategy is game-specific Reassess if game design changesReassess if game design changes
Develop and test in real world conditionsDevelop and test in real world conditions