Physical ¡Simula-on ¡ CS ¡4730 ¡– ¡Computer ¡Game ¡Design ¡ ¡ CS ¡4730 ¡
First ¡thing ¡to ¡realize… ¡ • Physics ¡(like, ¡all ¡of ¡physics ¡and ¡doing ¡all ¡of ¡ physics) ¡is ¡HARD ¡ • Physics ¡in-‑game ¡is ¡HARD ¡ • You ¡(as ¡beginning ¡game ¡designers… ¡or ¡as ¡later ¡ pro ¡game ¡designers) ¡probably ¡do ¡NOT ¡want ¡to ¡ do ¡your ¡own ¡physics ¡in ¡many ¡circumstances ¡ • … ¡well, ¡it ¡depends. ¡ CS ¡4730 ¡ 2
KinemaPcs ¡vs. ¡Dynamics ¡ • KinemaPcs ¡is ¡the ¡study ¡of ¡moPon ¡(posiPon, ¡ velocity, ¡acceleraPon) ¡ • Dynamics ¡is ¡the ¡full ¡interacPvity ¡of ¡all ¡the ¡ forces ¡in ¡the ¡environment ¡ • You ¡can ¡handle ¡kinemaPcs ¡ • You ¡probably ¡don’t ¡want ¡to ¡handle ¡dynamics ¡ • So, ¡we’ll ¡use ¡enough ¡kinemaPcs ¡to ¡make ¡ people ¡believe ¡it ¡and ¡“fake” ¡the ¡rest! ¡ • Yes. ¡ ¡Fake ¡it. ¡ CS ¡4730 ¡ 3
Immersion ¡in ¡the ¡World ¡ • When ¡a ¡ball ¡hits ¡a ¡paddle ¡or ¡brick ¡in ¡Breakout, ¡ how ¡does ¡it ¡behave? ¡ • hZp://www.roundgames.com/game/ Xenocrate+2 ¡ CS ¡4730 ¡ 4
Immersion ¡in ¡the ¡World ¡ • How ¡does ¡the ¡ball ¡react? ¡ • Why ¡does ¡it ¡react ¡the ¡way ¡it ¡does? ¡ • How ¡does ¡it ¡react ¡differently ¡if ¡it ¡hits ¡in ¡the ¡ middle ¡of ¡the ¡paddle ¡vs. ¡the ¡edge ¡of ¡the ¡ paddle? ¡ CS ¡4730 ¡ 5
Immersion ¡in ¡the ¡World ¡ • Why ¡does ¡the ¡ball ¡behave ¡like ¡this? ¡ • Is ¡this ¡an ¡“accurate” ¡portrayal ¡of ¡the ¡world? ¡ • What’s ¡wrong ¡with ¡the ¡physics ¡here? ¡ CS ¡4730 ¡ 6
Physics ¡in ¡Games ¡ • So ¡the ¡quesPon ¡is ¡not ¡always ¡“how ¡do ¡we ¡ model ¡precise ¡physics” ¡ ¡ • But ¡more ¡ocen ¡it’s ¡“how ¡do ¡we ¡model ¡a ¡ physics ¡that ¡makes ¡sense ¡in ¡this ¡world” ¡ • “The ¡correct ¡physics” ¡is ¡ocen ¡essenPal ¡to ¡a ¡ posiPve ¡play ¡experience ¡and ¡also ¡fosters ¡new ¡ dynamics ¡in ¡a ¡game ¡ • Remember: ¡physics ¡is ¡the ¡mathemaPcal ¡study ¡ of ¡the ¡physical ¡world ¡ CS ¡4730 ¡ 7
The ¡Role ¡of ¡Physics ¡ Detect Collisions • Responsive forces Accumulate Forces • Equations of Motion Numerical Integration • Updated world at Δ t in the future Enforce Constraints • Adjust world to maintain user constraints CS ¡4730 ¡ 8
Basic ¡Overall ¡Idea ¡ • Assume ¡you ¡have ¡a ¡simple ¡parPcle ¡ • You ¡know ¡it’s ¡current ¡start ¡posiPon ¡ • You ¡know ¡it’s ¡current ¡velocity ¡and ¡acceleraPon ¡ • You ¡know ¡the ¡current ¡forces ¡working ¡on ¡it ¡ • You ¡know ¡(or ¡can ¡adjust) ¡the ¡Pme ¡unPl ¡the ¡ next ¡frame ¡to ¡draw ¡ • Where’s ¡the ¡parPcle ¡when ¡the ¡next ¡frame ¡is ¡ drawn? ¡ CS ¡4730 ¡ 9
How ¡do ¡we ¡pull ¡this ¡off? ¡ • Roll ¡your ¡own ¡ – Pull ¡out ¡your ¡physics ¡book ¡(or ¡don’t ¡as ¡the ¡game ¡ requires) ¡and ¡go ¡to ¡town ¡ – Perhaps ¡crazy ¡physics ¡is ¡a ¡mechanic ¡in ¡your ¡game ¡ – Consider ¡the ¡physics ¡of ¡Breakout ¡ – What ¡do ¡you ¡have ¡to ¡calculate? ¡ – How ¡do ¡you ¡change ¡from ¡frame ¡to ¡frame? ¡ CS ¡4730 ¡ 10
How ¡do ¡we ¡pull ¡this ¡off? ¡ • Pull ¡in ¡a ¡package ¡ – Unity ¡ – Havoc ¡ – PhysX ¡(hardware ¡acceleraPon) ¡ – Chipmunk ¡ – Farseer ¡(what ¡you ¡would ¡probably ¡use) ¡ CS ¡4730 ¡ 11
ParPcle ¡KinemaPcs ¡-‑ ¡PosiPon ¡ • What ¡is ¡a ¡ParPcle? ¡ – A ¡sphere ¡of ¡finite ¡radius ¡with ¡a ¡perfectly ¡smooth, ¡ fricPonless ¡surface ¡ – Experiences ¡no ¡rotaPonal ¡moPon ¡ • ParPcle ¡KinemaPcs ¡ – Defines ¡the ¡basic ¡properPes ¡of ¡parPcle ¡moPon ¡ – PosiPon, ¡Velocity, ¡AcceleraPon ¡ p p , p , p = x y z CS ¡4730 ¡ 12
Newton’s ¡Laws ¡ • First ¡Law: ¡An ¡object ¡in ¡moPon ¡will ¡remain ¡in ¡ moPon ¡unless ¡acted ¡upon ¡by ¡external ¡force. ¡ • Second ¡Law: ¡Force ¡= ¡Mass ¡* ¡AcceleraPon ¡ • Third ¡Law: ¡Every ¡acPon ¡has ¡an ¡equal ¡and ¡ opposite ¡reacPon. ¡ CS ¡4730 ¡ 13
Variables ¡ • t x ¡The ¡final ¡Pme ¡for ¡the ¡period ¡we ¡are ¡ ¡ ¡examining ¡ • t 0 ¡The ¡iniPal ¡Pme ¡ • Δ t ¡The ¡change ¡in ¡Pme ¡(t x ¡– ¡t 0 ) ¡for ¡the ¡period ¡ we ¡are ¡examining ¡ • Δ v ¡The ¡change ¡in ¡velocity ¡(v x ¡– ¡v 0 ) ¡for ¡the ¡ ¡ ¡period ¡we ¡are ¡examining ¡ • Δ a ¡The ¡change ¡in ¡acceleraPon ¡(a x ¡– ¡a 0 ) ¡for ¡the ¡ ¡ ¡period ¡we ¡are ¡examining ¡ CS ¡4730 ¡ 14
Change ¡in ¡Velocity ¡ • Assume ¡the ¡acceleraPon ¡(and ¡mass ¡and ¡thus ¡ force) ¡is ¡constant ¡ • The ¡velocity ¡at ¡a ¡given ¡Pme ¡is ¡the ¡sum ¡of: ¡ – the ¡iniPal ¡velocity ¡ – the ¡change ¡due ¡to ¡the ¡acceleraPon ¡ F v v t = + m Δ t 0 CS ¡4730 ¡ 15
Change ¡in ¡PosiPon ¡ • Assume ¡the ¡acceleraPon ¡(and ¡mass ¡and ¡thus ¡ force) ¡is ¡constant ¡ • The ¡posiPon ¡at ¡a ¡given ¡Pme ¡is ¡the ¡sum ¡of: ¡ – the ¡iniPal ¡posiPon ¡ – the ¡posiPon ¡change ¡due ¡to ¡the ¡iniPal ¡velocity ¡ – The ¡posiPon ¡change ¡due ¡to ¡the ¡acceleraPon ¡ F 2 p p v t t = + Δ + Δ t 0 0 2 m CS ¡4730 ¡ 16
EquaPons ¡are ¡great… ¡but… ¡ • Having ¡the ¡equaPons ¡just ¡tells ¡us ¡what ¡to ¡do, ¡ but ¡not ¡how ¡to ¡actually ¡update ¡the ¡parPcle ¡ based ¡on ¡all ¡the ¡changes ¡incurred ¡by ¡a ¡field ¡of ¡ forces ¡ • We ¡have ¡to ¡solve ¡for ¡the ¡equaPons ¡of ¡moPon ¡ for: ¡ • s t ¡State ¡and ¡f(s t ) ¡velocity ¡field ¡ CS ¡4730 ¡ 17
The ¡Problem ¡With ¡IntegraPon ¡ • It’s ¡all ¡an ¡approximaPon ¡ • If ¡the ¡Δt ¡is ¡too ¡big, ¡then ¡you ¡get ¡really ¡ imprecise ¡physics ¡ • If ¡the ¡Δt ¡is ¡too ¡small, ¡your ¡processor ¡can’t ¡ handle ¡it ¡all ¡ • If ¡it ¡happens ¡in ¡a ¡single ¡frame, ¡all ¡variables ¡are ¡ constant ¡ • How ¡do ¡curved ¡trajectories ¡turn ¡out? ¡ CS ¡4730 ¡ 18
It ¡Gets ¡Worse… ¡ • Rigid ¡body ¡physics ¡adds ¡in ¡volume ¡and ¡mass ¡ • So ¡now, ¡we ¡are ¡focusing ¡our ¡equaPons ¡on ¡the ¡ center ¡of ¡mass ¡of ¡the ¡body… ¡but ¡other ¡things ¡ could ¡also ¡happen, ¡such ¡as ¡torque ¡ CS ¡4730 ¡ 19
Looking ¡at ¡Physics ¡Code ¡ • Let’s ¡look ¡at ¡Farseer ¡physics ¡again… ¡ • How ¡about ¡another ¡game? ¡ CS ¡4730 ¡ 20
Different ¡Physics ¡ • Why ¡are ¡these ¡built ¡differently? ¡ • Why ¡does ¡this ¡maZer? ¡ – Mechanics ¡perspecPve ¡ – Dynamics ¡perspecPve ¡ – AesthePcs ¡perspecPve ¡ CS ¡4730 ¡ 21
Recommend
More recommend