DirectX 12๋ฅผ ํตํด ๊ทธ๋ํฝ์ค ๊ธฐ์ด๋ฅผ ํ์ตํ๋ ๊ฐ์์ ๋๋ค. 3D ์ธ์์ ๋ฌผ์ฒด๊ฐ ์ด๋ค ์๋ฆฌ๋ก ๋ชจ๋ํฐ ํ๋ฉด์ ๊ทธ๋ ค์ง๋์ง ๊ณต๋ถํ๊ฒ ๋ฉ๋๋ค.
[Rookiss] ์ ๊ท ๊ฐ์ & ๋ฉํ ๋ง ๊ด๋ จ ๊ณต์ง
์๋ ํ์ธ์, ๊ฒ์๊ฐ๋ฐ ๊ฐ์๋ฅผ ์ฐ์ฌ์ค์ธ Rookiss์ ๋๋ค.
์ค๋์ ๊ต์ฅํ ๋ค์ํ ๋ด์ฉ์ ๊ณต์ ๋๋ฆฌ๊ณ ์ ์์์์ ์์ฑํ๊ฒ ๋์์ต๋๋ค.
์ฐ์ ๊ธ์ผ [C++20 ํ์ด๋ณด๊ธฐ]์ด๋ผ๋ ์๊ณ ๊ท์ฌ์ด ๊ฐ์๊ฐ ์คํ ๋์์ต๋๋ค.
C++20์๋ 4๋์ฒํฉ์ธ Module, Concept, Range, Coroutine์ ๋น๋กฏํด์,
์ ์ฉํ ๋ฌธ๋ฒ๋ค์ด ๋ค์ ์ถ๊ฐ ๋์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก๋ ์ฝ๋ฃจํด์ ์ข ๋ง์ด ์ค๋ง์ ํ์ง๋ง
timezone, jthread, format ๋ฑ ์๋ฒ ํ๋ก๊ทธ๋๋จธํํ
๋์์ด ๋๋ ๋ถ๋ถ์ ๋ง์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์์งํ C++ ์ ๊ท ๊ธฐ๋ฅ ๊ณต๋ถ๋ ํ์คํ ์ง๋ฃจํ ๋ถ๋ถ์ด ์์ต๋๋ค.
ํ์ง๋ง ์ฃผ๊ธฐ์ ์ผ๋ก ํ ๋ฒ์ฉ C++ ์ง์์ ๊ฐฑ์ ํ๋ฉด,
ํ๋ ํด๋น ๋ฌธ๋ฒ์ด ์ ๋ง ํ์ํ ์ํฉ์ด ์๊ธธ ๋ ์์ง ์๊ณ ์ฐพ์๋ณผ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์๊ฐ์ด ๋์ค ๋ ๊ฐ๋ณ๊ฒ ํ์ด๋ณด๋ ๊ฒ์ ์ถ์ฒ ๋๋ฆฝ๋๋ค.
๊ทธ ๋ค์์ผ๋ก๋ ๊ฐ์ ์์ ๊ด๋ จ ๊ณต์ง์
๋๋ค.
์ต๊ทผ์ ๋ณํํ๋ ์ผ์ด ๋๋ฌด ๋ง์์ ธ์ ์ด์ ๊ณต์ง์์
๋ง์๋๋ฆฐ ์ผ์ ์ด ๊ณ์ ๋ฐ๋ฆฌ๊ณ ์๋ ์ , ์ฌ๊ณผ๋ฅผ ๋๋ฆฝ๋๋ค.
[C++20] ๋ค์ ๊ฐ์๋ก๋ ์๋๊ฐ ์ ๋์ ํ์ฐธ
๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ฃจ๋ [DX12 ๋ฆฌ๋ด์ผ]๋ถํฐ ์งํํ ์์ ์
๋๋ค.
์์ง ๋ฌธ์ ๋ ์์๊ณ , ๊ฐ์ ์ ์ฒด์ ์ผ๋ก ์ ๊ฐ ๋ฒ๋ฒ
๊ฑฐ๋ฆฐ ๊ฒ๋ ์์ด์
[๋ค์ ์ฐ์ผ๋ฉด ๋ ์ ๋ง๋ค ์์ ์ด ์๋๋ฐ]๋ผ๋ ์๊ฐ์ ๊ณ์ ํ์๋๋ฐ,
์ด๋ฒ์ ๋ง์์ ๋จน๊ณ ์ ๋๋ก ๋ง๋ค์ด๋ณด๊ณ ์ ํฉ๋๋ค.
์ฃผ๋ก ๋ณ๊ฒฝ๋๋ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์
๋ฐฉ์ ๋ณ๊ฒฝ
-- ๋ฐ๋ผ์น๋ ๋ฐฉ์์ด ์๋, github์ ๋ด์ฉ์ ๊ณต์ ํ๊ณ ๋ฐ๋ ๋ถ๋ถ ์์ฃผ์ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐฉ์์ผ๋ก ์งํ
- ์ปค๋ฆฌํ๋ผ ๋ณ๊ฒฝ
-- ๋ถํ์ํ ๋ถ๋ถ์ ๊ฐ๋ตํ (ex. quaternion ๋ฑ์ ๋ฑํ ์ค์ํ์ง ์์ ์ํ์ ์ฆ๋ช
๋ฑ ์๋ต)
-- ์ค์ํ ๋ถ๋ถ์ ์ธ๋ถํ (ex. ์ํ ๊ณต์๋ง ์ค๋ช
ํ์ง ์๊ณ , ์ผ๋ถ ์ค์ต์ด ์ถ๊ฐ๋ ์์ )
-- imgui ๋ฑ ์ผ๋ถ ์์ฒญ์ฌํญ ๋ฐ์ํด์ ์ถ๊ฐ
DX11 ์ง๋ฌธ๋ ๋ง์ด ๋ฐ์๋๋ฐ, ์ฌ์ค ํฐ ํ์์๋ ๋์ ์ฐจ์ด๊ฐ ์์ด์
์ผ๋จ์ ๊ธฐ์กด์ DX12๋ก ์กฐ๊ธ ๋ ์ฝ๊ฒ ๋ฆฌ๋ด์ผ ํ ์๊ฐ์
๋๋ค.
๋ฆฌ๋ด์ผ๋ ๋ด์ฉ์ ๊ธฐ์กด DX12 ๊ฐ์์ ์ฌ๋ผ๊ฐ ์์ ์ด๋ฉฐ,
๊ธฐ์กด DX12 ๊ฐ์๋ ์ ์๋ ๋ถ๋ก์ ๋จ๊ธฐ๊ฑฐ๋, ์์ ๊น๋ํ ์ญ์ ๋ ์์ ์
๋๋ค.
[DX12 ๋ฆฌ๋ด์ผ] ๋ค์ ์์๋ก๋ 2022๋
C++ ์๋ฆฌ์ฆ ์๊ฐ์ ๋ชฉํ๋ก
[UE5]->[UE5&์๋ฒ ์ฐ๋] ์์๋ก ์ ์์ ํ ์์ ์
๋๋ค.
[UE5&์๋ฒ ์ฐ๋] ๊ฐ์ ์ ์์ ์ ๋๋ก ํ๊ณ 3D MMO๋ฅผ ๋ชจ์ํ๋ค๋ฉด
C# ์ปค๋ฆฌํ๋ผ์ ์๋ฒ์ ๋นํด ๋ค๋ค์ผ ํ๋ ๊ณ ๊ธ ์ฃผ์ ๊ฐ ๋ง์ต๋๋ค.
(ex. 3D ํ๊ฒฝ์ ์งํ ์ ๋ณด ๋ก๋ฉ ๋ฐ ๊ธธ์ฐพ๊ธฐ ์ ์ฉ, Actor ๊ธฐ๋ฐ์ C++ ์๋ฒ ๋ชจ๋ธ์ด๋, BehaviorTree ๊ธฐ๋ฐ์ AI ๋ฑ๋ฑ)
2022๋
์์ ๊ทธ๋ฐ ๊ณ ๊ธ ์ ๋ณด๋ค์ ๋ด์ ์์ฑํ ์๋ง ์๋ค๋ฉด,
์ค๋ ์ค๋ ๊ท์คํ ํ์ต ์๋ฃ๋ก ๋จ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ค๋ง ์ ๊ฐ ๋ค๋ฅธ ์ผ๊ณผ ๋ณํํ๋ฉด์ ์ ๋
์ด๋ ์ฃผ๋ง์ ์งฌ์ ๋ด์ ๊ฐ์๋ฅผ ๋ง๋ค๊ณ ์๊ธฐ์
๋นจ๋ผ๋ 2022๋
๋ง์ด๋ ๋์ด์ผ ์ปค๋ฆฌํ๋ผ์ด ๋ง๋ฌด๋ฆฌ๊ฐ ๋์ง ์์๊น ์์ํ๊ณ ์์ต๋๋ค.
๋ค์์ผ๋ก๋ ์คํํธ์
๊ด๋ จ ๊ณต์ง์
๋๋ค.
์ด์ ์์์์๋ ์ข
์ข
์ธ๊ธ์ ํด์ ์์๋ ๋ถ๋ค์ด ์๊ณ ๊ณ์๊ฒ ์ง๋ง,
์ ๊ฐ ์ผ๋ง ์ ์ ๊ฒ์ ์คํํธ์
์ ๊ฐ๋จ์ญ ๋ถ๊ทผ์์ ์์ํ์ต๋๋ค.
๋ชจ๋ ๊ฒ ์ฒ์์ด๋ผ ์ฐฝ์
๊ณผ ์ฑ์ฉ ๋จ๊ณ๊ฐ ๋๋ฌด๋๋ฌด ํ๋ค์์ง๋ง (feat. ์จ๋ง ์ฌ์ด๋ ๋์ด ๋๊ฐ๋ค์)
๊ธฐ์ ์ ์ผ๋ก ๋ง์์ ๋๋ ๋ถ๋ค์ ์ฑ๊ณต์ ์ผ๋ก ๋ชจ์งํ ์ ์์๊ณ
12์๋ถํฐ ๋ณธ๊ฒฉ์ ์ธ ๊ฐ๋ฐ์ ์ฐฉ์ํ๊ฒ ๋์์ต๋๋ค.
์ผ์ฐจ์ ์ผ๋ก๋ 4~5๋ช
์ ์๊ท๋ชจ ํ์ ๊ตฌ์ฑํด ์๋ฌด ๋์น๋ฅผ ๋ณด์ง ์๊ณ
์ํผ์
์ฒ๋ผ ๋ฏผ์ฒฉํ๊ฒ ๋ค์ํ ์ฅ๋ฅด/ํ๊ฒฝ์ ๊ฒ์์ ๋ง๋ค์ด๋ณด๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ ๊ฒ์ ํ์ฌ์ ๋ค๋ฅด๊ฒ, ๊ฒฐ๊ณผ๊ฐ ๋ฒ์จ๋ถํฐ ๊ถ๊ธํด์ง๋ ์ฌ๋ฌ ์๋๋ฅผ ํ ์์ ์ธ๋ฐ์.
์ฐ์ ๊ฒ์์ด ์ฑ๊ณตํ์ง ๋ชปํ๋๋ผ๋ ๊ธฐ์ ์ ์ผ๋ก ์๋ฏธ๊ฐ ์๊ฑฐ๋ ํ์ต์ ๋์์ด ๋๋ ๋ถ๋ถ์ด ์๋ค๋ฉด,
๋ฆฌ์์ค์ ์ฝ๋๋ฅผ ํ๊ธฐํ์ง ์๊ณ ์ธํ๋ฐ ๊ฐ์๋ก ๋ง๋ค์ด ๊ณต๊ฐํ๋ ์ ์ํ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ณ ์ ํฉ๋๋ค.
์ด๋ ์ ๋ ํ๋ก์ ํธ๊ฐ ์์ ํ๊ฐ ๋๋ ๋ด๋
์ค์ ์ดํ๋ถํฐ๋
SNG, SLG, ํน์ MMO ๊ฐ์ ์จ๋ผ์ธ ๊ฒ์ ์์ฃผ๋ก ์ ์ํ ์๊ฐ์ด๋ฉฐ,
์คํํธ์
๋ด๋ถ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋ ์ฌ๋ฌ๊ฐ์ง
๊ธฐ์ ๊ณผ ๋ฆฌ์์ค๋ฅผ ์ธํ๋ฐ ๊ฐ์๋ก ๋ง๋ ์ ์์ง ์์๊น ์๊ฐํฉ๋๋ค.
์ถ๊ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์๊ฐ์ ๊ฐ๊ณ ๊ฒ์์ ๋ง๋ค์๋์ง
[์์ด๋์ด] -> [๊ฐ๋ฐ] -> [์ถ์(์์ต ์ธ์ฆ)]์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์ ๊ณผ์ ์
์์์ผ๋ก ์ ์ํด์ ํ์คํ ๋ฆฌ๋ก ๋จ๊ธฐ๊ณ ,
์ ํฌ๋ธ ์ฑ๋์ ํ์ ๊ณต๊ฐํ๋ ค๋ ๊ณํ์ ์ธ์ฐ๊ณ ์์ต๋๋ค.
[์ด๋ฐ ๊ฒ์ ๋ง๋ค๋ฉด ์ผ๋ง๋ฅผ ๋ฒ๊น?]์ ๊ฐ์ ๋จ์ํ ๊ถ๊ธ์ฆ ํด๊ฒฐ๋ถํฐ ์์ํด์,
์ฅ๊ธฐ์ ์ผ๋ก๋ [์ด๋ฐ ๊ฒ์์ ๋ง๋ค๋ฉด ๋๋ฐ ๋ ๊ฒ ๊ฐ์๋ฐ?]๋ผ๋ ์ฌ๋๋ค์ ์์ด๋์ด๋ฅผ
๊ณต๋ชจ๋ฅผ ํตํด ์ธ์ฃผ ๋ฐ๊ณ ์ค์ฒ์ ํด๋ณด๋ ํฅ๋ฏธ๋ก์ด ์คํ๋ ํด๋ณด๊ณ ์ ํฉ๋๋ค.
์ ๋ง ์ ๋ง ๋ง์ง๋ง์ผ๋ก [๋ฉํ ๋ง] ๊ด๋ จ ๊ณต์ง์
๋๋ค.
์ด๋ ์ ๋ ํ๋ก์ ํธ๋ค์ด ๋์ ๋๊ธฐ ์ ์๋
ํ์ฌ ์์ ์ ํฌ๋ธ ํธ์ง์๊ฐ ํ ์ผ์ด ๋ง์ด ์์ ๊ฒ ๊ฐ์,
๋ฌด์์ ํด๋ณด๋ฉด ์ ๋ฐํ๋ค ์๋ฌธ์ด ๋ ์ง ๊ณ ๋ฏผ์ ํ๋ ์ค.
ํ๋ฃจ๊ฐ ๋ฉ๋ค ๋ฉ์ผ๋ก ๋ ๋ผ์ค๋ ๋ค์ํ ๋ฉด์ ๊ด๋ จ ๋ฌธ์์ ์๊ฐ์ ๋ฐ์
[๋ชจ์ ๋ฉด์ ] ์ปจํ
์ธ ๋ฅผ ์งํํด๋ณด๊ณ ์ ํฉ๋๋ค.
๋ง์ ํ์๋ค์ด ์์์๋ ํฌํด ๋ฑ์ ์๋ฅ๋ฅผ ๋ด๋ฌ๋ผ๊ณ ๋ฉ์ผ์ ๋ณด๋ด์ฃผ์๋๋ฐ,
์ด๋ฅผ ๋ณด๋ฉฐ ์ ๋ง ๋ฌธ์ ์์ฑ ์๋ น์ด ์๋ ๋ถ๋ค์ด ๋ง์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
๋ง์ ๊ฐ์์๋ ์ผ์ผํ ์ฒจ์ญ์ ํด๋๋ฆฌ๊ณ ๋ ์ถ์ง๋ง
์ ๋ ์๊ฐ์ด ์์ด์ ์ง๋ฌธ๋ ๋ฐ๋ฆฌ๊ณ ์๋ ์ค์ ์ด๋ผ ์ ํ ์๋๊ฐ ์ ๋ฌ๋๋ฐ์.
์์ ๊ฐ์ ์ก๊ณ ๊ฐ๋จ ์ฌ๋ฌด์ค๋ก ์ด๋นํด์ ์งํํ๋ฉด ์ด๋จ๊น? ๋ผ๋ ๋ฐ์์ ์ ํ์ ํ๊ฒ ๋์์ต๋๋ค.
[๋ชจ์ ๋ฉด์ ]์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ๋ก๊ทธ๋๋จธ ๋ฉด์ ์ด๋ผ ๊ฐ์ ํ๊ณ 1~2์๊ฐ ์ ๋ ์งํ๋ฉ๋๋ค.
- ์์์/ํฌํด์ ๋ณด๊ณ ๋ฉด์ ์งํ
- ๊ธฐ์ ๋ฉด์ ์งํ
- ํผ๋๋ฐฑ ๋ฐ ์ฒจ์ญ
์์ ์ดฌ์์ ๋์ํ์๋ ๋ถ๋ค์ ํํด์ ๊ฐ๋จ ์ฌ๋ฌด์ค์์ ์งํํ ์์ ์ด๊ณ ,
๊ฐ์ธ ์ ๋ณด๋ ๋
ธ์ถํ์ง ์์ต๋๋ค.
- ๊ฐ์ธ ์ ๋ณด๋ ๋
ธ์ถํ์ง ์๋๋ก ์ด๋์
๋ก ์๋ฅ ์์ .
- ํธ์ง์๊ฐ ๊ท์ฌ์ด ๋๋ฌผ ์ฌ์ง์ผ๋ก ์ผ๊ตด ๋ชจ์์ดํฌ ํด๋๋ฆฝ๋๋ค :)
์๋ฌด๋ ๊ฐ๋ณ๊ฒ ์ ์ฒญํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ผ์ ์ ์ฐธ๊ฐ๋น(5~10๋ง)๋ฅผ ๋ฐ์ ์๊ฐ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์๋ ์กฐ๋ง๊ฐ ์ธํ๋ฐ [๋ฉํ ๋ง] ๊ธฐ๋ฅ์ ํตํด ๋ฐ์ ์์ ์
๋๋ค (feat. ์ธํ๋ฐ์๋ ์๋ ๊ธฐ๋ฅ์ด ์๋ค์!)
์๊ฐ ๊ด๊ณ์ ์ผ์ฃผ์ผ์ 1~2๋ถ ์ ๋๋ง ์งํํ ์์ ์ด๊ณ ,
๋ฉด์ ํ๋ก์ธ์ค๊ฐ ๊ถ๊ธํ๋ ๋ถ, ์ ๋ณธ์ธ์ ์๋ฅ๊ฐ ๋งจ๋ ์
๊ตฌ์ปท์ ๋นํ๋์ง ๊ถ๊ธํ๋ ๋ถ์ ํฌํจํด
์ด๋ค ๋ถ๋ถ์ ๊ฐ์ ํ๋ฉด ์ข์์ง ๊ณ ๋ฏผ์ด ๋ง์ผ์๋ ๋ถ๋ค์ ์ง์์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
- ์ด์ ์ญ๋๊ธ์ผ๋ก ๊ธด ์์์์ด์๋ค์ -
์ธ์์ ์ด๋ ๊ฒ ๋ฉ๋๋ก ์ด์๋ ๋๋ ์์ฌ์(?) ์ด์ง ๊ฑฑ์ ์ด ๋์ง๋ง...
์ธํ๋ฐ๊ณผ ๋ง์ ์๊ฐ์ ๋ถ๋ค ๋๋ถ์
์ด๋ ๊ฒ ๋ค๊ฐ ์๋ ๊ฒ์๋ ์๋๋ฅผ ํ ์ ์์์ ๋ ๊ฐ์ฌ๋ฅผ ๋๋ฆฌ๋ฉฐ ๋ง๋ฌด๋ฆฌ๋ฅผ ์ง์ต๋๋ค ^^
๊ฐ์ฌํฉ๋๋ค!