Introduction - kuimoani/defold GitHub Wiki
Welcome to Defold
Defold์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ด ๋ฉ๋ด์ผ์ Defold์ ํต์ฌ ์ปจ์ ์ ๋ค๋ฃจ๋ฉฐ, ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ์๋ฅผ ์๋ ค๋๋ฆฌ๋ ค ํฉ๋๋ค. ๋ชจ๋ ์ค๋ช ์ ๊ฐ๋จํ๊ฒ ์ ๊ณต๋๋ฉฐ, ์์ธํ ๋ด์ฉ์ ๋งํฌ๋ฅผ ํตํด ํ์ธ ๋ฐ๋๋๋ค.
Philosophy(์ฒ ํ)
Defold๋ ๋จ์ํจ๊ณผ ๋ช ๋ฃํจ์ ์ฒ ํ์ผ๋ก ๋์์ธ ๋์์ผ๋ฉฐ, ํดํค(turn-key)๋ฐฉ์์ ์์ฐ ํ๋ซํผ์ด์ง๋ง, ๋ชจ๋ ๊ฒ์ ์ ์ํ๋ ๋๊ตฌ๋ ์๋๋๋ค. ๋์ ์ฐ๋ฆฌ๋ Defold๊ฐ ๊ฒ์ ์ ์์๋ค์๊ฒ ๋ ์ฐฝ์ ์ธ ๋น์ ์ ์คํํ ์ ์๊ฒ๋ ์ฝ๊ณ , ๊ฐ๋ ฅํ ๋๊ตฌ๋ก์ ํ์ ์ค์ด ์ค ์ ์์ ๊ฒ์ผ๋ก ๋ฏฟ๊ณ ์์ต๋๋ค.
๋๋ก๋ ๋ ๋ง์ ์์ ์ด ๋ค์ด๊ฐ ์๋ ์์ง๋ง, ์ฐ๋ฆฌ์ ์ฒ ํ์ ๋ชฉํ๋ ๋ถ๋ช ํฉ๋๋ค. ์ค๋น๋ ์๋ฃจ์ ์ด ์๋ฒฝํ ๋ค์ด๋ง๋ ๊ฒฝ์ฐ๋ ์ข์ฒ๋ผ ๋๋ฌผ๋ฉฐ ๋ชจ๋ ๊ฒ์ ์ ์์๋ค์๊ฒ ์ ํํ๊ฒ ํ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋๊ฒ์ ์ด๋ ต๊ฑฐ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋น์ ์ด ๊ฒฝํ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด, ์๋ง Defold์ ํต์ฌ ์ปจ์ ์ ์ฝ๊ฒ ์ดํดํ ์ ์์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ฌํํจ์๋ ๋ถ๊ตฌํ๊ณ ์ฐ๋ฆฌ์ ์ปจ์ ์ผ๋ถ๋ ๋น์ ์ด ์ฒ์ ์์ํ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ์ฃผ์๊น๊ฒ ์ฝ์ด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
Scripts
์คํฌ๋ฆฝํธ๋ ๊ฒ์ ์ค๋ธ์ ํธ์ ๋์์ ์ ์ํ๋ ํ๋ก๊ทธ๋จ์ ํฌํจํ๊ณ ์๋ ์ปดํฌ๋ํธ์ ๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ๋น์ ์ ์ค๋ธ์ ํธ๋ค(ํ๋ ์ด์ด๋ ๋ค๋ฅธ ์ค๋ธ์ ํธ๋ค ๊น์ง๋)์ด ์ด๋ป๊ฒ ๋ค์ํ ์ํธ์์ฉ์ผ๋ก ๋ฐ์ ํด์ผ ํ๋์ง ๋ฑ์ ๊ฒ์ ๊ท์น์ ๋ช ์ ํ ์ ์์ต๋๋ค. ๋ชจ๋ ์คํฌ๋ฆฝํธ๋ Lua(๋ฃจ์)๋ก ํ๋ก๊ทธ๋๋ฐ ๋ฉ๋๋ค. Defold๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์, ๋น์ ์ด๋ ๋น์ ์ ํ์๋ค์ Lua ํ๋ก๊ทธ๋๋ฐ์ ๊ณต๋ถํ ํ์๊ฐ ์์ต๋๋ค. ๋ ๋ง์ ์ ๋ณด๊ฐ ํ์ํ๋ฉด ๋ํด๋์ Lua ๋ฌธ์๋ฅผ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ค๋ธ์ ํธ๊ฐ์ ์์ฌ์ํต์ ์ํด์ Defold๋ Message passing(๋ฉ์ธ์ง ์ ๋ฌ)์ ํตํด Lua๋ฅผ ํ์ฅํฉ๋๋ค. ๋ํ Defold๋ ์ ์ฉํ ํจ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฒ์ ์ค๋ธ์ ํธ๋ก๋ถํฐ ํญํ ์ฌ์ด๋๋ฅผ ๋ด๋ Lua ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. :
msg.post("#explosion", "play_sound")
์ฌ๊ธฐ์ "explosion"์ ์คํฌ๋ฆฝํธ๊ฐ ์์นํ ์ค๋ธ์ ํธ์ ์ฌ์ด๋ ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋๋ค. "play_sound"๋ ์ฌ์ด๋ ์ปดํฌ๋ํธ๊ฐ ๋ฐ์ํ ๋ฉ์ธ์ง์ ๋๋ค. ์ด๊ฒ์ ์ปดํฌ๋ํธ๊ฐ ์ด๋ป๊ฒ ์ํตํ๋์ง Message passing์ ๊ฐ๋จํ ์์ ์ ๋๋ค. ์ฌ๊ธฐ์ ์คํฌ๋ฆฝํธ์ ์ค๋ธ์ ํธ ์ฌ์ด์ ๋ฐ์ดํฐ๋ ๊ณต์ ๋์ง ์๊ณ ์์ต๋๋ค. ์ปดํฌ๋ํธ(์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ)๋ ์ค์ง msg.post() ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ฉ์ธ์ง๋ฅผ ๋๊ธธ ๋ฟ์ ๋๋ค.
Messages
์ปดํฌ๋ํธ๋ ๋ฉ์ธ์ง ์ ๋ฌ์ ํตํด ๊ฐ๊ธฐ ๋ค๋ฅธ ์์คํ ๊ณผ ์์ฌ์ํตํฉ๋๋ค. ๋ํ ์ปดํฌ๋ํธ๋ ํน์ ํ ๋์์ trigger(ํธ๋ฆฌ๊ฑฐ)ํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๋ฏธ๋ฆฌ ์ ์๋ ๋ฉ์ธ์ง ์ธํธ(a set of predefined messages)์ ์๋ตํฉ๋๋ค. ๋น์ ์ ๊ทธ๋ํฝ์ ์จ๊ธฐ๊ฑฐ๋, ์ฌ์ด๋๋ฅผ ๋ด๊ฑฐ๋, ๋ฌผ๋ฆฌ ๊ฐ์ฒด๊ฐ ์์ง์ด๊ฒ๋ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์๋ ์์ต๋๋ค. ๋ํ ์ธ์คํด์ค๊ฐ ๋ฌผ๋ฆฌ ์ถฉ๋์ด ์ผ์ด๋ฌ์ ๋ ๋ฉ์ธ์ง๋ฅผ ์ฌ์ฉํด์ ์ปดํฌ๋ํธ ๋ค์๊ฒ ์ด๋ฒคํธ๋ฅผ ์๋ฆฌ๊ธฐ๋ ํฉ๋๋ค.
์ด ๋ฉ์ธ์ง ์ ๋ฌ ๋ฉ์ปค๋์ฆ์ ๊ฐ๊ฐ ๋ณด๋ด์ง ๋ฉ์ธ์ง๋ค์ ๋ฐ์ ์ ์๋ ์์ ์๋ฅผ ํ์๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก, ๊ฒ์์ ๋ชจ๋ ์ค๋ธ์ ํธ์ ์ปดํฌ๋ํธ๋ ์๋ก์๊ฒ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ์ ์๊ฒ unique URL์ ๊ฐ์ง๋๋ค.
๋ฉ์ธ์ง ์ ๋ฌ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ๊น์ด ์๋ ์ค๋ช ์ ์ํ์๋ฉด the Message passing documentation์ ์ฐธ์กฐํ์๊ธฐ ๋ฐ๋๋๋ค.
Factories
๋ช๋ช ์ํฉ์์๋ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ์๋์ผ๋ก ์ปฌ๋ ์ ์ ๋ฐฐ์นํ๋ ๊ฒ์ด ์๋๋ผ, ๋์ ์ผ๋ก ์์ฑ์์ผ์ผ ํ ๋๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ ์ด์ด๊ฐ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋๋ฅด๋ฉด ์ด์ด ์ด์ง๋ฉฐ, ์ด์์ด ๋์ ์ผ๋ก ์คํฐ๋์ด ๋ ์๊ฐ์ผ ํ ๊ฒฝ์ฐ ์ฒ๋ผ ๋ง์ด์ฃ . ์ด์ฒ๋ผ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๊ธฐ ์ํด (๋ฏธ๋ฆฌ ํ ๋น๋ ๊ฐ์ฒด ํ๋ก๋ถํฐ), ๋น์ ์ ํฉํ ๋ฆฌ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.

Defold๋ 2๊ฐ์ง ํ์ ์ ํฉํ ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ ๋งค๋ด์ผ์์ ์์ธํ ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค.
- Factories
- Collection factories
Collaboration(๊ณต๋์์ )
๋๋ค์ ๊ฒ์๋ค์ ๋ ์ด์์ ๊ณต๋์์ ์ผ๋ก ๋ง๋ค์ด ์ง๋๋ค. ์ฐ๋ฆฌ๋ ํจ๊ป ์ผํ๋ ๋ฅ๋ ฅ์ด ๊ณง ๋น ๋ฅธ ๊ฐ๋ฐ ์ฌ์ดํด์ ํต์ฌ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๊ณต๋์์ ์ Defold ํ๋ซํผ์ ์ฃผ์ถง๋์ ๋๋ค.

์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด, ์ฐ๋ฆฌ ์๋ฒ์ ์๋์ ์ผ๋ก ์ค์ ์ ์ฅ์(repository)๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ฐ๋ฐํ๋ ๋์์ ์ด ์ ์ฅ์์ ๊ฐ์ธ๋ณด๊ธฐ(personal view)์์ ํ์ผ์ด ์์ฑ๋๊ฑฐ๋ ์์ ๋ฉ๋๋ค. ๋น์ ์ด ์์ ์ ์๋ฃํ๊ณ ๊ณต์ ํ ์ค๋น๊ฐ ๋๋ฉด, ๊ฐ์ธ๋ณด๊ธฐ๋ฅผ ์ค์ ์ ์ฅ์์ ๋๊ธฐํํฉ๋๋ค. ์๋ํฐ๋ ๋น์ ์ ๋ณ๊ฒฝ์ฌํญ์ ์ ๋ก๋ํ๊ณ ๋ค๋ฅธ ํ์์ด ์ฌ๋ฆฐ ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ด๋ก๋ํ๊ณ ๋น์ ์ด๋ ๋๊ตฐ๊ฐ ํ๋ก์ ํธ ๋ฐ์ดํฐ์ ๊ฐ์ ์กฐ๊ฐ์ ์์ ํ๋ค๋ฉด ์ถฉ๋์ ํด๊ฒฐํ๊ธฐ๋ ํฉ๋๋ค. ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ๊ธฐ๋ก๋๋ฉฐ ๋น์ ์ ํ๋ก์ ํธ์์ ๋ฐ์ํ๋ ๋ชจ๋ ํ์คํ ๋ฆฌ๊ฐ ๋ก๊ทธ์ ๋จ์ต๋๋ค. ๋น์ ์ ๋ฐฑ์ ์ ๊ฑฑ์ ํ ํ์๊ฐ ์์ผ๋ฉฐ ๋น์ ์ ํ์๊ฒ ํ์ผ๋ค์ ์ด๋ฉ์ผ๋ก ๋ณด๋ผ ํ์๋ ์์ต๋๋ค. ์ํฌํ๋ก์ฐ ๋ฌธ์์์ ํ๋ก์ ํธ ๊ณต๋์์ ์ ๋ํด ๋ ์ฝ์ด๋ณด์ธ์.
Defold์ ํ์ ํด์ ์ ๋ช ํ๊ณ ์์ฃผ ๊ฐ๋ ฅํ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ธ "Git"์ ์ฌ์ฉํฉ๋๋ค. (Git์ ๊ด์ฌ์ด ์๋ค๋ฉด http://git-scm.com์ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.)
Libraries
Project branches(ํ๋ก์ ํธ ๋ธ๋์น)๋ฅผ ํตํ์ฌ ํ์ ํ๋ ๊ฒ ์ธ์๋, Defold๋ ๊ฐ๋ ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ํตํด ํ๋ก์ ํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ๋น์ ์ ๋ชจ๋ ํ์ด๋ ์ค์ค๋ก๋ฅผ ์ํ์ฌ ๋ชจ๋ ํ๋ก์ ํธ๋ค๋ก๋ถํฐ ์ ๊ทผํ ์ ์๋ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์ฝ์ด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
Building blocks
๋น๋ฉ ๋ธ๋ก์ ๊ฒ์์ด๋ ์ฑ์ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ์์๋ค ์ ๋๋ค. ์ด๊ฒ์ Defold ํธ์ง๊ธฐ์์ ๋น๋ฉ ๋ธ๋ก์ ํ์ ์ ๋ฐ๋ผ ์์ด์ฝ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
Game object
๊ฒ์ ์ค๋ธ์ ํธ์ ๋ํ ์ค๋ช
์ ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Collection
์ปฌ๋ ์
์ ๋ํ ์ค๋ช
์ ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Script
์คํฌ๋ฆฝํธ์ ๋ํ ์ค๋ช
์ ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Sound
์ฌ์ด๋ ์ปดํฌ๋ํธ๋ ํน์ ์ฌ์ด๋๋ฅผ ์ฌ์ํฉ๋๋ค. ํ์ฌ Defold๋ WAV ํ์
์ ์ฌ์ด๋ํ์ผ์ ์ง์ํฉ๋๋ค.
Collision object
์ถฉ๋ ์ค๋ธ์ ํธ๋ ๊ฒ์์ค๋ธ์ ํธ์ ๋ฌผ๋ฆฌ์์ฑ(๋ชจ์, ๋ฌด๊ฒ, ๋ง์ฐฐ๋ ฅ, ๋ฐ๋ฐ๋ ฅ ๋ฑ)์ ๋ด๋นํ๋ ์ปดํฌ๋ํธ์
๋๋ค. ์ด ์์ฑ๋ค์ ์ถฉ๋ ์ค๋ธ์ ํธ๊ฐ ๋ค๋ฅธ ์ถฉ๋ ์ค๋ธ์ ํธ์ ์ด๋ป๊ฒ ์ถฉ๋ํ๋์ง๋ฅผ ๊ด์ฅํฉ๋๋ค. ์ถฉ๋ ์ค๋ธ์ ํธ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํ์
์ Kinematic objects, Dynamic objects ๊ทธ๋ฆฌ๊ณ triggers์
๋๋ค. Kinematic๊ฐ์ฒด๋ ๋น์ ์ด ์๋์ผ๋ก ๋ฐ์ํด์ผ ํ๋ ์์ธํ ์ถฉ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ฉฐ, Dynamic๊ฐ์ฒด๋ ๋ฌผ๋ฆฌ์์ง์ ์ํด ๋ดํด์ ๋ฌผ๋ฆฌ๋ฒ์น์ ๋ฐ๋ฅด๊ฒ๋ ์๋์ ์ผ๋ก ์๋ฎฌ๋ ์ดํธ ๋ฉ๋๋ค. Trigger๋ ํน์ ํ ๋ชจ์(Shape)์ด ๋ค๋ฅธ ํน์ ํ ๋ชจ์์ ๊ฐ์ง ํธ๋ฆฌ๊ฑฐ์ ๊ต์ฐจ๋๊ฑฐ๋ ๊ต์ฐจ์์ ๋ฒ์ด๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์งํฉ๋๋ค.
Factory
ํฉํ ๋ฆฌ์ ๋ํ ์ค๋ช
์ ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Sprite
์คํ๋ผ์ดํธ๋ ๊ฒ์์ค๋ธ์ ํธ์ ๊ทธ๋ํฝ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์ปดํฌ๋ํธ์
๋๋ค. ํ์ผ ์์ค๋ ์ํ๋ผ์ค๋ก๋ถํฐ ์ด๋ฏธ์ง๋ฅผ ํ์ํฉ๋๋ค. ์คํ๋ผ์ดํธ๋ flip-book์ด๋ ๋ณธ ์ ๋๋ฉ์ด์
์ ์ํด ๋นํธ์ธ์ผ๋ก ์ง์ํ๊ณ ์์ต๋๋ค. ์คํ๋ผ์ดํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์์ดํ
์ด๋ ์บ๋ฆญํฐ๋ฅผ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ๋ ์์ธํ ์ ๋ณด๋ฅผ ์ํด 2D graphic ๋ฌธ์๋ฅผ ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
Atlas
์ํ๋ผ์ค๋ ๋๋์ด์ง ์ด๋ฏธ์ง๋ค์ ๋ชจ์์
๋๋ค. ์ด๊ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฑ๋ฅ์ ์ด์ ๋ก ์ปค๋ค๋ ์ํธ๋ก ์ปดํ์ผ ๋์์ต๋๋ค. ๋น์ ์ ์ด ์ด๋ฏธ์ง๋ค์ด๋ ์ด๋ฏธ์ง๋ค์ flip-book ์ ๋๋ฉ์ด์
์๋ฆฌ์ฆ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ์ํ๋ผ์ค๋ ๊ทธ๋ํฝ ์์์ ๊ณต์ ํ๊ธฐ ์ํด ์คํ๋ผ์ดํธ๋ ํํฐํดFX ์ปดํฌ๋ํธ์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ๋ ์์ธํ ์ ๋ณด๋ฅผ ์ํด 2D graphic ๋ฌธ์๋ฅผ ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.

Tile source
ํ์ผ์์ค๋ ํฌ๊ธฐ๊ฐ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ ์์ ์ด๋ฏธ์ง๋ก ๊ตฌ์ฑ๋ ํ
์ค์ณ๋ฅผ ๋ํ๋
๋๋ค. ์ด ์ปดํฌ๋ํธ๋ ํ๋ฆฝ๋ถ ์ ๋๋ฉ์ด์
์ ์ง์ํฉ๋๋ค. ๋น์๋ ํ์ผ ์์ค์์ ์ด๋ฏธ์ง ์ํ์ค๋ฅผ ํ์ฉํ์ฌ ์ ๋๋ฉ์ด์
์ ์ ์ ํ ์ ์์ต๋๋ค. ๋ํ ํ์ผ์์ค๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ก๋ถํฐ ์๋์ผ๋ก ์ถฉ๋ ๋ชจ์์ ๊ณ์ฐํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ์ถฉ๋ํ๊ฑฐ๋ ๋ฐ์ํ๋ ํ์ผ๋ก ๋ ๋ ๋ฒจ์ ์ ์ํ๋๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ํ์ผ ์์ค๋ ๊ทธ๋ํฝ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๋ ํ์ผ ๋งต(์คํ๋ผ์ดํธ์ ํํฐํดFX ๊ทธ๋ฆฌ๊ณ ์ํ๋ผ์ค๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ ํธ๋๊ธด ํ์ง๋ง) ์ปดํฌ๋ํธ์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ํด 2D graphic ๋ฌธ์๋ฅผ ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.

Tile map
ํ์ผ ๋งต ์ปดํฌ๋ํธ๋ ํ์ผ ์์ค์ ์ด๋ฏธ์ง๋ฅผ ํ๋ ์ด์์ ๊ฒน์ณ์ง ๊ฒฉ์๋ก ํ์ํฉ๋๋ค. ์ด๊ฒ์ ์ฃผ๋ก ๋ฐ๋ฅ, ๋ฒฝ, ๊ฑด์ถ๋ฌผ, ์ฅ์ ๋ฌผ ๊ฐ์ ๊ฒ์์ ํ๊ฒฝ์์๋ค์ ๋ง๋๋๋ฐ ์ฌ์ฉ๋๊ณค ํฉ๋๋ค. ํ์ผ ๋งต์ ์ง์ ๋ ๋ธ๋ ๋ ๋ชจ๋(blend mode)๋ก ์ฌ๋ฌ ๋ ์ด์ด๋ค์ ๊ฒน์ณ์ ํ์ ํ ์ ์๋๋ฐ, ์๋ฅผ ๋ค์ด ์๋ ํ์ผ ๋ฐฐ๊ฒฝ ์์ ๋๋ญ์ ๋ฑ์ ๊น์ ๋์๋ ์ ์ฉํฉ๋๋ค. ๋ํ ๋์ ์ผ๋ก ํ์ผ์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๊พธ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค๋ฆฌ๋ฅผ ํ๊ดดํด์ ๊ฑด๋๊ฐ์ง ๋ชปํ๊ฒ ํ๋ ๋์์ ๊ฐ๋จํ๊ฒ ๋ฌด๋์ง ๋ค๋ฆฌ์ ์ด๋ฏธ์ง์ ๋ฌผ๋ฆฌํํ๋ฅผ ๊ฐ์ง ํ์ผ๋ก ๊ต์ฒดํจ์ผ๋ก์จ ์ฒ๋ฆฌ ํ ์ ์์ต๋๋ค.

ParticleFX
ํํฐํด์ ๊ฒ์์์ ํน๋ณํ๊ณ ๋ฉ์ง ๋น์ฃผ์ผ ์ดํํธ๋ฅผ ์์ฑํ๋๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๋น์ ์ ์๊ฐ, ์ฐ๊ธฐ, ๋ถ, ๋น, ๋จ์ด์ง๋ ๋์ฝ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. Defold๋ ๊ฐ๋ ฅํ ํํฐํด ์ดํํธ ํธ์ง๊ธฐ๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ ๋น์ ์ด ๊ฒ์์์ ์ค์๊ฐ์ผ๋ก ์คํ์์ผ์ ์ดํํธ๋ฅผ ์ ์ํ๊ฑฐ๋ ์ต์ ํ ํ ์๋ ์์ต๋๋ค. ๋ ๋ง์ ๋ด์ฉ์ ๋ณด์๋ ค๋ฉด ํํฐํดFX ๋ฌธ์๋ฅผ ์ฐธ๊ณ ๋ฐ๋๋๋ค.

GUI
GUI์ปดํฌ๋ํธ๋ ํ
์คํธ๋ ํ
์ค์ณ๋ธ๋ก ๊ฐ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋๋ฐ ์ฌ์ฉ๋๋ ์์๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค. ๊ฐ ์์๋ค์ ์คํฌ๋ฆฝํธ๋ ์ ๋๋ฉ์ด์
์ด๋ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. GUI์ปดํฌ๋ํธ๋ ์ผ๋ฐ์ ์ผ๋ก HUD๋ ๋ฉ๋ด, ์คํฌ๋ฆฐ ์๋ ๋ฑ์ ๋ง๋๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. GUI์ปดํฌ๋ํธ๋ GUI์คํฌ๋ฆฝํธ๋ก ์ ์ดํ๋๋ฐ ์ด๋ GUI์ ๋์๊ณผ ์ ์ ์ํธ์์ฉ์ ์ ์ดํ๋๊ฒ์ ์ ์ํฉ๋๋ค. ๋ ์์ธํ ๊ฒ์ GUI documentation์ ์ฐธ๊ณ ๋ฐ๋๋๋ค.

GUI script
GUI์คํฌ๋ฆฝํธ๋ GUI์ปดํฌ๋ํธ์ ๋์์ ์ ์ํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ฒ์ GUI์ ๋๋ฉ์ด์
์ ์ ์ดํ๊ฑฐ๋ ์ ์ ๊ฐ ์ด๋ป๊ฒ GUI์ ์ํธ์์ฉํ๋์ง๋ฅผ ์ ์ดํฉ๋๋ค.
Font
ํฐํธ๋ TrueType์ด๋ OneType ํฐํธ ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํฐํธ๋ ํฌ๊ธฐ๋ ์ค๊ณฝ์ ๊ณผ ๊ทธ๋ฆผ์๊ฐ์ ๊พธ๋ฐ์ ์ง์ ํ ์ ์์ต๋๋ค. ํฐํธ๋ GUI์ปดํฌ๋ํธ์์ ์ฌ์ฉ๋ฉ๋๋ค.

Input binding
์ธํ๋ฐ์ธ๋ฉ ํ์ผ์ ๊ฒ์์์ ํ๋์จ์ด ์
๋ ฅ(๋ง์ฐ์ค, ํค๋ณด๋, ํฐ์น์คํฌ๋ฆฐ, ๊ฒ์ํจ๋ ๋ฑ)์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ด ํ์ผ์ "jump"๋ "move_formard" ๊ฐ์ ๋์์ ํ๋์จ์ด ์
๋ ฅ์ ๋ฐ์ธ๋ฉ ํฉ๋๋ค. ์
๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๋ ์คํฌ๋ฆฝํธ ์ปดํฌ๋ํธ์์ ๊ฒ์์ด๋ ์ฑ์ด ํน์ ์
๋ ฅ์ ๋ฐ์์ผ๋ง ํ๋ ๋์์ ์คํฌ๋ฆฝํธ ํ ์ ์์ต๋๋ค. ์์ธํ ๊ฒ์ Input documentation์ ์ฐธ๊ณ ๋ฐ๋๋๋ค.

Camera
์นด๋ฉ๋ผ ์ปดํฌ๋ํธ๋ ๊ฒ์์๋์ ํน์ ๋ถ๋ถ์ด ๋ณด์ฌ์ง๊ฑฐ๋ ์ด๋ป๊ฒ ํฌ์๋๋์ง ๊ฒฐ์ ํ๋๊ฑธ ๋์์ค๋๋ค. ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ก๋ ์นด๋ฉ๋ผ์ ํ๋ ์ด์ด๋ ํ๋ ์ด์ด ์ฃผ๋ณ์ ๋ถ๋๋ฝ๊ฒ ๋ฐ๋ผ๋ค๋๋ ๋ณ๋์ ๊ฒ์ ์ค๋ธ์ ํธ๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์
๋๋ค.
Material
๋ฉํฐ๋ฆฌ์ผ์ ์ด๋ป๊ฒ ๊ฐ ์ค๋ธ์ ํธ๋ค์ด ํน์ ์์ฑ๊ณผ ์์ด๋์ ์ํด ๋ ๋๋ง๋๋์ง ์ ์ํฉ๋๋ค.
Render
๋ ๋ ํ์ผ์๋ ๊ฒ์์ ํ๋ฉด์ ๋ ๋๋ง ํ ๋ ์ฌ์ฉ๋๋ ์ค์ ๋ค์ด ๋ค์ด ์์ต๋๋ค. ๋ ๋ ํ์ผ์ ๋ ๋๋ง์ ์ฌ์ฉํ ๋ ๋๋ง ์คํฌ๋ฆฝํธ์ ๋ฉํฐ๋ฆฌ์ผ์ ์ ์ํฉ๋๋ค.
Render script
๋ ๋ ์คํฌ๋ฆฝํธ๋ ๊ฒ์์ด๋ ์ฑ์ด ์ด๋ป๊ฒ ํ๋ฉด์ ๋ ๋๋ง ๋์ด์ผ ํ๋์ง๋ฅผ ์ ์ดํ๋ ๋ฃจ์ ์คํฌ๋ฆฝํธ ์
๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ๋ณธ ๋ ๋ ์คํฌ๋ฆฝํธ๊ฐ ์์ง๋ง ์ปค์คํ
๋ผ์ดํ
๋ชจ๋ธ์ด๋ ๋ค๋ฅธ ํจ๊ณผ๊ฐ ํ์ํ๋ค๋ฉด ์ง์ ์์ฑํ ์ ์์ต๋๋ค.
Collection proxy
์ปฌ๋ ์
ํ๋ก์๋ ๊ฒ์์ด๋ ์ฑ์ด ์คํ๋๋ ๋์ ์ปฌ๋ ์
์ ๋์ ์ผ๋ก ๋ถ๋ฌ์ค๊ณ ํ์ฑํํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ๋ก๋ ํน์ ๋ ๋ฒจ์ ์ปฌ๋ ์
ํ๋ก์๋ก ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค. ์์ธํ ๊ฒ์ ์ปฌ๋ ์
ํ๋ก์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ๋ฐ๋๋๋ค.