Clearance-based Pathfinding and Hierarchical Annotated A* Search์ด๋ผ๊ณ ํ๋ ๊ฒ๋๋ค.
http://harabor.net/data/papers/harabor-aigamedev09.pdf
๋ ํผ๋ฐ์ค๋ ์ฌ๊ธฐ๊ตฌ์. ๋น์ฐํ ์์ด์ ๋๋ค.
A* ์๊ณ ๋ฆฌ์ฆ์ ์ ํ ์ฌํญ์ด ๋ช๊ฐ์ง ์์ฃ . ๊ทธ์ค์์ Clearance-based Pathfinding์ ์ฐ๊ด๋ ์ ํ ์ฌํญ์ '๋ชจ๋ ๊ฐ์ฒด๋ ๊ทธ๋ฆฌ๋ 1์นธ์ 1๊ฐ๋ง ์๋ค.'๋ผ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ๊ฒ์์์ ์ด๋ป๊ฒ ํ ์์น์ ํ๋๋ง ์๋์? ์ผ๊ฐ ๋ณด๋ณ์ 1์นธ์ 1๋ช ์์ ์ ์๋ค๊ณ ์ณ๋, ๊ฑฐ๋ ํฑํฌ ๊ฐ์๊ฑด ์ฌ๋ฌ์นธ์ ๊ฑธ์ณ ์์ด์ผ ์ข ๋ฉ์ ธ๋ณด์ด์ง ์๊ฒ ์๋๊น? ๊ทธ๋ฐ๋ฐ ๊ทธ๋ ๊ฒ ํ๋ ค๋ฉด ๊ฐ ์ ์๋ ๋ ธ๋๋ฅผ ๊ฒ์ํ๋๋ฐ ํฌ๊ธฐ์ ๋ง์ถฐ์ ์ฌ๋ฌ๋ฒ ๊ฒ์์ ํด์ค์ผ ํ๋จ ๋ง์ด์ฃ . ์๋ฅผ ๋ค์ด 2x2 ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ํฑํฌ๊ฐ (0,0)์์ (0,1)๋ก ์ด๋ํ๋ ค๋ฉด ์ฌ์ค (0,1)์ ๋ฌผ๋ก ์ด๊ณ (0,2), (1,1), (1,2)๋ฅผ ๋ชจ๋ ๊ฒ์ํด์ ๊ฐ ์ ์๋ ๊ณณ์ธ์ง ์ฒดํฌํด์ค์ผ ํ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ทธ๋์ ๋์จ๊ฒ ์ Clearance-based Pathfinding์ ๋๋ค. ํ๊ธ๋ช ์ ๋ญ๋ผ๊ณ ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค์. ์๋ฌดํผ ์ค์ฌ์ CP๋ผ๊ณ ํ ๊ป์.
CP์์๋ ๋ค์ํ ์ธต์์ ๋ ธ๋๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋ก๋๋ค. ๊ทธ๋ฌ๋๊น ํฌ๊ธฐ๊ฐ 1x1์ฉ์ผ๋ก ๋งต์ ํด์ํด๋๋ฉด 2x2์ฉ์ผ๋ก ๋ฐ๋ก ํด์ํด๋๋ ๋ฐฉ์์ด์ฃ . 1x1์ง๋ฆฌ ์ ๋์ ๋งค ๊ทธ๋ฆฌ๋๋ง๋ค ํ๋ฒ๋ง ์ด๋ ๊ฐ๋ฅํ์ง ์ฒดํฌํ๋ค๋ฉด, 2x2๋ ๋งค ๊ทธ๋ฆฌ๋๋ง๋ค ๋ฏธ๋ฆฌ 2x2 ํฌ๊ธฐ์ ์ ๋์ด ๋ค์ด๊ฐ ์ ์๋์ง ์ฒดํฌํด๋๋ ๋ฐฉ์์ ๋๋ค.
์ด๋ฐ ๋ฐฉ์์ด๋ผ๋ฉด ์ ๋ ํฌ๊ธฐ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ๋ง ๋ถ๋ฌ์์ ๊ณ์ฐํ๋ฉด ๋๋๊น ๋งค ์์น๋ง๋ค ์ ๋์ด ๊ฐ ์ ์๋์ง ์๋์ง ์ฒดํฌํ ํ์๊ฐ ์์ด์ ธ์ ์๋๊ฐ ๋น ๋ฅด์ฃ . ์ด๊ฒ CP์ ๊ธฐ๋ณธ ๊ฐ๋
์
๋๋ค.
์ฌ๊ธฐ์ ๋ํด์ RTS ๊ฒ์์์๋ ใ ใด ๋ง์ ์ ๋์ ใ ใด ๋น ๋ฅด๊ฒ ๊ธธ์ฐพ๊ธฐ๋ฅผ ์์ผ์ค์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๊น๋๋ค. CP๋ฅผ ์ด๋คํด๋ ๊ฒฐ๊ตญ ์ ์ฒด ๊ทธ๋ฆฌ๋ ์ซ์๋ ๋ณํจ์ด ๊ฑฐ์ ์์ต๋๋ค. 1x1์ง๋ฆฌ ์ ๋์๊ฒ 192x192 ํฌ๊ธฐ์ ๋งต์ 3x3 ์ ๋์๊ฒ๋ 190x190์ง๋ฆฌ ํฌ๊ธฐ๊ฐ ๋๋๊ฑฐ๋ผ์์. ๊ทธ๋ฐ๋ฐ RTS์์ ์ ๋์ ๋ฐ์ ์๋๋ ๋นจ๋ผ์ผ ํ๊ณ , ๋น์ CPU ์์ค์ ์ง๊ธ๋ณด๋ค ํจ์ฌ ๋ณ๋ง์ด๊ณ .. ๊ทธ๋ ๊ฒ ๊ฐ๋ฐ์๋ค์ ๊ณ ํต ๋ฐ๋ค๊ฐ ๋ช๊ฐ์ง๋ฅผ ๋์น์ฑ๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ธธ์ฐพ๊ธฐ๊ฐ ์ํ๋๋ ์งํ์ ๋ค ๊ณ ์ ๋์ด ์๋จ ๋ง์ด์ฃ . ๊ธฐ์ง์ ๊ฑด๋ฌผ์ ์ง์ด์ ๋ง๊ธฐ๋ ํ์ง๋ง ๋ง์ด์ฃ .ย
๊ทธ๋์ ๋งต์ ์ผ์ ํฌ๊ธฐ์ ํด๋ฌ์คํฐ๋ก ์ชผ๊ฐ๋๊ณ , ๊ฐ ํด๋ฌ์คํฐ๋ง๋ค ์ด๋๋๋ ๊ฒฝ๋ก๋ฅผ ๋ฏธ๋ฆฌ ๋ค ๊ณ์ฐํด๋ ๋ค์์ A ํด๋ฌ์คํฐ์ a ์์น์์ B ํด๋ฌ์คํฐ์ b ์์น๋ก ๊ฐ๊ฒ๋ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฐพ๋ ๊ฒ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋๋ถ๋ถ์ ๋ฏธ๋ฆฌ ๊ณ์ฐ๋ ๊ฒฝ๋ก๋ง ๋ฝ์๋ค๊ฐ ์ฐ๊ณ , a์ ์์น์์ A ์ฒญํฌ์ ํ์ถ์ ๊น์ง์ ๊ฒฝ๋ก์ B์ฒญํฌ์ ์ง์ ์ ์์ b๊น์ง์ ๊ฒฝ๋ก๋ง ์ฒดํฌํด์ฃผ๋ฉด ๋๋จธ์ง๋ ๋ฏธ๋ฆฌ ๊ณ์ฐ๋ ๊ฒฝ๋ก์์ ๋นผ์ค๋ฉด ๋์ฃ . ๊ณ์ฐ์ ๋ง์ด ์๋ตํ ์ ์๊ฒ ๋๋ ๊ฒ๋๋ค.
์ด๊ฒ ์ ๋ ํผ๋ฐ์ค์์ ๋งํ๋ Hierarchical Annotated A* Search ์
๋๋ค.
์ฝ๊ฒ ์ค๋ช ํ๋๋ผ ๋ช๋ช ์ง์ ์์๋ ๋ค๋ฅด๊ฒ ์ค๋ช ์ด ๋์์ง๋ง, ๊ทธ๋๋ ๊ฑ ์ ์ ๋ ๊ฐ๋ ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์์ธํ๊ฑด ์๋ฌธ์ ์ฝ์ด๋ณด๋๋ก ํ์ธ์.
๊ทผ๋ฐ ํ์๋ ๋ก๋ฉ์ด ใ ใด ๋๋ ค์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ์ค์๊ฐ์ผ๋ก ๋งต์ด ๋ก๋ฉ๋๊ณ ์ญ์ ๋๋ ์ฌ๋ฆฌ์ค ์๋์์๋ ์จ๋จน๊ธฐ ใ ๊ฐ์๋๋ค.
๋จผ ๊ฑฐ๋ฆฌ๋ ํฐ ๊ทธ๋ฆฌ๋์ ํจ์คํ์ธ๋ฉ์ผ๋ก ํด๊ฒฐํ๊ณ ์งง์ ๊ฑฐ๋ฆฌ๋ ์ข์ ๊ทธ๋ฆฌ๋์ ํจ์คํ์ธ๋ฉ์ผ๋ก ํด๊ฒฐํด์ ์ฐ์ฐ์ ์ค์ด๋ ๊ฑฐ๋ค
์ ๋ณด๋ค ์์ฝ ์ฝ๊ฒ ํด์ฃผ์๋ค์. ใ ใ
ND๊ฐ ์ฌ๋ฆฌ์ค์์?
๋ค. ๋งต ๋ก๋ฉ์ ์ฃ๋ค ๋ฐฑ์ค๋ ๋๋ก ์ฒ๋ฆฌํ๊ณ ์.