ํ๊ต ๊ณผ์ ๋๋ฌด ๋นก์ธ์ ๊ทธ๋์ ์ ๊ธฐํ๋ค๊ฐ ๋ฐฉํ๋๊ณ ๋ค์ ๋์ ... ๊ทธ๋ฆฌ๊ณ ํ๋กฌํฌํธ ์ง๋ ๊ฒ๋ ์ข ๋ฐ๊ฟ๋ณด๊ธฐ๋ก ํ์ย
๊ตฌํ ๋ด์ฉย
1.๊ฒฉ์ ํ์ผ์ ๋งต ์์ฑ(๋ฌด์์)
2.ํ๋ ์ด์ด์ ์ด๋ ๋ฐ ์ปจํธ๋กค๋ฌ ๋ถ๋ฆฌ ๊ตฌํย
3.ํ์ฌ ์ธต ์ ํ์ย
ํ๋กฌํฌํธ ๋ด์ฉ
[ํ๋ ์ด์ด ์บ๋ฆญํฐ(PC) ๊ตฌํ]
1.ํ๋ฉด์ ํ๋ ์ด์ด ์บ๋ฆญํฐ๋ฅผ ๊ตฌํํ ๊ฒย ย
2.ํด๋น ์บ๋ฆญํฐ๋ ๋ค์๊ณผ ๊ฐ์ ํค๋ก ์ด๋ํ๋คย
W : ์์ชฝ์ผ๋ก ์ด๋, S: ์๋์ชฝ์ผ๋ก ์ด๋, A : ์ผ์ชฝ์ผ๋ก ์ด๋, D : ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ย ย
[ํ๋ ์ด์ด ์บ๋ฆญํฐ(PC)์ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ถ๋ฆฌ ๊ตฌํ]
1.ํ๋ ์ด์ด ์บ๋ฆญํฐ ํ์ผ์ ๋ฐ๋ก ๋ง๋ ๋ค, ํด๋น ํ์ผ์ main.lua์ ๋ถ๋ฌ์ค๋ ๋ฐฉ์์ผ๋ก ์์ ํ ๊ฒ
2.ํ๋ ์ด์ด ์บ๋ฆญํฐ๋ฅผ ์กฐ์ข ํ ์ ์๋ ์ ๋ ฅํค๋ ์ปจํธ๋กค๋ฌ ํ์ผ๋ก ๋ถ๋ฆฌํ ๋ค, ํด๋น ์ปจํธ๋กค๋ฌ๋ฅผ ํ๋ ์ด์ด ์บ๋ฆญํฐ๊ฐ ๋ถ๋ฌ์ค๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ๊ฒ
3.ํ๋ ์ด์ด ์บ๋ฆญํฐ ์ปจํธ๋กค๋ฌ ํ์ผ์ ์ ๋ ฅํค๊ฐ ์ฝ์ ๋์ด ์์ด, ํด๋น ํ์ผ์ ๋ถ๋ฌ์ค์ง ์๋ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค์ ํด๋น ํค์ ์ํฅ์ ๋ฐ์ง ์๊ฒ ํ ๊ฒย
[์ ์ฐจ์ ๋งต ์์ฑ๊ธฐ(Procedural Map Generation) ๊ตฌํ]
1. ๋ชจ๋ ๋งต์ ๊ฒฉ์(Gird)๋ฅผ ๋ฒ ์ด์ค๋ก ํ๋คย
2. ๊ฒฉ์(Grid)๋ ํฌ๊ฒ, ํ๋ ์ด์ด๊ฐ ์ด๋ํ ์ ์๋ ๊ฒฉ์์ธ ๋ฐ๋ฅ, ํ๋ ์ด์ด๊ฐ ์ด๋ํ ์ ์๋ ๊ฒฉ์์ธ ๋ฒฝ์ผ๋ก ๊ตฌ๋ถํ๋ค
3. ๊ฒฉ์(grid)์ฃผ๋ณ์ ๋ค๋ฅธ ๊ฒฉ์๊ฐ ์์ ๊ฒฝ์ฐ ํด๋น ๊ฒฉ์๋ 'ํ ๋๋ฆฌ'๋ก ์ทจ๊ธํ๋ฉฐ, ํ๋ ์ด์ด๊ฐ ์ด๋ํ ์ ์๋ ๋ฒฝ์ผ๋ก ์ค์ ํ๋คย
[ํ๋ ์ด์ด ์บ๋ฆญํฐ(PC)์ ์ด๋ ๋ก์ง ์์ ]
1.ํ๋ ์ด์ด ์บ๋ฆญํฐ(PC)๋ ๊ฐ ๊ฒฉ์(grid) ์ฌ์ด๋ก๋ง ์ด๋ ๊ฐ๋ฅํ๋คย
2.ํ๋ ์ด์ด ์บ๋ฆญํฐ(PC)๋ ์ ๋ ฅ 1๋ฒ๋น ํ ๋ฒ์ฉ๋ง ์ด๋ ๊ฐ๋ฅํ๋คย
3.ํ๋ ์ด์ด ์บ๋ฆญํฐ(PC)๋ ๊ฒฉ์๊ฐ '๋ฐ๋ฅ'์ธ ๊ณณ๋ง ์ด๋ ๊ฐ๋ฅํ๋คย
[์ ์ฐจ์ ๋งต ์์ฑ๊ธฐ(Procedural Map Generation) ๊ธฐ๋ฅ ์ถ๊ฐ]
1.๊ฒฉ์(Gird)์ '๋ฐ๋ฅ'์ ๋ค์ ์๋์ ๊ฐ์ด ๊ตฌ๋ถ๋๋คย
*ํ๋ ์ด์ด๊ฐ ์์ฑ๋๋ ์์ ์ง์ (Start Point)
*ํด๋น ๊ฒฉ์์ ๋์ฐฉํ๋ฉด ํด๋น ๋งต์ด ์ข ๋ฃ๋๋ ์ข ๋ฃ ์ง์ (End Point)
*์๋ฌด๋ฐ ๊ธฐ๋ฅ์ด ์๋ ๋ฐ๋ฅ(Default)
//์ฝ๋๋ฅผ ์์ฑํ ๋, ๊ธฐ์กด ์ฝ๋์ ๋์ผํ๋๋ผ๋ ์๋ตํ์ง ๋ง ๊ฒย
[์ ์ฐจ์ ๋งต ์์ฑ๊ธฐ(Procedural Map Generation) ๊ธฐ๋ฅ ์ถ๊ฐ&์์ ]
<๊ธฐ๋ฅ ์ถ๊ฐ>
1.๋งต(Map)์ด ์์ฑ๋ ๋๋ง๋ค ํด๋น ๋งต์ ๊ตฌ์กฐ๋ฅผ ์ ์ฅํ๋ ์ ์ฅ ๊ธฐ๋ฅ์ ๊ตฌํํ ๊ฒย
2.๊ฒ์ ์์ ์, ์ต์ด๋ก ์์ฑ๋ ๋งต์ 1์ธต์ผ๋ก ๊ณ ์ ๋๋คย
3.๊ทธ ์ดํ์ ์์ฑ๋๋ ๋งต์ n+1์ธต์ด ๋๋ค(n=ํ์ฌ ์ธต)
4.ํ์ฌ ์ธต ์๋ฅผ ๊ฒ์ ํ๋ฉด ํ๋จ(ํ ๋๋ฆฌ ์์ญ)์ ํ ์คํธ๋ก ํ์ํ๋ ๊ธฐ๋ฅ
<๊ธฐ๋ฅ ์์ >
ย
1.๊ฒฉ์(Grid)์ '๋ฐ๋ฅ'์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ๋คย
*ํ๋ ์ด์ด๊ฐ ์์ฑ๋๋ ์์ ์ง์ (Start Point)=>ํ๋ ์ด์ด๊ฐ 1์ธต์์ ์์ํ๋ ์์ ์ง์ (Start Point)
*ํด๋น ๊ฒฉ์์ ๋์ฐฉํ๋ฉด ํด๋น ๋งต์ด ์ข ๋ฃ๋๋ ์ข ๋ฃ ์ง์ (End Point)=>ํด๋น ๊ฒฉ์์ ๋์ฐฉํ๋ฉด ํด๋น ๋งต์ด ์ข ๋ฃ๋๊ณ , ๋ค์ ๋งต์ด ์์ฑ๋๋ฉฐ ์ด๋ํ ์ ์๋ ์ถ๊ตฌ(Exit Way)
*์๋ฌด๋ฐ ๊ธฐ๋ฅ์ด ์๋ ๋ฐ๋ฅ(Default)
2.๊ฒฉ์(Grid)์ '๋ฐ๋ฅ'์ ์ข ๋ฅ์ ์๋๊ฐ ์ถ๊ฐ๋๋คย
*1์ธต์ ์ ์ธํ๊ณ , ๋๋จธ์ง ์ธต์์ ํ๋ ์ด์ด๊ฐ ์์ฑ๋๋ ์์ ์ง์ (Check Point)
[์ ์ฐจ์ ๋งต ์์ฑ๊ธฐ(Procedural Map Generation) ๊ธฐ๋ฅ ์ถ๊ฐ]
1.๋งต์ด ์์ฑ๋ ๋, ํ๋ ์ด์ด๊ฐ ์ถ๊ตฌ์ ๋์ฐฉํ ์ ์๋ ๊ธธ์ด ์ต์ 1๊ฐ ์ด์์ ์์ด์ผ ํ๋ค(๋ฒฝ์ ์ํด ์ถ๊ตฌ๊ฐ ์์ ํ ๋ด์๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ)
//์ฝ๋๋ฅผ ์์ฑํ ๋, ๊ธฐ์กด ์ฝ๋์ ๋์ผํ๋๋ผ๋ ์๋ตํ์ง ๋ง ๊ฒย
[์ ์ฐจ์ ๋งต ์์ฑ๊ธฐ(Procedural Map Generation) ์ถ๊ฐ]
<๊ธฐ๋ฅ ์ถ๊ฐ>
1.๋งต์ด ์์ฑ๋ ๋ Start Point์ Exit Way์ ์์น๋ ๋๋คํ๊ฒ ๊ฒฐ์ ๋๋คย
2.ํ๋ ์ด์ด๊ฐ Exit Way์ ๋์ฐฉํ๋ฉด, ๋ค์ ๋งต ์์ฑ ์, ํด๋น Exit Way์ ์์น์ Check Point๊ฐ ์์ฑ๋๋คย
3.๋งต์ด ์์ฑ๋ ๋, Check Point๊ฐ ์๋ค๋ฉด, Start Point๋ ์์ฑ๋์ง ์๋๋คย
//์ฝ๋๋ฅผ ์์ฑํ ๋, ๊ธฐ์กด ์ฝ๋์ ๋์ผํ๋๋ผ๋ ์๋ตํ์ง ๋ง ๊ฒย
[์ ์ฐจ์ ๋งต ์์ฑ๊ธฐ(Procedural Map Generation) ์ถ๊ฐ]
1.๋งต์ด ์์ฑ๋ ๋, Start Point&Check Point์ Exit Way ์ฌ์ด์ ๊ฒฉ์(Grid)๊ฐ ์ต์ x๋งํผ ์ฃผ์ด์ ธ์ผ ํ๋ค(x=์์ฐ์)ย
Fancyํ๊ฒ ์ก๊ฐํ์ผ๋ก ํด๋ณด๋๊ฑด ์ด๋จ๊น์ ์คํํ
์ด๊ฑฐ ๋์ค์ ๋ ์ด์บ์คํ ์ผ๋ก 1์ธ์นญ ์์ ์ผ๋ก ๋ฐ๊พธ๋ ค๊ณ ์ด๋ ๊ฒ ๋ง๋๋ ๊ฑฐ๊ธด ํจ, 1์ธ์นญ ๋์ ํฌ๋กค๋ฌ ๋ง๋ค์ด๋ณด๋ ค๊ณ
@Reve ๋ฑํ์ด์ด ์๋ฐ์ด๋ฒ ํฌ๋กค๋ฌ๋ฅผ ๋ฐ์ํ๋ ค๋ ํฐ ๊ทธ๋ฆผ ใทใท