๊ธฐ์กด OOP๊ธฐ๋ฐ ์ฝ๋ฉ๋ ํก์ค์์คํ๋ ์ง๊ฒฉ์ ๋์์ด๋(๋ณ์ )์.
์ค๋ ์๋ฒฝ 4์ ๋ฐ๋ถํฐ ECS ๊ด๋ จ ์๋ฃ๋ฅผ ๋ค์ ธ๋ณด๋ฉฐ ์ด๊ฒ ์ ๊ฒ ์ฐพ๋ค๊ฐ ์ฌ๋ค๊ฐ ํ๋ฉด์ ์ฐพ์๋ณด๊ณ ์คํํด ๋ณธ ๋ด์ฉ๋ค
1. Dots = ECS + Job System + Burst Compiler๋ก ์ถ์ ๋๋ค.
2. ์ด ๋ง์ Job System๊ณผ Burst Compiler๋ง ๋ฐ๋ก ๋ผ์ด๋ด์ ์ธ ์ ์๋ค. (์ถ์ฒhttps://www.youtube.com/watch?v=ZuzBOXUuEeM. ์ด๋ฐ๋ถ์ ์ด์ผ๊ธฐ ํจ.)
+ ์ฑ๋ฅ ์ต์ ํ์ ํต์ฌ์ ECS๊ฐ ์๋ ์ด ๋์ธ ๋ฏ ํ๋ค. ECS๋ก ๋ฉ๋ชจ๋ฆฌ ์ฐ์ฌ ์๋๊ฒ ํ๋๊ฒ ๋ฌผ๋ก ์ ์ ์ง๋ง.
3. ์ ๋ํฐ์ ECS๋ ์์ง ๋ถ์์ ํ๋ฏํจ. ํด๋ณด๋๊น ๋ณ์๋ณ ์ด์ํ ์คํฌ๋ฆฝํธ๊ฐ ๋ง์ด ํ์ํ๋ค. Authoring ๋ถํฐ ํด์ ์ด๊ฒ ๋ญ ๊ฐ์ง๋์ธ์ง ๋ชจ๋ฅด๊ฒ ์. ์๋ง ๊ธฐ์กด OOP ์ฌ์ฉ์๋ค์ ์ํด์ ๊ฐ์ฒด์งํฅ์ฝ๋์ฒ๋ผ ์ธ์คํํฐ์์ ์๋ฃจ๋ฃจ๋ฃฝ ํ๊ณ ๋์ค๊ฒ ํด์ ์ง๊ด์ ์ผ๋ก ํ ์คํธ ํ๊ธฐ ํธํ๊ฒ ํด ์ค๋ค์, ์๋ธ์ฌ์ Authoring์ Runtime์ผ๋ก ๋ฐ๊พธ๋ฉด ๋ค์ ECS๋ก ์ดค๋ผ๋ผ๋~ ํ๊ณ ๋ง๋ฒ์ฒ๋ผ ๋ฐ๊ฟ์ฃผ๋ ๊ธฐ๋ฅ์ ์์ง๊น์ง๋ ์๋ฒฝํ๊ฒ ๊ตฌํํ์ง ๋ชปํด์ ์ด๋ฐ์์ผ๋ก ํ๋ ๊ฒ ๊ฐ๋ค. ๋ํผ์ ์
4. ์๋ธ์ฌ์ ๋๋์ฒด ์ ์ฒด๊ฐ ๋ญ๊น
5. 2๋ฒ์ ๊ทผ๊ฑฐ๋ก ์ด ๊ฐค์์๋ ํ ์ธ๋ถ์ด๊ฐ ์ฐ๊ณ ์๋ LeoECS์ ์ก์์คํ , ๋ฒ์คํธ ์ปดํ์ผ๋ฌ๋ฅผ ํฉ์ณ๋ณด๋ ํ ์คํธ๋ฅผ ์งํํ์. ์ง๊ธ์ ์ฟจํ์ ๋์์ ๋ค์ ธ๊ณ์๋ ์๋ํ๊ณ ์ ์ง์ ๋ฅํ์ GPT4๋๊ป์ ์ฌ๋ฌ ์ฝ๋๋ฅผ ๋ฐท์ด์ฃผ์ จ๋๋ฐ ์ฝ๋๊ฐ ์ค๋ฅ ์๋ ํ๋ฅ ์ด 5๋ฒ ์ฝ๋ ๋ฐท์ด๋ด๊ฒ ํ๋ฉด 1๋ฒ ์ฑ๊ณตํ๋ ์ ๋์ธ ๋ฏ. (๊ฐฐ์จ๋ผ)
6. 4๋ฒ์์ ์ฑ๊ณตํ ์ฝ๋๋ก ๋๋ ค๋ณธ ์ฑ๋ฅ ํ ์คํธ ๊ฒฐ๊ณผ
- ํ๋กํ์ผ๋ง์ ๋๋ฆฌ์ง ์์์. ์ ์ด์ ECS ๊ธฐ๋ฐ ์ฝ๋๊ฐ OOP ๊ธฐ๋ฐ ์ฝ๋๋ณด๋ค ํ๋ ์์ด ๋ ์์ข๊ฒ ๋์ด.(ECS 40~50FPS, OOP 55~60FPS์ธ์ ๋ฆฌ) ๋ฌด์จ ์ด์ ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์. ํ๋ ์๋๋ฒ๊ฑฐ ํ์ธ ๊ฒฐ๊ณผ SRP๋ฐฐ์ฒ๋ ๋ ๋ค ์ ๋จน๋ ์ค.
- ์กฐ๊ฑด์ URP/Lit์์ด๋๋ฅผ ์ฐ๋ ํ๋ธ 4์ฒ๊ฐ ๋ฐฐ์น. OOP๋ Start์์ instantiate(GameObject)๋ก ํ๋ฒ๋ง ๋ฟ๋ฆผ. ๊ทธ์ธ์ ์ถ๊ฐ์ ์ธ ์ ๋ฐ์ดํธ ์์.(๋กํ ์ด์ ์ด๋ ํฌ์ง์ ๋ณ๊ฒฝ ๋ฑ)
7. ๊ทธ๋ ECS๋ก ํ๋ ์ด์ ๊ฐ ์บ์์ ์ค๋ฅ ์ ๋ํ๊ธฐ ์ํด์๋๊น, Translate๋ ํ๋ฒ ์คํํด๋ด. ๊ฒฐ๊ณผ ๋๊ฐ์.
8. ๋ณ๊ฐ๋ก LeoECS ๊ด๋ จ ์ ํ๋ธ ์๋ฃ๋ฅผ ๋ค ์ฐพ์๋ณด๋ ๋ฌ์์์ด๋ฟ์. ์ข๊ฐ์ +1.
9. ๋ด ํ ์คํธ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋ ECS๊ธฐ๋ฐ ์คํฌ๋ฆฝํธ์ ์ด๋ฆ์ ๊ฐ๊ฐ FuxkYouECS, MotherFuxkerECS, ECSBitch์
์ค๋๋ ์ด์ฌํ ๋๊ฐ๋ฆฌ ๊นจ์ง๋ ์ค
์ง๊ธ ์์ค์์ ๊ทธ๋ฅ ์กํ๊ณ ๋ฒ์คํธ๋ง ์์จ๋ ์ถฉ๋ถํจ
์กํ๊ณ ๋ฒ์คํธ ์ฐ๋ ค๋ฉด ๊ฒฐ๊ตญ์๋ dots์ผ๋ก ๊ฐ๊ฒ ๋ง๋ค์ด์ ธ์์ ๊ตฌ์กฐ๊ฐ
ํนํ ์ธ๋์์ค์์ ๋ง๋ค๊ฒ์์ด๋ฉด ๋์ฑ ๊ทธ๋ ๊ณ
LeoECS๋ ๋ฌ์์์ด ๋ฟ์ด์ง๋ง, ๊ธฐ๋ฅ์ ๋จ์ํด์ ๋ฌ์์์ด ๋ชฐ๋ผ๋ ์์ค์ฝ๋๋ง ๋ณด๊ณ ๋ ์ธ์์์. ์์ฐ๋์ค
์์ฆ ์ผ์ง ๋ชป์ฐ๊ณ ์ฟจํ์ ๋๋๊ฑฐ ๋ง๊ธดํ๋ฐ, LeoECS๋๋ฌธ์ ์๋๊ณ ๋น์ ์ ์ก์ ์์คํ ์ AI์ฐ๋ ์ฒ๋ฆฌ๋ถ๋ถ๋๋ฌธ์ ๊ณ ์์ขํ์์ ใ ใ
์.. ์ฟจ๋๋ค๋๊ฒ GPT4 ์๊ธฐ์์...ใ ใ ใ ์์ค์ฝ๋ ํ๋ํ๋ ๋ณด๊ณ ์๊ธด ํ๋ฐ ๋๋ฌด ์ด๋ ค์์ ๊ณ ์์ค์ด๋ค.. ํ.. ์๋ฃ๊ตฌ์กฐ๋ ์ ๋ชจ๋ฅด๊ณ ๋ฌด์์ ๊ตฌํ๋ง ํด์ค๋ ์ฝ๋ฉ์ค๋ ฅ์ด๋ผ ์ฝ์ง๊ฐ ์๋ค. ์์ด์๋ฃ๋ฉด ์์๋ง ๋์ฐ๊ณ ๋จ๋ฌธ๋จ๋ฌธ ํผ์ ํด์ํ๋ฉด์ ํด๋ณผํ ๋ฐ ๋ฌ์์์ด๋ ๋ฒ์ญ๋ ๋ฉ๋๋ฝ์ง๊ฐ ์์์ ๊ณจ๋จธ๋ฆฌ์ผ
LeoECS๋ ๊ทธ๋ฅ ์์ค์ฝ๋ ๋ณด๋ฉด ๋ผ. ๊ตฌ๋ผ์์น๊ณ ํ์ผ 6๊ฐ๊ฐ ๋ค์. EcsWorld,EcsSystem,EcsFilter,EcsEntity,EcsComponent,EcsFilter ๋ DOTS๋ ์์ค์ฝ๋๋ ๋งค๋ฒ ๋ฐ๋๋๊น ์์งํ ๋ณด๋ค๊ฐ ๋๋ ค์ณค๊ณ , Entitas๋ ์ด๊ฑด ๋ญ ECS๊ธด ํ๋ฐ ์ต์ ํ๋ฅผ ์ํด์ CodeGeneration์ผ๋ก ์์ฑ๋๊ฒ๋ค ํฌ์ฑ์ด๊ณ .. SveltoECS๋ ๋ญ ์ธ๊ณ์ธ์ด ๋ง๋ ECS๊ฐ๊ณ ....
LeoECS์ Job๋ถ์ด๋๊ฒ๋ ๋์์ง ์์๋ฐ, ๊ฒ์์ ECS๋ก ๊ตฌํํ๋๋ฐ๋งํด๋ ์๊ฐ์ด ๋ง์ด ํ์ํ๋ฐ, ์ฝ๋๋ง์ Job๊ธฐ๋ฐ ์ฝ๋๋ก ์ง๋ฉด ๋๋ฌด ํ๋ค์ด. ๊ทธ๋์ ๊ทธ๊ฑด ๋์ค์ํ๋๊ฒ๋์๋ฏ
์กฐ์ธ ๊ณ ๋ง๋ค. ์ด๋ฒ ์ฃผ๋ง ๋ชฉํ๊ฐ LeoECS๋ก ํ๋ฉด์ ์ค๋นํด๋ ์ค๋ธ์ ํธ ๋์๋ณด๋๊ฑฐ์ธ๋ฐ ๋๊ฐ๋ฆฌ ์ข ๊นจ์ง๋ฉด ์ด๋ป๊ฒ ๋๊ฒ ์ง ๋ญ..
์ ๋ง ์๊ฐํด๋ณด๋ LeoECS๋ ์คํ์ ๊ธฐ๋ฐ์ธ๋ฐ Burst ์ปดํ์ผ๋ฌ๊ฐ ์๋ ํ ๊น? Dots๊ฐ ์ํคํ์ ๊ธฐ๋ฐ์ด๊ณ ์ด๊ฒ Dots๋ฅผ ์ํด์ ๋์จ ์ปดํ์ผ๋ฌ๋ผ์ ์ํคํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ง ์์์๊น ํ๋ ์๊ฐ์ด ๋ฌธ๋ ์ค์ณค์ด
https://openupm.com/packages/com.leopotam.ecslite.threads.unity/
LeoECS
Lite๋ Jobs ๊ฐ๋ฅํ๊ฐ ๋ด.
๊ทผ๋ฐ ๋ ๊ทธ๋ฅ LeoECS์ฐ๊ณ ์์
์ ๋ณด : gpt4๋ dots ์ต์ ์ ๋ณด๊ฐ ์ ํ ์๋ค