Godot: Android ์ˆ˜์ถœ์˜ ๋ฏธ๋ž˜์— ๋Œ€ํ•ด

์— ๋งŒ๋“  2018๋…„ 05์›” 14์ผ  ยท  49์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: godotengine/godot

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„! ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณต๊ฐœํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • Android ๋‚ด๋ณด๋‚ด๊ธฐ ์›Œํฌํ”Œ๋กœ ๊ฐœ์„ ์— ๋Œ€ํ•œ ๋ฌธ์ œ ๋ฐ ์†”๋ฃจ์…˜ ๋…ผ์˜
  • ๋…ผ์˜๋œ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ž์›ํ•  ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋‚˜๋Š” Godot์˜ ์›๋ž˜ Android ํฌํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ์ง€๋งŒ 2015๋…„ ์ดํ›„๋กœ ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์„ ์ผํ•˜๊ฑฐ๋‚˜ ํผ๋ธ”๋ฆฌ์‹ฑํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ๊ณผ ์•ฝ๊ฐ„ ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ณ ๋ง™๊ฒŒ๋„ ๋งŽ์€ ๊ธฐ์—ฌ์ž๋“ค์ด ํฌํŠธ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์—๋Š” ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ถœ์— ์‚ฌ์šฉ๋˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์ด ์„œ์„œํžˆ ๊ตฌ์‹์ด ๋˜์–ด ๊ฐ€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›๋ž˜ Android ํฌํŠธ๋Š” ๋นŒ๋“œ์— Ant๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ด๋Š” ๋งค์šฐ ์ œํ•œ์ ์ด์–ด์„œ ์ˆ˜ํ–‰๋œ ๋งŽ์€ ํ•ดํ‚น์ด ์ด์— ๋Œ€ํ•ด ๊ณ ๋ ค๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋นŒ๋“œ ์‹œ์Šคํ…œ์—๋Š” Java๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ๋‹ค๋ฅธ ๋งŽ์€ ์ข…์†์„ฑ์ด ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ APK๋ฅผ ๊ฐ€์ ธ ์™€์„œ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์œ„ํ•ด ํ•ดํ‚น(๋‚ด๋ถ€ ์ˆ˜์ •๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฆฌ์†Œ์Šค)ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•œ๋™์•ˆ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋‚˜์ค‘์— ์ด ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋งŽ์€ ์ œํ•œ ์‚ฌํ•ญ์„ ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค.
  • ํƒ€์‚ฌ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” Admob ๋˜๋Š” ๋…์  ์ˆ˜์ตํ™”/๊ด‘๊ณ /๋ถ„์„/๋“ฑ๊ณผ ๊ฐ™์€ ํƒ€์‚ฌ API๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์–ด๋ ค์›€์œผ๋กœ ์ธํ•ด ์ข…์ข… ์–ด๋ ค์›€์„ ๊ฒช์Šต๋‹ˆ๋‹ค. ์•„ํ”ผ์Šค. ์ด๊ฒƒ์€ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • #18192๋ฅผ ๊ฐ์•ˆํ•  ๋•Œ Google์€ ์šฐ๋ฆฌ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋ณ„๋กœ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Android ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ๋…ผ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋ณธ๋‹ค.

์ œ์•ˆ 1:

ํ˜„์žฌ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์œ ์ง€ํ•˜์ง€๋งŒ Android ํ…œํ”Œ๋ฆฟ ๋นŒ๋”๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋‚ด๋ณด๋‚ด๊ธฐ ํ…œํ”Œ๋ฆฟ์„ ๊ฐ€์ ธ์˜ค๊ณ  ๋””๋ ‰ํ† ๋ฆฌ์— ์••์ถ•์„ ํ’€๊ณ  ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(Godot๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๊ณ  ํƒ€์‚ฌ API ์ง€์› ์ถ”๊ฐ€, ๊ถŒํ•œ ๋ณ€๊ฒฝ, ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋“ฑ). ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์‹œ ์••์ถ•ํ•˜๊ณ  ์ƒˆ ๋‚ด๋ณด๋‚ด๊ธฐ ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์‹œ์Šคํ…œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์žฅ์  : Android์—์„œ ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ๋‹ค์†Œ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค(ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ฒˆ๊ฑฐ๋กœ์šด Android SDK๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š”๊ฐ€ ์—†์Œ).
๋‹จ์ : APK ํ•ดํ‚น์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฌธ์ œ ๋˜๋Š” ํ–ฅํ›„ ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ 2:

ํ˜„์žฌ ๋‚ด๋ณด๋‚ด๊ธฐ ์‹œ์Šคํ…œ์„ ์™„์ „ํžˆ ์—†์• ๊ณ  gradle์„ ํ˜ธ์ถœํ•˜์—ฌ ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค UI๊ฐ€ APK๋ฅผ ๋นŒ๋“œํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋…ธ๋ ฅ ์—†์ด ADMob ๋ฐ ๊ธฐํƒ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ UI(๋˜๋Š” ์ž์‚ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์—์„œ ํ™•์žฅ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ์  : ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ์ ๊ณ  APK ํ•ดํ‚น์„ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ๋นŒ๋”ฉ์ด ์ œ๋Œ€๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด, ์ž๋ฃŒ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํˆฌ๋ช…ํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.
๋‹จ์  : Android์—์„œ ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋œ Android SDK๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋ฏ€๋กœ ๋ฒˆ๊ฑฐ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Android ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ Godot์—์„œ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์–ด์จŒ๋“  ์ด ๋ณ€๊ฒฝ ์ž‘์—…์˜ ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ์ž์‚ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํƒ€์‚ฌ API๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์œ„์˜ ์ฃผ์ œ์— ๋Œ€ํ•œ ๋…ผ์˜๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์ด์™€ ์ง์ ‘ ๊ด€๋ จ์ด ์—†๋Š” ๊ธฐ๋Šฅ์„ ์ œ์•ˆํ•˜๊ฑฐ๋‚˜ ๋…ผ์˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

discussion android porting

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ์ œ์•ˆ 2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  49 ๋Œ“๊ธ€

๋‚˜๋Š” ์ œ์•ˆ 2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค.

apk ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด Godot ์—”์ง„์— ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์—†๋Š”์ง€ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. APK ๋™์  ์ฝ˜ํ…์ธ  : ๋” ๊ฐ€๋ฒผ์šด APK ์ƒ์„ฑ ํ—ˆ์šฉ
  2. Google Instant App : ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์ž„/์•ฑ์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ ์‘ํ˜• ์•„์ด์ฝ˜ : ์ตœ์‹  Android(Android P ๋ฐ ์ผ๋ถ€ Android 7.1 ์ด์ƒ)์—๋Š” ์ ์‘ํ˜• ์•„์ด์ฝ˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  4. ์ถฉ๋Œ ์ฒ˜๋ฆฌ๊ธฐ: Godot ์—”์ง„์— ์ถฉ๋Œ API๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Godot ์—”์ง„์ด ์ถฉ๋Œํ•  ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์ถฉ๋Œ ๋ถ„์„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋…ธ์ถœํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค
  5. ์ด์ œ ANR์ด ์ถฉ๋Œ ํ•˜๋ฏ€๋กœ ๊ฒŒ์ž„์ด ์‹œ์ž‘๋  ๋•Œ UIThread ๋Œ€์‹  AsyncTask๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ณด๋‚ด๊ธฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๋™์•ˆ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ๋„ Godot ์—”์ง„์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํˆฌํ‘œ => 2

์•„๋งˆ๋„ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ?
๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ ํ…Œ์ŠคํŠธํ•  SDK๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์ง€๋งŒ ๋ฆด๋ฆฌ์Šค ํŒจํ‚ค์ง€์šฉ SDK๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ „ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SDK๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ๋””๋ฒ„๊ทธ ๋ฐ ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
Android์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ญ์ƒ ์š”๊ตฌ ์‚ฌํ•ญ์ด๊ธฐ ๋•Œ๋ฌธ์— 2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค.

@xsellier ๋‚˜๋Š” ์ด ์ฃผ์žฅ์˜ ์š”์ ์ด OP์—์„œ ์ œ์•ˆ๋œ ๊ฒƒ์„ ๋„˜์–ด์„œ์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์— ๊ฐ์‚ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹น์‹ ์ด ์–ธ๊ธ‰ํ•œ ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๊ดœ์ฐฎ์ง€๋งŒ ํƒˆ์„ ํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ์‹œ๋‹ค.

@HeartoLazor ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ฝ”๋“œ๊ฐ€ ์ 

๋‚˜๋Š” ๋˜ํ•œ ์ œ์•ˆ 2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค.

Android ๋„๊ตฌ๋ฅผ ์„ค์ •ํ•˜๋ฉด ์ƒˆ SDK ๋‹ค์šด๋กœ๋“œ ๋ฐ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌ์ถ•๊ณผ ๊ฐ™์€ ๋งŽ์€ ์ž‘์—…์ด ๋งค์šฐ ์ˆ˜์›”ํ•ด์ง‘๋‹ˆ๋‹ค.

๋˜ํ•œ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์˜ต์…˜ 2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค

์˜ต์…˜ 2๊ฐ€ ํ›จ์”ฌ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. Gradle์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ˜„์žฌ ํ๋ฆ„๋ณด๋‹ค ํ›จ์”ฌ ์‰ฌ์šด ํ›Œ๋ฅญํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๋‚ด ํˆฌํ‘œ๋Š” ์ œ์•ˆ 2์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ํ•œ ๋ฒˆ 2.x์šฉ ์• ๋“œ์˜จ์œผ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ๊ธฐ๋ฅผ ๋งŒ๋“  ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/vinod8990/godot-addon-aetc

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ œ์•ˆ 2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค.
ํ‘œ์ค€์„ ๋งŒ๋“ค๋ฉด ๋ชจ๋“ˆ์—์„œ api๋„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ฑฐํ•ด์•ผ ํ•  ๋•Œ(Unity์˜ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด) ๊ฑฐ๋Œ€ํ•œ PIA์ž…๋‹ˆ๋‹ค.

ํˆฌํ‘œ -> ์ œ์•ˆ 2: ๊ฐ€์žฅ ๋…ผ๋ฆฌ์ ์ธ ์„ ํƒ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Godot๋Š” ํ˜„์žฌ์™€ ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ตœ๊ณ ์˜ ๊ฒŒ์ž„ ์—”์ง„์ด๋ฉฐ Android ๋ฐ ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์œผ๋กœ ๋‚ด๋ณด๋‚ผ ๋•Œ ๋” ๋‚˜์€ admob/๋„๊ตฌ ํ†ตํ•ฉ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

iOS ๋‚ด๋ณด๋‚ด๊ธฐ๋„ ๊ฐœ์„ ๋œ๋‹ค๋Š” ๋œป์ธ๊ฐ€์š”? ์ ์–ด๋„ ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์—.

์†Œํ’ˆ 2์— ํˆฌํ‘œ: Firebase์šฉ google-services.json ๋˜๋Š” facebook API์šฉ strings.xml ์‚ฌ์šฉ์ž ์ง€์ •๊ณผ ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„ ํŒŒ์ผ๋กœ apk๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ผ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ†ตํ•ฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Godot 2์—์„œ SConstruct/SCsub/methods.py ํŒจ์น˜์™€ ์ผ๋ถ€ lib๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—” ๋Œ€๋ถ€๋ถ„ ๋™์˜ํ•˜๋Š”๋“ฏ.. ๊ทธ๋ž˜์„œ APK ํ•ดํ‚น์€ ์—†์–ด์ ธ์•ผ ํ•˜๊ณ  ๋‚ด๋ณด๋‚ด๊ธฐ ํ…œํ”Œ๋ฆฟ์€ Gradle์ด ์‹คํ–‰๋˜๊ธฐ ์ „์— ๊ฑฐ์˜ Android ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค..

์˜ต์…˜ #2์— ๋Œ€ํ•œ ์ œ์•ˆ์ด๋‚˜ PR์„ ํ•  ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? :)

๊ธ€์Ž„, ์ˆœ๊ฐ„์— ๋‚˜๋Š” ๊ณต์œ  ๋ฐ Admob ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋งŽ์€ ๊ณ ํ†ต์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ˜„์žฌ๋กœ์„œ๋Š” ํ…์Šค์ฒ˜์˜ get_data ๋ฉ”์†Œ๋“œ์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ปดํŒŒ์ผ ํ›„ ์†์‹ค๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ Java, gradle ๋ฐ ๊ธฐํƒ€ ๋ฌธ์ œ๊ฐ€ ๋ชจ๋‘ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ํŠน์ • ๊ตฌ์„ฑ์ด ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ 3.1์—์„œ ๋ณ€๊ฒฝ๋  ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ ๋•Œ๋ฌธ์— Android์— ๋Œ€ํ•œ ํŒ์ด ํฌํ•จ๋œ ํŽ˜์ด์ง€๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ์†๋„๋ฅผ ์ ์šฉํ•˜๋Š” ๋Œ€์‹  ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๊ฒƒ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์…ฐ์ด๋” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋ณด๋‹ค ์œ ๋™์ ์ธ ๋ฌผ๋ฆฌํ•™์„ ๊ฐ–๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ํฐ ๊ฑธ์Œ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•ˆ๋“œ๋กœ์ด๋“œ์— ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์žˆ๋Š” #2๋Š” ํ›Œ๋ฅญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ด ๋ชจ๋“  ์ˆ˜์ถœ ํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

2๋ฒˆ์ด ๋” ๊น”๋”ํ•ด ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ž˜์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ•ดํ‚น ์ž‘์—…์„ ๊ณ„์†ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋‚ด ์œ ์ผํ•œ ๊ฑฑ์ •์€ ๋ฐฐํฌ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ Android์—์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ๋น ๋ฅด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž์‚ฐ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์˜ต์…˜ 2๊ฐ€ ๋นŒ๋“œ ์‹œ๊ฐ„์— ์‹ฌ๊ฐํ•œ ์˜ํ–ฅ์„ ์ค๋‹ˆ๊นŒ?
์–ด์จŒ๋“  ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ทธ๊ฒƒ์ด ๊ฐˆ ๊ธธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์žฅ๋ฉด/์Šคํฌ๋ฆฝํŠธ ๋™๊ธฐํ™”์— ๋” ์˜์กดํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

Google Play์—์„œ๋Š” ํ•ญ์ƒ ์ตœ์‹  Android SDK๋กœ apk๋ฅผ ๋นŒ๋“œํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ œ์•ˆ 2๊ฐ€ ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ GDnative๋Š” Amazon, Leadbolt ๋“ฑ์˜ ํƒ€์‚ฌ IAP ๋ฐ ๊ด‘๊ณ ์™€ ํ†ตํ•ฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ 2๋Š” ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค.

Cordova ๋ฐ Flutter ์™€ ๊ฐ™์€ ์ผ๋ถ€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋ฏธ ์œ ์‚ฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ APK ์ƒ์„ฑ์„ ๋” ๋งŽ์ด ์ œ์–ดํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Android Studio์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ต์…˜ 2๋Š” ๋” ๊นจ๋—ํ•˜๊ณ  Godot์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„๊ณผ ๋น„์Šทํ•ด ๋ณด์ž…๋‹ˆ๋‹ค... ์ฆ‰, ์ œ๋Œ€๋กœ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฐฉ๊ธˆ ์•ˆ๋“œ๋กœ์ด๋“œ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ž‘๋™์‹œํ‚ค๋Š” ๊ณ ํ†ต์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ณ ํ†ต์Šค๋Ÿฌ์šด ๊ฒƒ์€ ์˜ฌ๋ฐ”๋ฅธ(๋ฒ„์ „์˜) ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. Godot์—์„œ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์‰ฌ์› ์Šต๋‹ˆ๋‹ค.
์ œ ์ฑ…์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์˜ฌ๋ฐ”๋ฅธ ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ์ •๋„์˜ ๊ณ ํ†ต์ด ์ˆ˜๋ฐ˜๋œ๋‹ค๋ฉด ์—ฌ์ „ํžˆ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋‹จ๊ณ„์ด๋ฏ€๋กœ #2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค.
๋””๋ฒ„๊น…์„ ์œ„ํ•ด Android์—์„œ ์‹คํ–‰ํ•˜๋Š” ์†๋„์— ๋Œ€ํ•œ ์šฐ๋ ค๋ฅผ ๊ณต์œ ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ ์Šคํ† ์–ด์— ์ถœ์‹œํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ํ•ด๊ฒฐํ•ด์•ผ ํ•  ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ถœ์‹œํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด ์Šคํ† ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ # 2 :)

์ €๋Š” ์˜ต์…˜ 2๋ฅผ ์ง€์ง€ํ•ฉ๋‹ˆ๋‹ค. Android sdk๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ฉฐ ๋‹ค๋ฅธ ๋งŽ์€ ๊ฐ€๋Šฅ์„ฑ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค.

๋†’์€ ์ˆ˜์ค€์—์„œ Flutter๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ด ๋ณด์ž…๋‹ˆ๋‹ค( https://github.com/flutter/buildroot).

์˜ต์…˜ #2๋Š” ๋งค๋ฒˆ ๊ฐ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ Android apk ํŒŒ์ผ์„ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด C++ ๋ฐ Java ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ์ „์ฒด ์—”์ง„์„ ์ปดํŒŒ์ผํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์€ ์žฌ์•™์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค! Cocos Creator๋Š” ์ด๋Ÿฌํ•œ ๋”์ฐํ•œ ์ž‘์—… ํ๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@Geequlim ๋‚ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•œ๋‹ค๋ฉด C++๊ฐ€ ์•„๋‹ˆ๋ผ Java.

์ €๋Š” ์˜ต์…˜ #1์— ์ฐฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์‹คํ—˜์ด๋‚˜ ๋””๋ฒ„๊ทธ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ Android ๋ฒˆ๋“ค์ด ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋””๋ฒ„๊ทธํ•˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ดํ‚น ๋ฐฉ์‹์„ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ SDK ์›Œํฌํ”Œ๋กœ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•˜์‹ญ์‹œ์˜ค.

@Geequlim ๋„ค, ๊ทธ๊ฒƒ๋„ ์ œ ๊ด€์‹ฌ์‚ฌ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜๊ณ  apk๋กœ ์••์ถ•ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋งค๋ฒˆ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Geequlim @JFonS ์ „์ฒด ์žฌ์ปดํŒŒ์ผ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Gradle์—๋Š” ๋นŒ๋“œ ์‹œ๊ฐ„ ์ตœ์ ํ™”๊ฐ€ ๋งŽ์ด ์žˆ์œผ๋ฏ€๋กœ ์ „์ฒด ์ปดํŒŒ์ผ(C++ ๋ฐ Java)์€ ์ฒ˜์Œ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํƒ€์‚ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ ์šฉํ•˜๋ฉด Java ์ฝ”๋“œ๊ฐ€ ์ˆ˜์ •๋˜๊ณ  Gradle์€ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์ด ๊ฑฐ์˜ ์—†๊ณ  ์ข…์†์„ฑ์ด ํ•˜๋‚˜ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋‚ด๋ณด๋‚ด๊ธฐ ํ”„๋กœ๊ทธ๋žจ์€ ํ”„๋กœ์ ํŠธ ๋ฆฌ์†Œ์Šค(์žฅ๋ฉด, ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์ž์‚ฐ)๋ฅผ Android ํด๋”์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. Gradle์€ ์บ์‹œ๋œ ์†Œ์Šค ํŒŒ์ผ๊ณผ ์ด ๋ฆฌ์†Œ์Šค์—์„œ APK๋ฅผ ์••์ถ•ํ•˜์—ฌ Android ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„์ด ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ด ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@veloc1 ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ asset lib์—์„œ ํ…Œ์ŠคํŠธ ๋ฐ๋ชจ๋ฅผ ์œ„ํ•ด ๊ฐ ํ”„๋กœ์ ํŠธ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ๊ตฌ๋ฉ ์—”์ง„์„ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

Gradle ๋นŒ๋“œ ์›Œํฌํ”Œ๋กœ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž˜๋ชป๋œ ๋ฒ„์ „์˜ SDK๊ฐ€ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ์ข‹์ง€ ์•Š์œผ๋ฉด ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(์ด๋Š” ์‹ค์ œ๋กœ ์ค‘๊ตญ์—์„œ ํ”„๋ก์‹œ ์—†์ด ์ž์ฃผ ๋ฐœ์ƒํ•จ).
  • ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๋Š” 4GB ๋ฏธ๋งŒ์ด์ง€๋งŒ ์ผ๋ถ€ ํƒ€์‚ฌ SDK๋Š” multiDexEnabled true ๋ฅผ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ...

๊ทธ๋ฆฌ๊ณ  gradle์ด ํ•ญ์ƒ ์˜ˆ์ƒ๋Œ€๋กœ ๋‹ค์‹œ ์ปดํŒŒ์ผ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ์ง€๋งŒ # 1์€ ์šฐ์œ  ํ•œ ์ž”์ด๊ณ  # 2๋Š” ์ –์†Œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋งž์Šต๋‹ˆ๊นŒ?

@Geequlim ์ƒ์ƒํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ์ „์ฒด ์—”์ง„์„ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฝ”๋“œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํŒจํ‚น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ ๊ฐ Godot ๋ฆด๋ฆฌ์Šค๋Š” Godot ์—”์ง„์œผ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์žฌ๊ตฌ์ถ•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค). ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด Godot ํŽธ์ง‘๊ธฐ๋Š” ํ•˜๋‚˜์˜ Java ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š” "android" ํด๋”์— Android ํ…œํ”Œ๋ฆฟ์˜ ์••์ถ•์„ ํ’€ ์ˆ˜ ์žˆ๊ณ  maven์˜ Godot ์—”์ง„ Android ์ข…์†์„ฑ์ด ํฌํ•จ๋œ Gradle ํŒŒ์ผ์„ ์••์ถ• ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(React Native๋Š” ๋‚ด๊ฐ€ ๊ธฐ์–ตํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค).
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋นŒ๋“œ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ตœ์†Œํ™”ํ•˜๊ณ  Android ํ”„๋กœ์ ํŠธ์˜ ๋‹จ์ˆœ์„ฑ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋งž์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋งŽ์€ ์ œํ•œ ์‚ฌํ•ญ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๊ณ ์žฅ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ชฉ๋ก์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์˜๊ฒฌ:

  • SDK๋Š” Godot ์—”์ง„์ด ์ƒˆ๋กœ์šด SDK์˜ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์—ญํ• ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ๊ฑฐ์˜ ๋ชจ๋“  SDK๊ฐ€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ ์ ˆํ•œ SDK ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹น์‹ ์ด ์„ค๋ช…ํ•œ ์˜์กด์„ฑ ๋ฌธ์ œ๋Š” ๊ณ ํ†ต์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. maven์˜ ๋งํฌ๋กœ ์ข…์†์„ฑ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ ํด๋”์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ(jar ๋˜๋Š” aar)์„ ๋„ฃ๊ณ  ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ์ข‹์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ์œ„์น˜์— ์žˆ๋Š” ๋ชจ๋“  ์ข…์†์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  USB ์Šคํ‹ฑ์— ๋„ฃ๊ณ  ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ˆ˜์ถœ ๋ฌธ์„œ์— ํฌ๊ฒŒ ์„ค๋ช…๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Multidex์™€ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Multidex๋Š” ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ์—์„œ ํ•ญ์ƒ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋” ๊ฐ•๋ ฅํ•œ ์ œํ•œ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์ •ํ™•ํžˆ ๋งํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ 2GB ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Godot์—์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์š”์•ฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ):

  • ์—”์ง„ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์ด ํฌํ•จ๋œ Android ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. (์ด๊ฒƒ์€ ์–ด๋ ต๋‹ค)
  • ๋ฆด๋ฆฌ์Šค ์‹œ Android ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌ์ถ•์„ ์ž๋™ํ™”ํ•˜๊ณ  maven์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
  • ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ ๊ฒ€์ฆ์„ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ ์„ธํŠธ ์ˆ˜์ง‘, Gradle, Java, Android SDK ๋‹ค์šด๋กœ๋“œ
  • Godot ์—”์ง„์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ Android ๊ธฐ๊ธฐ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์—”์ง„์€ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  Gradle ์ž‘์—…์„ ํ˜ธ์ถœํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ๋ฌธ์„œ.

@Geequlim

์˜ต์…˜ #2๋Š” ๋งค๋ฒˆ ๊ฐ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ Android apk ํŒŒ์ผ์„ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด C++ ๋ฐ Java ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ์ „์ฒด ์—”์ง„์„ ์ปดํŒŒ์ผํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

์•„๋‹ˆ.. ๊ทธ๋Ÿด ์ด์œ ๊ฐ€ ์—†์–ด. ์ง€๊ธˆ์€ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค๋งŒ, ์ƒˆ๋กœ์šด ์›Œํฌํ”Œ๋กœ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ์ƒํƒœ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค(Godot .so ํŒŒ์ผ ์‚ฌ์šฉ). ๋‹ค๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ(์˜ˆ: Admob)์— ๋‹ค์šด๋กœ๋“œํ•œ ์™ธ๋ถ€ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ Gradle์„ ์‚ฌ์šฉํ•˜๋ฉด ์ •๋ง ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ก ์ ์œผ๋กœ ์ž์‚ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํ•ด๋‹น ์ง€์›์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@veloc1

์ด๋ฏธ Gradle ๋นŒ๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์ด _is_ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด "์‹คํ–‰/๋‚ด๋ณด๋‚ด๊ธฐ" ์›Œํฌํ”Œ๋กœ๋Š” ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
1) Gradle ๋นŒ๋“œ(๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์œผ๋ฉด ์•„๋ฌด ๊ฒƒ๋„ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์œผ๋ฉฐ ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.
2) ํ˜„์žฌ ๋‚ด๋ณด๋‚ด๊ธฐ ๋กœ์ง์„ โ€‹โ€‹์‹คํ–‰ํ•˜์—ฌ APK์˜ ์••์ถ•์„ ํ’€๊ณ  ํŒŒ์ผ, gdnative ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์‹œ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์„œ๋ช…์€ ์—ฌ์ „ํžˆ โ€‹โ€‹Gradle์ด ์•„๋‹Œ Godot์—์„œ ์ˆ˜ํ–‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, Godot๋Š” ๋นŒ๋“œ(์ด๋ฆ„ ๋ณ€๊ฒฝ, ๊ถŒํ•œ ๋ฐ ๊ธฐํƒ€ ํ•ญ๋ชฉ ์ถ”๊ฐ€), ์•„์ด์ฝ˜ ์ถ”๊ฐ€ ๋“ฑ์„ ํ•˜๊ธฐ ์ „์— AndroidManifest.xml์— ํ•„์š”ํ•œ ํŽธ์ง‘์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์ž‘๋™ ๋ฐฉ์‹์— ์—ฌ์ „ํžˆ ์นœ์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ์ ์€ ์ด๊ฒƒ์ด ๋น„ํŒŒ๊ดด์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์ž์‹ ์˜ ํ•ญ๋ชฉ์„ ๊ณ„์† ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@reduz

์„œ๋ช…์ด Godot ์ธก์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋Š”์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Gradle์šฉ Android ํ”Œ๋Ÿฌ๊ทธ์ธ์—๋Š” https://developer.android.com/studio/build/build-variants#signing ์— ๋Œ€ํ•œ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฏ€๋กœ ๋‚ด๋ณด๋‚ผ ๋•Œ ํ‚ค ์ €์žฅ์†Œ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ ํ™•์ธํ•˜๋ฉด Gradle์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์œ„ํ•ด. ๋‚ด๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋งํ•  ๋•Œ ๋‚˜๋Š” ์ •ํ™•ํžˆ ๊ทธ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ถŒํ•œ์„ ์„ ์–ธํ•˜๊ณ  ๋‚ด๋ณด๋‚ผ ๋•Œ ํฌํ•จ๋œ ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ˆ˜์ง‘ํ•˜๊ณ  AndroidManifest.xml์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Services ๋ฐ BraodcastReceivers๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฆ„ ๋ฐ ์•„์ด์ฝ˜๊ณผ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ์šฐ - ์ž๋ฆฌ ํ‘œ์‹œ์ž ๋ฆฌ์†Œ์Šค๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ํ”„๋กœ์ ํŠธ ์„ค์ •์—์„œ ๊ตฌ์„ฑํ•  ๋•Œ ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ํ”„๋กœ์ ํŠธ ์„ค์ •์˜ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ์„ธ์š”? ๋”ฐ๋ผ์„œ ์ตœ์ข… ์‚ฌ์šฉ์ž๋Š” ์ด ๋”์ฐํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ๋ฅผ ์ „ํ˜€ ๋ณด์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋‚ด๋ณด๋‚ด๊ธฐ ์›Œํฌํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒŒ์ž„ ํŒฉ์„ ๋‹ค์‹œ ์••์ถ•ํ•˜๋Š” ๋Œ€์‹ (ํด๋” ๋˜๋Š” .pck) APK ์™ธ๋ถ€์— ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@LinuxUserGD ๋Š” Apk Expansion (.obb)์ด ์•„๋‹Œ๊ฐ€์š”?
๊ทธ๊ฒƒ์€ ์ด๋ฏธ ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋“  ์œ ์—ฐํ•ด์•ผ ํ•˜๋ฉฐ ํ†ต์ผ์˜ ๋ฐฉ์‹์ด ์•„๋‹˜์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ข…์†์„ฑ์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ˜ผํ•ฉํ•˜๊ณ  ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ์€ ์—‰๋ง์ž…๋‹ˆ๋‹ค.

๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ๊ด€ํ•ด์„œ๋„ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋นŒ๋“œ๋Š” ๋งค์šฐ ์œ ์—ฐํ•˜์—ฌ ํ…œํ”Œ๋ฆฟ์„ ํŽธ์ง‘ํ•˜๊ณ  ์›ํ•˜๋Š” ๋Œ€๋กœ ์ถ”๊ฐ€/์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ…œํ”Œ๋ฆฟ์„ ๋นŒ๋“œํ•  ๋•Œ ์•„๋ฌด ๊ฒƒ๋„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด ์ œ์•ˆ 2๋Š” ๋” ์ข‹๊ณ  ๊นจ๋—ํ•˜๋ฉฐ ๋” "์ ์ ˆ"ํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.
@reduz ์ œ์•ˆ 2์˜ ๋‹จ์ ? ๋น ๋ฅธ ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ๋งŒ ๋ฒˆ๊ฑฐ๋กญ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
Android Studio์™€ ๊ฐ™์€ Godot๋Š” https://developer.android.com/studio/command-line/sdkmanager ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ sdkmanager์— ๋งค์šฐ ์‰ฝ๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ?)

์ œ์•ˆ 2, ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ #2. ์š”์ฆ˜ ์•ˆ๋“œ๋กœ์ด๋“œ SDK ์„ค์น˜๋Š” ์•„์ฃผ ์‰ฝ์Šต๋‹ˆ๋‹ค!

@reduz , ์ €๋Š” ์ œ์•ˆ 2์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ #18141์„ ์žŠ์ง€ ๋งˆ์„ธ์š”.

์ œ์•ˆ 2. Gradle๋„ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์ž๋Š” ์–ด์จŒ๋“  ์‹œ์Šคํ…œ ์–ด๋”˜๊ฐ€์— Android SDK๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ 2

์ด๊ฒƒ์ด ์–ธ์ œ ๊ตฌํ˜„๋  ์˜ˆ์ •์ธ์ง€, ์–ด๋–ค ์ •๋ณด๋‚˜ ๋ฌด์—‡์ด๋“ 
@akien-mga ์•„์ง 3.1์˜ ์ด์ •ํ‘œ์ธ๊ฐ€์š”?

2018๋…„ 11์›” 23์ผ์˜ godotengine.org/news์˜ ์ด ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ ์— ๋”ฐ๋ฅด๋ฉด:

Godot 3.1์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์˜ ํ›จ์”ฌ ๋” ๋„“์€ ํ‘œ๋ฉด์ ์„ ๋‹ค๋ฃจ๋Š” ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋  ๊ฒƒ์ด๋ฏ€๋กœ ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 3.1 ์ดํ›„์— ๊ณ„ํš๋œ ์ •๋ง ํฐ ๊ธฐ๋Šฅ์€ ๋ Œ๋”๋ง์„ Vulkan์œผ๋กœ ์ด์‹ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค...

๊ธ€์Ž„์š”, ์ด๋ฒˆ ์ด์Šˆ์˜ ํŠน์ง•์€ 3.2์—์„œ ๊ณ ๋ ค๋  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์ฃผ๋ชฉ์„ ๋ฐ›์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ์ง€ ์•Š์€ ์ด์œ ๊ฐ€ ์žˆ๋‚˜์š”?

Android ๋‚ด๋ณด๋‚ด๊ธฐ์˜ ๋Œ€๊ทœ๋ชจ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์œ„ํ•œ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•˜์—ฌ 3.2์šฉ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Android๋Š” ๋‹ค์–‘ํ•œ ํƒ€์‚ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Firebase, Cloud, ML)๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ง€์†์ ์ธ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด Android sdk/jdk/ndk๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” Android ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ณด๋‚ผ ๋•Œ ๋ˆ„๋ฝ๋œ ์ผ๋ถ€ ์ข…์†์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ ์ ˆํ•œ ๋ฒ„์ „์˜ sdk๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ฐ˜๋Œ€๋กœ ์‚ฌ์šฉ์ž ๋˜๋Š” ์ตœ์ข… ๊ฐœ๋ฐœ์ž๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ „์ฒด ์ œํ’ˆ์„ Android ํ”Œ๋žซํผ์œผ๋กœ ๋ฐฐ์†กํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. .๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์žฅ์น˜์—์„œ android studio sdk ๋ฐ jdk๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Android์šฉ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋‹จ์ˆœํžˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ผ€์ด๋ธ” ํฌํŠธ๋กœ ์ปดํ“จํ„ฐ์— ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. godot ํŽธ์ง‘๊ธฐ ์ž์ฒด์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ „ํ™” ๋˜๋Š” ๋ชจ๋ฐ”์ผ์—์„œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ์€ ํฌํŠธ๋ฅผ ํ†ตํ•ด ์ปดํ“จํ„ฐ์˜ Android SDK๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ Proposal1์— ๊ด€ํ•œ ํ•œ ์‹œ๊ฐ„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฑฐ์˜ ํˆฌ๋ช…ํ•˜๋ฉฐ ํ•ดํ‚น์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Android ์ปค๋„ ์ฝ”๋“œ์— ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋Ÿฐํƒ€์ž„ ์ถฉ๋Œ์ด ๋Œ€๋ถ€๋ถ„ java.lang.io.exceptions์™€ ํ•จ๊ป˜ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ 1์ด ์šฐ์„ ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋ณ„๋„์˜ ํ•ดํ‚น์„ ์˜๋ฏธํ•œ๋‹ค๋Š” ๋ฌธ์ œ๋„ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Android ๋ฒ„์ „์€ ๊ฐ๊ฐ ์ด์ „ ๋ฒ„์ „๋ณด๋‹ค ์ข…์†์„ฑ์ด ๋” ๋งŽ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ 2๋Š” ์ปดํ“จํ„ฐ์— Android SDK๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ Android ์•ฑ(๊ตฌ์ถ• ์˜ˆ์ •)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ์—์„œ ์ฆ‰์‹œ ๊ฒŒ์ž„์„ ํ™•์ธํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ชจ์ปจ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์˜ ์ „์ฒด ๋นŒ๋“œ ๋˜๋Š” ์ผ๋ฐ˜ํ™”๋œ ์ ‘๊ทผ ๋ฐฉ์‹ ๋‚ด๋ณด๋‚ด๊ธฐ 2๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ…œํ”Œ๋ฆฟ ๋ฌธ์ œ์— ๊ด€ํ•œ ํ•œ android8+ ์ ์‘ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. sdk๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•˜๋Š” ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์—”์ง„ ์ตœ์ ํ™” ๋ฐ ๊ตฌ์กฐ์ฒด ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๊ฐ™์€ ์ตœ์ ํ™”๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๋œ.
์ด๊ฒƒ์€ ์ „์ ์œผ๋กœ ๋‚ด ๊ด€์ ์ž…๋‹ˆ๋‹ค. ๊ดœ์ฐฎ๋‹ค๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฒŒ์ž„์˜ ์ฆ‰๊ฐ์ ์ธ ๊ตฌ์ถ•์„ ์œ„ํ•ด ์žฅ์น˜์˜ sdk๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์•ˆ๋“œ๋กœ์ด๋“œ)๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ช‡ ๊ฐ€์ง€ ๊ณ„ํš์„ ์„ธ์› ์Šต๋‹ˆ๋‹ค.

์ด์ œ Google Play์—์„œ ์ƒˆ๋กœ์šด AAB(Android App Bundle) ํ˜•์‹์œผ๋กœ ์—…๋กœ๋“œ๋œ ์•ฑ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ํ˜•์‹์„ ํ†ตํ•ด Google Play๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ ์œ ํ˜•์— ๋Œ€ํ•œ APK๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Godot์—์„œ ๋งŒ๋“  ๊ฒŒ์ž„์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ํŠน์ • CPU ์•„ํ‚คํ…์ฒ˜์šฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ํฌํ•จํ•˜๋Š” APK๋ฅผ ํŒจํ‚ค์ง•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ x86 ์žฅ์น˜์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ APK์— x86 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ํฌํ•จํ•˜๊ณ  arm64์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ APK์—๋Š” arm64 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ํฌํ•จํ•˜๋Š” ์‹์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Godot๊ฐ€ ์ทจํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋ฌด์—‡์ด๋“  ์ด ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง• ํ˜•์‹์„ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ZIP ํŒŒ์ผ์ธ APK ํŒจํ‚ค์ง€์™€ ๋Œ€์กฐ์ ์œผ๋กœ AAB ํŒจํ‚ค์ง€๋ฅผ "ํ•ดํ‚น"ํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์‰ฌ์šด์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ x86 ์žฅ์น˜์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ APK์— x86 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ํฌํ•จํ•˜๊ณ  arm64์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ APK์—๋Š” arm64 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ํฌํ•จํ•˜๋Š” ์‹์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ด๋ฏธ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์•„ํ‚คํ…์ฒ˜๋‹น ํ•˜๋‚˜์˜ APK๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ๋‹ค์ค‘ APK ์ง€์›์„ ์‚ฌ์šฉํ•˜์—ฌ Google Play์— ์—…๋กœ๋“œํ•˜๋Š” ์ˆ˜๋™ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 1๊ณผ 2์˜ ํ˜ผํ•ฉ์„ ๊ตฌํ˜„ํ•˜๋Š” #27781์— ์˜ํ•ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ์‹œ์Šคํ…œ์€ ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ ์ง€๋˜์ง€๋งŒ ๋ฆด๋ฆฌ์Šค๋Š” ์ด์ œ ์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋“ˆ์ด ์žˆ๋Š” ์ƒˆ APK์—์„œ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ…œํ”Œ๋ฆฟ ์†Œ์Šค์™€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. /manifest ๋ณ€๊ฒฝ ์‚ฌํ•ญ/๋“ฑ. gradle์„ ์‚ฌ์šฉํ•˜์—ฌ.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰