์ ๋ํฐ ์ด๊ฒ๋ค์ ์๋ฌด๋ฆฌ ๋ฒ ํ๋ผ์ง๋ง ์์กด์ฑ ์๋ ์ ๋ค๋ผ๋ฆฌ๋ ๋ง์ถฐ์ ์ ๋ฐ์ดํธ ํด์ค์ผ ํ๋๊ฑฐ ์๋๋!! ๋๋ฌด ํ๋ค ์ง์ง - dc official App
DOTSํ์ง๋ง๋ผ๋๊น
๋ฉ์ถ ์๊ฐ ์์ด!!!! - dc App
ECS๊ฐ ๋ง์ฝ์ด๊ธดํจ. ๊ทผ๋ฐ ๋ ์์ง ์ปดํผ๋ํธ ์์ ๋ฐฐ์ด์ ๋ชป๋ฃ๋๊ฑฐ์ ๋ํ ์ ์ฝ๋๋ฌธ์ ๋ชป์ฐ๊ฒ ์. ์์ง์...
๊ทธ๊ฑด Nativearray ๋๋ ๋ค์ด๋๋ฏน๋ฒํผ๋ก ํ ์ ์๊ธดํด. ๊ทธ๋ฆฌ๊ณ ์ปดํฌ๋ํธํ์ ์ ํด๋์ค๋ก ๋ง๋ค์ด์ ํด๋น ์ปดํฌ๋ํธ๋ ๋ฉ์ธ์ค๋ ๋์์๋ง ์ฐ์ด๊ฒ ๋ง๋๋ ๊ฒ๋ ์๊ณ - dc App
NativeArray๋ฅผ ์ฐ๋ ค๋ฉด ์ปดํผ๋ํธ ์ด๊ธฐํ ์์ ์ ์ ์ธํ๊ณ ํด์ ํ ๋ ํด์ ํด์ค์ผํด์ ์ข ๊ทธ๋ ๊ณ ๋ค์ด๋๋ฏน๋ฒํผ๋, ๋๋์ด ์ด๊ฑด์ข ์๋๊ฑฐ ๊ฐ์์. ๋๊ฐ์๊ฒฝ์ฐ ๋ฐฐ์ด์์๋ก ๋ง 1000๊ฐ ๋ค์ด๊ฐ์๋ ์๊ฑฐ๋ . ๊ทธ๋ ๋ค๊ณ ํด๋์ค ์ฐ๊ธฐ๋ ์ข ๊ทธ๋ ๊ณ
์ธ๋ฒคํ ๋ฆฌ์ปดํผ๋ํธ๊ฐ์๊ฒ ๊ฐ์ฅ ๋จ์ํ ์์์. ์์ดํ ๋ค์ ๋ฆฌ์คํธ๋ก ๋ค๊ณ ์์ด์ผ ํ๋๊น. ๋ฌผ๋ก ์ด๊ฑธ ์์ดํ ์ ๊ฐ๊ฐ ์ํฐํฐ๋ก ํ๋์ฉ ๋ง๋๋ ๋ฐฉ๋ฒ๋ ์๊ธดํ๋ฐ ์ด๊ฒ ๋ง๋ ์ถ์๊ฒ๋ ์๊ณ . ํฌ์ฌ์ฒด์ปดํผ๋ํธ๋ผ๋ ๊ฒ๋ ์๋๋ฐ, ๋ ์๊ฐ๋ฉด์ ๋ฟ๋ ๋์์ ๋ฐ๋ฏธ์ง๋ฅผ ์ ๊ฒํ๋๋์ธ๋ฐ, ํ๋ฒ๋ฐ๋ฏธ์ง ์คฌ๋ ๋์ ๋ ์ฃผ๋ฉด ์๋์ ๋ฐ๋ฏธ์ง ์ค๋์ ๋ฆฌ์คํธ๋ก ๋ณด๊ดํ๊ณ ์์ด์ผ๋ผ. ์ด๋ฐ ๊ฒฝ์ฐ๋ค์ด ํ๋๊ฐ์ง๊ฐ ์๋. ๊ทธ๋์ ๋ ์ง๊ธ DOTS๋ ์์ฐ๊ณ LeoECS๋ผ๋๊ฑธ ์ฐ๊ณ ์์
์์ผ๋ก๋ ๊ตฌ์กฐ์ฒด ์ปดํฌ๋ํธ์ ๊ด๋ฆฌ๋๋ ํญ๋ชฉ์ด ์ฐ์ด์ง ์์๊ฑฐ์ผ. ๋ด๊ฐ ๋ด๋ถ์ ์ผ๋ก๋ ์ค๋ช ํ ์ ์์๋งํผ ์ํ๋๊ฑด ์๋์ง๋ง DOTS๊ฐ์ ์ฝ์ด๋ณด๋ฉด ๋๋ต ์๊ฑฐ์. ์์ผ๋ก๋ ECS๊ฐ ๋์ธ์ผ๊ฑฐ๊ฐ์ผ๋ ์ต์ํด์ ธ์ผ์ง ๋ญ.. - dc App
LeoEcs๋ ๋ฉํฐ์ค๋ ๋์์ ๊ด๋ฆฌ๋๋ ํ์ ์ ์ธ์์์ด??? - dc App
๊ตฌ์กฐ์ฒด์ ๋งค๋์ง๋ํ์ ์ด ์ฐ์ด๋ฉด ์๋ฌด ์๋ฏธ๊ฐ์์ผ๋ ์์ฐ์ด๊ฒ ์ง. ๊ทธ๋์ ๋ด๊ฐ DOTS๋ฅผ ๋ชป์ฐ๋๊ฑฐ์. ๋ฐ๋์ผ์ดํฐ๋ ์๋ฒ์์๋ ์จ๋ณด๋ ค๊ณ DOTS์์ค์ฝ๋๋ฅผ ์์ C#์ฝ๋๋ก ๋ณํํด๋ณด๊ธฐ๋ ํ๋๋ฐ, ์ ๋ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒ๋๊ฒ ์ฎ์ฌ์์ด์ ๊ทธ๊ฒ๋ ๋ชปํ์
LeoECS๋ ์ ๋ํฐ ECS์ฒ๋ผ ์ํคํ์ ์ฒญํฌ ์ฌ์ฉํด์ ํ๋ ๊ทธ๋ฐ ECS๊ฐ ์๋๋ผ, ๊ทธ๋ฅ ์ปดํผ๋ํธ๋ณ๋ก ๊ฐ๋ณ ๋ฐฐ์ด๋ก ๊ด๋ฆฌํด. ๋งค์ฐ ๋จ์ํ ECS๋ผ์ด๋ธ๋ฌ๋ฆฌ์. struct์ ๋งค๋์ง๋ํ์ ๋ ๋ค์ด๊ฐ๋ ์๊ด์์. ๊ทผ๋ฐ struct์ ์ธ๋งค๋์ง๋๋ก๋ง ์ฐจ์์ผ๋ฉด ์ ๋ํฐ์ ์ก์์คํ ์ฐ๋๊ฒ๋ ๊ฐ๋ฅ. ๊ทผ๋ฐ ๋ด๊ฐ LeoECS์ฐ๋๊ฑด ๋ฉํฐ์ค๋ ๋๊ฐ ๋ชฉ์ ์ด ์๋๋ผ, ECS๋ฅผ ์ฐ๋ฉด์ ์๊ธฐ๋ ๊ฐ๋ฐ ํธ์์ฑ์ ์ํํด๋ณด๊ณ ์ถ์ด์์. ์ด๊ฒ์ ๊ฒ ๊ธฐ๋ฅ ๋ถ์ด๋ค๋ณด๋ฉด ์ฐฝ๋ฐ์ ์ธ ํ๋ ์ด๊ฐ ๋์ฌ์๋ ์์๊ฑฐ ๊ฐ์์๋ฆฌ
์ ๋ํฐ ECS๋ ์จ๋ณด๊ณ Entitas๋ ์จ๋ณด๊ณ SveltoECS๋ ์จ๋ณด๊ณ ๋ค ์จ๋ดค๋๋ฐ, ์ด๊ฒ ๊ฐ๊ฐ์ ํ๋ ์์ํฌ๋ง๋ค ํ๊ณ ํ ์ฒ ํ๋ค์ด ์์ด์, ๋ด๊ฐ ๊ฐ๋ฐํ๋๋ฐ ์์ด ์ ์ฝ์ ๊ฝค ๋ง์ด ์ฃผ๋๋ผ๊ณ . ๊ทธ ์ ์ฝ์ด ์ด๋์ ๋๋๋ฉด ๊ทธ ์ ์ฝ์ ๊ทน๋ณตํ๊ธฐ ์ํด์ ๊ฒ์๊ฐ๋ฐ์ด ์์ผ๋ก ๋๊ฐ์ง ๋ชปํ ์ ๋๋ก. LeoECS๊ฐ ๊ฐ์ฅ ์ ์ฝ์ด ์ ์ํธ์ด๋ผ ์ผ๋จ ์ด๊ฑธ๋ก ECS ๊ฐ๋ฐํธ์์ฑ์ ๋ํด ์ํํ๊ณ ์์. ์ง๊ธ๊น์ง ๋งค์ฐ ํธํ๊ฒ ์ฐ๊ณ ์์.
๊ฒฐ๊ตญ DOTS๋ ๋น์ทํ๊ตฌ๋ง. ์์คํ ์ปดํฌ๋ํธ๋ก ๋๋ ์ ๋ง๋๋๊ฒ ์ฝ๋์ต์ ํ๋ ์์ฐ์ค๋ฝ๊ฒ ๋๊ณ ํ์ ํ ๋๋ ์ข์๊ฑฐ๊ฐ๊ณ ์ฌ๋ฌ๊ฐ์ง๊ณ ๊ฐ์ฒด์งํฅ๋ณด๋ค ์ด๊ฒ ํธํ๊ณ ์ข๋๋ผ๊ตฌ. ๊ฒฐ๊ตญ์ UGUI๋ ๊ทธ๋ ๊ณ ์์ง ์์ฒด์ ์๋๊ฒ ๋์ธ๊ฐ ๋ ํ ๋ ์ค๋นํด๋๋ฉด ์ข์๋ฏ - dc App
๋์ธ๋ ๋ ๊ฑฐ๊ฐ๊ธดํจ. ๊ทผ๋ฐ DOTS ํผ์ง์ค๋ ์จ๋ณด๋๊น, ๋ฒ๊ทธ๋ ๋ง๊ณ ๊ฐํ์ค๋ถ์ ์ด๋๋ผ๊ณ . ์ด๋ฒ 1.0๋์จ์ดํ๋ก๋ ๋ ์ฌํด์ก๋ค๊ณ ํ๊ณ . ์ง๊ธ ๋ ๋ฐ๋ก LeoECS๋ก ์์ฒด 2D๋ฌผ๋ฆฌ์์ง ๋ง๋ค์ด ์ฐ๊ณ ์๋๋ฐ (AABB,Circle๋ฐ์ ์๋๊ณ ํ์ ๋์๋จน๋ ๊ฐ์ฒด) ์ด๊ฒ ๊ทธ๋ฅ ๊ฐํธํจ. ์ ๋ํด DOTS ํผ์ง์ค ๋ฒ์ฉ์ ์ผ๋ก ์ฐ๊ฒ๋ ํ๋ ค๊ณ ์ด๊ฒ์ ๊ฒ ํ๋๊ฐ๋ณธ๋ฐ, ์คํ๋ ค ๋ ๋ง์น๊ณ ์๋ ๋๋์ด์ฌ. ์ปดํผ๋ํธ๋ ๋ด๊ฐ LeoECS์ฐ๋ฉด์๋๋๊ฒ, ์ ๋ํฐ DOTS ์ ๋๋ค ๋ถ๋ช Transform Rotation Scale ์ปดํผ๋ํธ ํฉ์น ๊ฑฐ ๊ฐ์๋๋ฐ ๊ฒฐ๊ตญ์ ํฉ์ณค๋๋ผ๊ณ . ์ด๊ฒ ์ปดํผ๋ํธ๋ผ๊ณ ๋๋๊ฑฐ ๋ค ๋๋๋๊ฒ ๋ฅ์ฌ๋ ์๋๋ผ๋๊ฑธ ํ๋ฉด์ ๋๊ผ๋๋ฐ, ์ ๋ํฐ ์ด๋๋ค๋ ๊ณ ๋ฏผ ๋ง์ด ํ์๊ฑฐ์. ๋ฒ์ฉ ECS๋ผ๋๊ฑฐ, ์ฝ์ง ์์๊ฑฐ๊ฐ์. ๋ด ๊ฐ์ธ์ ์ธ ์๊ฐ์
๊ทธ๋ฆฌ๊ณ ๊ฒฐ์ ์ ์ผ๋ก ์์ง๋ DOTS๋ Deterministic์ ์ง์์ํจ. ๋ ๋ฉํฐํ๋ ์ด ๋ง๋ค์ด์ผ ํ๋๋ฐ ์ด๊ฑฐ ์ง์์ํ๋ฉด Lockstep์๋ฎฌ๋ ์ด์ ๋ชปํจ. ํฌ๋ผ์์ ์ฌ๋๋คใ ใ ฃ์ธ์ Deterministic๋๋๊ณ ์ง์ง๋๋๋ฐ ๋งจ๋ ์ง์ํด์ค๋ค๊ณ ๋ง ๋งํ์ง๊ฐ ๋ฒ์จ ์ค๋ ์จฐ์..
1.0์ Aspect ๋ผ๋ ๊ฐ๋ ์ด ์๊ฒจ๊ฐ์ง๊ณ ์์กด์ฑ ์๋ ์ ๋ค๋ผ๋ฆฌ ํผ๋์ด ๋ง์ด ์๊ธฐ๋ ๋ฏํด Aspect ์จ๋ณด๋๊น ์ฝ๋ ์ต์ ํ์๋ ํจ์ฌ ์ข๊ณ ๊ทธ๋ ๋๋ผ๊ตฌ. DOTS ์ชฝ์ ์์ง ๊ฐ๊ธธ์ด ๋ฉ์ด์ 1๋ ์ ๊ธฐ๋ค๋ ค์ผํ์ง ์๋ ์ถ์ด. ๋๋ ํ๋ฒ ๋ฐ์ ๋ค์ฌ๋์ผ๋๊น ๊ณ์ ํ๊ฒ ๋๋๋ผ๊ตฌ.. ๋ง๋ค๋ ค๋ ๊ฒ์์ด ๊ทธ๋ ๊ฒ ๋ณต์กํ๊ฒ ์๋๋ผ์ ์ง๊ธ ์ํ์์๋ ์ข๋ง ํ๋ฉด ๋ ๊ฑฐ๊ฐ๊ธฐ๋ ์ถ๊ณ .. ๋ง ๊ทธ๋.. ใ Deterministic ๊ฐ์๊ฒ ๋ญ์ง ์ ๋ชฐ๋ผ ๊ทธ์ ๋๋ก ๋ ํ์ผ๋ก ์จ๊ฑฐ๋ผ ใ ใ ใ ๊ทธ๋๋ ์ ๋ํฐ์์ ํ์คํ๊ฒ ๋ฐ๊ณ ์๋๊ฑฐ ๋ด์๋ ์ธ์ ๊ฐ ์ฌ๋๋ค์ด ์๊ตฌํ๋๊ฑฐ ๋ค ์ง์ด ๋ฃ์ง ์์๊น ์ถ์ด.
Aspect๋ ๋ณด๋๊น ๋๋ ์ข์๊ฑฐ ๊ฐ๋๋ผ. ์ ๋ด๊ฐ readwrite ๊ถํ์ Aspect๋ฅผ ํตํด์ ๊ด๋ฆฌํ ์์๊ฒ ํ๊ฑฐ ๊ฐ์๋ฐ. ์ข์๋ณด์ฌ์ ๋๋ ์ง๊ธ ์ฐ๋๊ฑฐ์ ๋์ ํด๋ณผ๊น ์๊ฐํด๋ณด๊ณ ๋ ์์. Deterministic์ ๋ณ๊ฑฐ์๋. ์ฐพ์๋ณด๋ฉด ๊ธ๋ฐฉ๋์ค๋ ๋ฉํฐ๊ตฌํ ๋ฐฉ๋ฒ์ค ํ๋์. ๋ฆฌํ๋ ์ด ๊ธฐ๋ฅ๋ง๋ค๋๋ ์ฐ์ด๋๊ฑฐ๋ผ. ๊ทธ๋๋ ์ธ๊ฐค์์ ๋ช์๋๋ ECS๋์ง๊ฐ ์์ด์ ๊ทธ๋ฐ์ง ๋ง์ํ๊ตฌ์์ด ํธ์ํ๊ตฌ๋ง. ํ์ดํ ํ์!
๊ทธ๋ ค ์ธ์ ์๊ฐ๋๋ฉด ๋ธ๋ก๊ทธ์ ๊ณต๋ถํ๊ฒ๋ ์ฌ๋ ค์ฃผ๊ณ ํด์ค.. ๋ ์ฌ๋ฆฌ๋ค๊ฐ ํ๋ฆฐ ์ ๋ณด ์ฌ๋ฆฌ๋๊ฑฐ ๊ฐ์์ ๋ฉ์ถ๊ณ ์์ด. ์์ธํ๊ฒ ํผ์ ๋ธ๋ก๊ทธ์ DOTS ๊ด๋ จ ๊ธ์ฌ๋ฆฌ๊ณ ์๋ค.. ํ์ดํ !!! DOTS ๊ด๋ จ ๋ค ์์ด์ผ ใ ใ
Aspect๋ ํ๋์Entity์ ์ฌ๋ฌ CompoentData๊ฐ ์์ ๊ฒฝ์ฐ์๋ ์๊ธดํ๊ฒ ์ฐ์ฌ. ๊ทธ๋ฆฌ๊ณ ํจ์๋ ๋ฃ์ ์ ์์ด์ ์์คํ ๋ด๋ถ ์ฝ๋๊ฐ ๊น๋ํด์ง๋ ์ฅ์ ๋ ์์ด.
ใ ใ Aspect๋ ํจ ๋ณด๋ฉด ์ข์๊ฑฐ๊ฐ๋ค. ํจ ๋ด์ผ๊ฒ ๋ค.
https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=109484&s_type=search_name&s_keyword=.EC.86.8C.EB.8B.89.EC.AB.84.EB.94.B0.EA.B5.AC.ED.85.8C.EC.9D.BC.EC.A6.88&page=1
https://gall.dcinside.com/mgallery/board/v
์์ง
๋ด๊ฐ ์ฌ๋ฆฐ ECS๊ด๋ จ๋๊ฑด ์ด๊ฑฐ ๋๋ฐ์ ์์. ECS์์ ์ฐ๋ ค๊ณ ๋ง๋ ๋นํค์ด๋น์ด ํธ๋ฆฌ. ๊ทธ๋ฆฌ๊ณ BoidSystem
์ฌ์ค ์ด๊ฑฐ๋ง๊ณ ๋ ๋ง์ด ์๊ธดํ๋ฐ, ๊ฒ์์ ์ง๊ธ ์คํฌ์์คํ ์ด๋ ์ด๊ฒ์ ๊ฒ ๋ค ๊ตฌํ์ค์ด๋ผ. ๋์ถฉ ๊ฒ์๋ค์ ๋ณด์ด๋ ์์ ์ด ์ค๋ฉด, ๊ทธ๋๊ฐ์ ํจ ์ ๋ฆฌํด์ ์ฌ๋ฆด๊ฒ!
๋งํฌ๊ฐ ์๋ค์ด๊ฐ์ง๋ค
https://gall.dcinside.com/game_dev/98708
Boid ๊ตฐ์ง์ผ๋ก ํค์ณ๋ชจ์ฌ ํ๋๊ฑด์ง ์์๋๋ฐ ์ ๋ฐ ์์ผ๋ก ์ฐ์ด๋ค ํ๋ฉ.. ๋ฅ๋ ฅ์ ใ ใทใทใท ๋ ์ ์ ๋ ์ค๋ ฅ์ ์์ด์๋ฆฌ ใ ใ
๋๋๊ทธ๋ ๊ฒ์๊ณ ์์๋๋ฐ GDC์์ ์คํ2๊ฐ๋ฐ์๋ค์ด ๋ณด์ด๋ ์ผ๋ค๊ณ ํด์ ๋งํ๋๋ก ๋ง๋ค์ด๋ณธ๊ฑฐ์. ๊ณ ์ ๋ ธ๋ ธ