Exportar

Sinopsis

Ahora que tienes un juego que funciona, probablemente quieras compartir tu éxito con otros. Sin embargo, no es práctico pedir a tus amigos que descarguen Godot sólo para que puedan abrir tu proyecto. En su lugar, puedes exportar el proyecto, convirtiéndolo en un «paquete» que cualquiera puede ser ejecutar.

La forma de exportar tu juego dependerá de la plataforma a la que te dirijas. En este tutorial, aprenderás a exportar el juego «Dodge the Creeps» a una gran variedad de plataformas. En primer lugar, sin embargo, tenemos que hacer algunos cambios en la forma en que funciona el juego.

Nota

Si aún no has terminado «Dodge the Creeps», por favor lee Tu primer juego antes de continuar con este tutorial.

Preparación del proyecto

En «Dodge the Creeps» usamos los controles del teclado para mover el personaje del jugador. Esto está bien si el juego se ejecuta en una plataforma de PC, pero en un teléfono o tableta, es necesario que sea compatible con la entrada de pantalla táctil. Dado que un evento de clic se puede tratar como un evento táctil, convertiremos el juego a un estilo de entrada de movimiento y clic.

Por defecto, Godot emula el puntero del mouse para entradas touch. Esto quiere decir que cualquier cosa que fue codificada para suceder ante un evento de mouse, el touch se disparará también. Si deseas desactivar eso por alguna razón, o emular touch desde entradas de mouse, puedes hacerlo en «Ajustes del Proyecto», dentro de la sección Input Devices y Pointing

../../_images/export_touchsettings.png

Antes de cambiar el método de entrada, en los ajustes del proyecto ve a Display, luego haz clic en Window. En las opciones Stretch, establece Mode en «2d» y Aspect en «keep». Esto asegura que el juego se escale consistentemente en pantallas de diferentes tamaños.

../../_images/export_stretchsettings.png

A continuación, necesitamos modificar el script Player.gd para cambiar el método de entrada. Eliminaremos las entradas de teclado y haremos que el jugador se mueva hacia un «objetivo» establecido por un evento táctil (o de clic).

Aquí está el script completo para el jugador, con comentarios señalando lo que hemos cambiado:

extends Area2D

signal hit

export var speed = 400
var velocity = Vector2()
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):
    # 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()
    else:
        $AnimatedSprite.stop()

    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 ):
    hide()
    emit_signal("hit")
    $CollisionShape2D.set_deferred("disabled", true)

Plantillas de exportación

Para exportar, es necesario descargar las plantillas de exportación de http://godotengine.org/download. Estas plantillas son versiones optimizadas del motor sin el editor precompilado para cada plataforma. También puedes descargarlos en Godot haciendo clic en Editor -> Cargar Plantillas de Exportación:

../../_images/export_template_menu.png

En la ventana que aparece, haz clic en «Descargar» para obtener la versión de la plantilla que coincida con tu versión de Godot.

../../_images/export_template_manager.png

Nota

Si actualizas Godot, debes descargar las plantillas que coincidan con la nueva versión o tus proyectos exportados podrían no funcionar correctamente.

Exportar Preajustes

A continuación, puedes configurar los ajustes de exportación haciendo clic en Proyecto -> Exportar:

../../_images/export_presets_window.png

Crea un nuevo preajuste de exportación haciendo clic en «Añadir…» y seleccionando una plataforma. Se pueden realizar tantos preajustes como se desee con diferentes ajustes.

En la parte inferior de la ventana hay dos botones. «Exportar PCK/ZIP» sólo crea una versión empaquetada de los datos de tu proyecto. Esto no incluye un ejecutable, por lo que el proyecto no puede ejecutarse por sí solo.

El segundo botón, «Exportar Proyecto», crea una versión ejecutable completa de tu juego, como un .apk para Android o un .exe para Windows.

En las pestañas «Recursos» y «Características», puedes personalizar cómo se exporta el juego para cada plataforma. Por ahora podemos dejar esos ajustes como están.

Exportando por plataforma

En esta sección, explicaremos el proceso para cada plataforma, incluyendo cualquier software o requisito adicional que necesites.

PC(Linux/macOS/Windows)

La exportación a plataformas PC funciona de la misma manera en los tres sistemas operativos compatibles. Abre la ventana de exportar y haz clic en «Añadir…» para crear los preajustes que quieras realizar. A continuación, haz clic en «Exportar Proyecto» y elige un nombre y una carpeta de destino. Elige una ubicación fuera de la carpeta de tu proyecto.

Haz clic en «Guardar» y el motor creará los archivos de exportación.

Nota

Al exportar para MacOS, si se exporta en una computadora MacOS, se obtiene un archivo .dmg, mientras que al usar Linux o Windows se obtiene un archivo .zip. En cualquier caso, el archivo comprimido contendrá una aplicación MacOS .app que podrás ejecutar con un doble clic.

Nota

En Windows, si quieres que tu ejecutable exportado tenga un icono diferente al predeterminado, debes cambiarlo manualmente. Consulta: Cambiar el icono de la aplicación en Windows.

Android

Truco

Los dispositivos móviles vienen con una amplia variedad de capacidades. En la mayoría de los casos, la configuración por defecto de Godot funcionará, pero el desarrollo móvil es a veces más arte que ciencia, y puede que necesites experimentar y buscar ayuda para que todo funcione.

Antes de poder exportar tu proyecto para Android, debes descargar el siguiente software:

Cuando ejecutes Android Studio por primera vez, haz clic en Configure -> SDK Manager e instala «Android SDK Platform Tools». Esto instala la herramienta de línea de comandos adb que Godot usa para comunicarse con su dispositivo.

A continuación, crea un almacén de claves de depuración ejecutando el siguiente comando en la línea de comandos de tu sistema:

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

Haz clic en Editor -> Ajustes del editor en Godot y abre la sección Export/Android. En este caso, debes establecer las rutas a las aplicaciones del Android SDK en tu sistema y la ubicación del almacén de claves que acabas de crear.

../../_images/export_editor_android_settings.png

Ahora ya estás listo para exportar. Haz clic en Proyecto -> Exportar y añade un preajuste para Android (ver arriba).

Haz clic en el botón «Exportar proyecto» y Godot creará un APK que puedes descargar en tu dispositivo. Para hacer esto en la línea de comandos, utiliza el siguiente comando:

adb install dodge.apk

Nota

Es posible que el dispositivo tenga que estar en modo desarrollador. Consulta la documentación de tu dispositivo para más detalles.

Si tu sistema lo soporta, conectar un dispositivo Android compatible hará que aparezca el botón «One-click Deploy» en el área de botones de prueba de Godot:

../../_images/export_android_oneclick.png

Al hacer clic en este botón se crea el APK y se copia en el dispositivo en un solo paso.

iOS

Nota

Para construir tu juego para iOS, debes tener una computadora con macOS y Xcode instalado.

Antes de exportar, hay algunos ajustes que debes completar para que el proyecto se exporte correctamente. En primer lugar, el «App Store Team Id», que puedes encontrar accediendo a tu cuenta de desarrollador de Apple y buscando en la sección «Membresía».

También deberás proporcionar iconos e imágenes de pantalla de bienvenida como se muestra a continuación:

../../_images/export_ios_settings.png

Haz clic en «Exportar proyecto» y selecciona una carpeta de destino.

Una vez que se ha exportado con éxito el proyecto, encontrarás las siguientes carpetas y archivos creados en la ubicación seleccionada:

../../_images/export_xcode_project_folders.png

Ahora puedes abrir el proyecto en Xcode y construir el proyecto para iOS. El procedimiento de compilación de Xcode está fuera del alcance de este tutorial. Visita https://help.apple.com/xcode/mac/current/#/devc8c2a6be1 para más información.

HTML5 (web)

Haz clic en «Exportar proyecto» en el preajuste HTML5. No necesitamos cambiar ninguna de las configuraciones predeterminadas.

Cuando finalice la exportación, tendrás una carpeta que contiene los siguientes archivos:

../../_images/export_web_files.png

Viewing the .html file in your browser lets you play the game. However, you can’t open the file directly, it needs to be served by a web server. If you don’t have one set up on your computer, you can search online to find suggestions for your specific OS.

Dirige tu navegador a la URL donde has colocado el archivo html. Puede que tenga que esperar unos momentos mientras se carga el juego antes de ver la pantalla de inicio.

../../_images/export_web_example.png

La ventana de la consola debajo del juego te dice si algo sale mal. Puedes desactivarlo desmarcando la opción «Exportar con Depuración» al exportar el proyecto.

Nota

While WASM is supported in all major browsers, it is still an emerging technology and you may find some things that don’t work. Make sure you have updated your browser to the most recent version, and report any bugs you find at the Godot Github repository.