๋ค๋ฅธ ์ด์ ๋ก RUST๋ ๊ณต๋ถํ๊ฒ ๋ค ๋ง๋ณด๊ธฐ๋ก Bevy๋ก ๋ง๋ ํ๋ก์ ํธ ๋ช๊ฐ ๋ฏ์ด๋ดค๋๋ฐ
ํ์๊ธ์ด ์ 5000๋ฌ๋ฌ ์ ๋ ๋๋๊ฑฐ ๊ฐ์๋ฐ ์ ๊ฑธ๋ก ํ๋ก์ ํธ๊ฐ ์ ์ง๊ฐ ๋๋ ค๋? ํ ..!;;
๋ค๋ฅธ ์ด์ ๋ก RUST๋ ๊ณต๋ถํ๊ฒ ๋ค ๋ง๋ณด๊ธฐ๋ก Bevy๋ก ๋ง๋ ํ๋ก์ ํธ ๋ช๊ฐ ๋ฏ์ด๋ดค๋๋ฐ
ํ์๊ธ์ด ์ 5000๋ฌ๋ฌ ์ ๋ ๋๋๊ฑฐ ๊ฐ์๋ฐ ์ ๊ฑธ๋ก ํ๋ก์ ํธ๊ฐ ์ ์ง๊ฐ ๋๋ ค๋? ํ ..!;;
๊ณ ๋ํ๋ผ๋๊ฒ ๋ ๋ง์ด ๋ ๋ณด์ด๋๋ฐ
์ ๋ํฐ๋ ๋ ธํค์์ธ๋ ฅ ํก์ ํ๋๋ ์ ๋ถ๊ฐ ๋ฐ์ด์ค์ ๋๊ฑฐ์ง ์ ๊ฒ ๋๊ฒ ๋ ใ ใ ใ ใ ใ ใ ์ธ๋๋ผ๋ก ์น๋ฉด ์ผ์ฑ๋งํ๊ณ ๊ทธ์ธ๋ ฅํก์ํด์ ๋๋ผ๊ฐ ๋ฐ์ด์ค๊ฑด๋ฐ
์ 5๋ฐฑ์ด ์กฐ์ค๋ก ๋ณด์? ๋ฌด๊ธ ์ ์ ์ธ๋๊ฐ๋ฐ์๋ ์๋๋ฐ
์ 500์ด ๊ฐ์ธ์๊ฒ ํฐ๋์ด์ด๋ ํ๋์ ํ๋ก์ ํธ๋ฅผ ์ด์ํ๊ธฐ์ ์ ์ ๋ ์๋๊น? Bevy๋ฅผ ํผ์ ๊ด๋ฆฌํ๋๊ฑฐ์ผ??
์ ๊ฑธ๋ก ๊ฐ๋ฐํ๋ ค๋ ๋ชฉ์ ์ด ์ค์๊ฐ mmorpg๋ง๊ณ ๋ ์๊ณ ๊ทผ๋ฐ ์ด๋ฏธ ์๋ฆฌ์ Cpp / lua ์์๋ ์์ฆ ์๋ฒ๋ ๊ทธ๋ฅ ์ธ์ด ๋ฐ๋ก ์ฝ๊ธฐ ๊ฐ๋ฅํ lua์ฌ์ฉํ๊ณ ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ cpp ์ค์๊ฐ mmorpg๊ฐ์๊ฑฐ ๋ง๊ณ ์น ์๋ฒ๋ก ๋ง๋ค์ด์ ๋ชจ๋ ํ๋ซํผ ๊ธฐ๊ธฐ์ ๋ฟ๋ ค์ง๋๋ฐ
์ด๊ฒ ๊ฐ๋ฅํ ์ด์ ๋ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ์ฐ์ธ ์ธ์ด๊ฐ Lua์ฌ์์ ์น ์๋ฒ ๋ณด๋ค ์ค์๊ฐ ๋ค์ด๊ฐ๊ฑด cpp + ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๊ฐ ์๋ง์
์คํ ์์ค ํ์ ๋ฐ๋ ๊ธ์ก๋ค ๋ณด๋ฉด ๊ทธ๋ฐ๋ง ์๋์ฌ ๊ฑธ vue๊ฐ์ ์คํ์์ค๋ ๊ฒจ์ฐ ํ ๋ฌ์ 1700๋ง์ ํ์ ๋ฐ์ ๊น์ ๋ณ 1๋ง๊ฐ ๊ฐ๊น์ด๋๋ ํ์ ์ด๋ฉด ํ๋ฌ์ 20?๋ ์ ๋ ๋ฐ๋๋ผ 500์ด๋ฉด ์์ฒญ ํฐ ๊ฑฐ์
์์ฒญ ํฌ๊ธดํ๋ฐ ๊ทธ ๋์ผ๋ก ํ๋ก์ ํธ ์ ์ง๊ฐ ๋ ๊น.. ์๊ฐ์ด๋ค์ด์ Bevy๋ฅผ ํผ์ ๊ด๋ฆฌํ๋๊ฑฐ๋ผ๋ฉด ๋ ์๋ ์๊ฒ ๋ค๋ง
์๋ ๋๋ถ๋ถ์ ์คํ์์ค๋ 1~2๋ช ์ด ๋๋ถ๋ถ ๋๊ณ ๊ฐ, ์ปค๋ฐ ํ๊ฑฐ ํ๋ฒ ๋ณด์
์คํ์์ค ์ด๋ป๊ฒ ๋์๊ฐ๊ณ ์งํํ๋์ง ๊ถ๊ธํ๋ฉด ์ด๊ฑฐ ํ๋ฒ ๋ณด์
https://www.youtube.com/watch?v=-DYPcz14U4Q
์์์ ์ธ์์ด ๊ด๋ฆฌํ๊ณ ์ด๊ฒ์ ๊ฒ ๊ธฐ์ฌ๋ฐ์ผ๋ฉด์ ๊ฐ๋ฐํ๋๊ฑด๊ฐ๋ณด๋ค. ์์ง์ด ๋ง์ ๋๋๋ฐ ๋์ค์ ์ฌ์ ์๊ธฐ๋ฉด ์กฐ๊ธ์ด๋ผ๋ ํ์ ๋ณด๋ด์ค์ผ๊ฒ ๋น
๊ทธ๋ฆฌ๊ณ ์ค์ํ ํ๋ง๋๋ฌ์คํธ ๊ทธ๊ฑฐ๊ฐ๋ฐ์๋ค์ด ์๋ ๊ฒ์ ๋๊ธฐ์ ์ด ์ฌ์ฉํ๋๋์ ํ๋ฅ๋ฐ๋ฆฌ ์์ง (๋ฌด์ ๋ชปํ๋ ์ด์ ๊ฐ ์ด ์์ง์ผ๋ก์คํธ๋ฆฌํฐ ํ์ดํฐ ๋ฑ ์ต์ด 3d ์์ฅ ์ด์์)์ด๊ฑฐ ๋ณด๋ค ๋ณ๋ฐ ๋ค๋ฅผ๊ฒ ์์ด(๋ชปํ๋ฉด ๋ ๋ชปํ์ง ๊ฒ์ ์ธ์ด๊ฐ ์๋๋๊น)๋ช ์ธ๊ธฐ ๋์ ์ง์ ๋ฐ์ c++์ด ์๋ฌด๋๋์ด ์ฒ๋ผ ์คํฌ๋ฉํธ ํด ๋ค์์ ์ ๋ฆฌํ๋ฐ๋น์ฅ ์ธ ์ผ์ด ๊ฒ์ ์ ๊ณ์์ ์
์์ฑ ๋ ์์ง์ด๋ค ๊ฐ ์๋ ์คํฌ๋ฉํธ์์ ์ฒ์๋ถํฐ ๋ค ์ง์ผํ๋ ์๋ ๊ณ ์ ์ปดํ์ผ๋ฌ ์ผ ์ง๊ธ์ 20๋ ์ ์ด๋ฅด๋ค๊ณ ๋ด ๋น์ฅ dart ์ฌ์ฉํ๋ flutter๋ ๊ทธ๋ฐ๋ฐ (ํ 3๋ ๋ง๋ค ํ๋์ ์ผ๋ก ๋ฐ๋ ํ์ํ ๊ธฐ๋ฅ๋ค ์ง์ ๋๊ณ ) ๊ทผ๋ฐ ์ฌ๊ธด ๊ตฌ๊ธ์ ํฌ์๋ฅผ ๋ฐ์ ์์ํ ๋ค๋ฅธ ์ผ์ด์ค ์ ๋ฌธ๊ฐ๋ถ๋ค์ด ์ง์ง ํ์ ํ ์ด๋ธ์ ์ฌ๋ฆฌ๊ธฐ๋ผ๋ ํ ๊น?
์์ ์ ์ง๊ธ ๊ณ ๋๋ ๋น์ทํ์์ง์ด๋๊ฑฐ์ผ๋ฏธ๋๊ฐ ์๋ค ๊ณ ๋๋ ๋ชจ๋ฐ์ผ์์ ๊ฐ๋ฐํ ์ ์๋ ํ ์์ ์ ์ผ ์์ง์ด๋ผ๋ ๋ฉ๋ฆฌํธ๋์์ค์ฝ๋ ๋ณ๊ฒฝ ๋ฐ ์คํ ์์ค 0๋น์ฉ์ด๋ผ์ง์ง ๋ ๊ณ ๋ค์ด 1์ธ ๊ฐ๋ฐ์๋ค์ด ํ์ค ์ ์๋๊ฑฐ์ผ์์ด์ผ ๋๋ ๊ธฐ๋ฅ๋ค์ ์ฝ์ ๋นผ๊ณ ๋ค ์ง์์ด ๋๋ ๋ฐ๋ฉด๋ฒ ๋น๊ฐ? ๋ฒ ๋น! ?์ปดํ์ผ๋ฌ ์์ง ์ ๋์ ์ฑ๋ฅ์๊ตฌ๊ธ์ด ํฌ์ํ ์ฌํ flutter ๋๋
ํ ๋ง๋๋ก ์ง๊ธ๋ ์ ํ ์ํ๋๋ฐ ์ด๋ฏธ ๋๋๊ฑฐ๊ณ ๊ณ ๋๋ ๊ทธ๋ฅ ์์ด๋ ๋ ๋ฒํ๋๊น ์ด ์๋ฆฌ์ ์๋ ์์ง์
๊ทธ๋ญ ๋ ์๊ฒฌ ์ ์์์!!
๋๋ ๋ค๋ฅธ ๋ถ๋ถ์ด ๊ถ๊ธํ๊ฑฐ๋ผ์ ใ ใ ์ํผ ๊ธด ์๊ฒฌ ๋ฌ์์ค์ ๊ณ ๋ง์
๊ทผ๋ฐ ์ฌ๋ฏธ์๋ ์ ์ ๋๊ฐ mmorpg ๋ฒ ๋น๋ก ์์ฅ์ ๋ด๋๋ ์๊ฐ ๋ฐ๋ผ๋ณด๊ฒ ๋ ์์ง์ ๋ง์ ์๊ฒฌ ์กด์คํด์ค์ ๊ณ ๋ง์
๋๋ ๊ฒ์ ์ธ ๋ค๋ฅธ ์ด์ ๋ก RUST๋ฅผ ๊ณต๋ถํ๊ณ ์๊ณ ๊ฒธ์ฌ๊ฒธ์ฌ RUST๋ฅผ ์ฌ์ฉํ๋ Bevy๊ฐ ์๊ฐ๋์ ๋๋ฌ๋ณด๋ ์ฐธ์ด์์ด~ ์ํผ ์๊ณ ๋ง! (๋ด๊ฐ ์๋ rust์ ๋๊ฐ ์๋ rust๊ฐ ๋ค๋ฅธ ๊ฑฐ ๊ฐ๋ค๋ง ์ฌ๊ธฐ์ ๊ทธ๊ฒ ์ค์ํ๊ฑด ์๋๋ ์ํผ!)
์ ๊ฑฐ ํผ์ ๋ฐ๋ ๊ฑธ ๊ป
๋ง์ ๋ค๋๋ค๊ฐ ์ง์ฅ ๊ทธ๋ง๋๊ณ Bevy์ ์ฌ์ธ ๋ฐ์๊ฑฐ ๊ฐ๋๋ผ๊ตฌ; ๋์ค์ bevy๋ก ๊ฒ์ ๋ง๋ค๊ฒ๋๋ฉด ํ์๊ธ ์กฐ๊ธ์ด๋ผ๋ ํด์ค์ผ์ง
๊ทธ์น ๋ฐ์ฏค์ ์ด์ ํ์ด์ง. ๋ฌผ๋ก ๋ง์ฝ ๋ฒ ๋น๊ฐ ์ฑ๊ณตํ๋ค๋ฉด ์ฌ๋จ ์ธ์ฐ๊ณ ๊ทธ์ ๋๋ ์ฐ์ค์ธ ์ ๋๋ก ๋์ ๋ฐ๊ฒ ์ง๋ง.
์คํ์์ค๋ก ๋ ๋ฒ๋ ๋ฐฉ๋ฒ ๊ฒ์ํ๋๊น ์ฌ๋ฌ๊ฐ์ง๋ก ๋ ๋ฒ๋ ๋ฐฉ๋ฒ์ด ์๊ธด ํ๋ค. ๋๋ํ ๋์ด๋ ์์์ ๋ ์ ๋ฒ๊ฒ ์ง..
ECS๋ ์ ์ง๊ธฐ ์ง์ง ๊น๋ค๋ก์ด๋ฏ. OOP๊ฐ ์ง๊ด์ ์ด๊ธด ใ ใ
MMO ์๋ฒ ๊ฐ์๊ฑฐ ์ง ๋ค๊ณ ํด๋ ์คํ์๋ ๊ฒ ๊ฐ์๊ฑฐ ๋ง๋ค๋ผ๋ฉด ๊ตฌ์ญ๋ณ๋ก ๋ ํผ๋ฐ์ค ๋๋ ์ ๋ฌผ๊ณ ์์ด์ผํ ํ ๋ฐ ๊ฐ ๊ฐ์ฒด์ Shared Reference ์ด๋ฐ๊ฑฐ ์ฐ๋ฉด ECS ์ฅ์ ๋ค ๋ ์๊ฐ๋๊ฑฐ๊ณ , ๊ทธ๋ ๋ค๊ณ Entity ID ๋ค๊ณ ์์ผ๋ฉด ๋ฃฉ์ ํ ๋ฒ์ ํฌ์ธํฐ ๋๋ ํผ๋ฐ์ค 3๋ฒ, 4๋ฒ์ฉ ํด์ผ๋๋๋ฐ ์ด๊ฒ ์ค์ฉ์ฑ์ด ์์๊น ์ถ๊ธฐ๋ ํ๊ณ ..
OOP๋ ๋น๊ตํ๋ฉด ์บ์ ํํธ ๋ ํฌ์ธํฐ ์ญ์ฐธ์กฐ ์ฐ์ฐ 3ํ vs ์บ์ ๋ฏธ์ฑ ๋ ์ฐธ์กฐ ์ฐ์ฐ 1ํ ์น๋ถ์กด์ธ๋ฏ. ๋ฌผ๋ก ๊ฐ ์ํฐํฐ์ ๋ก์ปฌํ๊ฒ ์ ์ฉ๋๋ ์ฐ์ฐ์ OOP๋ ๋น๊ต๊ฐ ๋ถ๊ฐ๋ฅํ ์ ๋๋ก ๋น ๋ฅผ๊ฑฐ๊ณ ... (์บ๋ฆญํฐ ํฑ -> ์๊ฐ์ ๋ฐ๋ผ ์์ ํ๋ณต, ์ ๋๋ฉ์ด์ ์งํ, ์ฟจํ์ ์งํ, ๋ฑ๋ฑ๋ฑ ...) ์ฌ์ค ์ด๋ฐ ๋ถ๋ถ ๋ค ์๊ฐํ๋ฉด ECS๊ฐ ์ต์ ํ๋ ์ฌ์ง๊ฐ ํจ์ฌ ๋ง๊ธด ํ๋ฐ, ์ ๋๋ก ์ฐ๊ธฐ๊ฐ ๊น๋ค๋กญ๊ณ , ์ ๋๋ก ์ ์ฐ๊ธฐ๋ ๊น๋ค๋ก์์ ์ด๋จ๊น ์ถ์.
๋ด๊ฐ ECS๊ฐ ์ต์ํ์ง๊ฐ ์๊ณ , ์ฌ๊ณ ๋ฐฉ์ ์์ฒด๊ฐ ์ ์๋๋ฉด ๊ด์ฐฎ๊ฒ ๋๋๊ฑด๊ฐ ... ์ถ๊ธฐ๋ ํ๊ณ , ์ ์ด์ ECS๋ผ๋ ํจํด ์์ฒด๊ฐ ํ๊ณ๊ฐ ๋ช ํํ๊ฑด๊ฐ? ์ถ๊ธฐ๋ ํ๊ณ ...
์ ๋ํฐ์๋ ECS ์๋ค๋๋ฐ ๊ทธ๋ฐ ์์ผ๋ก ํผํฌ๋จผ์ค ๋ฏผ๊ฐํ๊ณ ์ง์ญ์ ์ธ ์ฐ์ฐ์ด ๋๋ถ๋ถ์ธ ๋ชจ๋๋ง ๋ชจ์๋๊ณ , ๊ธฐ๋ณธ ๋ฐํ์ OOP๋ก ํ๋๊ฒ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์์๋ ์ด์์ ์ด์ง ์ถ์. ๋๋ Godot์ Bevy ๊ฒฐํฉํด์ ํ์ฉํด๋ณผ๋ผ๊ณ ใ
ใ ใ
์๋ฒ๋ ๋ชจ๋ฅด๊ฒ ๊ณ DOTS์์๋ ์คํ ์๋๋ฅผ ์ํ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์์ ๋ฉ๋์ ๋จผํธ ๊ธฐ๋ฅ์ด ์๋๊ฑธ๋ก ์๊ณ ์์. ๋ด๊ฐ DOTS ๋ค๋ค๋ณด๋ฉด์ ๋๋ ์ ์ ์ฒญํฌ ๊ฐ๋ ๋ชจ๋ฅด๊ณ ๊ตฌ์กฐ ๋ณ๊ฒฝ๋์ด์ ์์ ๋จน๋๊ฑฐ ๊ณ ๋ ค ์ํ๊ณ ๋์ถฉ ์ง๋ OOP๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ณ ์ต์ ํ๊ฐ ์ข๋ค๋ ์๊ฐ์ด ๋ค์์ด. ์ด๋ ต๋ค๊ณ ๋๋ผ๋ ๋ถ๋ถ์ ์ฌ์ค ์ต์ํจ์ ์ ๋๊ฐ ์๋๊น ์ถ๋ค. ๊ณต๋ถํด๋ณด๋ฉด ์๊ฒ ์ง๋ง ์กฐ๊ฑด์ผ๋ก ์ฟผ๋ฆฌ ๊ฑธ์ด์ ๋ง์กฑํ๋ ์ ๋ค ์คํ์ํค๊ณ ์ํฐํฐ ์ปค๋ฉ๋ ๋ฒํผ๋ก ์ค์ผ์ค ๊ฑธ์ด๋์๊ฑฐ ์คํ์ํค๋ ๊ตฌ์กฐ๊ฐ ๊ต์ฅํ ์ฌํํจ. Godot๋ Bevy๋ ๊ฒฐํฉํด์ ํ์ฉํ๋ค๋๊ฑฐ ๋ณด๋ฉด ๋๋ณด๋ค ์ค๋ ฅ์์ธ๊ฑฐ ๊ฐ์๋ฐ ์ ๋ํฐ entities ๋ฉ๋ด์ผ ํ์ด์ง๋ผ๋ ํ๋ฒ ์ฝ์ด๋ณด๊ณ ๊ฒฐ์ ํด๋ณด๋ ๊ฒ ์ข์๋ณด์ฌ. ๋ชฐ๋ก ! ์ค๋ ฅ์๊ฐ ์๋๋ผ๋ฉด ์ง๊ธ์ ECS๋ก ๊ฒ์ ๊ฐ๋ฐํ๋๊ฑฐ ๋น์ถ๋ผ๊ณ ์๊ฐํจ.
๊ทธ ์ด์ ๋ ๋ ํผ๋ฐ์ค๊ฐ ์๊ณ ์์ง ๊ธฐ๋ฅ์ด ์์ฑ๋์ง ์์ ๊ฒ๋ค์ด ๋ง๊ธฐ ๋๋ฌธ.
๋๋ ๋ชจ๋ฐ์ผ๊ฒ์ ๊ฐ๋ฐ์ ์ข์ํ๋ ํธ์ด๋ผ์ ECS์ ํนํ ๋ถ๋ถ์ด ์์ด. ์๋ฌด๋ฆฌ ๊ฒ์์ด ๊ฐ๋ณ๊ณ ์ต์ ํ๋ฅผ ์ํด๋ ๋ฐ์ด๊ณผ ๊ฐ๋น์ง์ฝ๋ ์ ์ ์ํ ํ๋ ์ ๋๋ ํ์์ ์ด์ฐํ ์๊ฐ ์๋๋ฐ ECS๋ ์ด ๋ถ๋ถ์ ๋ํด์ ์์ฒญ๋ ์ต์ ํ๋ฅผ ๋ณด์ฌ์ฃผ๋๊น, ๊ทธ๋ฆฌ๊ณ ๋๋ ECS์ ๋น ์ ธ์ ์ด์ชฝ ๊ณต๋ถ๋ฅผ ๋ง์ด ํ๋ค๋ณด๋๊น OOP๋ณด๋ค ECS๋ก ์์ ํ๋๊ฒ ํจ์ฌ ์ฌ๋ฐ๊ณ ํธํด์ง. ์ฝ๋๋ฅผ ๋ถ์ํ ๋๋ OOP๋ ์์ ๊ด๊ณ๋ฅผ ์ดํด๋ณด๊ณ ๊ตฌ์กฐ๋ฅผ ํ์ ํด์ผ ํ์ง๋ง ECS๋ ์์คํ ๋จ์๋ก ๋๋ ์ ์ดํด๋ณด๋ฉด ๋จ. ์ด์ ๋ง ๊ณต๋ถ๋ฅผ ์์ํ๋ ์ฌ๋๋คํํ ๋์์ OOP๋ ECS๋ฅผ ๊ฐ๋ฅด์น๋ฉด ECS๊ฐ ๋ ์ฝ๋ค๊ณ ์๊ฐํ ๊ฑฐ๋ผ๊ณ ์ฅ๋ดํจ. ํ๋ก๊ทธ๋จ ๊ณต๋ถํ ๋ ์ ๋ฐ๋ผ์ค๋ ์ฌ๋๋ค๋ ๋ค์์ฑ ๋ค์ด๊ฐ๋ฉด ๋จธ๋ฆฌ ๋นป์์ง๋ ๋งํผ OOP๊ฐ ์ฌ์ด ๊ฐ๋ ์ด ์๋. OOP์ ์ต์ํด์ ธ์ ๊ทธ๊ฒ ํธํด์ง๊ณ ์ฌ์์ง๊ฑฐ์ง.