TECHNOLOGY - kuimoani/defold GitHub Wiki

Features

Defold๋Š” ํ†ตํ•ฉ ์†”๋ฃจ์…˜์œผ๋กœ์„œ ๊ฒŒ์ž„์„ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Animation

  • ์Šคํ”„๋ผ์ดํŠธ, GUI๋…ธ๋“œ, ํŒŒํ‹ฐํด์„ ์œ„ํ•œ ํ”Œ๋ฆฝ๋ถ ์• ๋‹ˆ๋ฉ”์ด์…˜(Flipbook animation)
  • ๋ธ”๋ Œ๋”ฉ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” ์ŠคํŒŒ์ธ ๋ณธ ์• ๋‹ˆ๋ฉ”์ด์…˜(Spine bone animation)
  • ํ‚คํ”„๋ ˆ์ž„ ์ด๋ฒคํŠธ
  • ํ‚คํ”„๋ ˆ์ž„์—์„œ์˜ ์ธ๋ฒ„์Šค ํ‚ค๋„ค๋งˆํ‹ฑ์Šค(Inverse kinematics) ์™€ ๋™์  ์Šคํฌ๋ฆฝํŒ…
  • ์Šคํ”„๋ผ์ดํŠธ์™€ GUI ํ”„๋กœํผํ‹ฐ ๋ชจ๋‘์—์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
  • ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์œ„ํ•ด ์‚ฌ์ „ ์ •์˜(Predefined)๋˜์—ˆ๊ฑฐ๋‚˜ ์ปค์Šคํ…€(custom)ํ•œ ์ด์ง• ํ•จ์ˆ˜(easing functions)

Cross-platform

  • ๋™์ผํ•œ ์ฝ”๋“œ์™€ ์ปจํ…์ธ ์—์„œ ์› ํด๋ฆญ์œผ๋กœ 6๊ฐœ ํƒ€๊ฒŸ ํ”Œ๋žซํผ ๊ฐœ๋ฐœ (iOS, Android, HTML5, OS X, Windows, Linux)
  • Mac OS X (10.7 Lion ์ด์ƒ), Windows 7 ์ด์ƒ, Linux (Ubuntu LTS ๋ฐ ์ธ์ฆ๋œ Debian 7)์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์—๋””ํ„ฐ์™€ ๋„๊ตฌ๋“ค

Version control

  • ํŒ€์„ ํ†ตํ•ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ผ ๋™๊ธฐํ™” ํ•˜๊ณ  ์‰ฝ๊ฒŒ ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋Š” Git ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ
  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์‰ฝ๊ฒŒ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ํŒŒ์ผ๋กœ ์ œ๊ณต

Optimization

  • ์ž‘์€ ์—”์ง„ ์˜ค๋ฒ„ํ—ค๋“œ (ํ˜„์žฌ ์•ฝ 5Mb ์ •๋„์ด์ง€๋งŒ ๋” ์ค„์ด๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž„)
  • ๋น ๋ฅธ ๋นŒ๋“œ์‹œ๊ฐ„. HTML5๋ฅผ ๋น„๋กฏํ•œ ๋ชจ๋“  ๋นŒ๋“œ ํƒ€๊ฒŸ์„ ์ˆ˜ ์ดˆ๋งŒ์— ์™„๋ฃŒ ๊ฐ€๋Šฅ
  • ์ •์  ์ปจํ…์ธ  ์ข…์†์„ฑ(Static content dependencies)์€ ์ž๋™ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•จ. ์‚ฌ์šฉ๋œ ์—์…‹๋งŒ ๊ฒŒ์ž„ ๋นŒ๋“œ์— ํฌํ•จ๋จ
  • ์•„ํ‹€๋ผ์Šค(atlas)์— ์Šคํ”„๋ผ์ดํŠธ ํŒจํ‚น(packing)
  • ํ”Œ๋žซํผ ๋งˆ๋‹ค ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ํ…์Šค์ณ ์••์ถ•
  • ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋™์  ๋ฐฐ์น˜(batch)
  • ๋น„๋™๊ธฐ(๋˜๋Š” ๋™๊ธฐ) ์—์…‹ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ

Graphics

  • ์ €๋ ˆ๋ฒจ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์™„์ „ํ•œ ์Šคํฌ๋ฆฝํŒ… ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ
  • ์ปค์Šคํ…€ ๋ฉ”ํ„ฐ๋ฆฌ์–ผ๊ณผ ์‰์ด๋”
  • emitter์™€ modifier ๋™์ž‘์„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒํ‹ฐํด ์ดํŽ™ํŠธ ์—๋””ํ„ฐ
  • ํŒŒํ‹ฐํด ์ˆ˜๋ช…(lifespan)์— ๋Œ€ํ•œ ํŒŒํ‹ฐํด ํŒŒ๋ผ๋ฉ”ํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ์ปค๋ธŒ(Curve) ์—๋””ํ„ฐ
  • 2D ๋ ˆ๋ฒจ์˜ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํƒ€์ผ ์—๋””ํ„ฐ
  • GUI ์—๋””ํ„ฐ
  • ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, Pie ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ ˆ์ด์–ด ๊ธฐ๋ฐ˜ GUI
  • GUI ํด๋ฆฌํ•‘(clipping)/์Šคํ…์‹ค(stencil) ๋งˆ์Šคํฌ(masks)
  • slice-9 ํ…์Šค์ณ๋ฅผ ์ง€์›ํ•˜๋Š” GUI ์ด๋ฏธ์ง€ ๋…ธ๋“œ
  • ์ž๋™ GUI ๋ ˆ์ด์•„์›ƒ๊ณผ ๋ฐฉํ–ฅ์ „ํ™˜(orientation changes) ๊ธฐ๋Šฅ ์ง€์›
  • ๋น„ํŠธ๋งต ๋ฐ ๋””์Šคํ„ด์Šค ํ•„๋“œ ํฐํŠธ(distance field font)
  • ํŠธ๋ฃจํƒ€์ž…, ์˜คํ”ˆํƒ€์ž…, BMFont ์ง€์›

Physics

  • 2D ์™€ 3D ๋ฌผ๋ฆฌ(Box2D ๋ฐ Bullet) ์™„์ „ ํ†ตํ•ฉ
  • ์ •ํ™•ํ•œ ์ถฉ๋Œ ๊ฐ์ง€
  • ์ •์ (Static), ๋™์ (dynamic), ์šด๋™ํ•™(kinematic - ์Šคํฌ๋ฆฝํŒ… ๊ฐ€๋Šฅ) ๋ฌผ๋ฆฌ ์˜ค๋ธŒ์ ํŠธ
  • ๊ฐ•๋ ฅํ•œ ํŠธ๋ฆฌ๊ฑฐ

Audio

  • Ogg ๋ฐ Wav ์‚ฌ์šด๋“œ ์ง€์›
  • ๋ฏน์„œ์˜ ๊ณ„์ธต๊ตฌ์กฐ, ์™„๋ฒฝํ•œ ์Šคํฌ๋ฆฝํŒ… ์ง€์›

Workflow

  • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์— ์ข…์†๋˜์ง€ ์•Š๋Š” ํ†ตํ•ฉ ์†Œํ”„ํŠธ์›จ์–ด. iOS ๋ฐฐํฌ์šฉ์œผ๋กœ Xcode ํ•„์š” ์—†์Œ
  • ์—…๋ฐ์ดํŠธ๋œ ์—์…‹ ๋ฐ ๋กœ์ง ํ•ซ ๋ฆฌ๋กœ๋“œ(hot reload)
  • ์žฅ์น˜์—์„œ ๋ฌด์„ ์œผ๋กœ ํ•ซ ๋ฆฌ๋กœ๋”ฉ, ๋””๋ฒ„๊น…, ๋น„์ฃผ์–ผ ํ”„๋กœํŒŒ์ผ๋ง
  • ์—์…‹๊ณผ ๋กœ์ง์„ ์กฐํ•ฉํ•˜๊ณ  ๋ฐฐ์น˜ํ•˜๋Š” ์”ฌ ์—๋””ํ„ฐ(Scene editor)
  • ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ํฌ๋ž˜์‰ฌ ๋ฆฌํฌํŠธ API ์ง€์›
  • ์—์…‹ ์ž๋™ ๋ฆฌํŽ™ํ† ๋ง
  • ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•œ GUI ๋ฐ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•œ ๊ฒŒ์ž„ ์—์…‹์˜ ํ”„๋ฆฌํŽฉ(prefab) ๊ตฌ์„ฑ
  • ์ปค์Šคํ…€ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์œ„ํ•œ ๋…๋ฆฝ ์‹คํ–‰ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ(Stand alone build pipeline)
  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ ํ—ค๋“œ๋ ˆ์Šค(headless) ์—”์ง„
  • ํ”„๋กœ์ ํŠธ๊ฐ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณต์œ 

Debug & test

  • ์…‹์—… ๋ฐ ์ถ”์ ์„ ์œ„ํ•ด ์ปค์Šคํ…€ Lua ํ›„ํ‚น(hooks)์„ ์‚ฌ์šฉํ•œ ํ•ซ ๋ฆฌ๋กœ๋“œ
  • ๋ผ์ด๋ธŒ ํ™”๋ฉด์ƒ์˜ ๋น„์ฃผ์–ผ ํ”„๋กœํŒŒ์ผ๋Ÿฌ
  • ๋น„์ฃผ์–ผ ํ”„๋ ˆ์ž„ ์ƒ˜ํ”Œ๋ง์„ ์‚ฌ์šฉํ•œ ์›๊ฒฉ ์›น ๊ธฐ๋ฐ˜ ํ”„๋กœํŒŒ์ผ๋Ÿฌ
  • Zerobrane์„ ํ†ตํ•œ Lua ๋””๋ฒ„๊น…
  • ๊ฒŒ์ž„ ์žฅ๋ฉด์„ ์œ„ํ•œ ๋‚ด์žฅ ๋น„๋””์˜ค ์บก์ณ
  • ๋„ค์ดํ‹ฐ๋ธŒ ํฌ๋ž˜์‹œ ๋กœ๊ทธ API

Scripting

  • Lua ์–ธ์–ด๋Š” ๊ฒŒ์ž„ ๋กœ์ง์„ ์•ˆ์ „ํ•˜๊ณ  ์ข‹์€ ์„ฑ๋Šฅ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ์™„์ „ํ•˜๊ฒŒ ํ†ตํ•ฉ๋จ
  • ์—”์ง„์€ ๋‚ฎ์€ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ํ›Œ๋ฅญํ•œ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ๋ฐ˜์‘ํ˜•(reactive-style) Lua ์Šคํฌ๋ฆฝํŒ…์„ ์ง€์›ํ•จ
  • ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๊ฐ„์˜ ๋น„๋™๊ธฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

Extensions

  • Google ๋ฐ Apple ํ‘ธ์‰ฌ ์•Œ๋ฆผ API
  • Google ๋ฐ Apple ์ธ-์•ฑ ๊ฒฐ์ œ API
  • Facebook API
  • HTTP ๋ฐ Lua ์†Œ์ผ“ ๋„คํŠธ์›Œํฌ API