Skip to content

205sla/movement-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Game AI Movement Algorithms โ€” Interactive Visualization

๊ฒฝํฌ๋Œ€ํ•™๊ต ์ธ๊ณต์ง€๋Šฅ ์ˆ˜์—… Chapter 5: Movement ๊ฐ•์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘ํ•œ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์‹œ๊ฐํ™” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๊ต์žฌ: AI for Games (3rd Edition), Ian Millington

Demo

https://movement-algorithms.205.kr/

๋˜๋Š” index.html์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ์—ด์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. (๋ณ„๋„ ์„ค์น˜ ๋ถˆํ•„์š”, ๋‹จ์ผ HTML ํŒŒ์ผ)

ํฌํ•จ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (16๊ฐœ ๋ฐ๋ชจ)

Kinematic (์†๋„ ๊ธฐ๋ฐ˜, ๊ฐ€์†๋„ ์—†์Œ)

๋ฐ๋ชจ ์„ค๋ช…
Seek & Flee ํƒ€๊ฒŸ ๋ฐฉํ–ฅ์œผ๋กœ maxSpeed ์ด๋™ / ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ ๋„์ฃผ. Overshoot ๋ฌธ์ œ ํ™•์ธ ๊ฐ€๋Šฅ
Arrive ๋งŒ์กฑ ๋ฐ˜๊ฒฝ(satisfaction radius) ๋‚ด ์ •์ง€. ๊ฑฐ๋ฆฌ ๋น„๋ก€ ๊ฐ์†
Wander randomBinomial()์„ ์ด์šฉํ•œ ๋žœ๋ค ๋ฐฐํšŒ

Steering โ€” Fundamental (๊ฐ€์†๋„ ๊ธฐ๋ฐ˜)

๋ฐ๋ชจ ์„ค๋ช…
Seek (Orbiting) ๊ฐ€์†๋„ ์ถœ๋ ฅ. Drag ON/OFF ํ† ๊ธ€๋กœ ๊ถค๋„ ์„ ํšŒ(Orbiting) ๋ฌธ์ œ ์‹œ๊ฐํ™”
Arrive (Two Radii) targetRadius(์ •์ง€) + slowRadius(๊ฐ์†) ๋‘ ๋ฐ˜๊ฒฝ ์‹œ๊ฐํ™”
Align mapToRange๋กœ ์ตœ๋‹จ ํšŒ์ „ ๊ฒฝ๋กœ ๊ฒฐ์ •. Arrive์˜ ํšŒ์ „ ๋ฒ„์ „
Velocity Matching ํƒ€๊ฒŸ์˜ ์†๋„๋ฅผ ๋งค์นญ. Flocking์˜ Alignment์—์„œ ์‚ฌ์šฉ

Steering โ€” Delegated (์œ„์ž„ ํŒจํ„ด)

๋ฐ๋ชจ ์„ค๋ช…
Pursue & Evade ๋ฏธ๋ž˜ ์œ„์น˜ ์˜ˆ์ธก โ†’ Seek/Flee ์œ„์ž„. Evade ํ† ๊ธ€ ์ง€์›
Face & LookWhereYoureGoing ์ขŒ์šฐ ๋ถ„ํ•  ๋น„๊ต. Face=์œ„์น˜ ๊ธฐ๋ฐ˜, LWYG=์†๋„ ๋ฐฉํ–ฅ ๊ธฐ๋ฐ˜ ํšŒ์ „
Wander (Circle) ์ „๋ฐฉ ์› ์œ„์˜ ๋žœ๋ค ์  โ†’ Seek ์œ„์ž„. ์› ํฌ๊ธฐ ์กฐ์ ˆ ๊ฐ€๋Šฅ
Path Following Chase the Rabbit / Predictive ๋ชจ๋“œ ์ „ํ™˜
Collision Avoidance ์ด๋™ ์บ๋ฆญํ„ฐ ๊ฐ„ closest approach time ๊ณ„์‚ฐ, ์›๋ฟ” ํƒ์ง€
Obstacle Avoidance Ray Casting + ๋ฒ•์„ (normal) ๋ฐฉํ–ฅ ํšŒํ”ผ. Whisker ๋ ˆ์ด ๊ตฌ์„ฑ

Combining (ํ–‰๋™ ๊ฒฐํ•ฉ)

๋ฐ๋ชจ ์„ค๋ช…
Flocking Separation + Cohesion + Alignment ๊ฐ€์ค‘ํ•ฉ. ํž˜ ๋ฒกํ„ฐ ์‹œ๊ฐํ™”
Blending Problems ์•ˆ์ • ๊ท ํ˜•์ (Stable Equilibria) / Blending vs Arbitration ๋น„๊ต

์‚ฌ์šฉ๋ฒ•

  • ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ
  • ์บ”๋ฒ„์Šค ํด๋ฆญ: ํƒ€๊ฒŸ ์œ„์น˜ ์„ค์ • (๋ฐ๋ชจ๋ณ„ ์ƒ์ด)
  • ํ•˜๋‹จ ๋ฒ„ํŠผ: ๋ชจ๋“œ ์ „ํ™˜, ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ ˆ
  • ์˜ค๋ฅธ์ชฝ ํŒจ๋„: ์˜์‚ฌ์ฝ”๋“œ, ํ•ต์‹ฌ ๊ณต์‹, ์‹œํ—˜ ํฌ์ธํŠธ ๋“ฑ ์ƒ์„ธ ์„ค๋ช…

๊ธฐ์ˆ  ์Šคํƒ

  • Vanilla JavaScript + HTML5 Canvas
  • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์Œ (zero dependencies)
  • ๋‹จ์ผ HTML ํŒŒ์ผ๋กœ ๋™์ž‘ โ€” index.html์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด๊ธฐ๋งŒ ํ•˜๋ฉด ๋จ

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages