์šฐ๋ฆฌ๋‚˜๋ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์œ ํŠœ๋ธŒ๋งŒ ๋ด๋„ ์œ ๋‹ˆํ‹ฐ vs ์–ธ๋ฆฌ์–ผ์€ ๋‹จ๊ณจ ์†Œ์žฌ๋‹ค.


๊ทธ๋งŒํผ ์‚ฌ๋žŒ๋“ค ์–ด๊ทธ๋กœ ๋Œ๊ธฐ ์‰ฝ๋‹ค๋Š” ๊ฑฐ์ง€...


ํ”Œ์Šค vs ์—‘๋ฐ•๊ฐ™์€ ๊ฑฐ๋‹ค.


๊ทผ๋ฐ ํ”Œ์Šค๋‚˜ ์—‘๋ฐ•์ด๋‚˜ ๋‘˜๋‹ค RDNA ์ธ๋ฐ ๊ฐœ๋ฐœ์ž์ž…์žฅ์—์„œ ๊ฑฐ๊ธฐ์„œ ๊ฑฐ๊ธฐ๋“ฏ์ด ( ๊ทธ๋Ÿฐ๊ฑฐ ์‹ธ์šธ ์‹œ๊ฐ„์— ์ธํ”ผ๋‹ˆํ‹ฐ ์บ์‹œ ์ตœ์ ํ™”๋‚˜ ํ•˜์ž)


์œ ๋‹ˆํ‹ฐ๋‚˜ ์–ธ๋ฆฌ์–ผ์ด๋‚˜ ๋‘˜๋‹ค ๊ฑฐ๊ธฐ์„œ ๊ฑฐ๊ธฐ์ธ๋ฐ ๊ทธ๊ฑธ ์™œ ๋น„๊ตํ•˜๋ƒ


๋‹ค๋“ค AAA ๊ธ‰ ์€ ์–ธ๋ฆฌ์–ผ ์จ์•ผ ํ•œ๋‹ค๊ณ  ํ•˜์ง€๋งŒ


AAA ๊ธ‰ ๊ฐœ๋ฐœ์‚ฌ ์ค‘์— ์–ธ๋ฆฌ์–ผ ์“ฐ๋Š” ๊ณณ์€ ์—†๋‹ค.


์—”์”จ๊ฐ€ AAA ๊ธ‰ ๊ฐœ๋ฐœ์‚ฌ๋ผ๊ณ  ํ•˜๋ฉด ํ• ๋ง์—†์ง€๋งŒ..


AAA ๊ธ‰์€ ์ž์ฒด ์—”์ง„ ์“ฐ์ง€ ์–ธ๋ฆฌ์–ผ ์—”์ง„์€ ๊ตฌ๋ ค์„œ ์•ˆ ์“ด๋‹ค.


์œ ๋‹ˆํ‹ฐ๋Š” ์•„์˜ˆ ๋งํ•  ํ•„์š”๋„ ์—†๊ณ 


ํ”ํžˆ๋“ค ์–ธ๋ฆฌ์–ผ ์—”์ง„ ์จ๋ดค๋‹ค๊ณ  ํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด๋“ค ๋งŒ๋‚˜์„œ ์–˜๊ธฐํ•ด๋ณด๋ฉด ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ ๊น”์ง์—ฌ๋ณด๊ณ  ๋‚˜ ์–ธ๋ฆฌ์–ผ ์ „๋ฌธ๊ฐ€์•ผ ํ•˜๊ณ  ์œผ์‹œ๋Œ„๋‹ค.


๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์†Œ์Šค ๋กœ์šฐ ๋ ˆ๋ฒจ ๊นŒ์ง€ ์ฐํ•˜๊ฒŒ ์จ๋ณธ ์‚ฌ๋žŒ๋“ค์€ ์–ธ๋ฆฌ์–ผ ... ์—ํœด ํ•˜๊ณ  ํ•œ์ˆจ๋งŒ ์‰ฐ๋‹ค.


์„ฑ๋Šฅ์€ ๊ณ ์น˜๋ฉด ๋˜๋Š”๋ฐ ์ด๊ฒŒ ์›Œ๋‚™ ๋ง‰์ฝ”๋”ฉ๋˜์„œ ๋ฒ„์ ผ ์˜ฌ๋ผ๊ฐ€๋ฉด ๊ฐˆ์ˆ˜๋ก ๋‚œ๊ฐœ๋ฐœ ๋œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋‹ค ๋ณด๋‹ˆ ๋ญํ•˜๋‚˜ ๊ณ ์น˜๊ธฐ๋„ ์‰ฝ์ง€๊ฐ€ ์•Š๋‹ค.



๊ทผ๋ฐ ๊ทธ๊ฑด ์‚ฌ์‹ค ๊ฒŒ์ž„ ์—”์ง„ ์ „๋ฐ˜์˜ ๋ฌธ์ œ์ด๊ณ 


์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ๋น„๊ตํ•ด์•ผ ํ•˜๋Š”๊ฑด


pureECS ์—”์ง„๊ณผ ๋ฒ”์šฉ ๊ณต๋ฃกย  ์—”์ง„ ( ์œ ๋‹ˆํ‹ฐ๋‚˜ ์–ธ๋ฆฌ์–ผ๊ฐ™์€ )์ด๋‹ค.ย 



์šฐ๋ฆฌ๋Š” ์— ๋ฐ”ํฌ ์‚ฌ๋ก€๋ฅผ ์ž˜ ์‚ดํŽด๋ด์•ผ ํ•œ๋‹ค.


์— ๋ฐ”ํฌ๋Š”ย 


EA DICE ์—์„œ ์–ธ์—๋“€์ผ€์ดํ‹ฐ๋“œ ํ•œ๋งˆ๋””ํ–ˆ๋‹ค๊ฐ€ ์งค๋ฆฐ ๊ทธ ์–‘๋ฐ˜์ด ์ฐจ๋ฆฐ ํšŒ์‚ฌ๋‹ค.


๋‚˜์˜ค๋ฉด์„œ ๊ณฑ๊ฒŒ ํ˜ผ์ž ๋‚˜์˜ฌ๊ฒƒ์ด์ง€ ์‚ฌ๋‚ด A ํŒ€ ์— ํ•ด๋‹นํ•˜๋Š” ๋ฉค๋ฒ„๋Š” ๋‹ค ๋ฐ๋ฆฌ๊ณ  ๋‚˜์™”๋‹ค.


๋ญ DICE ์ธ๋ ฅํ’€ ๊ทœ๋ชจ๊ฐ€ ์–ผ๋งˆ์ธ๋ฐ ๊ทธ ์ •๋„ ๋‚˜๊ฐ„๊ฑฐ๋Š” ๋„๋•๋„ ์•ˆํ•  ๊ฑฐ๋ผ๋”๋‹ˆ ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ๋ฒ ํ•„ 2042 ๋ณด๋ฉด ์˜ํ–ฅ ์—†๋‹ค๊ณ  ๊ณผ์—ฐ ๋งํ•  ์ˆ˜ ์žˆ์„๊นŒ


์•„๋ฌดํŠผ ์ด์‚ฌ๋žŒ๋“ค์ด ํšŒ์‚ฌ ๋‚˜์™€์„œ ๊ฒŒ์ž„ ๋งŒ๋“ค๋ผ๊ณ  ๋ณด๋‹ˆ ์—”์ง„ ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ


ํ”„๋กœ์ŠคํŠธ๋ฐ”์ดํŠธ๊ธ‰์„ ๋งจ๋•…์—์„œ ๋งŒ๋“ค๋ ค๊ณ  ๋ณด๋‹ˆ ๊น๊นํ•œ๊ฑฐ๋‹ค.


์ผ๋‹จ ์—๋””ํ„ฐ ๋งŒ๋“œ๋Š”๋ฐ๋งŒ ์„ธ์›”์ผ๊ฑฐ๋‹ค.


๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋งŒ๋งŒํ•œ ์˜คํ”ˆ ์†Œ์Šค ์—๋””ํ„ฐ ํฌํ•จ ์—”์ง„์„ ์ฐพ์•„๋ณด๋‹ˆ... ์„ธ์ƒ์— ๊ทธ๋Ÿฐ ๊ฑฐ ํ•˜๋‚˜ ๋ฐ–์— ์—†๋‹ค.


์–ธ๋ฆฌ์–ผ์ด๋‹ค.


๋ฌธ์ œ๋Š” ์ด ์–ธ๋ฆฌ์–ผ์ด ์„ฑ๋Šฅ์ด ๋„ˆ๋ฌด ๊ตฌ๋ ค์„œ ๋ชป ์จ๋จน๋Š”๊ฑฐ๋‹ค.


์–ธ๋ฆฌ์–ผ ์„ฑ๋Šฅ์ด ๊ตฌ๋ฆฐ ์ด์œ ๋Š”ย 


Introduction to Data Oriented Design - Frostbite (ea.com)


์—ฌ๊ธฐ ์ฐธ์กฐํ•˜๋ฉด ์ด์œ ๊ฐ€ ๋‚˜์˜จ๋‹ค.


์ œ๋Œ€๋กœ ๋งŒ๋“  ๊ฒƒ์— ๋น„ํ•ด์„œ ๋Œ€๋žต 600 ๋ฐฐ ๋А๋ฆฌ๊ฒŒ ๋œ๋‹ค.


๊ทผ๋ฐ ์ฃผ์˜ํ•  ๊ฒƒ์€ ์ด๊ฑด ํƒ€๊ฒŸ ํ”Œ๋žซํผ์ด LLVM ์ผ ๋•Œ์ด๋‹ค.


LLVM ์ด ํƒ€๊ฒŸ์ด ์•„๋‹ˆ๋ฉด ์–ธ๋ฆฌ์–ผ๋„ 600 ๋ฐฐ ์”ฉ ๋А๋ฆฌ์ง„ ์•Š๋‹ค. ( ๊ทธ๋ž˜๋„ ๋งŽ์ด ๋А๋ฆฌ๋‹คย )


์–ด์„คํ”ˆ ์ค‘๊ธ‰ ๊ฐœ๋ฐœ์ž๋“ค์€ ์–ธ๋ฆฌ์–ผ์ด ๋ฌด๊ฑฐ์›Œ์„œ ๋А๋ฆฌ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์ฅ๋ฟ” ๋ฌด๊ฑฐ์›Œ์„œ ๋‹ค๋ฃจ๊ธฐ ํž˜๋“ค์ง€ ๋А๋ฆฌ์ง€๋Š” ์•Š๋‹ค. ๊ทธ๋ƒฅ ๊ตฌ์กฐ ์ž์ฒด๊ฐ€ ๊ตฌ๋‹ฅ๋‹ค๋ฆฌ๋ผ์„œ ๊ทธ๋Ÿฐ๊ฑฐ๋‹ค.


์—ํ”ฝ ๋‚ด๋ถ€์—์„œ๋„ ์ตœ์‹  ๊ตฌ์กฐ๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ์• ์“ฐ๋Š” ์ผ๋ถ€ ์ง์›๋“ค์ด ์žˆ๋‹ค. ๋ธŒ๋ผ์ด์–ธ ๊ฐ™์€.. ๊ทผ๋ฐ ๋ญ ๋Œ€๋นต์ด ๊ผฐ๋Œ€ ๋ผ์„œ ์–ด์ฉ” ์ˆ˜๊ฐ€ ์—†๋‹ค.


ํ•œ๋งˆ๋””๋กœ ์–ธ๋ฆฌ์–ผ ์—”์ง„์˜ ์ตœ๋Œ€ ๋ฌธ์ œ์ ์€ Actor ํด๋ž˜์Šค๋‹ค.


๊ทผ๋ฐ ๋‹ค๋“ค ์•Œ๊ฒ ์ง€๋งŒ ๊ทธ๊ฒŒ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค์ธ๋ฐ๋‹ค๊ฐ€ Actor , Physics , Network ๊ฐ€ ํ•œ๋Œ€ ๋งž๋ฌผ๋ ค์„œ ๋Œ์•„๊ฐ„๋‹ค.



๊ทธ๋ž˜์„œ ์— ๋ฐ”ํฌ๋Š” ๊ฒฐ๋‹จํ•œ๋‹ค.


๊ทธ๋ƒฅ ๋‹ค ๋“ค์–ด๋‚ด์ž..ย 


๊ทธ๋Ÿฌ๋ฉด ๋ญ๊ฐ€ ๋‚จ๋ƒ๊ณ ?


๊ป๋ฐ๊ธฐ๊ฐ€ ๋‚จ๋Š”๋‹ค. ์—๋””ํ„ฐ..


๊ทธ๋ฆฌ๊ณ  ์ž์ฒด ์—”์ง„ ์ฝ”์–ด๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.


๊ทธ๋Ÿฌ๋‹ˆ๊นŒ..


๋จธ์Šคํƒฑ ์ „ํˆฌ๊ธฐ๋ฅผ ์˜๊ตญ์—์„œ ๊ฐ€์ ธ๊ฐ€์„œ ์จ๋จน์œผ๋ ค๊ณ  ๋ณด๋‹ˆ๊นŒ ๊ณ ๊ณ ๋„์—์„œ ๊ณ ์ž ๋˜์„œ ์ œ๊ณต๊ธฐ๋กœ ๋ชป ์จ๋จน์—ˆ๋Š”๋ฐ


๋ฌธ์ œ๊ฐ€ ์ฝ”์–ด ์—”์ง„์ธ ๊ฑฐ ๊ฐ™์•„์„œ ์—˜๋ฆฌ์Šจ ์—”์ง„ ๋“œ๋Ÿฌ๋‚ด๊ณ  ์ž๊ธฐ๋„ค ๋กค์Šค ๋กœ์ด์Šค ์—”์ง„ ํƒ‘์žฌํ•˜๋‹ˆ๊นŒ ๋ฌด์ ์˜ ์ „ํˆฌ๊ธฐ๊ฐ€ ๋œ ๊ฒƒ ๊ณผ ์™„์ „ํžˆ ๊ฐ™๋‹ค.


๋ฌผ๋ก  ์–ธ๋ฆฌ์–ผ๋„ ์ €๊ณ ๋„์—์„œ๋Š” ์šฐ์ˆ˜ํ•œ ์ „ํˆฌ๊ธฐ ์ด์ง€๋งŒ ์—”์ง„์ฝ”์–ด๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์ „ ๊ณ ๋„์—์„œ ๋ฌด์ ์ด ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋Œ€๋‹จํžˆ ๋†’์€ ๊ฒƒ์ด๋‹ค.


๊ทธ๋ž˜์„œ ์— ๋ฐ”ํฌ๋Š”


Actor ์™€ ๊ทธ์™€ ๋งž๋ฌผ๋ ค์žˆ๋Š” ๊ฒƒ์„ ๋“œ๋Ÿฌ๋‚ด๊ณ  ์ž๊ธฐ๋„ค pureECS ์•„ํ‚คํ…์ณ์˜ rust ๋กœ ๋งŒ๋“  ๋ฐœ์นธ ์ฝ”์–ด๋ฅผ ํƒ‘์žฌํ•œ๋‹ค.



์ž ์šฐ๋ฆฌ๊ฐ€ ๊ฑฑ์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๊ทธ ๋‹ค์Œ์ด๋‹ค.


๋„ฅ์Šจ์ด๋ผ๋Š” ํšŒ์‚ฌ๋Š” ์›๋ž˜ ๊ฒŒ์ž„๋ณด๋‹ค๋Š” M&A ๋กœ ์„ฑ์žฅํ•œ ํšŒ์‚ฌ์ธ ๊ฑด ๋‹ค ์•Œ๊ฑฐ๋‹ค.


์–ด๋””์„œ ๊ท€์‹ ๊ฐ™์ด ์•Œ๊ณ ์„œ ๋‹น์—ฐํžˆ ์—”์ง„ ๊ฐœ์กฐํ•˜๋А๋ผ ๊ฒŒ์ž„ ๋งŒ๋“ค ์—ฌ๋ ฅ์ด ์—†์–ด์„œ ํ—ˆ๋•์ด๋˜ ์— ๋ฐ”ํฌ๋ฅผ ์ธ์ˆ˜ํ•ด ๋ฒ„๋ฆฐ๋‹ค.



๊ทธ๋ฆฌ๊ณ  ๋„ฅ์Šจ ๊ฒŒ์ž„๋“ค์˜ ์งˆ์  ํ–ฅ์ƒ์ด ์–ด๋• ๋Š”์ง€ ๋‹ค๋“ค ์•Œ ๊ฒƒ์ด๋‹ค.



์ด๊ฒŒ ์ตœ๊ทผ ํŠธ๋ Œ๋“œ์ด๋‹ค.


๊ฐ€๋ณ๊ณ  ์ž‘๊ณ  ๊ณ ์„ฑ๋Šฅ์ด๊ณ  flexible ํ•œ pureECS ๋ฏธ๋‹ˆ ์—”์ง„ + ๋“œ๋ฆฝ๋‹ค ๋ฌด๊ฒ๊ธฐ๋งŒ ํ•œ ์—”์ง„์˜ ์—๋””ํ„ฐ...



์กฐ๊ธˆ ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฏธ ์™ธ๊ตญ ๋„˜๋“ค์€


๋‹ค๋“ค pureECS ์—”์ง„ + ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ ๋˜๋Š” pureECS ์—”์ง„ + ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ ์— ๊ด€์‹ฌ์˜ ์ดˆ์ ์ด ๋งž์ถฐ์ ธ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.


์™œ ํฌ๋ผ์ด๋Š” ์—†๋ƒ๊ณ ?


ํฌ๋ผ์ด๋Š” 5 ๋ถ€ํ„ฐ pureECS ๋กœ ์ „ํ™˜ํ–ˆ๋‹ค.


์œ ๋‹ˆ์ง„์€ ์ง„์ž‘์— ECS ๋‹ค.



๋ˆ ์™•์ฐฝ ๋‚ด์•ผ ํ•˜๋Š” ์ €๋Ÿฐ ์—”์ง„ ๋ง๊ณ 


์šฐ๋ฆฌ๋“ค์ด ์จ๋จน์„ ๋งŒํ•œ pureECS ์—”์ง„์€ ํ˜„์žฌ 3 ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.




1. ์œ ๋‹ˆํ‹ฐ hybrid renderer : ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ + pureECS ( ์ž๊ธฐ๋„ค๋“ค์ด DOTS ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ) ์—์„œ 90 ํ”„๋กœ๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋žœ๋”๋Ÿฌ๊ฐ€ ์ฐจ์ง€ํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.


๊ฐœ์ธ์ ์œผ๋กœ ์ด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋žœ๋”๋Ÿฌ๋Š” ์ •๋ง ๋ฌด์‹œ๋ฌด์‹œํ•œ ๋ฌผ๊ฑด์ธ๋ฐ. ๋ฌธ์ œ๋Š” ์ด๊ฒŒ ๋„ˆ๋ฌด ๊ณ ์„ฑ๋Šฅ์ด์–ด์„œ ์ด๊ฒŒ ๊ณ ์„ฑ๋Šฅ์ด๋ผ๋Š” ๊ฑธ ์•„๋Š” ์‚ฌ๋žŒ ์กฐ์ฐจ๋„ ์ค‘๊ธ‰ ๋ ˆ๋ฒจ์€ ๋ฒ—์–ด๋‚˜์•ผ๋งŒ ํ•œ๋‹ค. ์—ํ”ฝ ์ฝ”๋ฆฌ์•„ ์ˆ˜์ค€์œผ๋กœ๋Š” ์–ด๋ฆผ๋„ ์—†๋‹ค.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋žœ๋”๋Ÿฌ์˜ ๊ฐœ๋ฐœ์ž๋Š” ํ•€๋ž€๋“œ ์‚ฌ๋žŒ์ธ ์„ธ๋ฐ”์Šค์ฑค ์•Œํ† ๋„จ์ธ๋ฐ.. ์ด ์‚ฌ๋žŒ์ด ์ „์„ธ๊ณ„ AAA ๊ธ‰ ๊ฒŒ์ž„์˜ ์ตœ์ ํ™”๋Š” ๊ฑฐ์˜ ํ˜ผ์ž ๋„๋งก์•„ ํ•œ ๊ทธ๋ƒฅ S ๊ธ‰ ์ „์„ค์˜ ๋ชจํ—˜์ž๋‹ค.ย 

๋‹จ์ ์€ AMD ์—์„œ๋งŒ ์ž˜ ๋Œ์•„๊ฐ„๋‹ค. ๊ทธ๋ƒฅ ์ด์‚ฌ๋žŒ์˜ ์•„์ด๋””์–ด๋ฅผ ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ณ๋กœ ๋งŒ๋“ ๊ฒŒ RDNA ๋‹ค.

์œ ๋‹ˆํ‹ฐ ๊ทธ ๋กœ๋ณดํŠธ ๋‚˜์˜ค๋Š” ํ™๋ณด ์˜์ƒ ์•„๋‹ด์ด์—ˆ๋˜๊ฐ€.. ๊ฑฐ๊ธฐ์„œ ๋‚˜์˜ค๋Š” ์‚ฌ๋žŒ๋“ค์„ ์„ ๋„ํ•ด๊ฐ€๋Š” ๋กœ๋ด‡ ๋‘๋ช…์ด ๋‚˜์˜ค๋Š”๋ฐ ์„ธ๋ฐ”์Šค์ฑค์ด๋ž‘ ๋ฃจ๋‹ค.ย 

๋กœ๋ด‡ ์ด๋ฆ„์„ ์–ด์ผ€ ์•„๋ƒ๊ณ ? ์œ ๋‹ˆํ‹ฐ ์–ด์…‹ ์Šคํ† ์–ด์— ๊ทธ๋ ‡๊ฒŒ ์จ์žˆ๋”๋ผ.

์„ธ๋ฐ”์Šค์ฑค์€ ์ด ์„ธ๋ฐ”์Šค์ฑค์ด๊ณ  ๋ฃจ๋Š” AMD ์˜ ๋ฃจ ํฌ๋ž˜๋จธ ๋‹ค. ๋ญ ๋‘˜์ด ๋ญ”๊ฐ€ ์—ด์‹ฌํžˆ ๊ถ๋ฆฌํ•ด์„œ ๋งŒ๋“ค์–ด์„œ ๋ฌด์‹œ๋ฌด์‹œํ•œ ์œ„๋ ฅ์„ ๋ณด์—ฌ์ฃผ์ง€๋งŒ ๋ญ ์ฝ˜์†” ๊ฒŒ์ž„ ๋งŒ๋“ค๋•Œ ๋นผ๊ณ ๋Š” ์˜๋ฏธ์—†๋‹ค.

์„ธ๋ฐ”์Šค์ฑค ์ตœ๊ทผ ํŠธ์œ„ํ„ฐ ๋ณด๋‹ˆ๊นŒ ์ธํ…” ์ž‘์—…๋„ ํ•˜๊ณ  ๋งฅ์šฉ ์ปจ๋ฒ„ํŒ…๋„ ํ•˜๊ณ  ๋กœ๋“œ๋งต์—์„œ ํ•˜๋“œ์›จ์–ด๋ณ„ ์ตœ์ ํ™” ์ž‘์—… ์ค‘์ด๋ผ๋‹ˆ ์ข€ ๊ธฐ๋‹ค๋ ค ๋ณด์ž. ๊ทผ๋ฐ ์“ฐ๊ธฐ ๋”๋Ÿฝ๊ฒŒ ์–ด๋ ต๋‹ค.


2. Bevy ์—”์ง„ + ์–ธ๋ฆฌ์–ผ ์—๋””ํ„ฐ : ์ž ์ด ๋ชจ๋“  ์ผ์˜ ๋ฐœ๋‹จ ์— ๋ฐ”ํฌ๊ฐ€ ๋ฒŒ์ธ ์ผ ๊ธฐ์–ตํ•˜๋ƒ? ์— ๋ฐ”ํฌ ๊ฐ€ ๊ฐˆ์•„์น˜์šด ๊ทธ ํ•ต์‹ฌ ๊ฒŒ์ž„ ์ฝ”์–ด ๋˜๊ฒ ๋‹ค. ๋ฌผ๋ก  ์ „๋ถ€๋‹ค ๋Š” ์•„๋‹ˆ๊ณ  ์ผ๋ถ€๋งŒ ๊ณต๊ฐœํ•œ ๊ฑฐ๊ฒ ์ง€๋งŒ ํ•˜์—ฌํŠผ ์ž‘๊ณ  ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ณ  ํ€„๋ฆฌํ‹ฐ๋„ ๋ง˜๋งŒ ๋จน์œผ๋ฉด ์–ผ๋งˆ๋“ ์ง€ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์‹ค ์„ฑ๋Šฅ์ด ์–ธ๋ฆฌ์–ผ๋ณด๋‹ค ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ์–ธ๋ฆฌ์–ผ๋ณด๋‹ค ๊ณ ํ€„๋ฆฌํ‹ฐ๋„ ๊ฐ€๋Šฅํ•  ๊ฑฐ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค๊ณ  rust ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ์ฐธ๊ณ ๋กœ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋žœ๋”๋Ÿฌ๋„ rust ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค.ย 


3. ourMachinery ์—”์ง„ : ์ฒ˜์Œ์—์„œ๋„ ์–˜๊ธฐํ–ˆ๋“ฏ์ด ์–ธ๋ฆฌ์–ผ ๋กœ ๋งŒ๋“  AAA ๊ธ‰ ๊ฒŒ์ž„์ด ๋งŽ์€ ์ค„ ์•Œ์ง€๋งŒ ์‚ฌ์‹ค์€ ๋ณ„๋กœ ์—†๋‹ค. ๋Œ€๋ถ€๋ถ„ ๊ธฐํš์€ ์ข‹์ง€๋งŒ ๊ธฐ์ˆ ๋ ฅ์€ ์—†๋Š” ํšŒ์‚ฌ๋“ค์ด ์šธ๋ฉฐ ๊ฒจ์ž๋จน๊ธฐ๋กœ ์“ฐ๋Š” ์—”์ง„์ด๊ณ  ํŠนํžˆ๋‚˜ ์˜คํ”ˆ์›”๋“œ์— ์ทจ์•ฝํ•˜๋‹ค. ์–ธ๋ฆฌ์–ผ 5 ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์˜คํ”ˆ์›”๋“œ์— ๋ชฉ๋ฉ”๋Š” ์ด์œ ๊ฐ€ ์ž๊ธฐ๋„ค ์•ฝ์ ์ด๋ผ์„œ ๊ทธ๋ ‡๋‹ค.ย  ์˜คํ”ˆ์›”๋“œ๋ฅผ ์–ธ๋ฆฌ์–ผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ ๋งํ•  ๋ป”ํ•œ ๋ฐ์ด์ฆˆ ๊ณค ์„ ์ƒ๊ฐํ•ด ๋ณด์ž. ๊ฐ„๋‹จํ•˜๊ฒ ์ง€ ํ•˜๊ณ  ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์—”์ง„์„ ๋ชฝ๋•… ๋‹ค ๋œฏ์–ด ๊ณ ์ณ์•ผ ํ•  ์ค„ ์–ด๋–ป๊ฒŒ ์•Œ์•˜๊ฒ ๋‚˜. ๊ทธ๋ž˜์„œ ์›ƒ๊ธฐ๊ฒŒ๋„ ํžˆํŠธ์ž‘ ์ค‘์—๋Š” ์–ธ๋ฆฌ์–ผ ๋ณด๋‹ค ๋” ๋งŽ์ด ์“ด ๋ฌด๋ช…์˜ ์—”์ง„์ด ์žˆ๋Š”๋ฐ ์ŠคํŒ…๊ทธ๋ ˆ์ด ์—”์ง„์ด๋‹ค. ๊ทธ๋ ‡๋‹ค 3ds max ์‚ฌ๋ฉด ๋“ค์–ด ์žˆ๋Š” ๊ทธ๊ฑฐ ๋งž๋‹ค. ํ—ฌ๋‹ค์ด๋ฒ„ ,์˜คํฌ ๋จธ์ŠคํŠธ ๋‹ค์ด ๋“ฑ๋“ฑ ์˜์™ธ๋กœ ์ธ๋”” ๊ฒŒ์ž„ ์ค‘์— ์ŠคํŒ…๊ทธ๋ ˆ์ด ์“ด ํžˆํŠธ์ž‘์ด ๋งŽ๋‹ค. ๊ทผ๋ฐ ์ด ์ŠคํŒ…๊ทธ๋ ˆ์ด ๋งŒ๋“  ์•„์ €์”จ๊ฐ€ ์—”์ง„์„ ์˜คํ† ๋ฐ์Šคํฌ์— ํŒ”์•„๋จน๋Š”๊ฒŒ ์งญ์งค ํ–ˆ๋˜๊ฐ€ ๋ณด๋‹ค. ์—”์ง„ ํŠธ๋ Œ๋“œ๊ฐ€ pureECS ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฑด ๋ช…๋ฐฑํ•˜๋‹ˆ๊นŒ ์•„ ๊ทธ๊ฑฐ ๋‚˜๋„ํ•˜๊ณ  ๋งŒ๋“ ๊ฒŒ ์•„์›Œ ๋จธ์‹œ๋„ˆ๋ฆฌ ์—”์ง„์ด๋‹ค.ย 

์ด ์—”์ง„์˜ ์ตœ๋Œ€ ์žฅ์ ์€ rust ๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿผ C++ ๋กœ ๋˜์–ด ์žˆ๋ƒ๊ณ ? ์–ธ๋ฆฌ์–ผ์ด ๋А๋ฆฐ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ C++ ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์–ธ๋ฆฌ์–ผ์ด ๊ฐ€๋ง์—†๋Š” ๊ฑฐ๊ณ . ํŒ€์Šค์œ„๋‹ˆ๊ฐ€ C++ ๋น ๋Œ์ด๊ฑฐ๋“ .. ๊ทธ๋ ‡๋‹ค ๋จธ์‹œ๋„ˆ๋ฆฌ ์—”์ง„์€ C ๋กœ ๋˜์–ด ์žˆ๋‹ค. ํ”ํžˆ๋“ค ์ฐฉ๊ฐํ•˜๋Š”๊ฒŒย  C++ ์€ ํ‘œ์ค€์ด ์•„๋‹ˆ๋‹ค C ๊ฐ€ ํ‘œ์ค€์ด์ง€..ย 

C ๋ฅผ ๊ฐ์ฒด ์ง€ํ–ฅํ™” ์‹œํ‚จ๊ฒŒ C++ ์ด๋ผ๋ฉด C ๋ฅผ ๋ฐ์ดํƒ€ ์ง€ํ–ฅํ™” ์‹œํ‚จ๊ฒŒ rust ๋‹ค . ๋‹น์—ฐํžˆ ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์‹ฑ์ด ํ‘œ์ค€ํ™”๋œ ํ•˜๋“œ์›จ์–ด๋กœ ์ž๋ฆฌ์žก์€ ์š”์ฆ˜์— ๊ฐ์ฒด์ง€ํ–ฅ์€ ๋А๋ ค์„œ ๋ชป ์จ๋จน๋Š”๋‹ค. C++ ํƒ“์ด ์•„๋‹ˆ๋ผ๋Š” ์ธ๊ฐ„๋“ค ์ง€๊ธˆ ๋‹น์žฅ์ด๋ผ๋„ rust ๊ณต๋ถ€ ์ข€ ํ•ด๋ด๋ผ. C++ ๋กœ ๋‹ต์ด ์—†๋‹ค๋Š” ๊ฑธ ๊ธˆ๋ฐฉ ์•Œ๊ฑฐ๋‹ค.


๋ฌผ๋ก  ๊ฒŒ์ž„์„ rust ๋กœ ๋งŒ๋“ค ํ•„์š”๋Š” ์—†๋‹ค. ํ•ต์‹ฌ ์ฝ”์–ด๋งŒ rust ๋กœ ๋งŒ๋“ค๊ณ  ๊ทธ ์œ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ C++ ์„ ์—Ž๋“  C# ์„ ์—Ž๋“  ๋ณ„ ์ƒ๊ด€์€์—†๋‹ค๋งŒ


๊ทธ๋Ÿฌ๋ ค๋ฉด ์œ ๋‹ˆํ‹ฐ ์ฒ˜๋Ÿผ ์ž์ฒด ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.ย 


์ž ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด purECS ์—”์ง„์˜ ์„ฑ๋Šฅ์„ ์œ ๋‹ˆํ‹ฐ ๋‚˜ ์–ธ๋ฆฌ์–ผ๋กœ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ฐฉ๊ฐํ•˜๋Š” ์ค‘์ƒ๋“ค์—๊ฒŒ ํ•œ๋งˆ๋”” ํ•˜์ž๋ฉด


์ด ์ฐจ์ด๊ฐ€ ์ ๊ฒŒ ์žก์•„์„œ 1000 ๋ฐฐ ์ฐจ์ด๋‹ค. ๋Šฌ๋“ค์ด ๋ญ”์ง“์„ ํ•ด๋„ ์ด ์ฐจ์ด๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜๋Š” ์—†๋‹ค.ย