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

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

Jan 08, 2018

Download

Documents

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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