15
Burnout 3: Case Study Burnout 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 How did we satisfy these constraints? constraints? Racecars Racecars Traffic system Traffic system Aggressive driving Aggressive driving What did we learn? What did we learn?

Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

Embed Size (px)

Citation preview

Page 1: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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?

Page 2: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

What is Burnout 3?What is Burnout 3?

RacingRacing Aggressive drivingAggressive driving CrashingCrashing TrafficTraffic Fast paced, twitch gamingFast paced, twitch gaming

Page 3: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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)

Page 4: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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

Page 5: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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

Page 6: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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)

Page 7: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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

Page 8: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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

Page 9: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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

Page 10: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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!

Page 11: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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!

Page 12: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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

Page 13: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

PickupsPickups

Similar to aggressive drivingSimilar to aggressive driving Two players can get the same pickupTwo players can get the same pickup

Page 14: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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

Page 15: Burnout 3: Case Study (Outline) What is Burnout 3? What is Burnout 3? What does this mean? What does this mean? How did we satisfy these constraints? How

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