Presentation is loading. Please wait.

Presentation is loading. Please wait.

Building a Better Jump J

Similar presentations


Presentation on theme: "Building a Better Jump J"— Presentation transcript:

1 Building a Better Jump J
Building a Better Jump J. Kyle Co-founder, Minor Key Games

2 Hi I’m Kyle Hi Kyle XX

3 Motivation Avoid hardcoding, guessing games
Design jump trajectory on paper Derive constants to model jump in code

4 Motivation Has this ever happened to you?
There’s GOT to be a better way!!

5 Assumptions Model player as a simple projectile Game state
Position, velocity integrated on a timestep Acceleration from gravity No air friction / drag 2m (23m+ rem)

6 Gravity Single external force Constant acceleration over time

7 Integration Integrate over time to find velocity

8 Integration Integrate over time again to find position

9 Projectile motion Textbox Physics 101 projectile motion
Understand how we got there

10 Parabolas Algebraic definition Substituting 5m (20m+ rem)

11 Properties of parabolas
Symmetric

12 Properties of parabolas
Geometric self-similarity

13 Properties of parabolas
Shaped by quadratic coefficient

14 Design on paper 7m (18m+ rem)

15 Design on paper 7m (18m+ rem)

16 Maths Derive values for gravity and initial velocity in terms of peak height and duration to peak

17 Initial velocity Solve for v0:

18 Solve for g: Gravity Known values:

19 Solve for v0: Back to init. vel.

20 Review

21 Time  space Design with x-axis as distance in space
Introduce lateral (foot) speed Keep horizontal and vertical velocity components separate

22 Parameters

23 Time  space

24 Time  space

25 Maths Rewrite gravity and initial velocity in terms of foot speed and lateral distance to peak of jump

26 Maths

27 Review

28 Breaking it down Real world: Projectiles always follow parabolic trajectories. Game world: We can break the rules in interesting ways. Break our path into a series of parabolic arcs of different shapes. 13m (12m+ rem)

29 Breaks Maintain continuity in position and velocity
Trivial in implementation Choose a new gravity to shape our jump

30 Fast falling Position Velocity / Acceleration

31 Variable height jumping
16m (9m+ rem) Position Velocity / Acceleration

32 Double jumping Position Velocity / Acceleration

33 Integration Put our gravity and initial velocity constants to use in practice Integrate from a past state to a future state over a time step 19m (6m+ rem)

34 Integration 19m (6m+ rem)

35 Euler Pseudocode pos += vel * Δt vel += acc * Δt Easy Unstable
We can do better

36 Runge-Kutta (RK4) The “top-shelf” integrator. No pseudocode here. :V
Gaffer on Games: “Integration Basics” Too complex for our needs.

37 Velocity Verlet Pseudocode pos += vel*Δt + ½acc*Δt*Δt new_acc = f(pos) vel += ½(acc+new_acc)*Δt acc = new_acc

38 Observations Similarity to projectile motion formula
What if our acceleration were constant? We could integrate with 100% accuracy

39 Assuming constant acceleration

40 Assuming constant acceleration
Pseudocode pos += vel*Δt + ½acc*Δt*Δt vel += acc*Δt Trivially simple change from Euler 100% accurate as long as our acceleration is constant

41 Near-constant acceleration
What if we don’t change a thing? The error we accumulate when our acceleration does change (versus Velocity Verlet) will be: Δacc * Δt * Δt Acceptable?

42 The takeaway Design jump trajectories as a series of parabolic arcs
Can author unique game feel Trust result to feel grounded in physical truths

43 Questions? In practice: You Have to Win the Game (free game PLAY IT PLAY MY THING) The


Download ppt "Building a Better Jump J"

Similar presentations


Ads by Google