Flujo de trabajo

Enviado por foroDEFOLD el Lun, 13/11/2017 - 23:25
Foros

Un proyecto de juego generalmente consiste en una gran cantidad de recursos externos que se producen en diversos programas especializados para producir gráficos, modelos 3D, archivos de sonido, animaciones, etc. Defold está configurado de manera predeterminada para un flujo de trabajo que lo alienta a trabajar por separado con sus herramientas externas, almacenar los archivos de trabajo para esas herramientas por separado y luego importar los activos en Defold y la estructura del archivo del proyecto a medida que se finalizan.

Git está diseñado principalmente para manejar código fuente y archivos de texto y almacena esos tipos de archivos con un espacio muy bajo. Solo se almacenan los cambios entre cada versión, lo que significa que puede mantener un extenso historial de cambios en todos sus archivos de proyecto a un costo relativamente pequeño. Sin embargo, los archivos binarios, como los archivos de imagen o sonido, no se benefician del esquema de almacenamiento de Git. Cada nueva versión que ingresa y sincroniza toma aproximadamente el mismo espacio. Eso no suele ser un problema importante con los activos finales del proyecto (imágenes JPEG o PNG, archivos de sonido OGG, etc.), pero puede convertirse rápidamente en un problema con los archivos de proyecto en funcionamiento (archivos PSD, proyectos Protools, etc.). Este tipo de archivos o proyectos a menudo crecen muy grandes ya que generalmente trabajan en una resolución mucho más alta que los activos de destino.

En general, se considera mejor evitar poner grandes archivos de trabajo bajo el control de Git y, en su lugar, usar una solución separada para guardar copias de seguridad. Si realiza un procesamiento a gran escala o la generación de archivos de activos de un proyecto en funcionamiento, generalmente es fácil escribir scripts simples que copien los archivos finales en el lugar correcto en la jerarquía del proyecto Defold.

Refactoring

La refactorización se refiere al proceso de reestructuración del código y los activos existentes para mejorar el diseño. Durante el desarrollo de un proyecto, a menudo surge la necesidad de cambiar o mover cosas a su alrededor:

  • Los nombres deben cambiar para cumplir con las convenciones de nombres o para mejorar la claridad.
  • El código o los archivos de activos deben moverse a un lugar más lógico en la jerarquía del proyecto.
  • Los nuevos códigos y / o activos con una mejor funcionalidad están diseñados para reemplazar los antiguos, que se eliminan.

Defold le ayuda a refactorizar de manera eficiente al realizar un seguimiento de cómo se usan los activos y al actualizar automáticamente las referencias a los activos que se renombraron y / o movieron. Como desarrollador, debes sentirte libre en tu trabajo. Su proyecto es una estructura flexible que puede cambiar a voluntad sin temor a que todo se rompa y caiga en pedazos. Defold lo ayudará en su trabajo de refactorización haciendo que el proceso sea lo más fácil posible.

Dicho esto, hay casos en los que Defold no puede actualizar automáticamente las referencias cuando está realizando trabajos de refactorización. En esos casos, el editor no puede resolver el problema, pero proporcionará señales de error útiles.

Por ejemplo, si agrega un componente Tilemap a un objeto de juego y luego elimina el archivo componente, el compilador Defold señalará un error cuando intente iniciar el juego. El editor también agregará insignias de error a todos los iconos relevantes en la Vista del proyecto y en la jerarquía de Objetos del juego o Colección para ayudarlo a localizar rápidamente el problema:

Propagación de error

Algunas de estas señales de error Defold pueden agregarse instantáneamente a medida que realiza un cambio, siempre que tenga el activo relevante abierto. Las insignias en la Vista del proyecto, sin embargo, solo se agregan cuando se ejecuta el compilador (es decir, cuando intenta ejecutar su juego).

Si mueve o cambia el nombre de los archivos fuera del editor (es decir, en el OS X Finder, el Explorador de Windows o el shell), los mecanismos de refactorización automática no funcionarán. Si archivas operaciones fuera del editor de Defold, ten en cuenta que las referencias de archivos en los activos de tu proyecto podrían romperse.

Colaboración

Defold está construido sobre una base diseñada para una intensa colaboración. Múltiples miembros del equipo pueden trabajar en paralelo en el mismo contenido con muy poca fricción. Defold se basa en Git que está diseñado para el trabajo colaborativo distribuido. Git es una herramienta extremadamente poderosa que permite una amplia gama de flujos de trabajo y Defold la usa para proporcionar una funcionalidad simple y poderosa.

Cuando empiece a trabajar en un proyecto por primera vez (seleccionando Archivo ▸ Abrir proyecto ), Defold le pedirá que cree una nueva sucursal local para el proyecto.

Nueva sucursal

Haga clic en Nueva rama y asigne un nombre a la rama. Defold crea un clon local completo de la estructura del proyecto, tal como existe en el servidor del proyecto. Las ramas que creas solo existen en tu computadora. Puede tener tantos o tan pocos como quiera, y puede crear nuevos y eliminar los antiguos a voluntad.

Cuando comiences a trabajar y guardes los cambios realizados en el proyecto, estos cambios se almacenarán dentro de la rama actual. Nadie más los ve hasta que sincronice su rama con el repositorio del servidor.

Sincronizando

Sincronizar su rama de proyecto significa que se sincroniza con el proyecto tal como se ve en la rama maestra del servidor. Cualquier cambio que se haya realizado en el servidor se transfiere a su sucursal y cualquier cambio que haya realizado en su sucursal local se envía al depósito del servidor.

Cuando haya realizado algún trabajo en su sucursal actual que desee compartir con el resto del equipo del proyecto, seleccione Archivo ▸ Sincronizar . Esto abre una ventana donde puede inspeccionar sus cambios y escribir un mensaje de confirmación útil :

Cometer cambios

Todos los archivos que se modifican, agregan o eliminan del proyecto se enumeran en el panel superior de la ventana. Cada archivo lleva una anotación:

[METRO]
El archivo ha sido modificado en su rama.
[UN]
El archivo ha sido agregado a su sucursal.
[RE]
El archivo ha sido eliminado de su sucursal.

Para inspeccionar los cambios que se han realizado a un archivo, simplemente haga doble clic en el archivo en la lista de confirmación para abrir la ventana Comparar:

Comparar cambios

La ventana muestra dos versiones del archivo (en el caso de un archivo modificado, los archivos agregados o eliminados se muestran de forma diferente). En el lado izquierdo está el archivo tal como se veía en el servidor la última vez que se sincronizó . El lado derecho muestra tu versión local. Las diferencias se destacan claramente para que pueda revisarlas rápidamente.

La herramienta de comparación de archivos integrada solo funciona en archivos de texto. Sin embargo, dado que Defold almacena todos los archivos de trabajo (objetos de juego, colecciones, atlas, etc.) en archivos JSON fácilmente comprensibles, a menudo puede averiguar el significado de los cambios que se han realizado en dichos archivos:

Comparar Gameobject

Resolviendo conflictos

Si está trabajando en un equipo, es probable que haya otra rama sincronizada con el repositorio del servidor mientras estaba trabajando en su sucursal. Algún otro miembro del equipo (o usted mismo para ese asunto, pero en una sucursal diferente) podría haber introducido previamente cambios en los mismos archivos que está a punto de enviar al servidor.

Esto a menudo no es un problema y la mayoría de esos conflictos se pueden resolver automáticamente. Sin embargo, si sus cambios se realizan exactamente en las mismas posiciones en los archivos de trabajo que los cambios en el servidor, Defold le indicará una advertencia y le pedirá su ayuda para resolver el conflicto.

Resolver el conflicto

Seleccione si desea mantener su versión (seleccione "Suyo") o la versión en el servidor (seleccione "Los suyos"). Para ver los conflictos, haga doble clic en el archivo para abrir una ventana de comparación donde se resaltan los conflictos:

El editor no le permite elegir cambios de los dos archivos conflictivos. Si necesita hacer esto, puede realizar las operaciones de Git desde la línea de comando y usar una herramienta de fusión separada.

Comparar archivos conflictivos

Editores externos y herramientas

Defold no proporciona herramientas de edición para crear imágenes, archivos de sonido o animaciones óseas. Dichos activos deben crearse fuera de Defold en herramientas especializadas. Defold es agnóstico cuando se trata de las herramientas que prefiere. Cualquier programa de imagen que pueda producir archivos PNG lo hará, cualquier programa de sonido que pueda guardar archivos WAV lo hará y cualquier programa que pueda guardar o exportar archivos JSON de Spine lo hará (consulte la documentación de Spine para obtener más información).

Defold detecta automáticamente los cambios en los activos que se encuentran en la jerarquía del proyecto y actualiza la vista del editor en consecuencia. El ciclo de actualización no es instantáneo, por lo que es posible que tenga que esperar uno o dos segundos para ver los cambios en el editor.

El seguimiento automático de activos le permite personalizar su flujo de trabajo de acuerdo con sus necesidades.

Scripts de shell / archivos por lotes
Puede usar scripts externos para reconstruir activos automáticamente. Por ejemplo, si los materiales originales son de mayor resolución o en un formato diferente, puede ejecutar un script o un archivo por lotes que cambie el tamaño o convierta los archivos antes de copiarlos en el lugar correcto en la jerarquía del proyecto.
Generación de datos
Puede usar herramientas personalizadas para crear datos especializados y escribirlos en archivos de script Lua (como estructuras de tabla)

Apertura de activos en el editor de texto

Defold elige automáticamente el editor apropiado para el artículo que intentas editar. Sin embargo, también es posible abrir cualquier archivo de proyecto en el editor de texto Defold. En algunas situaciones, esta posibilidad es extremadamente útil y su uso es recomendable para, al menos, familiarizarse con los formatos de archivo, lo que ayuda a resolver conflictos.

Para abrir un archivo en el editor de texto, haga clic con el botón derecho en el archivo en la vista Proyecto y seleccione Abrir con ▸ Editor de texto :

Abrir con el Editor de texto

Tenga en cuenta que Defold recuerda la elección del editor para el archivo en particular. Si abre un archivo con el Editor de texto, los siguientes clics dobles en el archivo en la vista Proyecto abrirán automáticamente el archivo en el Editor de texto. Para restablecer el editor seleccionado para el archivo, simplemente haga clic derecho en el archivo y seleccione Abrir con ▸ [Editor de tipo de archivo ] donde [Tipo de archivo editor] es el tipo de editor utilizado para el tipo de archivo (por ejemplo, Editor de escena para objetos de juego, Editor de fuentes de mosaico) para fuentes de azulejos, etc.).

Se debe tener especial cuidado cuando se trabaja con archivos a través del Editor de texto. Los errores fáciles de realizar pueden impedir que el archivo se abra en el editor designado. Por ejemplo, supongamos que edita un archivo de Objeto de juego y omite un carácter de comilla final en uno de los nombres:

Falta una cita

Si guarda este archivo desde el Editor de texto y luego intenta abrirlo en el Editor de escena, Defold señalará un error y tendrá que corregir el error manualmente (ya sea reeditando el archivo o invirtiendo los cambios):

Falta una cita

Defold intenta proporcionar mensajes de error útiles y, a menudo, es fácil rastrear el error. Si necesita más ayuda, haga doble clic en el archivo en el panel de Archivos modificados para que aparezca una ventana con todos los cambios desde su última Sincronización.

Git

Defold usa Git para hacer un seguimiento de versiones en todos los archivos de una manera simple y fácil de entender.

  • Cada rama que crea en el editor es una clonación del repositorio de proyecto remoto, almacenada en una carpeta separada.
  • Cualquier cambio que realice localmente se guarda en el repositorio clonado.
  • Cuando sincroniza su proyecto, ocurre lo siguiente:
    1. Sus cambios están comprometidos con el repositorio local.
    2. El editor extrae todos los cambios del repositorio remoto y los combina con su repositorio local.
    3. Si hay conflictos de fusión, se le pedirá que los resuelva.
    4. Finalmente, sus cambios se envían al repositorio remoto.

La herramienta de línea de comandos de Git se puede usar para realizar operaciones manuales que el editor no admite. Por ejemplo, puedes inspeccionar el historial de confirmaciones del repositorio:

$ git log

y luego hacer un checkout desde una confirmación específica:

$ git checkout <commit-hash> <file path>

También puede configurar un flujo de trabajo más avanzado si lo desea, lo que le permite realizar cambios directamente entre los miembros del equipo. Si se encuentra con situaciones en las que más de una persona trabaja en una rama experimental, es posible que desee considerar el uso de Git para eso. Visite http://git-scm.com para obtener más información sobre Git.

Terminaciones de línea y Windows

Cuando edite un archivo de texto en su computadora y presione Retorno en su teclado, se inserta una secuencia de caracteres invisible en el archivo que indica el final de la línea. Los diferentes sistemas operativos usan secuencias diferentes por razones históricas. Estos son los más comunes:

Unix y Mac OS X
Un único carácter de alimentación de línea . ( LF , \n , 0x0A o 10 en decimal)
Windows
Un carácter de retorno de carro seguido de un carácter de avance de línea ( CR + LF , \r\n , 0x0D0A)
Mac OS 9 (y anterior)
Un único carácter de retorno de carro ( CR , \r , 0x0D o 13 en decimal)

Puede leer más sobre los finales de línea, o "nuevas líneas" en http://en.wikipedia.org/wiki/Newline

Cuando trabajan juntos en un equipo con sistemas operativos mixtos, los finales de línea pueden causar problemas. Los nuevos archivos creados en Project View en Defold obtendrán terminaciones de línea Unix, siempre y cuando trabaje con archivos de texto únicamente dentro de Defold, nunca debería tener ningún problema. Sin embargo, las herramientas externas que escriben archivos con otras terminaciones de línea pueden causar problemas inesperados.

Supongamos que un miembro del equipo trabaja en un equipo con Windows y edita un archivo de script Lua en un editor externo que guarda archivos con terminaciones de línea de Windows. Luego abre el archivo en el Defold Lua Editor. Todo parece normal, por lo que sincroniza los cambios en el repositorio del servidor.

Mientras tanto, un segundo miembro del equipo que trabaja en una máquina Mac OS X realiza algunas ediciones en el mismo archivo. Los cambios realizados por los dos miembros del equipo se encuentran en diferentes partes del archivo de script, por lo que normalmente Git debería resolver automáticamente el conflicto y fusionar los dos conjuntos de cambios. Sin embargo, cuando el miembro del equipo dos se sincroniza, Defold detecta un conflicto. El miembro del equipo número dos hace doble clic en el archivo para comparar versiones y ve que se resalta un conflicto en cada línea del archivo:

Conflicto de finales de línea

Esto sucedió porque los dos archivos realmente difieren en cómo codifican los finales de línea. Como un archivo usa el carácter LF al final de cada línea y el otro usa los caracteres CR + LF , existe un conflicto legítimo en cada línea y tendrá que resolverlo. Si tiene miembros del equipo que trabajan mucho con herramientas externas, las terminaciones de línea provocarán conflictos de combinación todo el tiempo.

Acabados de línea en Defold

Defold tiene algunas herramientas integradas para ver y cambiar los finales de línea. Puede activar espacios en blanco visibles en las preferencias (seleccione Archivo ▸ Preferencias ... ):

Configurar show whitespace

Esta configuración hace que el editor muestre deliberadamente todos los caracteres de espacios en blanco como LF , CR , Space y Tab :

Espacio en blanco visible

También hay una opción de menú Archivo ▸ Convertir delimitadores de línea a ▸ ... donde puede seleccionar qué tipo de delimitador desea establecer para el archivo actualmente abierto.

Haz que Git se ocupe adecuadamente de los finales de línea

Git se puede configurar para tratar específicamente los finales de línea de diferentes maneras:

# Configure Git on OS X to properly handle line endings

$ git config --global core.autocrlf input

La configuración global de Git core.autocrlf toma un parámetro:

falso
El valor por defecto. El resultado es que Git no toca los finales de línea de tus archivos. Puede registrar archivos con terminaciones de líneas LF , CR + LF o una mezcla, y a Git no le importa. Si trabaja en un entorno de sistema operativo mixto, no debe usar esta configuración.
cierto
Git procesará todos los archivos de texto y convertirá todas las terminaciones de línea LF en CR + LF cuando las escriba en el directorio de trabajo y de nuevo en LF cuando se vuelvan a registrar en el repositorio. Esta es una buena configuración en máquinas con Windows.
entrada
Git procesará todos los archivos y convertirá todos los CR + LF en terminaciones de línea LF al verificar los archivos en el repositorio. Al verificar los archivos, los archivos no se tocan. Esta es una buena configuración en máquinas Unix y OS X.

Puede configurar Git con un control más preciso sobre cómo debe lidiar con los finales de línea creando un archivo .gitattributes en su repositorio:

# Set default behaviour, in case users don't have core.autocrlf set.

* text=auto

# Explicitly declare text files we want to always be normalized and converted

# to native line endings on checkout.

*.c text

*.h text

*.sh eol=lf

*.lua text

*.py text

*.script text

*.gui_script text

*.go text

# Denote all files that are truly binary and should not be modified.

*.png binary

*.jpg binary

*.apk binary

*.ipa binary

*.jar binary

*.zip binary

*.ogg binary

Consulte la documentación de Git en .gitattributes en http://git-scm.com/docs/gitattributes para más detalles.

 

Fuente: https://www.defold.com/manuals/workflow/