Godot 3.4 ์˜คํ”ˆ ๊ฒŒ์ž„ ์—”์ง„ ์ถœ์‹œ

6๊ฐœ์›” ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— 3.4D ๋ฐ 2D ๊ฒŒ์ž„ ์ œ์ž‘์— ์ ํ•ฉํ•œ ๋ฌด๋ฃŒ ๊ฒŒ์ž„ ์—”์ง„ Godot 3๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—”์ง„์€ ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์šด ๊ฒŒ์ž„ ๋กœ์ง ์–ธ์–ด, ๊ฒŒ์ž„ ๋””์ž์ธ์„ ์œ„ํ•œ ๊ทธ๋ž˜ํ”ฝ ํ™˜๊ฒฝ, ์›ํด๋ฆญ ๊ฒŒ์ž„ ๋ฐฐํฌ ์‹œ์Šคํ…œ, ๋ฌผ๋ฆฌ์  ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ธฐ๋Šฅ, ๋‚ด์žฅ ๋””๋ฒ„๊ฑฐ, ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ ์‹๋ณ„ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. . ๊ฒŒ์ž„ ์—”์ง„์˜ ์ฝ”๋“œ, ๊ฒŒ์ž„ ๋””์ž์ธ ํ™˜๊ฒฝ ๋ฐ ๊ด€๋ จ ๊ฐœ๋ฐœ ๋„๊ตฌ(๋ฌผ๋ฆฌ ์—”์ง„, ์‚ฌ์šด๋“œ ์„œ๋ฒ„, 2D/3D ๋ Œ๋”๋ง ๋ฐฑ์—”๋“œ ๋“ฑ)๋Š” MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ด ์—”์ง„์€ PC, ๊ฒŒ์ž„ ์ฝ˜์†” ๋ฐ ๋ชจ๋ฐ”์ผ ์žฅ์น˜์šฉ ๋งŽ์€ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ณ  ๊ฒŒ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ์ „๋ฌธ๊ฐ€๊ธ‰ ๋…์  ์ œํ’ˆ์„ 2014๋…„ ๋™์•ˆ ๊ฐœ๋ฐœํ•œ ํ›„ OKAM์ด 3๋…„์— ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์—”์ง„์€ ๋ชจ๋“  ์ธ๊ธฐ ์žˆ๋Š” ๋ฐ์Šคํฌํ†ฑ ๋ฐ ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ(Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation XNUMX, PS Vita, Android, iOS, BBX)์€ ๋ฌผ๋ก  ์›น์šฉ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Linux, Windows ๋ฐ macOS์šฉ์œผ๋กœ ์ฆ‰์‹œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ณ„๋„์˜ ์ง€์ ์—์„œ๋Š” ํ˜„์žฌ OpenGL ES 4.0 ๋ฐ OpenGL 3.0์„ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ๋ Œ๋”๋ง ๋ฐฑ์—”๋“œ ๋Œ€์‹ (OpenGL ES ๋ฐ OpenGL์— ๋Œ€ํ•œ ์ง€์›์€ ํ–ฅํ›„ Godot 3.3์˜ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต๋  Vulkan ๊ทธ๋ž˜ํ”ฝ API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ Œ๋”๋ง ๋ฐฑ์—”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Vulkan ๊ธฐ๋ฐ˜ ๋ Œ๋”๋ง ์•„ํ‚คํ…์ฒ˜ ์œ„์— ๊ธฐ์กด OpenGL ES 2.0 ๋ฐฑ์—”๋“œ/OpenGL 2.1 ์ œ๊ณต์„ ํ†ตํ•ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. Godot 3.x์—์„œ Godot 4.0์œผ๋กœ ์ „ํ™˜ํ•˜๋ ค๋ฉด API ์ˆ˜์ค€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฌ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€๋งŒ Godot 3.x ๋ธŒ๋žœ์น˜๋Š” ๊ธด ์ง€์› ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ทธ ๊ธฐ๊ฐ„์€ API์— ๋Œ€ํ•œ ์ˆ˜์š”์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์—„๊ฒฉํ•˜๊ฒŒ ์‚ฌ์šฉ์ž์— ์˜ํ•ด.

Godot 3.4๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜์‹ ์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค:

  • ๋””์ž์ธ ํ…Œ๋งˆ ํŽธ์ง‘์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ๋””์ž์ธ๋˜์–ด ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ์‹œ๊ฐ์  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ตฌํ˜„๋˜๊ณ  ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ชจ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜์ง€ ์•Š๊ณ ๋„ ๋””์ž์ธ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ์„ ์œ„ํ•ด ํŽธ์ง‘๊ธฐ ๊ฐœ์„ : ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒ€์‚ฌ ๋ชจ๋“œ๋กœ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ์ž„์˜ ์œ„์น˜์— ๋…ธ๋“œ ์ƒ์„ฑ ํ—ˆ์šฉ, ํ…œํ”Œ๋ฆฟ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ธํ„ฐํŽ˜์ด์Šค ์ถ”๊ฐ€, ๊ธฐ์ฆˆ๋ชจ๋ฅผ ์‚ฌ์šฉํ•œ ์ถ”๊ฐ€ ์ž‘์—… (ํ‰ํ–‰์œก๋ฉด์ฒด ๊ฒฝ๊ณ„ ์‹œ์Šคํ…œ)์ด ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ, ๋ฒ ์ง€์–ด ๊ณก์„ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํŽธ์ง‘๊ธฐ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ์†์„ฑ ๋ณ€๊ฒฝ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ทจ์†Œํ•˜๋Š” ๋Œ€์‹  AnimationPlayer๋ฅผ ํ†ตํ•ด ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ ์šฉํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์žฅ๋ฉด ๋ณ€๊ฒฝ์„ ํ•œ ๋ฒˆ์— ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋Š” ๋กค๋ฐฑ ๋ชจ๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • 2D ๋ทฐํฌํŠธ์˜ ํ™•๋Œ€/์ถ•์†Œ ์ˆ˜์ค€์„ ๋ณ€๊ฒฝํ•˜๋Š” ์˜ต์…˜์ด ์„ค์ •์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ๋Š˜์ด๊ธฐ ๋ชจ๋“œ์— ๊ด€๊ณ„์—†์ด 2D ์š”์†Œ๋ฅผ ํ™•๋Œ€ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ API์— ํฌ๊ธฐ๊ฐ€ 2GB๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ํŒŒ์ผ(PCK ํฌํ•จ)์„ ์ž‘์—…ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ํƒ€์ด๋จธ์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๊ณ  ํ”„๋ ˆ์ž„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ„์‚ฐํ•˜๊ณ  vsync๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ถœ๋ ฅ ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ๋ Œ๋”๋ง ๋งค๋„๋Ÿฌ์›€์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • InputEvents ์ž…๋ ฅ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์—๋Š” ํ™œ์„ฑ ๋ ˆ์ด์•„์›ƒ์— ๊ด€๊ณ„์—†์ด ํ‚ค๋ณด๋“œ ํ‚ค์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ์Šค์บ”์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด QWERTY ๋ ˆ์ด์•„์›ƒ์˜ WASD ํ‚ค๋Š” ํ”„๋ž‘์Šค์–ด์˜ ZQSD ํ‚ค์— ์ž๋™์œผ๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. AZERTY ๋ ˆ์ด์•„์›ƒ).
  • ์Šคํฌ๋ฆฝํŠธ์—์„œ AES-ECB, AES-CBC ๋ฐ HMAC ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ AESContext ๋ฐ HMACContext ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์ƒ์„ฑํ•˜๊ณ  ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด RSA ๊ณต๊ฐœ ํ‚ค๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฝ๋Š” ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์นด๋ฉ”๋ผ ์ดˆ์ ์— ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๊ฐ์ฒด(์˜ˆ: ๋ฒฝ ๋’ค)์— ์˜ํ•œ ํ์ƒ‰์œผ๋กœ ์ธํ•ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด์˜ ๋ Œ๋”๋ง์„ ์ค‘์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ๋ Œ๋”๋ง ์—”์ง„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ž˜์Šคํ„ฐ(ํ”ฝ์…€ ์ˆ˜์ค€) ํ์ƒ‰ ํด๋ฆฌํ•‘์€ Godot 4 ๋ธŒ๋žœ์น˜์—์„œ๋งŒ ๊ตฌํ˜„๋˜๋Š” ๋ฐ˜๋ฉด, Godot 3์—๋Š” ๊ฒน์น˜๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ผ๋ถ€ ๊ธฐํ•˜ํ•™์  ํด๋ฆฌํ•‘ ๊ธฐ์ˆ ๊ณผ ํฌํ„ธ ํ์ƒ‰ ์ง€์›์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์€ ๋ฌผ์ฒด์˜ ๋Œ€๋น„๋ฅผ ๋†’์—ฌ ํ˜„์‹ค๊ฐ๊ณผ ๋ฌผ๋ฆฌ์  ์ •ํ™•์„ฑ์„ ๋†’์ด๋Š” ์ƒˆ๋กœ์šด ACES Fitted ํ† ๋‹ ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    Godot 3.4 ์˜คํ”ˆ ๊ฒŒ์ž„ ์—”์ง„ ์ถœ์‹œ
  • ๊ณ ๋ฆฌ ๋˜๋Š” ์†์ด ๋นˆ ์›ํ†ต๊ณผ ๊ฐ™์€ XNUMXD ์ž…์ž ๋ฐฉ์ถœ ๋ชจ์–‘์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌผ๋ฆฌ์  ํ”„๋กœ์„ธ์Šค ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์—”์ง„์—์„œ๋Š” ๋ฉ”์‰ฌ์—์„œ ๋ณผ๋กํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์œผ๋ฉฐ ๊ฒ€์‚ฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ถฉ๋Œ ์ถ”์  ๋ชจ๋“œ๊ฐ€ ์žฌ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2D ๋ฌผ๋ฆฌ ์—”์ง„์˜ ๊ฒฝ์šฐ ๋™์  ๊ณต๊ฐ„ ๋ถ„๋ฆฌ๋ฅผ ์œ„ํ•ด BVH(Bounding Volume Hierarchy) ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 3D ๋ฌผ๋ฆฌ ์—”์ง„์€ ์ด์ œ HeightMapShapeSW ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ  KinematicBody3D์™€ ๋™๊ธฐํ™” ๋„๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • 3D ์žฅ๋ฉด์„ glTF ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Godot์—์„œ ์ค€๋น„๋œ ๋ฉ”์‹œ๋ฅผ Blender์—์„œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ PNG ํ˜•์‹ ๋Œ€์‹  ํ…์Šค์ฒ˜ ์••์ถ•์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฌด์†์‹ค WebP ์ด๋ฏธ์ง€ ์••์ถ• ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Android ํ”Œ๋žซํผ์šฉ ํฌํŠธ์—๋Š” ๋ฒ”์œ„ ์ง€์ • ์ €์žฅ์†Œ API์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›๊ณผ AAB ํ˜•์‹(Android App Bundle)์˜ ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค(Play Asset Delivery)๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • HTML5 ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ PWA(Progressive Web Apps) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜•์‹์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ Godot์™€ JavaScript ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•ด JavaScriptObject ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: Godot ์Šคํฌ๋ฆฝํŠธ์—์„œ JavaScript ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ). ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ์–ด์…ˆ๋ธ”๋ฆฌ์— ๋Œ€ํ•œ AudioWorklet ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • macOS ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ Apple Silicon(M1) ์นฉ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€