Mejoras y cambios - Notas de la versión de Lumberyard

Mejoras y cambios

Las actualizaciones de los sistemas y funcionalidad de Lumberyard incluyen lo siguiente:

Aviso previo de los cambios en Lumberyard Beta 1.8

  • Lumberyard Beta 1.8 introducirá una serie de modificaciones relacionadas con el funcionamiento. En Lumberyard Editor se han realizado importantes mejoras, como la sustitución del contexto de script existente por un nuevo contexto de reflexión. A fin de garantizar una experiencia de actualización sin interrupciones, vamos a proporcionar toda la información, los pasos y las herramientas por adelantado. Los detalles se describen en nuestros foros.

Canalización de recursos

  • La API Asset Processor Job le permite consultar el estado de las tareas de compilación del editor y de otras herramientas. Esta API ahora le permite escalar las tareas que se devolverán a la parte superior de la cola de compilación para darles prioridad. Si va a desarrollar nuevos recursos y editores, puede utilizar esta API para consultar el estado de los recursos, recuperar archivos de log y escalar tareas.

  • Ahora puede declarar tipos de recursos como críticos en el archivo AssetProcessorPlatformConfig.ini. Esto permite que los tipos de recursos se compilen y escalen en la parte superior de la cola de compilación antes que empiece a ejecutarse el motor de tiempo de ejecución o el editor.

  • Ahora los sectores dinámicos se consideran recursos críticos.

  • Se concede prioridad a las tareas de copia si estas están incluidas en el archivo AssetProcessorPlatformConfig.ini. Esto permite organizar las tareas en orden de prioridad, incluso durante la fase de copia.

Audio

  • Se ha cambiado el nombre de los siguientes componentes de audio EBus para proporcionar coherencia entre los componentes:

    • AudioTriggerComponentRequestsBus ahora se llama AudioTriggerComponentRequestBus

    • AudioTriggerComponentNotificationsBus ahora se llama AudioTriggerComponentNotificationBus

    • AudioRtpcComponentRequestsBus ahora se llama AudioRtpcComponentRequestBus

    • AudioSwitchComponentRequestsBus ahora se llama AudioSwitchComponentRequestBus

    • AudioEnvironmentComponentRequestsBus ahora se llama AudioEnvironmentComponentRequestBus

    • AudioProxyComponentRequestsBus ahora se llama AudioProxyComponentRequestBus

    Si utiliza los antiguos nombres de EBus en Lua o C++ nativo, debe actualizar el código para utilizar los nuevos nombres de EBus. Esto es aplicable si manipula o llama a los componentes de audio del código.

  • Los fragmentos que se reproducen en una entidad de componentes (AZ::Entity) ahora pueden ejecutar disparadores de audio y efectos de partículas en sus ProcClips.

  • Se ha añadido un conjunto básico de pruebas unitarias a CrySoundSystem, con el fin de aumentar la cobertura de pruebas unitarias en Lumberyard.

  • Se ha mejorado la capacidad de que otro agente de escucha invalide el agente de escucha predeterminado. Esto no incluye compatibilidad completa con varios agentes de escucha activos.

AzCodeGenerator

  • Se ha implementado un nuevo formato de etiquetas y anotaciones basadas en el ámbito.

  • Se ha añadido la creación de perfiles a la herramienta AZ Code Generator para cronometrar el análisis de clang y la ejecución de scripts. Para obtener información, consulte AZ Code Generator.

AzTestScanner

  • Se ha añadido la capacidad de especificar varios archivos de lista blanca o lista negra.

  • Se ha añadido una nueva ubicación para los archivos de lista blanca y lista negra predeterminados. El archivo de lista negra predeterminado se incluye también con la compilación.

  • Se ha eliminado la capacidad de crear listas blancas con archivos de especificaciones. La creación de listas blancas ya no está habilitada de forma predeterminada.

  • Se han eliminado las marcas que se utilizan para incluir gemas y proyectos en una lista blanca.

Cloud Canvas

  • El administrador de recursos ahora valida los datos de entrada conforme escribe.

  • El administrador de recursos ahora intenta eliminar todo el contenido de los buckets de S3 antes de que los elimine una operación de actualización de la pila.

  • Los siguientes comandos ahora tienen una opción --confirm-resource-deletion:

    • update-project-stack

    • delete-project-stack

    • upload-resources

Componentes

  • El componente Light ahora está dividido en cuatro componentes para permitir mayor control: Point Light, Area Light, Projector Light y Environment Probe.

  • El componente Environment Probe incluye ahora opciones para los efectos de proyección del cubo y atenuación.

Configuración de FBX

  • Se han realizado numerosas mejoras en la interfaz de usuario y en los flujos de trabajo, incluidas las siguientes:

    • Compatibilidad con una lista de archivos recientes en la herramienta.

    • Validación de determinados campos de texto.

    • Desplazamiento automático al último grupo o regla añadido.

    • Un navegador que recuerda la última ruta buscada.

    • Una confirmación si la acción de un usuario desemboca en la pérdida de cambios.

    • Un botón Reset All (Restablecer todo) que restablece Manifest (Manifiesto) al estado predeterminado.

    • Un botón Enable Update (Habilitar actualización) que solo está disponible si la configuración ha cambiado.

  • Cuando se importa un archivo .fbx, sus trabajos del procesador de recursos se mueven a la parte superior de la cola de trabajos.

  • Se ha añadido SceneGraphChildIterator, que recorre en iteración los elementos secundarios de un nodo.

  • Se ha mejorado la presentación de los registros de errores.

Flow Graph

  • Al lanzar el editor de Flow Graph, verá ahora un cuadro de diálogo que presenta la nueva solución de scripting visual de Lumberyard, que se integra con el nuevo sistema de entidades de componentes. Le instamos a que use Lua para sus requisitos de scripting. Para obtener información, consulte Scripts Lua.

  • Se ha añadido el nodo de Flow Graph ColorGradient a CryAction.

Geppetto

  • Ahora puede usar Geppetto para editar la siguiente información que aparece en el archivo .chrparams relacionado con el esqueleto:

    • Los huesos de esqueleto usados para definir el cuadro delimitador

    • La configuración de ampliación del cuadro delimitador

    • Las listas de inclusión de huesos de esqueleto LOD

    • Seis secciones de definiciones de IK

    Esto simplifica el proceso al eliminar la necesidad de modificar manualmente el archivo .chrparams, conocer la información del archivo y buscar los nombres de las articulaciones del esqueleto.

  • Se ha mejorado en un 50% el rendimiento de la característica Live Reload para los archivos .anm, .chr y .skin.

Lua Editor

  • Ahora puede personalizar el resaltado de color, fuente y sintaxis.

  • El estado de depuración ahora se muestra de forma más explícita.

  • La referencia de clases ahora trunca las cadenas desde la derecha.

  • Ahora puede utilizar los siguientes métodos abreviados de teclado:

    • Pulse el tabulador con el texto seleccionado para aplicar sangría a un bloque.

    • Pulse Mayús+Tab (con o sin texto seleccionado) para quitar la sangría del texto.

  • Los documentos previamente abiertos ahora se restablecen cuando se abre el editor.

  • Los archivos de solo lectura ahora muestran un cursor no parpadeante para indicar la entrada de texto.

Lumberyard Editor

  • Cuando se alcanza un objeto, el puntero del objeto desaparece. Este comportamiento es similar a si una colisión está más cerca que una colisión anterior.

  • Los siguientes componentes tienen iconos actualizados:

    • Etiqueta

    • Net Binding

    • Character Physics

    • Physics Constraint

    • Ragdoll

    • Primitive Collider

    • Árbol de comportamiento

    • Navegación

  • Los ejes XYZ ahora se muestran con colores en la cuadrícula de propiedades para los campos de componentes de transformación.

  • La visualización de las entidades se ha mejorado en la ventanilla y en el modo de ayuda de la barra espaciadora.

  • El sombreador Illum ahora tiene una funcionalidad Dissolve (Disolver).

Lumberyard Setup Assistant

  • Si están disponibles, ahora se usan los archivos zip almacenados en caché de las descargas anteriores.

  • Si está disponible, ahora se usa la información de lista de archivos almacenada en caché para los SDK de terceros.

  • Lumberyard Setup Assistant, Project Configurator y lmbr.exe ahora se encuentran en el directorio \dev\tools\LmbrSetup.

  • Lumberyard Setup Assistant se encarga ahora de los manifiestos vacíos o no presentes al intentar descargar los SDK.

  • Lumberyard Setup Assistant administra mejor la invalidación de direcciones URL con o sin barras finales.

  • Lumberyard Setup Assistant no reutiliza el contenido de la lista de archivos almacenada en caché para otras versiones de Lumberyard. Esto impide que una nueva instalación de Lumberyard que reutilice una carpeta 3rdParty antigua use el contenido de la versión de Lumberyard incorrecta.

  • Project Configurator ahora realiza un seguimiento de las funcionalidades que ha seleccionado e impide realizar una tarea no configurada para su ejecución. Por ejemplo, no podrá crear un proyecto hasta que esté preparado para compilar el código.

  • Se ha mejorado la validación SSL para rechazar más cifrados que no son de confianza.

  • Las bibliotecas de Linux ahora se descargan por separado para los usuarios de Windows que están instalando Linux.

Gema Metastream

  • Se han retirado las variables de la consola metastream_serverPort y metastream_docroot. Ahora puede utilizar la nueva variable de la consola metastream_serverOptions para configurar las opciones de servidor HTTP local.

  • La variable de la consola metastream_enabled ahora es de solo lectura y representa el estado del servidor HTTP local. 0 = deshabilitado | 1 = habilitado.

  • Ahora puede controlar el servidor HTTP local con lo siguiente:

    • Comandos de la consola metastream_start y metastream_stop

    • En C++, MetastreamRequestBus

  • Ahora puede administrar mejor los datos que se añaden a la caché de Metastream. Para obtener información, consulte Gema Metastream.

  • La API de C++ ahora formatea los datos en cadenas JSON. Anteriormente era necesario formatear manualmente los datos.

Aplicaciones

  • Android:

    • Ahora puede añadir archivos .pak generados por el usuario, como el archivo .pak de sombreador, a una compilación de APK. Esto le permite crear juegos que estén totalmente listos para su distribución.

    • Ahora verá el registro adicional de GPU durante el inicio. Esto puede ayudarle a diagnosticar por qué un dispositivo concreto no puede ejecutar una compilación.

Componente Navigation

  • El componente Navigation ahora puede mover físicamente entidades físicas. Las configuraciones admitidas para el movimiento basado en la física son las siguientes:

    • Física de personajes con una malla de piel

    • Física de cuerpos rígidos con una malla de piel y una forma + una combinación de colisionadores primitivos

    • Malla estática con un colisionador de malla

    Todas las entidades se pueden seguir moviendo de forma no física.

  • Se ha mejorado la compatibilidad con el seguimiento de rutas.

  • Las pruebas unitarias obsoletas se han eliminado del directorio \dev\Code\Engine\LmbrCentral\source\Ai\NavigationComponentTest.cpp.

Redes

  • La integración de GameLift ahora usa AWS Native SDK 1.0.24.

  • Las direcciones IP y los ID de sesión de los clientes en una sesión de GameLift no se divulgan para mayor seguridad.

  • El servidor dedicado ahora admite una compilación de Linux para permitir la puesta en marcha de servidores Linux en lugar de servidores Windows. Esta opción puede ser más barata y más estable.

  • Se ha añadido la capacidad de normalizar los datos en un presupuesto especificado en la pantalla principal de Network Profiler. De forma predeterminada, esta función está habilitada para Replica Profiler con el valor predeterminado anterior.

  • Network Profiler muestra ahora el uso en un gráfico de áreas en lugar de en un gráfico de líneas para facilitar su lectura.

  • Una nueva API permite la autenticación asincrónica de jugadores en conexiones nuevas.

  • Ahora se usan las cookies de DTLS durante el protocolo DTLS para ayudar a mitigar los intentos de suplantación de IP.

  • Se han añadido limitadores de velocidad para el número de paquetes entrantes por conexión para ayudar a impedir ataques DoS.

  • Los servicios online se han refactorizado para que cada sistema operativo tenga su propio bus de características y no esté limitado por las API de mínimo común denominador. El servicio online LAN se ha retirado porque ya no es necesario.

  • Los siguientes cambios se aplican a la administración de certificados FileDataSource:

    • Ahora se espera que los certificados se incluyan con los recursos del juego en una carpeta llamada Certificates.

    • El procesador de recursos ahora copia los archivos PEM. Por ejemplo, GameProjectName/certificates/selfsigned.cert.pem y GameProjectName/certificates/selfsigned.key.pem

Control de origen de Perforce

  • Para mejorar la experiencia general del usuario con las operaciones de control de código fuente y Lumberyard, se han realizado las siguientes actualizaciones:

    • Se ha añadido compatibilidad con SSL al complemento y componente Perforce.

    • Se ha unificado la configuración entre el complemento y el componente Perforce.

    • Ahora se permite especificar el juego de caracteres en la ventana de configuración de conexión de Perforce.

Ragdoll

  • Ragdoll ahora admite mensajes PhysicsComponentRequestBus para AddImpulse y SetVelocity.

Scripts

  • Ahora puede destruir jerarquías de entidad mediante el método DestroyGameEntityAndDescendants de GameEntityContextRequestBus.

  • Se ha eliminado el método DestroyGameEntity(AZ::Entity*) de GameEntityContextRequestBus. Ahora debe usar identificadores para la eliminación de entidades.

  • El componente Character Physics admite ahora GetVelocity, AddImpulse y GetMass a través de PhysicsRequestBus.

  • Se ha añadido el script EntityLookAt para permitir una entidad en frente de otra.

Sectores

  • Los descendientes se incluyen ahora automáticamente cuando se duplican, eliminan e insertan entidades en sectores.

  • Se ha mejorado la compatibilidad para insertar adiciones y eliminaciones de entidades en sectores existentes.

  • Se ha simplificado la administración de transformaciones en sectores, lo que ha mejorado la solidez y el mantenimiento de datos.

  • La rotación de World-space se puede volver a insertar en la entidad raíz del sector.

  • El compilador de sectores dinámicos ya no crea contenedores vacíos para recursos que no necesitan cargarse.

  • El compilador de sectores ahora carga las gemas sin crear componentes del sistema.

Twitch ChatPlay

  • Twitch ChatPlay admite ahora la conexión con la interfaz IRC de Twitch a través de websockets.

  • Se han añadido nuevas variables de la consola que permiten configurar la manera en que Twitch ChatPlay se conecta a la interfaz IRC de Twitch:

    • chatplay_IRCPorts

    • chatplay_IRCSSLPorts

    • chatplay_WebsocketPorts

    • chatplay_WebsocketSSLPorts

    Puede definir estas nuevas variables de la consola con pares priority:port separados por comas.

UI Editor

  • Se han añadido nuevas devoluciones de llamada e interfaces C++ del agente de escucha para todos los componentes interactivos de la interfaz de usuario.

Realidad virtual

  • El SDK de Oculus se ha actualizado de la versión 1.5 a la 1.9 y se han eliminado los archivos innecesarios.

  • La versión del SDK de OpenVR se ha actualizado de la 1.0.0 a la 1.0.3.

Sistema de compilación de Waf

  • Se ha introducido una nueva plataforma de bibliotecas de terceros que administra las instrucciones include, rutas lib y otros elementos en una ubicación consolidada para bibliotecas de terceros. La definición de cada una de las bibliotecas ahora se puede determinar de manera específica para el sistema operativo compatible. Anteriormente la definición se establecía en cada uno de los archivos wscript. Este cambio supone una eliminación importante de las definiciones de proyecto.

  • La plataforma de bibliotecas de terceros ahora se encarga de la lógica que determina si se debe compilar la versión estática o dinámica de una dependencia de terceros. Como resultado, el código BuildNativeSDKLibraryList se ha eliminado.

  • Algunas bibliotecas de terceros ya están predefinidas y se distribuyen durante el proceso de descarga de terceros. Anteriormente estas bibliotecas se compilaban durante el proceso normal de compilación, lo que añadía una sobrecarga de dependencias, y requería actualizar la detección de archivos de código fuente de terceros y compilar las bibliotecas.

  • Ya no es necesario que proporcione una especificación del proyecto cuando compile proyectos no monolíticos. La especificación del proyecto solo es necesaria cuando se compilan proyectos monolíticos, proyectos específicos y para el generador de soluciones de Visual Studio. No es necesario que proporcione la especificación del proyecto si la depuración o creación de perfiles se realiza en sistemas operativos que no crean automáticamente compilaciones monolíticas, como win_x64 y mac. El comportamiento predeterminado es compilar todos los proyectos que están marcados como compatibles con los sistemas operativos y la configuración de destino.

  • Para un control más detallado, ahora puede configurar una palabra clave skip para cada sistema operativo. Esto le permite omitir el procesamiento de tipos de recursos que no son necesarios para un determinado sistema operativo. Lumberyard tiene patrones de exclusión que omiten extensiones de archivo.

  • La palabra clave autod para uselibs se ha eliminado porque la detección de Qt se realiza ahora para cada sistema operativo y configuración. Anteriormente se usaba la palabra clave autod porque la detección de Qt se realizaba globalmente y las bibliotecas de Qt de depuración y lanzamiento se configuraban para cada sistema operativo.

  • La palabra clave build_in_dedicated se ha eliminado porque la descripción del proyecto ahora utiliza la palabra clave configurations para determinar la configuración con la que se compila un proyecto. Anteriormente la palabra clave build_in_dedicated se utilizaba para restringir las compilaciones al sistema operativo dedicado.

Misceláneo

  • Se ha habilitado la depuración optimizada para Microsoft Visual Studio 2013 con el fin de mejorar las funciones de depuración. Esta opción está habilitada de forma predeterminada para Visual Studio 2015.

  • Los paquetes de terceros se han eliminado de los paquetes Mac y de la consola para mantener la coherencia con la funcionalidad de paquetes de PC. Cada paquete ahora está disponible como archivos zip individuales.

  • Se ha implementado un nuevo control de propiedad para el tratamiento de valores CRC sin signo de 32 bits (hexadecimal de 8 dígitos). Este control de propiedad es útil cuando se importan valores CRC hexadecimales de 32 bits de un origen externo, como un programa personalizado que no forma parte de Lumberyard Editor. El nombre del controlador es CRC y se puede utilizar en cualquier campo de enteros sin signo de 32 bits.

  • Bin64 ya no es la carpeta Bin64 de destino de Windows.

  • Lumberyard admite los compiladores Microsoft Visual Studio 2013 y 2015. Incluso si utiliza el mismo host de Windows, los binarios serán diferentes. Por motivos de coherencia, la carpeta de destino ahora representa el sistema operativo de destino para el que se está compilando. Como resultado, cada compilador de Visual Studio estará en una carpeta predeterminada diferente: Bin64vs2013 y Bin64vs2015.

  • Qt se ha actualizado a la versión 5.6.2, que incluye las correcciones necesarias para el acoplamiento de ventanas.

  • Mediante las hojas de estilo de Qt, se han implementado nuevos estilos para Lumberyard Editor. Entre estos se incluyen actualizaciones en los marcos de las ventanas, barras de título y esquemas de color.

  • Se ha añadido una nueva biblioteca AzQtComponents que incluye widgets de Lumberyard personalizados. AzQtComponents se puede utilizar como una biblioteca estática o compartida (dll). Se incorporarán otros widgets compartidos en esta biblioteca en el futuro.

  • Ahora puede usar la característica Convert to Editor (Convertir en Editor) para convertir los objetos Brush y GeomEntity antiguos en entidades de componentes.

  • La API DestroySliceByEntityId se ha añadido a GameEntityContextRequestBus. Puede utilizar esta API para destruir instancias de sectores completas.

  • Los eventos OnSpawnBegin y OnSpawnEnd se han añadido al EBus reflejado del componente Spawner y a la API del script Lua.

  • Se ha añadidoTagGlobalNotificationsBus para permitir las notificaciones cuando se añade o elimina la etiqueta asignada a una entidad (ID de bus).

  • AddAngularImpulse se ha añadido a PhysicsComponentBus.

  • La rotación de World-space se puede volver a insertar en la entidad raíz del sector.

  • Los enlaces de entrada ahora se pueden invalidar en tiempo de ejecución y guardarse en el perfil activo.

  • Ahora puede editar los enlaces de entrada haciendo clic en el icono de joystick en el componente Input.