내보내기(Exporting)

개요

이제 게임이 작동하므로, 성공을 다른 사람들과 공유하고 싶을 겁니다. 그러나, 친구에게 Godot를 다운로드하고 프로젝트를 열라고 요청하는 것은 실용적이지 못합니다. 대신, 여러분은 프로젝트를 "패키지"로 변환해서 누구나 열 수 있도록 내보내기할 수 있습니다.

게임을 내보내는 방법은 대상으로 하는 플랫폼에 따라 다릅니다. 이 튜토리얼에서는 다양한 플랫폼에서 Dodge Creeps 게임을 내보내는 방법을 배웁니다. 그러나 먼저 게임이 작동하는 방식을 약간 변경해야 합니다.

참고

If you haven't made "Dodge the Creeps" yourself yet, please read Your first 2D game before continuing with this tutorial.

프로젝트 준비하기

*Dodge Creeps*에서는 키보드를 조작해서 플레이어의 캐릭터를 이동했습니다. 게임이 PC 플랫폼에서 실행되는 경우에는 문제가 없지만 휴대폰이나 태블릿에서는 터치스크린 입력을 지원해야 합니다. 클릭 이벤트는 터치 이벤트와 동일하게 처리될 수 있으므로 게임을 클릭 및 이동(click-and-move) 입력 스타일로 변환합니다.

기본적으로 Godot는 터치 입력에서 마우스 입력을 에뮬레이트합니다. 즉, 마우스 이벤트에서 발생하도록 코딩된 경우 터치도 이를 트리거합니다. Godot는 마우스 클릭에서 터치 입력을 에뮬레이트할 수도 있는데, 터치 입력으로 전환한 후에도 컴퓨터에서 게임을 계속할 수 있어야 합니다.

프로젝트(Project) > 프로젝트 설정(Project Settings)Input Devices > Pointing아래 Emulate Touch From Mouse를 사용(On)으로 활성화하세요.

../../_images/export_touchsettings.png

또한 게임이 다른 크기의 화면에서 일관되게 확장되도록 하려면 프로젝트 설정에서 Display로 이동한 다음 Window를 클릭합니다. Stretch 옵션에서 Mode2d로 설정하고 Aspectkeep으로 설정합니다.

계속해서 Window설정 안 HandheldOrientationportrait으로 설정해야 합니다.

../../_images/export_handheld_stretchsettings.png

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

여기에 전체 플레이어 스크립트가 있고 변경된 부분에는 코멘트가 있습니다:

extends Area2D

signal hit

export var speed = 400
var screen_size
# Add this variable to hold the clicked position.
var target = Vector2()

func _ready():
    hide()
    screen_size = 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):
    var velocity = Vector2()
    # Move towards the target and stop when close.
    if position.distance_to(target) > 10:
        velocity = target - position

# 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()
    else:
        $AnimatedSprite.stop()

    position += velocity * delta
    # We still need to clamp the player's position here because on devices that don't
    # match your game's aspect ratio, Godot will try to maintain it as much as possible
    # by creating black borders, if necessary.
    # Without clamp(), the player would be able to move under those borders.
    position.x = clamp(position.x, 0, screen_size.x)
    position.y = clamp(position.y, 0, screen_size.y)

    if velocity.x != 0:
        $AnimatedSprite.animation = "walk"
        $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 ):
    hide()
    emit_signal("hit")
    $CollisionShape2D.set_deferred("disabled", true)

메인 씬 설정하기

메인 씬은 게임이 시작하는 씬입니다. 프로젝트(Project) -> 프로젝트 설정(Project Settings) -> Application -> Run에서, Main Scene에 있는 폴더 아이콘을 클릭하고 Main.tscn으로 설정합니다.

템플릿 내보내기

프로젝트를 내보내려면 http://godotengine.org/download에서 내보내기 템플릿(export templates)을 다운로드해야 합니다. 이러한 템플릿은 각 플랫폼에 대해 사전 컴파일된 에디터가 없는 엔진에 최적화된 버전입니다. 에디터(Editor) -> 내보내기 템플릿 관리( Manage Export Templates)를 클릭해 Godot에서 다운로드할 수도 있습니다:

../../_images/export_template_menu.png

참고

Steam에서 Godot를 다운로드한 경우 내보내기 템플릿이 이미 포함되어 있습니다. 따라서 내보내기 템플릿 관리(Manage Export Templates) 대화 상자를 사용해 다운로드할 필요가 없습니다.

나타나는 창에서 **다운로드**를 클릭해 Godot 버전과 일치하는 템플릿 버전을 얻을 수 있습니다.

../../_images/export_template_manager.png

참고

내보내기 템플릿은 특정 Godot 버전에 바인딩됩니다. Godot를 업그레이드하는 경우 새 버전과 일치하는 템플릿을 다운로드해야 합니다.

프리셋 내보내기

다음으로 프로젝트(Project) -> 내보내기(Export)를 클릭해 내보내기 설정을 구성할 수 있습니다.

추가...(Add...)를 클릭하고 플랫폼을 선택하여 새 내보내기 프리셋을 만듭니다. 다양한 설정으로 원하는 만큼 프리셋을 만들 수 있습니다.

../../_images/export_presets_window.png

창 아래쪽에는 두 개의 버튼이 있습니다. PCK/ZIP 내보내기(Export PCK/ZIP)는 프로젝트 데이터의 압축된 버전만 생성합니다. 여기에는 실행 파일이 포함되어 있지 않으므로 프로젝트를 자체적으로 실행할 수 없습니다.

두 번째 버튼인 프로젝트 내보내기(Export Project)는 Android의 경우 .apk, Windows의 경우 .exe와 같이 게임의 완전한 실행 버전을 생성합니다.

리소스(Resources)기능(Features) 탭에서 각 플랫폼 별로 게임을 내보내는 방법을 커스터마이즈할 수 있습니다. 지금은 이 설정을 유지할 수 있습니다.

플랫폼 별 내보내기

이 섹션에서는 필요한 추가 소프트웨어 또는 요구 사항을 포함해 각 플랫폼에 대한 프로세스를 살펴보겠습니다.

PC (Linux/macOS/Windows)

PC 플랫폼 내보내기는 지원되는 세 가지 운영 체제에서 동일하게 작동합니다. 내보내기 창을 열고 추가...(Add...)를 클릭해 만들고 싶은 프리셋을 만듭니다. 그런 다음 프로젝트 내보내기(Export Project)를 클릭하고 이름과 대상 폴더를 선택합니다. 프로젝트 폴더의 외부 위치를 선택하세요.

저장(Save)을 클릭하면 엔진이 내보내기 파일을 빌드합니다.

참고

macOS 컴퓨터에서, macOS로 내보낸다면, .dmg 파일이 생성될 것이고, Linux나 Windows는 .zip 파일을 생성합니다. 어떤 경우든지, 압축된 파일은 더블 클릭해서 실행할 수 있는 macOS의 .app파일을 포함하고 있습니다.

참고

Windows에서, 당신이 내보낸 실행 파일의 아이콘을 기본으로 설정된 것과 다르게 하고 싶다면, 수동으로 교체해야 합니다. 여기를 참고하세요: Windows에 응용 프로그램 아이콘 바꾸기.

Android

모바일 기기에는 다양한 기능이 있습니다. 대부분의 경우 Godot의 기본 설정이 작동하지만 모바일 개발은 때로는 과학보단 더 예술에 가까워서 모든 것이 작동하도록 하려면 실험을 하고 도움을 구해야 할 수도 있습니다.

Android에 내보내기 전에, 다음 소프트웨어를 다운받아야 합니다:

Android Studio를 처음 실행한다면 Customize -> All settings... -> Appearance & Behavior -> System Settings -> Android SDK메뉴를 클릭하고 SDK Tools 탭에서 **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 섹션을 선택합니다. 여기에서 Android SDK 응용 프로그램의 위치와 방금 만든 키 저장소의 위치를 설정해주어야 합니다.

../../_images/export_editor_android_settings.png

이제 내보낼 준비가 되었습니다. 프로젝트(Project) -> 내보내기(Export)를 클릭하고 Android용 프리셋을 추가하세요(화면 위쪽 버튼). 새로 추가된 Android 프리셋을 선택하세요. 설정(Option)에서 Screen으로 이동해 PortraitOrientation으로 설정하세요. 게임이 가로 모드인 경우(예: 창 너비(픽셀 단위)가 창 높이보다 큼) 가로에 그대로 둡니다.

프로젝트 내보내기(Export Project) 버튼을 클릭하면 기기에서 다운로드할 수 있는 APK 파일을 만들어냅니다. 이 작업을 명령줄에서 하려면 다음 코드를 입력하세요:

adb install dodge.apk

참고

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

시스템이 지원하는 경우 호환되는 Android 기기를 연결하면 원 클릭 배포 버튼이 Godot의 플레이 테스트 버튼 영역에 나타납니다:

../../_images/export_android_oneclick.png

이 버튼만 클릭하면 APK가 만들어지고 APK 사본이 기기에 설치됩니다.

iOS

참고

iOS용 게임을 빌드하고 싶다면, Xcode가 설치된 macOS가 실행되는 컴퓨터가 필요합니다.

내보내기 전에 프로젝트를 성공적으로 내보내기 위해 반드시 완료해야 하는 몇 가지 설정이 있습니다. 먼저 App Store 팀 ID**는 Apple 개발자 계정에 로그인하면 **Membership 섹션에서 찾을 수 있습니다.

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

../../_images/export_ios_settings.png

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

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

../../_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에 대한 제안을 찾을 수 있습니다.

브라우저에서 HTML 파일을 배치한 URL로 들어가세요. 시작 화면이 표시되기 전에 게임이 로드되는 동안 잠시 기다려야 할 수도 있습니다.

../../_images/export_web_example.png

게임 아래에 있는 콘솔 창은 문제가 발생하면 알려줍니다. 프로젝트를 내보낼 때 나타나는 최종 파일 대화 상자에서 디버그와 함께 내보내기를 비활성화해서 비활성화할 수 있습니다.

../../_images/export_web_export_with_debug_disabled.png

참고

웹어셈블리(WebAssembly)는 모든 주요 브라우저에서 지원되지만 여전히 새로운 기술이며 간혹 작동하지 않을 수도 있습니다. 브라우저를 최신 버전으로 업데이트했는지 확인하고 발견한 버그를 Godot GitHub 저장소에 보고하세요.