HTML5 - kuimoani/defold GitHub Wiki
์ด ๋งค๋ด์ผ์ HTML5 ์บ๋ฒ์ค ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๊ณผ์ ์ ๋ํด ์ค๋ช ํ๊ณ , ์๋ ค์ง ์ด์๋ค๊ณผ ๋ช ๊ฐ์ง ์ ์ฝ์ฌํญ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
"game.project" ํ์ผ์๋ HTML5 ์ ์ํ ๋ช ๊ฐ์ง ํน์ ์ค์ ๊ฐ์ด ์์ผ๋ฉฐ html5 ์น์ ์์ ์ฐพ์ ์ ์์ต๋๋ค.
Defold๋ Emscripten(http://en.wikipedia.org/wiki/Emscripten ์ฐธ๊ณ ) ๋ฅผ ์ฌ์ฉํ์ฌ HTML5 ์ ์ง์ํ๊ณ ์์ต๋๋ค. ์ฆ ์ดํ๋ฆฌ์ผ์ด์ ๋์์ด ํ(heap) ์์์ ์ด๋ฃจ์ด์ง๋ ์๋๋ฐ์ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ฑํ๋ค๋ ๋ป์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ง์ ๋ง์ ์์ ๋ฉ๋ชจ๋ฆฌ(256MB)๋ฅผ ํ ๋นํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ธ ๊ฒ์์๋ ์ถฉ๋ถํ์ง๋ง ์ต์ ํ๋ฅผ ํตํด์ ๋ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผํด ๋ณด์ธ์.
- custom_heap_size ๋ฅผ ์ํ๋ ๋ฐ์ดํธ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
- set_custom_heap_size๋ฅผ ์ฒดํฌํด์ ํ์ฑํ ํฉ๋๋ค.
- HTML5 ๋ฒ๋ค์ ์์ฑํฉ๋๋ค. (์๋ ์ฐธ๊ณ )
๊ฐ๋ฐํ๋ ๋์์๋ ํน์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ์ ํ๋ ์ปดํฌ๋ํธ๊ฐ ํฌํจ๋ ๋ฒ๋ค์ ์์ฑํด์ ์ดํ๋ฆฌ์ผ์ด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ถ์ ํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ include_dev_tool๋ฅผ ์ฒดํฌํด์ ํ์ฑํ ๋๋ฉฐ ์๋์์ ๋ ์์ธํ ์ค๋ช ํฉ๋๋ค.
๋คํธ์ํฌ ํธ๋ํฝ์ ์ค์ด๊ณ ๋ก๋ฉ ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด, HTML5 ์ดํ๋ฆฌ์ผ์ด์ ์บ์ฌ(https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache ์ฐธ๊ณ ) ๋ด์ ์ดํ๋ ์ผ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ก ์ ํํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ์ค์๋ ์ฌ์ฉ๋์ง ์๊ณ ๋ธ๋ผ์ฐ์ ๋ ์๋ก ์์ฑ๋ ์ปจํ ์ธ ๋ณด๋ค๋ ์บ์ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ ํ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ ์ด ๊ธฐ๋ฅ์ ํ ์คํธ ์ค์ ์ฌ์ฉํ๋ค๋ฉด ๋น๋ํ ์ ๋ฒ๋ค์ ์บ์ฌ ๋ฉ๋ํ์คํธ(cache manifest)๋ฅผ ๋ณ๊ฒฝํด์ผ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ ์บ์ฌ๋ฅผ ์ญ์ (clear)ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
Defold์์ HTML5 ์ปจํ ์ธ ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ฐ๋จํ๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ์ง์๋๋ ํ๋ซํผ๋ค ์ฒ๋ผ ๋์ผํ ํจํด์ผ๋ก ๋ฐ๋ผํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๋ฉ๋ด์์ Project > Bundle > HTML5 Applicationโฆโ ๋ฅผ ์ ํํฉ๋๋ค.
์ดํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ธฐ์ํ ํด๋๋ฅผ ์ ํํ๋ผ๋ ์ฐฝ์ด ๋น๋๋ค. ์ต์คํฌํธ ๊ณผ์ ์ด ์๋ฃ๋๋ฉด ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋๋ฐ ํ์ํ ๋ชจ๋ ํ์ผ์ ๋ณผ ์ ์์ต๋๋ค.
์ด์ ์ด ์ปจํ ์ธ ๋ฅผ ์น์๋ฒ๊ฐ ์ก์ธ์ค ํ ์ ์๋ ๋๋ ํ ๋ฆฌ์ ์ค์นํด์ผ ํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ํ ์คํธ ํ๊ฒฝ์ ํ๋ก์ ํธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ด ํ๊ฒฝ์์๋ ๊ทธ๋ฅ .html ํ์ด์ง๋ฅผ ์ด๊ธฐ๋ง ํด๋ ๋ฉ๋๋ค.
๋ํ ์๋ํฐ์์ HTML ์ปจํ ์ธ ๋ฅผ ์ง์ ์คํํด์ ๋ก์ปฌ ๋ธ๋ผ์ฐ์ ์์ ์ด ์๋ ์์ต๋๋ค. ํ์ง๋ง ๊ฒ์์ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ์น ์๋ฒ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธ ํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.
Defold ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ํฐ์์ ๋ผ์ด๋ธ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ธฐ ์ํด ์์ฒด์ ์ธ ์ํ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํ ํด์ผ๋ง ํฉ๋๋ค. ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ์์ ๋ธ๋ผ์ฐ์ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
Cross-origin resource sharing (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing ์ฐธ๊ณ )๋ QAํ๊ฒฝ์์๋ ํ์ฑํ ๋์ง ์์ผ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ๊ฐ ์น API์ ์ํธ์์ฉํ๋ ๊ธฐ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค. Chrome์ ์ฌ์ฉํ ๋, '--disable-web-security' ํ๋๊ทธ๋ก ์คํํ๊ฑฐ๋ ํ๋ก์ ์๋ฒ๋ฅผ ๋ง๋ค์ด์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์๊ตฌ์ ์ธ ์ฌ์ฉ์ ๋ฐ์ดํฐ(Persistent user data)๋ IndexedDB API (https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API ์ฐธ๊ณ )๋ฅผ ์ฌ์ฉํด์ ๋ก์ปฌ์ ์ ์ฅ๋ฉ๋๋ค. ์ด HTML5์ ๊ธฐ๋ฅ์ ํ์ฌ Safari ๋ฒ์ ์์๋ ์ง์๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์ธ์ (sessions) ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ง ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ค์ ์ ๋ฐ์ดํธ์ ํฌํจ๋ ์์ ์ ๋๋ค.
Defold๋ HTML5 WebAudio (http://www.w3.org/TR/webaudio ์ฐธ๊ณ )๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋์ค ์ฌ์์ ๋ค๋ฃจ๋ฉฐ Internet Explorer 11 ์์๋ ์ด ๊ธฐ๋ฅ์ด ์ง์๋์ง ์์ต๋๋ค. ์ด ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Microsoft๋ WebGL API (https://www.khronos.org/registry/webgl/specs/latest/ ์ฐธ๊ณ ) ๊ตฌํ์ ์๋ฃํ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ค ์ฒ๋ผ ๋์ํ์ง ์์ ์ ์์ต๋๋ค.
ํ ์คํฌ๋ฆฐ ๋ชจ๋๋ ์ด ๋ธ๋ผ์ฐ์ ์์ ์ ๋๋ก ๋์ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ดํ๋ฆฌ์ผ์ด์ ์ HTML5 ๋ฒ์ ์ ์์ฑํ ๋, Defold๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์์นํ ๊ธฐ๋ณธ ์น ํ์ด์ง๋ฅผ ์ ๊ณตํ๋ฉฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ด๋ป๊ฒ ํ์ํ ์ง ๋์์ฃผ๋ style(css)๊ณผ script ๋ฆฌ์์ค๋ค์ ์ฐธ์กฐํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก, ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋๋ฐ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ฌด์ํ ์ ์์ต๋๋ค. ์ด๋ฐ ์ด์ ๋ก, Defold HTML5 ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ํ๋ ๋์ ๋ณด์ฌ์ฃผ๋ ์คํ๋์ฌ ์คํฌ๋ฆฐ(splash screen) ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฅผ ์ฌ์ ์ ํ์ง ์๋ ํ, Defold๋ ์๋ ์ฒ๋ผ ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ํ์ด์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
+ HTML5 ์บ๋ฒ์ค + ํ์คํฌ๋ฆฐ ๋ชจ๋ ๋ฒํผ + ์คํ๋์ฌ ์คํฌ๋ฆฐ ๋ฐ ๋ก์ง + ํ์ํ๋ค๋ฉด ๊ฐ๋ฐ ๋๊ตฌ๋ค
์ด ์ปจํ ์ธ ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ต์คํฌํธ ํ ๋๋ง๋ค ์๋ก ์์ฑ๋ฉ๋๋ค. ๋ง์ฝ ์ด ์์๋ค์ ์ปค์คํฐ๋ง์ด์ง ํ๋ ค๋ฉด ํ๋ก์ ํธ ์ค์ ์ ์์ ํด์ผ ํฉ๋๋ค. Defold ์๋ํฐ์ game.project ๋ฅผ ์ด์ด์ html5 ์น์ ์ ์ฐพ์ ๋ณด์ธ์.
์ด ์ค์ ์ ์ปค์คํ HTML ํ์ผ, ์คํ์ผ์ํธ(css), ์คํ๋์ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํ ์ ์๊ฒ ํด ์ค๋๋ค.
์ด ์์ ์ ์์ํ๋ ค๋ฉด, ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ํ ๋ฒ ์ต์คํฌํธ ํ ํ ์ต์คํฌํธ๋ HTML๊ณผ CSS ํ์ผ์ ํ๋ก์ ํธ๋ก ์ฎ๊ฒจ์ ์์ ์ค๋ช ๋๋ก ์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์ด ํ์ผ๋ค์ ์์ ํ๋ฉด ๋ฉ๋๋ค.
์ด ์ปจํ ์ธ ๋ ์ธ์ ๋ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ถ๊ฐํ ์ ์์ง๋ง, ๋ช ๊ฐ์ง ์ ์ฝ ์ฌํญ์ด ์์ต๋๋ค.
+ ์บ๋ฒ์ค๋ ๋ค๋ฅธ ์คํ์ผ๋ก border ๋ padding ์ ์ง์ ํ๋ฉด ์๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ง์ฐ์ค ์ ๋ ฅ ์ขํ๊ฐ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. + ํ์ด์ค๋ถ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ์ Javscript SDK๋ฅผ ๋ก๋ํ๋ ์คํฌ๋ฆฝํธ ํ๊ทธ๊ฐ ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์คํฌ๋ฆฝํธ ์์ ๋ํ๋์ผ ํฉ๋๋ค.
์คํ๋์ ์คํฌ๋ฆฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ๋ง์ฝ ์คํ๋์ฌ ์คํฌ๋ฆฐ์ ์ญ์ ํ๊ฑฐ๋ ์ปค์คํฐ๋ง์ด์ง ํ๋ ค๋ฉด ์ฃผ์๊ฐ ํ์ํ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
+ HTML ๋งํฌ์ + CSS ์คํ์ผ + Javascript ๋ก์ง
Javascript๋ฅผ ์ง์ ๊ตฌํํ๋ ๊ฒ์ ์ ํ์ฌํญ์ด์ง๋ง, ๋ง์ฝ ์๋ ํจ์๋ฅผ ํฌํจํ๋ "SplashControl" ์ค๋ธ์ ํธ๋ฅผ ๊ตฌํํ๋ฉด Defold ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ด์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋๋ ค๋ณด๋ด ์ค๋๋ค.
์ด ์ฝ๋ฐฑ(callback)์ ์ ์ ์๊ฒ ํ์ํ๋ ค๋ ํ ์คํธ๋ฅผ ์์ ํฉ๋๋ค.
####onSetProgress(current, max) ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ก๋๋ ๋, ์ด ์ฝ๋ฐฑ์ ํ์ฌ ์งํ๋ฅ (current progress)์ ๋ฐ์ต๋๋ค. "current"๋ ๋ก๋๋ ๋ฐ์ดํฐ์ ์์ ๊ฐ์ง๊ณ ์๊ณ "max"๋ ๋ก๋ ํ ์ ์ฒด ๋ฐ์ดํฐ์ ์์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด ์ฝ๋ฐฑ์ ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ก๋ ๋์ด ์คํ์ ์์ํ๊ณ ์บ๋ฒ์ค๋ฅผ ๋ ๋๋ง(์คํ๋์ ์คํฌ๋ฆฐ์ด ๋ซํ ๋) ํ๋ ค ํ ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํด ํธ์ถ๋ฉ๋๋ค.
๋ํ ๊ธฐ๋ณธ ๊ตฌํ์๋ ์๋์ฐ ๋ฆฌ์ฌ์ด์ง ์ด๋ฒคํธ๋ฅผ ๋ค๋ฃจ๋ ๋ก์ง๋ ํฌํจํ๊ณ ์์ต๋๋ค. ์ด ๊ตฌํ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ๊ต์ฒดํ๋ ค๋ฉด, ๋ฉ์ธ ๋ชจ๋์ด ์ ๊ณตํ๋ ์๋ ๋๊ฐ์ง ํฌํผ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
DOM ์์์ id๋ฅผ ๋ฐ์์ ์บ๋ฒ์ค์ ๋น์จ์ ๋ง๊ฒ "width"์ "height" ์์ฑ์ ์กฐ์ ํฉ๋๋ค. "marginTop" ์์ฑ์ ๋ธ๋ผ์ฐ์ ์๋์ฐ์ ์บ๋ฒ์ค๋ฅผ ์ธ๋ก ์ ๋ ฌํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
"id" ์์์ "marginTop" ์์ฑ์ ํ๋ก์ ํธ ์ค์ ์ ์ดํ๋ฆฌ์ผ์ด์ ๋์ด์ ๊ด๋ จ๋ ์ค์ผ์ผ๊ฐ์ผ๋ก ํ์๋ "sourcePixels" ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค. ๋ด๋ถ์ ์ผ๋ก "sourcePixels"๋ top margin์ ํ ๋น๋๊ธฐ ์ ์ ์ค์ผ์ผ ๊ฐ์ ๊ณฑํด์ง๋๋ค. ์ด ์ค์ผ์ผ ๊ฐ์ ์ค์ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ํฝ์ ๋์ด์์ ์ดํ๋ฆฌ์ผ์ด์ ํฝ์ ๋์ด๋ฅผ ํ๋ก์ ํธ ์ ํ ์ ์ง์ ํ ๋๋ก ๋๋๋๋ค.
์ด ๋ฉ์๋๋ค์ ๋ชจ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ค ๋ก๋๋๊ธฐ ์ ๊น์ง๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ ์์ ๋ ๊ธฐ๋ณธ์ผ๋ก ์์ฑ๋ HTML ํ์ผ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
์คํ๋์ ์คํฌ๋ฆฐ ๊ฐ๋ฐ์ ์ค์ ์ ๋ ๊ฒฝ์ฐ, ๋ก๋ฉ๊ณผ ์คํ์ ๊ด๋ จ๋ ์ฝ๋๋ค์ ์ฃผ์์ฒ๋ฆฌ ํด์ ํ๋ก์ธ์ค ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
HTML5 ์ดํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ ๋, HTML๊ณผ CSS ํ์ผ๋ค์ ํน์ ํ ํฐ์ ํ๋ก์ ํธ ์ค์ ์ ์์กดํ๋ ๊ฐ์ผ๋ก ๊ต์ฒดํ ์ ์๋ ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ์ ๋ฌ๋ฉ๋๋ค. ์ด ํ ํฐ์ ๋ฌธ์ ์ํ์ค๋ฅผ ์ด์ค์ผ์ดํ ํด์ผํ๋์ง ๋ง์์ผ ํ๋์ง์ ๋ฐ๋ผ ํญ์ ์ด์ค ํน์ ์ผ์ค ์ค๊ดํธ(โ{ }โ)๋ก ๋ฌถ์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ๋ก์ ํธ ์ค์ ์ ์์ฃผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค๋ฅธ ํ๋ก์ ํธ์์ ๋ฉํฐ๋ฆฌ์ผ์ ์ฌ์ฌ์ฉ ํ๋ ค๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
HTML์ด๋ CSS ์ปจํ ์ธ ์ ๋ฐ๋ผ, ์๋ ํ ํฐ๋ค์ด ๋ชจ๋ ์ง์๋ฉ๋๋ค.
(HTML ๋๋ CSS) ํ๋ก์ ํธ ์ค์ ์ ์ง์ ๋ ๊ฐ์ display width์ ์๋๋ค.
function doSomething() {
var x = {{DEFOLD_DISPLAY_WIDTH}};
// ...
}
(HTML ๋๋ CSS) ํ๋ก์ ํธ ์ค์ ์ ์ง์ ๋ ๊ฐ์ display height์ ์๋๋ค.
function doSomething() {
var y = {{DEFOLD_DISPLAY_HEIGHT}};
}
(HTML ๋๋ CSS) ์คํ๋์ ์ด๋ฏธ์ง ํ์ผ์ ํ์ผ๋ช ์ ์๋๋ค.
<image class="splashImage" src="{{DEFOLD_SPLASH_IMAGE}}"></image>
์๋ ํ ํฐ๋ค์ HTML ํ์ผ์ ์ฒ๋ฆฌํ ๋์๋ง ์ง์๋ฉ๋๋ค.
(HTML) ํ๋ก์ ํธ์ ํ์ดํ์ ๊ธฐ๋ฐํ ๋ฌธ์์ด์ ์์ฑํฉ๋๋ค.
<head>
<title>{{DEFOLD_APP_TITLE}}</title>
</head>
(HTML) ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์ด๋ฆ๊ณผ ์ผ์น๋ฉ๋๋ค.
(HTML) ๋ถํธ์คํธ๋ฉ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์ด๋ฆ๊ณผ ์ผ์น๋ฉ๋๋ค. ์ด ํ์ผ์ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ ๋ก๋ํ๊ณ ์คํ๋์ ์ด๋ฏธ์ง์ ํ๋์ ์กฐ์ ํฉ๋๋ค.
<script type='text/javascript' src="{{DEFOLD_MODULE_JS}}"></script>;
(HTML) ํ๋ก์ ํธ ์ค์ ์ ์ง์ ๋ ๊ธฐ๋ณธ ๋๋ ํ ํ๋ฆฟ์ ์ต์คํฌํธํ๋ ๋์ ์ถ๋ ฅ๋๋ CSS ํ์ผ์ ํ์ผ๋ช ์ ๋๋ค.
<head>
<link rel="stylesheet" type="text/css" href="{{DEFOLD_CSS}}"></style>
</head>
(HTML) ํ๋ก์ ํธ ์ค์ ์ ๋ฐ๋ผ HTML ๋ฌธ์์
์น์ ์์ ์ฌ์ฉ๋๋ ์ปค์คํ HTML ์กฐ๊ฐ์ ์์ฑํฉ๋๋ค. ์ด ๋ฌธ์ ์ํ์ค๋ฅผ ์ด์ค์ผ์ดํ ํ๋ฉด ์๋๊ธฐ ๋๋ฌธ์ 3์ค ์ค๊ดํธ(triple braces)๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.<head>
{{{DEFOLD_DEV_HEAD}}}
</head>
(HTML) ํ๋ก์ ํธ ์ค์ ์ ๋ฐ๋ผ HTML ๋ฌธ์์
์น์ ์์ ์ฌ์ฉ๋๋ ์ปค์คํ HTML ์กฐ๊ฐ์ ์์ฑํฉ๋๋ค.{{{DEFOLD_DEV_INLINE}}}
<script type="text/javascript" src="//connect.facebook.net/en_US/sdk.js"></script>
<!-- etc. -->
์ด ์ธ๋ผ์ธ ๋ธ๋ก(inline block)์ ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ๊ธฐ ์ ์ ์์ด์ผ ํฉ๋๋ค. HTML ํ๊ทธ๊ฐ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด ๋งคํฌ๋ก๋ ๋ฌธ์ ์ํ์ค๊ฐ ์ด์ค์ผ์ดํ ๋์ง ์๋๋ก 3์ค ์ค๊ดํธ๋ฅผ ์จ์ผ ํฉ๋๋ค.
(HTML) ์ด ํ๊ทธ๋ ์ผ๋จ ์ฒ๋ฆฌ๋๋ฉด Defold ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๋ฅผ ์ํด์ development options์ ํ์ฑํ ํด์ผ ํ๋ฉฐ, ๊ด๊ณ๋ ๋ชจ๋๋ค์ ์ด๊ธฐํ๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
{{{DEFOLD_DEV_INLINE}}}
<script type="text/javascript" src="//connect.facebook.net/en_US/sdk.js"></script>
{{{DEFOLD_JS_INIT}}}
๋ง์ฝ Facebook SDK ๋ฅผ ์ฌ์ฉํ๋ ค ํ๋ค๋ฉด ์ด ํ๊ทธ๋ฅผ ๋ก๋ํ๊ธฐ ์ํด "DEFOLD_JS_INIT" ํ๊ทธ ์์ ์์ด์ผ ํฉ๋๋ค. ๋ํ ์ด ๋งคํฌ๋ก๋ HTML ํ๊ทธ๊ฐ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ์ด์ค์ผ์ดํ ํ์ง ์๊ธฐ ์ํด 3์ค ์ค๊ดํธ๋ก ๋๋ฌ ์ธ์ผ ํฉ๋๋ค.
๊ฐ๋ฐ ์ค์๋ ๊ฐ๋จํ ๋ฉ๋ชจ๋ฆฌ ์ถ์ ๋๊ตฌ๋ฅผ ํฌํจํ๋ HTML5 ๋ฒ๋ค์ ์์ฑํ ์ ์์ต๋๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์ ์ด ๋๊ตฌ๋ฅผ ํฌํจ์ํค๊ธฐ ์ํด์๋ ์ฐ์ "game.project" ํ์ผ์ ์ด์ด html5 ์น์ ์ผ๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
include_dev_tool ์ต์ ์ ์ฒดํฌํ๋ฉด ๋ฒ๋ค ์์ ์ด ์ํ๋ ๋ ์ด ๋๊ตฌ๋ฅผ ์๋์ผ๋ก ํ์ฑํ ํ๊ณ ํฌํจ์ํต๋๋ค.
๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ ์์ฑํ๊ธฐ ์ ์๋ ์ด ์ต์ ์ ํด์ ํด์ผ ํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์์ ์ผ๋ก ์คํํ๋ฉด ์ด ๋๊ตฌ๊ฐ ํ๋ฉด์ ๋ํ๋๊ฒ ๋ฉ๋๋ค.
ํ ๊ธ ๋ฒํผ์ ๋๋ฌ์ ๋ค์ํ ๋ฉ๋ชจ๋ฆฌ ๋ฆฌํฌํ ์น์ ์ ํ์ฑํ ํ๊ณ ๋นํ์ฑํ ํ ์ ์์ต๋๋ค. ์ด ์น์ ๋ค์ ์๋์ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฒด ์ฌ์ด์ฆ์ ๋๋ค. ์ด ๊ฐ์ custom heap size ์ค์ ์ ์ํด ๊ตฌ์ฑ๋ ์๋ ์์ต๋๋ค. ์ด ๊ฐ์ ํ๋ํ๋ฉด ๋ฆฌ์์ค๋ฅผ ์ต์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ ๋ง๋ค ๋ ์ ์ฉํฉ๋๋ค.
๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ต๋์น์ ํ์ฌ ์์น ๋ฐ ์ ์ฒด ํ ๋น ํ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํด ์ํ๋ ์์ ์ ์๋ฅผ ์ธก์ ํฉ๋๋ค.
์ดํ๋ฆฌ์ผ์ด์ ์ ์ง์ ๋น๋๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์์ฝํฉ๋๋ค.
์คํ ์ฌ์ฉ์ ์ํ ์ฝ๋์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์ดํฉ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์ฌ์ฉ๋ ๊ฐ์ด 0์ผ๋ก ๋ณด๊ณ ๋๋ฉด ์ ์ ์๋ ์ค์ด๋ฉฐ, ๋ค๋ฅธ ๊ฐ์ด๋ฉด ์์ง์ ๋ฒ๊ทธ๊ฐ ์์์ ๋ํ๋ ๋๋ค.
์ฒ์ ๋ ์น์ ์ ๊ฐ๋ฐ ๊ณผ์ ์ค์ ํฐ ๊ด๋ จ์ด ์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ํนํ, ์ฑ๋ฅ์ด ์ฐ์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์์ฃผ ์์ฒญํ์ง ์์ต๋๋ค.
์ด ๋ฉ๋ชจ๋ฆฌ ์ถ์ ๋๊ตฌ๋ malloc() ์ free() ํจ์๋ฅผ ํจ์นํด์ ์๋ํ๋ฉฐ ๊ฐ๋ฅํ ๋นจ๋ฆฌ ์คํ๋ฉ๋๋ค. ์ด ํจ์น๋ ๋ฉ์๋๊ฐ ์ ์ญ ์์ฑ์๋ก ์ ์ธ๋๊ธฐ ์ด์ ์ ์ํ๋์ง๋ ์์ต๋๋ค. ์ฆ, ์ดํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐ ๋จ๊ณ์์ ์ผ์ด๋ ๋์ ํ ๋น์ ๋ฐ์ดํฐ ์ฌ์ฉ๋(usage)๊ณผ ํผํฌ(peak)๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ๊ณผ ์์น์ ๊ด๋ จ๋ ๊ฐ์ ์ ํํ๊ฒ ์ถ์ ๊ฐ๋ฅํฉ๋๋ค.






