Love2D ์ฐ๊ฒ ๋ ์ด์ผ๊ธฐ
๊ฐ์๊ธฐ ์ด๋ฐ ์ด์ผ๊ธฐ๋ฅผ ๊บผ๋ด์ ๋๋ ์๋ ์๋๋ฐ ์ด์ ๋ง๋ค๋๊ฑฐ ์คํจํ๋ค... (https://gall.dcinside.com/game_dev/157371) ๋ฒ๊ทธ๋ฅผ ์ก์๋ ๋ด ๊ณณ์์ ๋ค์ ๋ฒ๊ทธ๊ฐ ํ์ด๋์ค๋ ์ํฉ์ ๋ชป์ด๊ฒจ ๊ฒฐ๊ตญ ๊ธฐ์กด์ ์๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฐ๊ธฐ๋ก ํ๋ค.
๊ทธ๋์ ์ด๋ฒ์๋ Love2D ํ๋ ์์ํฌ๋ฅผ ์ ํ๊ฒ ๋ ๊ณ๊ธฐ๋ฅผ ์จ๋ณด๋ ค๊ณ ํ๋ค. ์ฌ์ค CPU ์๋ฎฌ๋ ์ดํฐ๋ ๋ญ๋ ํ๋ ์ด์ผ๊ธฐ๊ฐ ๋ค ๊ด๋ จ ์์ด์ ํ๋ ์๋ฆฌ๋ค.
๋๋ 2024๋
๋ 2์ ์ค์, ๋ ์ด๋ค ๋ฌผ์ง ์๋ฎฌ๋ ์ด์
๊ฒ์์์ CPU ์ค๊ณํ๋ ์ผ์ ์ฐ๊ตฌํ๊ณ ์์๋ค. ์ด๋ฏธ ๋ค์ํ ์ข
๋ฅ์ CPU๊ฐ ๋์์์๊ณ , ์ฌ์ง์ด๋ ๊ฐ๋ฐ ๋๊ตฌ์, SIMD๋ฅผ ์ฒ๋ฆฌํ๋ ํ๋ก์ธ์๋ ์กด์ฌํ ์ ๋๋ก ๊ธฐ์ ์์ค์ด ๋์๋ค. ํ์ง๋ง ์ ๋ถ ๊ฐ์์ ๊ฒ๋ค์ด๋ฉฐ ํ์ค์ ๊ฒ๊ณผ ํธํ๋๋ 32๋นํธ CPU๋ง ์์๋ค.
๊ทธ๋์ ํ์ค์ CPU์ ํธํ๋๋ 32๋นํธ ํ๋ก์ธ์๊ฐ ์ ์คํ ํ์ํจ์ ๋๊ผ๊ณ ๊ทธ๊ฑธ ์ํ ๊ธฐ์ ์ ์ฐ๊ตฌํ๊ณ ์๋ ์ค์ด์๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ๊ฒ์ ๋ด์ ์กด์ฌํ๋ ๋ฌผ์ง๋ก๋ ์ฒ๋ฆฌ ๋จ์์ ์ ์ฝ, ์ฒ๋ฆฌ ์๋์ ์ ์ฝ์ด ๋ฐ๋๊ณ ์ด๋ฅผ ์ฐํํ๊ธฐ ์ํด Lua๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ธ์๋ฅผ ๋ชจ๋ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
๊ฐ๋ฐ์ ์งํ ์๋๋ ๋งค์ฐ ๋นจ๋๋ค. 2์ 17์ผ ์์นจ๋ถํฐ ๊ฐ๋ฐ์ ์์ํ๋๋ฐ ๋ช
๋ น์ด ํ๋๋ฅผ ๊ตฌํํ๋๋ฐ ์ฑ๊ณตํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ช
๋ น์ด์ ์ฒ๋ฆฌ ์๋๋ 0.4 MHz๋ ๋์๋ค. ์ ๊น, ๋๋ฌด ๋๋ฆฐ๊ฑฐ ์๋๊ฐ? ๋ผ๊ณ ํ ์๋ ์๋๋ฐ ์๋ฌด๋ฆฌ LuaJIT๋ผ๊ณ ํด๋ ํ์์ด Lua์ธ ์ด์ ํ
์ด๋ธ์ ์ ๊ทผ ์ค๋ฒํค๋๋ ๋ฌด์ํ ๋งํ ์์ค์ด ์๋๋ค.
๊ทธ ์ดํ๋ก 5์ผ ๋์ ์์นจ์ ์ผ์ฐ ์ผ์ด๋์ ์ ๋
๊น์ง ๊ฐ๋ฐํ๋ ์กฐ๊ธ ๋ฌด๋ฆฌ์ ๊ฐ๊น์ด ์ผ์ ์ ์ํํ ๊ฒฐ๊ณผ, 2์ 22์ผ์ ์ฒซ ๋ฆด๋ฆฌ์ฆ๋ฅผ ํ๋๋ฐ ์ฑ๊ณตํ๋ค. ๊ทธ ์ดํ๋ก๋ ๊ณ์ ๊ฐ๋ฐ์ ํ๊ณ ์์ง๋ง ๋ฆด๋ฆฌ์ฆ๋ ํ๊ณ ์์ง ์๋ค.
2์ 17์ผ ์ด์ ์๋ Lua์ ๋ํด ๋๋ฌด ๋ชฐ๋๋ค. ํ์ง๋ง ์ด ํ๋ก์ ํธ๊ฐ ์ง๊ธ์ ๋๋ฅผ ์๊ฒ ํด์ค ์๋๋ ฅ์ด์ ํ์ด์๋ค. Lua๋ฅผ ์ด๋ ๊ฒ ๋จ์๊ฐ์ ์ตํ๊ณ ํ์ฉํ ์ ์๋ ์ธ์ด๋ผ๊ณ ์๊ฐ์ ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ง๊ธ๋ ๊ทธ ํ์ ๋๋ผ๊ณค ํ๋ค.
๊ทธ๋ฌ๋ค๊ฐ Lua๋ก ๊ฒ์๋ ๋ง๋ค ์ ์๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ๊ฒ์์ ๋ชจ๋ฉ์ ํ๋๋ฐ ์ฑ๊ณตํ์ผ๋ ๊ฒ์์ ๋ง๋ค ์ฐจ๋ก์ธ ๊ฑด ๋น์ฐํ์ง ์์๊ฐ? ์ด๋ ์๋ ๊ฒ์ ๊ฐ๋ฐ์ ํ
ํฌํธ๋ฆฌ ์ค์ ํ๋์ด๊ธฐ๋ ํ๊ณ .
๊ทธ๋ฐ๋ฐ ๋ฌด์จ ๊ฒ์ ์์ง์ ๊ณจ๋ผ์ผ ํ ๊น? ๊ณ ๋ฏผ์ ๋น ์ก๋ค. Lua๋ฅผ ์ฐ๋ ๊ฒ์ ์์ง์ด ๋๋ฌด๋๋ ๋ง์ ๊ฑฐ๋ค. ๋น์ฅ ์๋ ๊ฒ๋ง ์ด์ผ๊ธฐ ํ๋ฉด Defold, Solar2D, Roblox(์ด๊ฑด ๊ฑฐ์ ๊ฒ์์ ๊ฐ๊น๋ค.) 3๊ฐ๊ฐ ์๊ณ ์ด์ธ์๋ ๋ง๋ค. Love2D๋ ๊ทธ ์ค์ ํ๋์๋ค.
๊ฒฐ๊ตญ ๊ฒ์ ์์ง ๋ณ๋ก API ๋ฌธ์๋ฅผ ํ๋์ฉ ์ฝ์ด๋ณด๋ฉด์ ์ด๋ค ๊ฒ์ ์์ง ๋๋ ํ๋ ์์ํฌ๊ฐ ๋์๊ฒ ๊ฐ์ฅ ์ ๋ง์๊น ๊ณ ๋ฏผํ๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๋์ ๋ค์ด์จ๊ฒ Love2D์๊ณ ,
1. C++์ด๋ SDL2๋ฅผ ์ด๋ค. (๋ด๊ฐ ํ๋ ๊ฒ์์ด๋ ๋๊ฐ๋ค.)
2. ์ ์ผํ๊ฒ ๋ณ๋ ฌํ๋ฅผ ์ํ ์ค๋ ๋๋ฅผ ์ง์ํ๋ค. (์ถํ์ ์ฑ๋ฅ ํฅ์ ๊ฐ๋ฅ์ฑ๋ ํฌ๋ค.)
3. ์ด์ฉ๋ค๋ณด๋ ํ๋ ์์ํฌ๊ฐ ๊น๋ ค์๊ณ , ํํ ๋ฆฌ์ผ์ ๋๋ง์ณค๋ค. (? ์ ์๋ง์)
๊ทธ๋ ๊ฒ ํด์ Love2D๋ก ๊ฒฐ์ ๋์๋ค๊ณ ํ๋ค.
์ฌ์ค ์ด ๊ฒ์ ์์ง์ ์กด์ฌ ์์ฒด๋ ์์ฃผ ์ค๋์ ๋ถํฐ ์ธ์งํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๊ด์ฌ์ด ๊ฐ์๋ค๋ ๊ฒ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ค์ ํ๋์ด๋ค. Lua๋ผ๋ ์ธ์ด๋ฅผ ์๊ฒ ๋ ์ดํ๋ถํฐ ์ธ์ง๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ๋ช๋
์ ์์๋ค๊ณ ๋ด๋ ๋๋ค.
๊ฒ๋ค๊ฐ ๋ง์นจ ์ข์ ์๊ธฐ์ ๋ฒ์ ์
์ ํ๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ๊ฐ ํ๋ฐํ Love2D๋ก ๊ฐ๋๊ฒ ์ต์ ์ ์ ํ์ด๊ธฐ๋ ํ๋ค.
๊ฒ์ ๊ฐ๋ฐ์ ๋ํ ๊ฟ์ ์๋ ๋ถํฐ ์์๊ธฐ์(๊ฑฐ์ ์ด๋ฑํ๊ต ์์ ๋ถํฐ) ์์ง ์์๋ ์ํ์ง๋ง ๋ฒ์จ๋ถํฐ ๊ฟ์ ์ด๋ฃฌ ๊ฒ ๊ฐ๋ค.
์๋ฎฌ๋ ์ดํฐ ์ฝ๋ ์ค์ ์ด๋์ ๊ฐ์ ธ์จ ์ฝ๋๊ฐ ํ๋ ์๋๋ฐ ์๊ณ ๋ณด๋ Love2D ์ธ๋ ๊ฐ๋ฐ์๋์ด ๋ง๋ ์ฝ๋์ ใทใท ์ด์ฉ๋ฉด Love2D๋ ์ด๋ช
์ ๋ง๋จ์ผ์๋ ์๋ค. ๋์ค์ ๋ง๋๋ฉด ๊ฐ์ฌํ๋ค๊ณ ์ ํด์ผ์ง... (https://github.com/icyselec/tptriscv/blob/main/tptriscv/classes/Integer.lua : 42์ค๋ถํฐ)
๊ณ ๋ง๋ค ๋ ๋๋ถ์ ์๋ก์ด ์์ง์ ์๊ฒ ๋์๋ค
์ฑ๊ณต์ ๊ฒฝํ์ด ๋ ์ด ๋์๋ค