์ํฐ ๋ ๊ฑด์ ์ ๋์ค๋๊ฒ์ฒ๋ผ ๋ฌผ์ ๊ตฌํ์ค์ธ๋ฐ
Cell ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ ๋ฌผ์ด ๋จ์ด์ง๋ ์ง์ ์ ๋ค์ด๊ฐ ์๋ ์ก์ฒด์ ์์ ๋ฐฐ์ด๋ก ์ก๊ณ ( ์ด 7๋ฐฐ์ด๋ก ๋ง๋ฌ)
์๊ฐ๋์ ๋ฐ๋ผ์ 7->6->5๋ก ํ๋ฅธ ํ
์ก์ฒด์์ ๋ฐ๋ผ์ ์ธ์ ์ ์ ๋ฐฐ๋ถํ๋ค๊ฐ 1์ด ๋๋ฉด ๊ทธ๋ฆฌ๋ ์ฃ์ง๋ก ๊ฐ์ฅ์๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋๋ ์์ด๋๋ฅผ ์ธ๋ ค๊ณ ํ๋๋ฐ
๋ฌธ์ ๋ ์ด๋ ๊ฒ ํ์ผ์ ๋ฐฐ์ด๋ก ์ ์ฅํด๋ฒ๋ฆฌ๋ฉด ๊ฒ์ ์์ฒด๊ฐ ๊ฒ๋๊ฒ ๋ฌด๊ฑฐ์์ง์์.
์ค์ ๋ก ์ด๋ฌํ ์ธ์ ๋ฐฐ๋ถ์ ํด์ ์ ์ฒด์ ์์ง์์ ๊ตฌํํ๋ ์ฝ๋๋ ํ๋ ฌ ์จ์ ๊ตฌํํ๊ณ , ๊ฐ ์ ์ ์ ์ ํ๊ณ ์๋ ๋ฌผ ๋ฐฐ์ด์ ์์ ๋ฐ๋ผ์
ํ๋ฅด๋ ๋ฐฉํฅ์ด ๊ฒฐ์ ๋๊ฒ ํจ.
์ผ๋จ์ ์ด๋ ๊ฒํ๋ฉด ์ํฐ ๋ ๊ฑด์ ์ ๋ฌผ๋ ๋ฐฐ๋ด์ ๋์ค๋ ๋ฌผ ์ ๋ฉ์ด๊น์ง๋ ํํํ ์ ์๊ฒ๋๋๋ฐ.
์ก์ฒด ์์ฑ๊ณ์ด ์ด์ ์ด๋ป๊ฒ ์์ฑํด์ผํ ์ง ๊ฐ์ด ์์กํ๋ค.
์ด ๋ฐฉ๋ฒ์ด ๋ง๋. ์๋ ์ ๋งคํ๋ฉ ์ธ๋ ์๊ฐ๋์ ์๋ก์๋ก ๊ธฐ์ต๋ ๋๊ณ ์ข๊ธดํ๋ฐ, ์ด์ํ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
Z์ถ์ด ์๋ ๊ฒ์์ด๋ฉด Z์ถ ๋ณ์์ฐจ ๋ฐ์์์ ๋ฌผ์ด ํ๋ฅด๊ฒ ํ๋ฉด๋๋๋ฐ ๋๋ Z์ถ์ด ์๊ธฐ๋๋ฌธ์ ๋ฐฐ์ด์ ๋ฐ๋ฅธ ๋ฌผ์ ์์ ์ฒ๋ฆฌํ๋ ์์ผ๋ก ํ๊ณ
Cell๋ง๋ค ์ ์ ํ ์ ์๋ ๋ฌผ์ ์์ ๋ฐ์์ ๊ณ์ฐํ๋จ ๋ง์ด์ง
๋ฌธ์ ๋ ๋ฌผ์ด ์ ์ ํ๊ณ ์๋ ํ์ผ์ ๊ทธ๋ฆฌ๊ธฐ ์ํด์ ๋ฐ๋ก, ๋ฌผ์ ์ํ ํ์ผ์ ๋ง๋ค์ด์ฃผ๋ ์์ผ๋ก ์ฒ๋ฆฌํด์ผํ๋?
์ผ๋จ์ ํ์ฌ๋ก์จ๋ ๋๋ Z์ถ์ด ์๋ XY์ธ๋ฐ Z์ถ์ ์คํ์ ์ด์ฉํด์ ๋ณ์ ์ฃผ๊ณ , ์ค์ผ์ผ ์ฐจ์ด๋ก Z์ถ์ด ์๋๊ฒ์ฒ๋ผ ๋ณํ๋ฅผ ์ฃผ๋ 2D ๊ฒ์์ด๋ ๋ง์ด์ง
๊ฑด์ ์์๋ ์ด๋ป๊ฒ ํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.
๊ทธ๋ฅ top down game liquid ๋ผ๊ณ ๊ฒ์ํ๋๊น ๋ ๋ง์ ๊ฑด์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๋ต๊ธ๋จ๊ฑฐ ๋์ค๋๋ฐ
๊ทธ๊ฑฐ ๋ณด๊ณ ๋น์ทํ๊ฒ ๊ตฌํํ๊ฑด๋ฐ ๋๋ฌด ๋ฌ๋ผ์ ๊ทธ๋
ํต์ฌ ๋ด์ฉ์ ๋ด๋ ๊ทธ๊ฒ๋ง ๋ด๋ ์๋ชจ๋ฅด๊ฒ ์
์ด 7๋ฐฐ์ด์ด๋ผ๋๊ฒ ๋ฌด์จ๋ง์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ์ก์ฒด๋ฅผ ํ๋ฉ์ด๋ก ๋ณด๊ณ ์์ฑ๋ ๋๋ง๋ค ๊ทธ ์ฃผ๋ณ๋ง ์ก์ฒด๋ ์ ์ฅํ๋ ๋ฐฐ์ด ๋ง๋ค๋ฉด ๋์ง ์์๊น? First, you have to keep track of which grid positions contain goop, and only check those. Any time you modify a position, it needs to mark its neighbors as dirty, so you never need to iterate through a cell's neighbors on a per-frame basis. ๋ผ๊ณ ํ๋๊น
๋๋ ๋ฌผ ๋์ด๋ฅผ ๋ฐฐ์ด๋ก ํํํ๊ณ ์๋๋ฐ, ๋ ์๊ฒฌ์ ๋ด ์๊ฒฌ์ด๊ธดํ๋ฐ, ์๊ฒฌ ๋น์ทํ๊ฑฐ๋ณด๋ ๊ฒฐ๊ตญ ๋ค๋ค ๋น์ทํ ์๊ฐ์ธ๊ฐ๋ณด๋ค. ์ด์ ๋๊น์ง๋ง ํด์ผ๊ธ๋ค. ๋ฌผ์ ๋ฉ์ด ๊ตฌํ ์๊ฐ๋ณด๋ค ์ด๋ ต๋ค
๋ฉํ๋ณผ๋ก ์ ์ฒด์ธ ์ฒํ๋ ๊ฑฐ ๋ง๋๋ ๊ฒ ์ ค ๋ฌด๋ํ ๋ฏ
๋ฉํ๋ณผ?
๊ฒ์ํด๋ณด๊ณ ์์๋ณด๊ฒ ์ ํค์๋ ๊ณ ๋ง๋ค
์ ์์ด๋๊ฐ ๋์ค๊ณ ์์ด๋๋ก ์ฒ๋ฆฌํ๊ณ ์ถ์์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง.. ๋ฌผ์ ์ํฅ ๋ฐ๋ cell๋ค ๋ฆฌ์คํธ์ ๋ฃ๊ณ ์ฒ๋ฆฌ ๋ค๋๋ฉด ๋นผ๋ฉด๋จ. ์ ๊ฑฐ ๊ด์ฐฐํด๋ณด๋ฉด ์์ง์์ด ์๋๊ฑด ์ธ๊ณฝ์ ๋ค๋ฟ์.
๋๋ ๊ฐ์ฅ์๋ฆฌ์ ์์ด๋ ์ด์ง ๋ฌผ์ ๋ฉ์ด ํ๋ค๋ฆฌ๋ ํจ๊ณผ ์ค๋ฌ์ง. ์๊ฐ ์๋ณด๋ฉด ๋ง๋ฅด๊ธฐ ์ ์ ๋ฐฐ์ด ์ค์ด๋ค๊ณ 1๋ฐฐ์ด๋๋ถํฐ ํฌ๊ธฐ ์ค์ด๊ฑฐ๋ ํ๋ ์์ผ๋ก ํ์ผ ์ ์ ํ ๋ฌผ์ ์ค์ด๋ ์์ผ๋ก ์ฆ๋ฐ์ ๋ณด์ฌ์ค๋ ค๊ณ ํ์
๋์กธ๋ธ ์์ด๋๋ฅผ ์์ฉํ๋ฉด ๋ฌผ์ด ์ฆ๋ฐํ๋ ์ดํํธ๋ฅผ ๋ณด์ผ ์ ์๊ฒ ๋จ ์๊ฐ์ด์๊ฑฐ๋
๊ทธ ์์ด๋๋ ๋ณด์ฌ์ง๋ ํจ๊ณผ๋ผ์.. ๋ฌผ์ ์ด๋์ํค๋ ๊ธฐ๋ฅ + ๊ทธ ์์ด๋๊ฐ ํ์ํจ. ์์๋ก ์ฒซ๋ฒ์งธ cell์ ๋ฌผ์ ๋ฟ๋ฆผ ๊ฑฐ๊ธฐ์ ์์์ cell์ ๋ณด๋ด๋ ํจ์ ์์. ๊ทธ ์์์ ๋ฆฌ์คํธ์ ๋ด์. ๋ค์ ํ๋ ์์ ๊ทธ ๋ฆฌ์คํธ์ ๋ด๊ธด cell์์ ์ฒซ๋ฒ์งธ์์ ์ฌ์ฉ๋ ๊ธฐ๋ฅ์ธ ์์์cell์ ๋ณด๋๊ฒ ํจ์ ํธ์ถ. ๋ง์ง๋ง์ ํธ์ถ๋๊ฑฐ๋ ๊ฐ์ค์น๊ฐ ๋ฎ์ ํจ์ํธ์ถ์ด ์ ๊ฑฐ๋ ์ด๋ฐ์์ผ๋ก ์์์ ๋ฌผ์ด ์๋ cell์ด๋ผ๋ฉด ๋๊ฐ ๋งํ ์์ด๋๋ฅผ ํธ์ถํ๋ฉด ๋ ๋ฏ
๊ทธ๋ ๊ฒ ๊ฐ์ผ๊ฒ ๋ค ๊ณ ๋ง๋ค
๋ณธ๋ฌธ๊ธ๋ ๊ฐ์ฅ์๋ฆฌ์ ์กด์ฌํ๋ ๋ฌผ ๋ฐฐ์ด์ด 1์ด๋๋ฉด ์์ด๋๊ฐ ์์๋๋๊ฑฐ๋ผ ๋งํ๋๊ฑฐ๋ผ์. ๊ทธ๋ฐ ๋๋์ ์์ง์ ์์ฒด๋ ๊ตฌํํ์ผ๋๊น
์์ด๋๋ก ํ๋๊ฒ ๋ง์ ์์ด๋ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ ์ฌ์ฉํด์ ์ ํ์ฐจ๋ถ๋ฒ์ผ๋ก ์ ์ฒด์ญํ์ ํ์ด์ผํ๊ธฐ๋๋ฌธใ 0
ํ๋ ฌ๊ณ์ฐ์ cpu ๋ก์ง์ผ๋ก ์ฒ๋ฆฌํ๋๊ฒ ์๋ ์ด์ ์ ์ ๋ ์ปดํจํธ์์ด๋ฉ์ผ๋ก๋ ํฌ๋ฆฌํฐ์ปฌํ ์ฑ๋ฅ ์ ํ๊ฐ ๋์ค๋ ๊ฒ ๋ ์ ๊ธฐํ๋ฐ - dc App
๋ชจ๋ฐ์ผ ํ๊ฒ์ผ๋ก ๋ง๋ค๊ณ ์๋๊ฑฐ๋ฉด ์ฒด๊ฐ๋ ์๋ ์๊ธด ํ๊ฒ ๋ค - dc App
ใดใด ์ฒ์์๋ ๊ด์ฐฎ์๋ฐ ๋ญ๊ฐ ๋ฃจํ์ชฝ์ ๋ฌธ์ ๊ฐ ์๋๋ฏ. ์ด๊ฑฐ๋ ๋ด๊ฐ ๊ณ ์น ์ ์๋๋ฐ ์๋ง, ๋ฐฐ์ด ์ฒดํฌ ๊ณผ์ ์์ ๋๋ฌด ๋ง์ ๋ฐฐ์ด์ ์ฒดํฌํด์ ํ๋ ์๋น ๋ฐฐ์ด ์ฒดํฌ๋ฅผ ์ข ์ค์ฌ์ผํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์. A*๋ ์ด๋ํ ์ ์๋ ๊ฐ์ฅ์๋ฆฌ์ ๊ฐ๋ฐ ๊ฐ์๊ธฐ ์ฐ์๋ ์น์์์ ํฐ์ง๋๋ฐ ์ด๊ฒ๋ ๊ทธ๋ฐ ๋๋์ด๊ธดํจ