내보내기(Exporting)

개요

이제 당신은 작업한 게임을 갖고 있으니, 당신의 성공을 남과 나누고 싶을 겁니다. 하지만, 그렇다고 친구에게 Godot를 다운로드하고 프로젝트를 열라고 요청하는 것은 실용적이지 못합니다. 대신, 당신은 당신의 프로젝트를 "패키지"로 전환해서 누구나 열 수 있도록 내보내기 가 가능합니다.

당신이 무슨 플랫폼을 타깃으로 삼느냐에 따라 게임을 내보내는 방법은 다릅니다. 이 튜토리얼에서는, 어떻게 "Dodge the Creeps" 게임을 다양한 플랫폼에 내보내는 지를 배울겁니다. 그러나, 먼저 우리는 게임이 작동하는 방식을 바꿔야합니다.

주석

아직 "Dodge the Creeps"을 스스로 만들지 않았다면, 이 튜토리얼을 시작하기 전에 당신의 첫 게임 을 읽어주세요.

프로젝트 준비하기

"Dodge the Creeps" 에서 우리는 키보드로 플레이어의 캐릭터를 움직이게 합니다. 이것은 PC 플랫폼에서 실행된다면 괜찮습니다만, 폰이나 태블릿이라면, 터치 스크린 입력을 지원해야합니다. 클릭 이벤트는 터치 이벤트와 동일하게 처리될 수 있기 때문에, 우리는 게임을 클릭-그리고-움직임 입력 스타일로 만들어야합니다.

첫 단계에서는 "프로젝트 설정"을 열고 Handheld 섹션으로 가세요. Emulate Touchscreen 설정을 키세요. 이것이 마우스 클릭 이벤트를 터치 이벤트로 만들어 줍니다, 따라서 당신은 터치 스크린없이도 게임을 테스트 할 수 있습니다. 또한, *Orientation*을 "portrait"으로 선택하세요.

Stretch 섹션에서, Mode 를 "2d"로 하고 Aspect 를 "keep"으로 설정하세요. 이것으로 게임이 다른 크기의 화면에도 일관되게 조절하도록 만듭니다.

../../_images/export_touchsettings.png

다음으로, 우리는 입력 메소드를 변경하기 위해 Player.gd 스크립트를 수정해야 합니다. 키 입력을 지우고 플레이어가 터치 (나 클릭) 이벤트로 설정된 "타깃"을 향해 움직이도록 합니다.

여기 플레이어를 위한 전체 스크립트가 있습니다, 변경한 점에는 코멘트가 있습니다:

extends Area2D

signal hit

export (int) var speed
var velocity = Vector2()
var screensize
# Add this variable to hold the clicked position.
var target = Vector2()

func _ready():
    hide()
    screensize = get_viewport_rect().size

func start(pos):
    position = pos
    # Initial target is the start position.
    target = pos
    show()
    $CollisionShape2D.disabled = false

# Change the target whenever a touch event happens.
func _input(event):
    if event is InputEventScreenTouch and event.pressed:
        target = event.position

func _process(delta):
    # Move towards the target and stop when close.
    if position.distance_to(target) > 10:
        velocity = (target - position).normalized() * speed
    else:
        velocity = Vector2()

# Remove keyboard controls.
#    if Input.is_action_pressed("ui_right"):
#       velocity.x += 1
#    if Input.is_action_pressed("ui_left"):
#        velocity.x -= 1
#    if Input.is_action_pressed("ui_down"):
#        velocity.y += 1
#    if Input.is_action_pressed("ui_up"):
#        velocity.y -= 1

    if velocity.length() > 0:
        velocity = velocity.normalized() * speed
        $AnimatedSprite.play()
        $Trail.emitting = true
    else:
        $AnimatedSprite.stop()
        $Trail.emitting = false

    position += velocity * delta
    # We don't need to clamp the player's position
    # because you can't click outside the screen.
    # position.x = clamp(position.x, 0, screensize.x)
    # position.y = clamp(position.y, 0, screensize.y)

    if velocity.x != 0:
        $AnimatedSprite.animation = "right"
        $AnimatedSprite.flip_v = false
        $AnimatedSprite.flip_h = velocity.x < 0
    elif velocity.y != 0:
        $AnimatedSprite.animation = "up"
        $AnimatedSprite.flip_v = velocity.y > 0

func _on_Player_body_entered( body ):
    $Collision.disabled = true
    hide()
    emit_signal("hit")

템플릿 내보내기

프로젝트를 내보내려면, 내보내기 템플릿(export templates)http://godotengine.org/download 에서 다운로드 해야 합니다. 이 템플릿은 엔진에 최적화된 버전으로 각 플렛폼에 따로 컴파일된 에디터가 필요 없습니다. 당신은 또한 Godot에서 에디터 -> 내보내기 템플릿 관리 를 통해 다운로드 할 수 있습니다:

../../_images/export_template_menu.png

나타나는 창에서, "다운로드" 를 눌러서 당신의 Godot 버전과 맞는 템플릿을 다운로드 할 수 있습니다.

../../_images/export_template_manager.png

주석

Godot를 업그레이드 하셨다면, 새로운 버전에 맞는 템플릿을 다운로드 해야 하고 그렇지 않으면 프로젝트가 제대로 내보내기가 작동하지 않습니다.

프리셋 내보내기

다음은, 프로젝트 -> 내보내기 로 내보내기 설정을 구성할 수 있습니다:

../../_images/export_presets_window.png

"추가..."를 눌러서 새 내보내기 프리셋을 만들고 플랫폼을 선택하세요. 다양한 설정과 함께 당신은 많은 프리셋를 만들 수 있습니다.

창의 아래쪽에 두 버튼이 있습니다. "PCK/ZIP 내보내기"는 오직 프로젝트 데이터를 압축된 버전으로 만듭니다. 이것은 실행 파일이 아니므로 프로젝트가 스스로 실행되지 못합니다.

두 번째 버튼, " 프로젝트 내보내기", 게임의 완전 실행가능한 버전을 만듭니다, 마치 안드로이드의 .apk 나 윈도우의 .exe 처럼 말이죠.

"리소스"와 "기능" 탭에서 당신은 게임이 각 플랫폼으로 어떻게 만들어질지를 설정할 수 있습니다. 지금은 이 설정을 그냥 놔 두어도 됩니다.

플랫폼 별 내보내기

이 섹션에서, 추가 소프트웨어나 요구 사항과 함께 각 플랫폼의 프로세스를 단계적으로 배울겁니다.

PC (리눅스/macOS/윈도우)

PC 플랫폼 내보내기는 지원되는 세 가지 운영체제에서 동일하게 작동합니다. 내보내기 창을 열고 "추가..."를 눌러 만들고 싶은 프리셋을 생성합니다. 그후 "프로젝트 내보내기"를 클릭하고 이름과 목적 폴더를 지정합니다. 당신의 프로젝트 폴더 바깥 에 위치를 지정하세요.

"저장"을 누르면 엔진이 내보내기 파일을 만들겁니다.

주석

macOS 컴퓨터에서 작업한다면, macOS로 내보낼 때, 파일을 .dmg 파일로 만들 것이고, 반면에 리눅스나 윈도우는 .zip 으로 생성합니다. 어떤 경우든지, 압축된 파일은 macOS의 .app 을 갖고 있으므로 더블 클릭해서 실행할 수 있습니다.

주석

윈도우에서, 당신이 내보낸 실행 파일이 기존과 다른 아이콘을 갖도록 하고 싶다면, 수동으로 교체해야합니다. 여기를 참고하세요: Changing application icon for Windows.

안드로이드

참고

모바일 기기에는 다양한 기능이 있습니다. 대부분의 경우는, Godot의 기본 설정이 먹히지만, 모바일 개발은 때로는 과학보단 더 예술에 가깝습니다, 그리고 모든 것이 작동시키기 위해 도움을 청하고 몇 가지 실험을 하게 될지도 모릅니다.

안드로이드에 내보내기 전에, 다음의 소프트웨어를 다운받으셔야 합니다:

안드로이드 스튜디오를 처음 실행하신다면, Configure -> SDK Manager 를 클릭하고 "Android SDK Platform Tools" 을 실행하세요. 이것은 Godot가 장치와 통신하도록 만드는 adb 명령 행 도구를 실행시킵니다.

다음으로, 시스템의 명령 행에 다음의 명령을 실행시켜 debug keystore를 만드세요:

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

Godot에서 에디터 -> 에디터 설정 으로 가서 *Export/Android*섹션을 선택합니다. 여기에서, 당신은 안드로이드 SDK 응용 프로그램의 위치와 당신이 방금 만든 키 저장소의 위치를 설정해줘야 합니다.

../../_images/export_editor_android_settings.png

이제 만들 준비가 됬습니다. 프로젝트 -> 내보내기 를 누르고 (위에서 본) 안드로이드의 프리셋을 추가하세요.

"프로젝트 내보내기" 버튼을 클릭하면 Godot가 APK를 만들고 휴대용 기기에 다운로드 할 수 있게 됩니다. 명령 행에서 하려면, 이것을 사용하세요:

adb install dodge.apk

주석

당신의 기기가 개발자 모드 이어야 합니다. 자세한 내용은 장치 설명서를 참고하세요.

시스템이 지원한다면, Godot의 실행 버튼 영역에 "원 클릭 배포" 버튼이 표시되어 호환 가능한 안드로이드 기기와 연결합니다:

../../_images/export_android_oneclick.png

이 버튼을 누르면 APK를 만들고 당신의 기기로 복사됩니다.

iOS

주석

iOS에 게임이 돌아가게 하고 싶다면, 당신은 macOS와 Xcode가 실행되는 컴퓨터를 갖고 있어야 합니다.

내보내기 전에, 성공적으로 프로젝트를 내보내기 위해 당신이 반드시 해야할 몇 가지 사항이 있습니다. 먼저, "앱스토어 Team Id" 입니다, 이것은 당신이 애플 개발자 계정에 로그인 한 후 "멤버십" 섹션에서 볼 수 있습니다.

그리고 반드시 아이콘과 스플래시 스크린 이미지를 다음과 같이 제공해야 합니다:

../../_images/export_ios_settings.png

"프로젝트 내보내기"를 누르고 대상 폴더를 선택하세요.

프로젝트가 완전히 내보내졌다면, 당신이 지정한 폴더에 파일들이 만들어 진것을 볼 수 있습니다:

../../_images/export_xcode_project_folders.png

당신은 이제 프로젝트를 Xcode에서 열 수 있고 iOS로 프로젝트를 만들 수 있습니다. Xcode 개발 순서는 이 튜토리얼에 해당하지 않습니다. 자세한 것은 https://help.apple.com/xcode/mac/current/#/devc8c2a6be1 를 참고하세요.

HTML5 (웹)

HTML5 프리셋으로 "프로젝트 내보내기"를 클릭하세요. 기본 설정에서 바꿀 필요가 없습니다.

내보내기가 끝나면, 다음의 파일이 들어있는 폴더를 찾으실 수 있습니다:

../../_images/export_web_files.png

브라우저에 .html 파일을 열면 게임을 할 수 있습니다. 하지만 바로 파일을 열 수는 없습니다, 그것은 웹 서버에 의해 제공되어야 합니다. 당신의 컴퓨터에 웹서버가 없으면, 구글 검색을 하여 특정 OS에서 웹서버를 설치하는 방법을 찾으실 수 있습니다.

URL에 html 파일을 올릴 브라우저를 향하게 하세요. 게임 시작 화면을 보기 전에 잠시 기다려야 할지도 모릅니다.

../../_images/export_web_example.png

게임 아래 콘솔 창은 게임이 잘못됬는가를 말해줍니다. 프로젝트를 내보낼 때 "Export With Debug"를 꺼서 이것을 없앨 수 있습니다.

주석

WASM 에 대한 브라우저 지원은 아직 확산되지 않았습니다. 파이어폭스와 크롬은 둘다 WASM을 지원하지만, 여전히 작동하지 않는 점들을 볼 수도 있습니다. 브라우저를 최신 버전으로 업데이트하고, Godot Github repository 에 발견한 버그를 신고해주세요.