ํ•™๊ต ๊ณผ์ œ ๋„ˆ๋ฌด ๋นก์„ธ์„œ ๊ทธ๋™์•ˆ ์œ ๊ธฐํ•˜๋‹ค๊ฐ€ ๋ฐฉํ•™๋˜๊ณ  ๋‹ค์‹œ ๋„์ „... ๊ทธ๋ฆฌ๊ณ  ํ”„๋กฌํฌํŠธ ์งœ๋Š” ๊ฒƒ๋„ ์ข€ ๋ฐ”๊ฟ”๋ณด๊ธฐ๋กœ ํ–ˆ์Œย 


๊ตฌํ˜„ ๋‚ด์šฉย 


1.๊ฒฉ์ž ํƒ€์ผ์˜ ๋งต ์ƒ์„ฑ(๋ฌด์ž‘์œ„)
2.ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋™ ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ ๋ถ„๋ฆฌ ๊ตฌํ˜„ย 

3.ํ˜„์žฌ ์ธต ์ˆ˜ ํ‘œ์‹œย 



18b3c42ff1de3da22eed86e7409c746b5d938416e6550473793342dd70ac2897b7c204fc7ae0607d7ca9411d7601b4bea7


18b3c42ff1de3da22eed86e7409c746b5d938416e6550473793342dd70ac2897b7ca04fc7ae0607d7ca9411d7601bbbab1


18b3c42ff1de3da22eed86e7409c746b5d938416e6550473793342dd70ac2897b6c404fc7ae0607d7ca9411d7600bbba91


ํ”„๋กฌํฌํŠธ ๋‚ด์šฉ


[ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ(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=์ž์—ฐ์ˆ˜)ย