Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31,...

32
Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. [email protected] May 31, 2007

description

Why? Learn what worked (big picture) Tricks of the past (small picture) Spare cycles (hah!) on next gen “Doing a lot with a little is something we can't forget how to do.” – Mike Acton, Insomniac Studios

Transcript of Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31,...

Page 1: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Rally Cross physics:An Analysis 10 Years Later

Jim BuckTwitchy Thumbs Entertainment, Inc.

[email protected] 31, 2007

Page 2: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Who is this dude??

• 1996 – 2000 : 989 Studios, programmer• 2000 – 2003 : DepthQ, founder• 2003 – 2005 : SCEA, programmer• 2005 – present : Twitchy Thumbs, founder

Page 3: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Why?

• Learn what worked (big picture)• Tricks of the past (small picture)• Spare cycles (hah!) on next gen

“Doing a lot with a little is something we can't forget how to do.”

– Mike Acton, Insomniac Studios

Page 4: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

What is Rally Cross?

Page 5: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

What is Rally Cross?

• PS1 off-road racing game• Feb ‘97 in North America• Sony-developed/published• 200,000 sell-through N.A.

• Japanese/PAL releases• Considered “cult” classic• One of first for PS1-on-PSP

Page 6: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

What is Rally Cross?

Pre-demo

Page 7: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Rally Cross physics history

• Chris Hecker physics articles too late (Oct 96 - Jun 97)

• SGI 4dgifts buttonfly visualizer demo• Robert Sheehan’s bouncer simulation

Page 8: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Physics Primer

• F = m*a• v += a*t = (F/m)*t• p += v*t

All math is 1.19.12 fixed-point!

Page 9: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

What is Rally Cross physics?

Springs!(well, actually, damped springs)

Page 10: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Damped spring physics

t = 0

t = 1x

F = – k*x – c*v1

v0

v1

Spring at rest

Hooke’s law

Page 11: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Rally Cross physics components

• Vehicle box• Box interaction with ground• Box interaction with track boundaries• Box interaction with another box (vehicle)• Vehicle-specific physics

Page 12: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Vehicle Box

• 8 points, or point masses, representing box corners

• Each point accumulates forces (F) and gets time-stepped at bottom of loop

• 28 damped springs from each point to every other point

Page 13: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Vehicle Box

Page 14: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Vehicle Box

For each spring:• x = length(p1 – p0) - at_rest_length

• v = dot(v1 – v0, unit(p1 – p0))

• F = (– k*x – c*v) * unit(p1 – p0)

• F1 += F, F0 += –F

p0

p1

v1

v0

Page 15: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Vehicle Box

• “Shock” springs are special• Separated into Y and ortho-Y vectors• “Softer” in Y than in ortho-Y• Ortho-Y treated same as other springs

Page 16: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Box Interaction with Ground

• Ground is a height-mapped grid• Gravity constantly affects point masses:

F = m*G

Page 17: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

vn

Box Interaction with Ground

• For each point mass, if under height-map:– xn = (height_map(p.x, p.z) – p.y) *

normal_map(p.x, p.z).y– vn = dot(v, normal_map(p.x, p.z)

– F = (– k*xn – c*vn) * normal_map(p.x, p.z)

• Formula is for a damped spring!

p

xxn

v

n

height_map

Page 18: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Sidebar: Friction

• Static: Fmax = fs*N

• Kinetic: F = fk*N

v = 0

m*G

NF fs*N

v

m*G

N fk*N

Page 19: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Box Interaction with Ground

Friction• Viscous: F = –fv*vo

• Static/kinetic– If vo == 0

• If Fo <= fs*xn, Fo = 0

• Else Fo –= fk*xn

– Else if length(vo + (Fo/m)*t) <= (fk*xn)*t, vo = 0

– Else F = –unit(vo) * fk*xn

Page 20: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Box Interaction with Boundaries

• 2d (infinite height) line segments surrounding the track

• Physics is same as for hitting the ground– Damped spring pushing back along normal– Friction applied ortho to the normal

vn

pxn

v

n

Out of boundsIn bounds

Page 21: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Box Interaction with Another Box

• Sphere test for each car pair• If succeeds, ray-through-box test

x

F = (– k*x – c*vn) * normal

(Formula look familiar?)

Page 22: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Box Interaction with Another Box

• If ray-through-box fails, test each car’s points against other’s box

x

Again, F = (– k*x – c*vn) * normal

n

Page 23: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Vehicle-specific Physics

• For steering, F = –kv*vx (viscous friction!)• For acceleration in Z, that’s a whole

‘nother presentation

X X ZZ

Page 24: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

But briefly…

engine axle

gear ratio

wheel axle

fs*N or fk*N

Page 25: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Physics Rendering

• Points time-stepped: v += (F/m)*t, p += v*t• Display matrix:

• Car position = top_center – box_height• Wheel position = based on shock length

X

ZTop face

Page 26: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Physics Demo

Page 27: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Problems

• Box freaking out• Stuck on track boundaries

Page 28: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

• Check “crossbars” dot product is in safe range

• Check upper points are “above” lower points

Box Freaking Out

Lower points

Upper points

+

= bad!

Page 29: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Stuck on Track Boundaries

• Stuck if 2 adjacent points such that: dot(n0b, n1b) < 0

• Find boundary intersected by center of box to center of the 2 points

• Push out with spring equation

Page 30: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Optimizations

• Constants mostly power-of-2• Pre-calcs (ex. 1/mass * time)• Cached and local pointers• 64-bit MIPS mults• Assembly language for key math functions

and height-map lookup

Page 31: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Evolution of Physics

• CART World Series– correct friction model on wheels

• Twisted Metal 3– height-map gone– collision with 3d geometry with no penetration

• Twisted Metal 4– car-to-car collision using CSG– better graphics

Page 32: Rally Cross physics: An Analysis 10 Years Later Jim Buck Twitchy Thumbs Entertainment, Inc. May 31, 2007.

Q&A