Leer en inglés

Compartir a través de


DevOps con aplicaciones de Unity

El desarrollo de aplicaciones para plataformas modernas implica muchas más actividades que escribir código. Estas actividades, denominadas DevOps (desarrollo y operaciones), abarcan el ciclo de vida completo de la aplicación e incluyen el trabajo de planificación y seguimiento, el diseño e implementación de código, la administración de un repositorio de código fuente, la ejecución de compilaciones, la administración de integraciones continuas e implementaciones, las pruebas (incluidas las pruebas unitarias y las pruebas de IU), la ejecución de varias formas de diagnóstico en entornos de desarrollo y producción, y la supervisión del rendimiento de las aplicaciones y los comportamientos de los usuarios en tiempo real a través de la telemetría y analítica.

Visual Studio, junto con Azure DevOps Services y Team Foundation Server, proporciona una variedad de funcionalidades de DevOps. Muchos de ellos son aplicables a proyectos multiplataforma, incluidos juegos y aplicaciones gráficas envolventes creadas con Unity, especialmente cuando se usa C# como lenguaje de scripting. Sin embargo, dado que Unity tiene su propio entorno de desarrollo y motor en tiempo de ejecución, una serie de características de DevOps no se aplican como lo harían con otros tipos de proyectos integrados en Visual Studio.

En las tablas siguientes se identifica cómo se aplican las características de DevOps en Visual Studio o no se aplican al trabajar con Unity. Consulte la documentación vinculada para obtener más información sobre las propias características.

Herramientas ágiles

Vínculo de referencia: Sobre las herramientas ágiles y la gestión de proyectos ágiles (mediante Azure Boards o TFS, incluido Team Explorer Everywhere)

Comentario general: todas las características de planeamiento y seguimiento son independientes del tipo de proyecto y los lenguajes de codificación.

Característica Compatible con Unity Comentarios adicionales
Gestión de trabajos pendientes y sprints
Seguimiento del trabajo
Colaboración en la sala de reuniones del equipo
Paneles Kanban
Informar y visualizar el progreso

Modelado

Vínculo de referencia: Analizar y modelar arquitectura

Comentario general: aunque estas características de diseño son independientes del lenguaje de codificación o funcionan con lenguajes .NET como C#, funcionan en un paradigma de aplicación tradicional con jerarquías de objetos y relaciones de clase. El diseño de un juego dentro de Unity implica un paradigma diferente, es decir, las relaciones de objetos gráficos, sonidos, sombreadores, scripts, etc. Por este motivo, las herramientas de diagrama de modelado de Visual Studio no son especialmente relevantes para todo un proyecto de Unity. Posiblemente se podrían usar para administrar relaciones dentro de scripts de C#, pero es solo una parte de todo.

Característica Compatible con Unity Comentarios adicionales
Diagramas de secuencia No
Gráficos de dependencias No
Jerarquía de llamadas No
Diseñador de clases No
Explorador de arquitectura No
Diagramas UML (caso de uso, actividad, clase, componente, secuencia y DSL) No
Diagramas de capas No
Validación de capas No

Código

Característica Compatible con Unity Comentarios adicionales
Usar el control de versiones de Team Foundation (TFVC) o Azure Repos Los proyectos de Unity son simplemente una colección de archivos que se pueden colocar en sistemas de control de versiones como cualquier otro proyecto, pero hay algunas consideraciones especiales descritas después de esta tabla.
Introducción a Git en Azure Repos Vea las notas después de la tabla.
mejorar la calidad del código
Buscar cambios de código y otro historial
Usa mapas de código para depurar tus aplicaciones

Consideraciones especiales para el control de versiones con Unity:

  1. Unity realiza un seguimiento de los metadatos sobre los recursos del juego en una sola biblioteca opaca que está oculta de forma predeterminada. Para mantener sincronizados los archivos y metadatos, es necesario hacer que los metadatos sean visibles y almacenarlos en fragmentos más fáciles de administrar. Para obtener más información, consulte Using External Version Control Systems with Unity (documentación de Unity).

  2. No todos los archivos y carpetas de un proyecto de Unity son adecuados para el control de código fuente, como también se describe en el vínculo anterior. Se deben agregar las carpetas Assets y ProjectSettings, pero no deben agregarse las carpetas Biblioteca y Temp. Para obtener una lista adicional de archivos generados que no entrarían en el control de código fuente, consulte la explicación Uso del control de código fuente de Git para Unity3D. en Stack Overflow. Muchos desarrolladores también han blogueado sobre este tema de manera independiente.

  3. Los recursos binarios de un proyecto de Unity, como texturas o archivos de audio, pueden ocupar una gran cantidad de almacenamiento. Varios sistemas de control de código fuente, como Git, almacenan una copia única de un archivo para cada cambio que se realiza, incluso si el cambio afecta solo a una pequeña parte del archivo. Esto puede hacer que el repositorio de Git se sobredimensione. Para solucionar esto, los desarrolladores de Unity suelen optar por agregar solo recursos finales a su repositorio y usar un medio diferente para mantener un historial de trabajo de sus recursos, como OneDrive, DropBox o git-annex. Este enfoque funciona porque estos recursos normalmente no necesitan tener versiones junto con los cambios en el código fuente. Los desarrolladores también suelen establecer el modo de serialización de activos del editor del proyecto en Forzar texto para almacenar archivos de escenas como texto en lugar de hacerlo en formato binario, lo que permite hacer combinaciones en el control de código fuente. Para más información, consulte Configuración del Editor (documentación de Unity).

Construir

Vínculo de referencia: Azure Pipelines

Característica Compatible con Unity Comentarios adicionales
Team Foundation Server (TFS) en las instalaciones Posible Los proyectos de Unity se compilan a través del entorno de Unity y no a través del sistema de compilación de Visual Studio (la compilación dentro de Visual Studio Tools para Unity compilará los scripts, pero no generará un ejecutable). Es posible compilar proyectos de Unity desde la línea de comandos (documentación de Unity), por lo que es posible configurar un proceso de MSBuild en un servidor TFS para ejecutar los comandos de Unity adecuados, siempre que Unity esté instalado en ese equipo.

Unity también ofrece Unity Cloud Build, que supervisa un repositorio git o SVN y ejecuta compilaciones periódicas. Actualmente no funciona con TFVC o Azure DevOps Services.
Servidor de compilación local vinculado a Azure DevOps Services Posible Dadas las mismas condiciones anteriormente mencionadas, también es posible dirigir las compilaciones desencadenadas a través de Azure DevOps Services para que usen un servidor TFS local. Vea Build and release agents (Agentes de compilación y versiones) para obtener instrucciones.
Servicio de controlador hospedado de Azure DevOps Services No Actualmente no se admiten las compilaciones de Unity.
Compilar definiciones con scripts anteriores y posteriores Una definición de compilación personalizada que usa la línea de comandos de Unity para ejecutar una compilación también se puede configurar para scripts previos y posteriores a la compilación.
Integración continua, incluidas las comprobaciones controladas Entradas validadas para TFVC solo cuando GIT funciona en un modelo de solicitud de extracción en lugar de entradas.

Prueba

Característica Compatible con Unity Comentarios adicionales
Planificación de pruebas, creación de casos de prueba y organización de conjuntos de pruebas
Pruebas manuales
Administrador de pruebas (pruebas de grabación y reproducción) Solo dispositivos Windows y emuladores de Android
Cobertura de código n/a No es aplicable a medida que se produzcan pruebas unitarias en Unity y no en Visual Studio, consulte a continuación.
Haga una prueba unitaria de su código En Unity, pero no en Visual Studio Unity proporciona su propio marco de pruebas unitarias como parte de Unity Test Tools (Tienda de recursos de Unity). Los resultados de las pruebas unitarias se notifican en Unity y no se mostrarán en Visual Studio.
Uso de la automatización de la interfaz de usuario para probar el código No Las pruebas automatizadas de IU dependen de controles legibles en la interfaz de usuario de la aplicación; Las aplicaciones de Unity son gráficas por naturaleza, por lo que las herramientas de prueba automatizadas de IU no pueden leer el contenido.

Mejora de la calidad del código

Vínculo de referencia: Mejorar la calidad del código

Característica Compatible con Unity Comentarios adicionales
Analizar la calidad del código administrado Puede analizar el código de script de C# en Visual Studio.
Buscar código duplicado mediante la detección de clonación de código Puede analizar el código de script de C# en Visual Studio.
Medir la complejidad y el mantenimiento del código administrado Puede analizar el código de script de C# en Visual Studio.
Herramientas de rendimiento No Usa el Unity Profiler (sitio web de Unity).
Análisis de problemas de memoria de .NET Framework No Las herramientas de Visual Studio no tienen enlaces al marco mono (como usa Unity) para la generación de perfiles. Use el generador de perfiles de Unity (documentación de Unity).

Administración de versiones

Vínculo de referencia: Compilación y versiones en Azure Pipelines y TFS

Característica Compatible con Unity Comentarios adicionales
Gestión de procesos de lanzamiento
Implementación en servidores para carga lateral a través de scripts
Cargar en la tienda de aplicaciones Parcial Hay extensiones disponibles que pueden automatizar este proceso para algunas tiendas de aplicaciones. Vea Extensions for Azure DevOps Services (Extensiones para Azure DevOps Services); por ejemplo, la extensión para Google Play.

Supervisión con HockeyApp

Vínculo de referencia: Supervisión con HockeyApp

Característica Compatible con Unity Comentarios adicionales
Análisis de bloqueo, telemetría y distribución beta HockeyApp es principalmente útil para gestionar la distribución beta y obtener informes de fallos.

Para la telemetría de scripts de C#, es posible usar cualquier marco de análisis siempre que se ejecute en la versión de .NET que usa Unity. Sin embargo, esto solo permite el análisis dentro de scripts de juego y no más profundamente dentro del motor de Unity. Actualmente no hay ningún complemento para Application Insights, pero los complementos están disponibles para otras soluciones de análisis, como Unity Analytics y Google Analytics. Los servicios como Unity Analytics que entienden la naturaleza de un proyecto de Unity proporcionarán un análisis mucho más significativo que los marcos genéricos.