Miglioramenti e modifiche - Note di rilascio di Lumberyard

Miglioramenti e modifiche

In Lumberyard Beta 1.16 sono stati implementati miglioramenti e modifiche a sistemi e funzionalità Lumberyard. Scegli un argomento per ulteriori informazioni.

Animation Editor (Editor animazione)

Nella funzionalità Animation Editor (Editor animazione) sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Il ritardo di input da ordinamento tick tra sistemi di animazione, fisici e di scripting è stato ridotto.

  • È stata implementata la frammentazione HPHA per ridurre il consumo di memoria di Animation Editor (Editor animazione). Puoi monitorare problemi di memoria utilizzando il debug di memoria HPHA per eseguire le seguenti operazioni:

    • Istruzione Assert su deallocazioni doppie

    • Istruzione Assert su distruzione allocatore, se sono presenti blocchi di memoria allocati

    • Istruzione Assert quando si annulla l'allocazione di qualcosa che non è stato allocato

    • Istruzione Assert quando si annulla l'allocazione di una dimensione che differisce da quella che è stata allocata

    • Collocare una protezione di memoria al termine di ogni allocazione per affermare se la protezione di memoria non corrisponde a quella archiviata

    • Produrre guasti se la memoria viene utilizzata dopo che la sua allocazione è stata annullata

  • I test di debug per Script Canvas, GridMate e il sound system Lumberyard ora funzionano correttamente quando si abilitano i controlli di memoria HPHA.

  • Gli attori non presentano più un limite dei vertici a 16 bit e il rendering dei caratteri animati non presenta più un limite dei vertici di 65k. Puoi ora usare qualsiasi conteggio vertice o triangolo durante il rendering di attori.

Asset Browser (Browser asset)

Nella funzionalità Asset Browser (Browser asset) sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Puoi ora vedere asset di origine (non elaborati) e la relativa struttura di directory.

  • La finestra Asset Browser (Browser asset) è stata aggiornata per migliorare la progettazione visiva e implementare icone standard.

  • Puoi fare clic con il pulsante destro del mouse su un file per aprirlo, se è disponibile uno strumento Lumberyard Editor (Editor Lumberyard) che supporta il tipo di file.

  • I tipi di asset sono ora più modulari. Puoi ora utilizzare pacchetti gem per descrivere cosa accade quando fai doppio clic o fai clic con il pulsante destro del mouse su tipi di asset personalizzati, oppure durante la personalizzazione di menu contestuali e icone.

  • I miglioramenti delle prestazioni delle operazioni includono l'editor delle proprietà e il tempo iniziale necessario per compilare Asset Browser (Browser asset) durante l'avvio di Lumberyard Editor (Editor Lumberyard).

  • Quando carichi un livello non si verificano più ritardi di controllo del codice sorgente. L'aggiornamento del controllo del codice sorgente si verifica ora in modo asincrono dopo il caricamento di un livello.

Cloud Canvas

In Cloud Canvas sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Il pacchetto gem cloud Defect Reporter ha aggiunto le seguenti caratteristiche al plugin di Cloud Gem Portal:

    • Salvataggio e condivisione di query e report

    • Difetti filtro in base allo stato di lettura

    • Aggiunta di commenti a report esistenti

  • Puoi ora creare automaticamente problemi Jira per difetti individuati dal team QA o dai clienti. Il pacchetto gem cloud Defect Reporter è in grado di eseguire l'autenticazione con e inviare problemi a un'istanza Jira con le credenziali Jira appropriate.

  • Le risorse AWS per pacchetti gem cloud sono ora distribuite in maniera sequenziale per consentire di distribuire un numero elevato di pacchetti gem cloud contemporaneamente.

  • Cloud Gem Framework supporta ora i seguenti linguaggi: Node.js, Java, C# e Go. Puoi ora scrivere funzioni Lambda nel tuo linguaggio preferito durante la creazione di un pacchetto gem cloud.

  • Cloud Gem Framework dispone dei seguenti miglioramenti di stabilità:

    • I pacchetti gem vengono ora creati, aggiornati ed eliminati uno alla volta quando utilizzi la famiglia di comandi deployment. In precedenza queste operazioni erano completate in parallelo, causando possibili problemi con i limiti AWS durante la modifica simultanea di più gruppi di risorse.

    • La versione delle risorse personalizzate è ora bloccata a quella del codice utilizzato per creare le risorse. Se il codice cambia e un'istanza della risorsa esistente viene aggiornata o eliminata, l'evento aggiornato o eliminato verrà elaborato con lo stesso codice utilizzato per crearlo. Questo evita problemi di rollback durante l'aggiornamento o l'eliminazione di risorse personalizzate.

Strumento di distribuzione

Lo strumento di distribuzione include i seguenti miglioramenti e modifiche:

  • I target Android ARMv7 e ARMv8 sono ora supportati.

  • Puoi ora caricare il livello corrente.

  • Puoi ora selezionare il dispositivo target.

  • I log remoti sono ora supportati.

  • La gestione delle connessioni per il compilatore di shader e Asset Processor (Elaboratore asset) è stata migliorata.

Memoria HPHA

Sono stati apportati miglioramenti ad HPHA per implementare il debug e ottimizzare le prestazioni.

Debug

Sono stati aggiunti strumenti di debug all'allocatore HPHA per rilevare problemi di memoria comuni. Per ulteriori informazioni, consulta la sezione relativa al debug della memoria HPHA.

Ottimizzazione

Per eliminare frammentazione di memoria eccessiva, sono state apportate le seguenti modifiche ad HPHA (posizione del codice sorgente: lumberyard_version\dev\Code\Framework\AzCore\AzCore\Memory\HphaSchema.cpp).

  1. È stato rimosso mMRFreeBlock per eliminare la frammentazione che si verificava di frequente nel seguente scenario:

    1. Allocazione di grandi dimensioni.

    2. L'allocazione di grandi dimensioni è stata aumentata a dimensioni pagina o a un multiplo di dimensioni pagina.

    3. mMRFreeBlock viene assegnato al resto del blocco contenente la differenza tra l'incremento di dimensione e la dimensione richiesta.

    4. Si verifica un'altra allocazione più piccola che rientra nell'area mMRFreeBlock.

    5. L'allocazione di grandi dimensioni in Fase 1.a. viene liberata.

    6. Il blocco non può essere liberato perché l'allocazione di piccole dimensioni in Fase 1.d. ha occupato l'area mMRFreeBlock.

    La rimozione di mMRFreeBlock forza l'esecuzione dell'allocazione di piccole dimensioni nel più piccolo blocco libero che può ricevere la richiesta.

    Nota

    Questa modifica potrebbe potenzialmente ridurre l'ubicazione di memoria e le prestazioni di allocazione.

  2. mSmallFreeList è stato rimosso perché i blocchi in tale elenco non venivano mai riutilizzati né liberati.

  3. È stato modificato il modo in cui la dimensione allocata viene calcolata.

    In precedenza, la dimensione allocata era calcolata ottenendo le dimensioni dopo che il blocco veniva suddiviso per l'allocazione richiesta. Ora il calcolo viene eseguito quando si verifica la chiamata di allocazione di sistema e quando viene liberata memoria. Questa modifica fornisce una dimensione di allocazione totale più precisa.

    Di conseguenza, nota quanto segue:

    • La dimensione di allocazione tiene ora conto anche delle dimensioni informazioni blocco.

    • La dimensione di allocazione è ora la dimensione effettiva richiesta dall'allocatore.

    • Se viene passato un blocco preallocato, non viene conteggiato come dimensione allocata.

  4. Se le dimensioni di allocazione superano le dimensioni pagina, l'allocazione non viene più incrementata fino alle dimensioni pagina. Questo consente di eliminare la frammentazione che si verificava nel seguente scenario:

    1. Allocazione di grandi dimensioni.

    2. Le dimensioni di un'allocazione di grandi dimensioni sono state incrementate fino alle dimensioni pagina.

    3. La memoria inutilizzata rimanente viene aggiunta a mFreeList.

    4. Si verifica un'altra allocazione di piccole dimensioni che utilizza il blocco che era stato aggiunto nella Fase 4.c.

    5. L'allocazione di grandi dimensioni in Fase 4.a. viene liberata.

    6. Il blocco non può essere liberato perché l'allocazione di piccole dimensioni in Fase 4.d. utilizza il blocco.

iOS

Mappe normali (PVRTC) compresse sono ora supportate per impostazione predefinita. Questo consente di creare texture della mappa normali per iOS e migliorare le prestazioni in fase di runtime.

macOS

Lumberyard supporta ora lo strumento DirectX Shader Compiler versione 1.0.1-az. Questa versione include quanto segue:

  • Correzioni di bug e miglioramenti di stabilità per la compilazione di shader metallici.

  • La possibilità di ottimizzare gli shader che contengono cicli interni di diramazione. Ciò consente di ridurre la dimensione dello shader finale generato.

  • Supporto per la dichiarazione di variabili temporanee individualmente anziché utilizzando array. Questo consente al compilatore di shader di rilevare e rimuovere più facilmente variabili non utilizzate per ogni sistema operativo.

  • Un eseguibile della riga di comando DxbcChunks che stampa i dati di riflessione dello shader nello stesso formato utilizzato da Lumberyard per analizzare i dati. Ciò è utile per il debug dei blocchi DXBC dello shader che vengono generati da dxcGL e dxcMetal.

Supporto per dispositivi mobili

In Android e iOS sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • La cache di geometria predefinita (~ 20 MB) è stata sostituita con un segnaposto (500 KB). Ciò riduce la dimensione dell'app per Android e iOS.

  • iOS versione 12 e Xcode versione 10 sono ora supportati.

Reti

Nel sistema di reti sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • GridMate Carrier aggiunge il supporto per l'interfaccia socket Microsoft Registered I/O (RIO). RIO fornisce una latenza più bassa e interfaccia di throughput più elevata al kernel di Windows per l'elaborazione del traffico di rete.

  • È stata aggiunta l'utilità di stampa memorytoascii.

  • Sono stati aggiunti ACK periodici o differiti del carrier.

  • Per ridurre impatto di connessioni a bassa velocità, la disconnessione predefinita per gli errori di pacchetti è ora disabilitata.

  • La funzione SerializerForEmptyClass() è obsoleta ed è ora rimossa.

  • La configurazione del test case SecureSocketDriver è stata rielaborata per chiarezza.

Impostazioni di grafica per piattaforma

Le impostazioni di grafica per piattaforma dispongono dei seguenti miglioramenti e modifiche:

  • Il file di configurazione dei modelli Android consente ora espressioni regolari.

  • Puoi ora escludere variabili della console PC su macOS.

  • Puoi ora escludere variabili della console su Android, in base al nome GPU e alla versione API.

  • Puoi utilizzare la finestra Graphics Settings (Impostazioni di grafica) per modificare contemporaneamente fino a quattro configurazioni personalizzate.

  • Puoi utilizzare la finestra Graphics Settings (Impostazioni di grafica) per modificare variabili della console PC.

  • La finestra Graphics Settings (Impostazioni di grafica) include varie correzioni di bug e miglioramenti della stabilità.

Compatibilità SDK

Lumberyard 1.16 è compatibile con le seguenti versioni di SDK:

  • SDK AWS per C++ versione 1.4.34

  • SDK Amazon GameLift Server versione 3.2.1

Streaming delle texture su dispositivi mobili

Lo streaming delle texture è ora supportato su dispositivi mobili. Questa funzionalità è disabilitata per impostazione predefinita. Ti consigliamo di abilitare questa caratteristica se il dispositivo non dispone di memoria sufficiente per caricare tutte le trame in un livello. A seconda del dispositivo, si può verificare un aumento dell'utilizzo di memoria. Puoi regolare questo incremento impostando variabili della console r_TexturesStreamPoolSize.

Nota

Non puoi abilitare lo streaming di texture per i dispositivi Android in cui manca IMG_COPY_EXT o OpenGL3_2 o più recente. Puoi anche abilitare lo streaming di texture per dispositivi Arm Mali.

Per ulteriori informazioni sullo streaming, consulta Sistema di streaming nella Riferimento legacy Amazon Lumberyard.

Per abilitare lo streaming delle texture

  1. Utilizza l'editor di testo preferito per aprire uno dei file di configurazione.

  2. Imposta la variabile della console r_TexturesStreaming su 1.

  3. Salva il file.

  4. Utilizza l'editor di testo preferito per aprire il file AssetProcessorPlatformConfig.ini.

  5. Imposta mobile=/imagecompressor=CTSquish /streaming=0 to mobile=/imagecompressor=CTSquish /streaming=1

  6. Salva il file.

UI Editor (Editor IU)

Gli elementi dell'interfaccia utente dispongono ora di una casella di controllo Start Enabled (Avvio abilitato).

Visual Studio 2017

Lumberyard 1.16 supporta Visual Studio 2017 versione 15.8.6.

A partire da Visual Studio 2017, Microsoft ora rilascia gli aggiornamenti a una cadenza più frequente (in alcuni casi settimanalmente). Lumberyard è testato con la versione più recente di Visual Studio disponibile durante il ciclo di rilascio.

Varie

Grazie ai commenti ricevuti da Svyatoslav Razmyslov, abbiamo apportato numerosi miglioramenti e aggiornamenti al codice Lumberyard.