Come fare il packaging del progetto. Unreal Engine 4

Packaging del progetto.

Prima che un progetto Unreal possa essere distribuito agli utenti, deve essere adeguatamente impacchettato. Il packaging assicura che tutto il codice e il contenuto siano aggiornati e nel formato corretto per essere eseguiti sulla piattaforma di destinazione desiderata.

Numerosi passaggi vengono eseguiti durante il processo di confezionamento. Il codice sorgente specifico del progetto verrà compilato per primo. Una volta compilato il codice, tutto il contenuto richiesto verrà convertito o “elaborato” in un formato che può essere utilizzato dalla piattaforma di destinazione. Successivamente, il codice compilato e il contenuto elaborato verranno raggruppati in un set distribuibile di file, come un programma di installazione.

Nel menu File principale, è presente un’opzione chiamata Progetto pacchetto, con un sottomenu. Questo sottomenu fornisce un elenco di tutte le piattaforme supportate per le quali è possibile impacchettare il progetto.

Per il packaging su Android, ci saranno più selezioni. Consulta la pagina di riferimento di Android per ulteriori informazioni.

Ci sono anche alcune opzioni avanzate che puoi impostare prima del confezionamento.

Impostazione di una mappa predefinita del gioco

Prima di impacchettare il tuo gioco, dovrai prima impostare una mappa predefinita del gioco, che verrà caricata all’avvio del gioco in pacchetto. Se non imposti una mappa e stai usando un progetto vuoto, vedrai una schermata nera solo quando inizia il gioco in pacchetto. Se hai utilizzato una delle mappe dei modelli, come il modello in prima persona o in terza persona, verrà caricata la mappa iniziale.

Per impostare la mappa predefinita del gioco, fai clic su Modifica> Impostazioni progetto> Mappe e modalità nel menu principale dell’Editor:

Project_Settings_MapsNModes.png

Creare Packages

Per impacchettare un progetto per una piattaforma specifica, fare clic su File> Imballa progetto> [PlatformName] nel menu principale dell’editor:

packaging_menu.png

Ti verrà presentata una finestra di dialogo per la selezione della directory di destinazione. Se il packaging viene completato correttamente, questa directory conterrà il progetto impacchettato.

La conferma della directory di destinazione avvierà quindi il processo effettivo che impacchetta il progetto per la piattaforma selezionata. Poiché il packaging può richiedere molto tempo, questo processo viene eseguito in background e puoi continuare a utilizzare l’Editor. Un indicatore di stato verrà visualizzato nell’angolo in basso a destra dell’Editor per indicare l’avanzamento:

progress.png

L’indicatore di stato fornisce anche un pulsante Annulla per interrompere il processo di confezionamento. Inoltre, è possibile utilizzare il collegamento Mostra registro per visualizzare informazioni estese sul registro di output, utili per capire cosa è andato storto in caso di errore del processo di confezionamento o per rilevare avvisi che potrebbero rivelare potenziali bug nel prodotto:

log.png

I messaggi di registro più importanti, come errori e avvisi, vengono registrati nella normale finestra Registro messaggi:message_log.png

message_log.png

Se queste finestre non sono visibili, è possibile accedervi dalle opzioni Finestra> Strumenti per gli sviluppatori> Registro output / Registro messaggi.

Distribuzione pacchetti.

Per inviare un gioco iOS o Android all’App Store o al Google Play Store, è necessario creare il pacchetto in modalità Distribuzione. Per fare ciò, vai all’opzione Impostazioni di imballaggio nel menu Imballaggio e seleziona la casella di controllo Distribuzione.

Su iOS, dovrai creare un certificato di distribuzione e MobileProvision sul sito Web degli sviluppatori di Apple. Installa il Certificato di distribuzione allo stesso modo del tuo Certificato di sviluppo e dai un nome al tuo provvedimento di distribuzione con un prefisso “Distro_”, accanto all’altro (quindi avresti sia `Distro_MyProject.mobileprovision` che` MyProject.mobileprovision`).

Su Android, dovrai creare una chiave per firmare il file .apk e fornire alcune informazioni ai nostri strumenti di compilazione con un file chiamato SigningConfig.xml. Questo file esiste nella directory Engine installata (Engine / Build / Android / Java /). Se modifichi questo file, verrà applicato a tutti i tuoi progetti. Tuttavia, puoi copiare questo file nella directory Build / Android / del tuo progetto (senza la sottodirectory Java /) e verrà utilizzato solo per quel progetto. Le istruzioni su come generare la chiave e compilare il file si trovano nel file stesso.

Advanced Settings

Facendo clic su File> Progetto pacchetto> Impostazioni imballaggio … oppure Modifica> Impostazioni progetto> Imballaggio nel menu principale verranno visualizzate alcune opzioni di configurazione avanzate per la funzione di imballaggio.

settings.png

Currently, these include:

OpzioniDescrizione
Build ConfigurationLa configurazione di compilazione con cui compilare il tuo progetto basato su codice. Per il debug di un progetto di codice, selezionare DebugGame. Per la maggior parte degli altri sviluppi con un supporto di debug minimo, ma prestazioni migliori, selezionare Sviluppo. Per la build di spedizione finale, che non avrà informazioni di debug e funzionalità orientate al debug (come disegnare forme di debug o stampare messaggi di debug sullo schermo), selezionare Spedizione. Si noti che i progetti solo Blueprint non avranno la possibilità di creare una build di DebugGame.
Staging DirectoryLa directory che conterrà la build in pacchetto. Questo verrà aggiornato automaticamente quando scegli una directory diversa nella selezione della directory di destinazione.
Full RebuildSe tutto il codice deve essere compilato. Se disabilitato, verrà compilato solo il codice modificato. Ciò può accelerare il processo di confezionamento. Per le build di spedizione dovresti sempre fare una ricostruzione completa per assicurarti che nulla manchi o non sia aggiornato. Questa opzione è abilitata per impostazione predefinita.
Use Pak FileSe impacchettare le risorse del progetto come singoli file o un singolo pacchetto. Se abilitato, tutte le risorse verranno inserite in un singolo file .pak invece di copiare tutti i singoli file. Se il tuo progetto utilizza molti file di risorse, l’utilizzo di un file Pak può semplificare la distribuzione poiché riduce la quantità di file che devi trasferire. Questa opzione è disabilitata di default.
Generate ChunksSe generare blocchi di file .pak che possono essere utilizzati per installazioni di streaming.
Build Http Chunk Install DataSe generare dati per il programma di installazione del blocco HTTP. Ciò consente a questi dati di essere ospitati su un server web per essere installati in fase di esecuzione.
Http Chunk Install Data DirectoryQuesta è la directory in cui verranno installati i dati una volta creati.
Http Chunk Install Data VersionQuesto è il nome della versione per i dati di installazione del blocco HTTP.
Include Prerequisites InstallerQuesto specifica se includere i programmi di installazione per i prerequisiti dei giochi in pacchetto, come i componenti del sistema operativo ridistribuibili.

Firma e crittografia

Con il rilascio di Unreal Engine 4.22, abbiamo integrato la libreria OpenSSL standard del settore per piattaforme desktop (Windows, Mac e Linux).

Se distribuiti in un prodotto spedito, i file .Pak possono essere firmati o crittografati, in genere per ostacolare l’estrazione o la manomissione dei dati. Per attivare, disattivare o regolare le impostazioni crittografiche sul progetto, vai al menu Impostazioni progetto e trova la sezione Crypto.

CryptoSettings.png

Le opzioni crittografiche nel menu Impostazioni progetto.

Le seguenti impostazioni sono disponibili da questo menu:

OpzioniDescrizione
Encrypt Pak INI FilesCrittografa tutti i file .ini presenti nei file .pak del tuo progetto. Ciò impedirà il facile mining o manomissione dei dati di configurazione del prodotto, a costi di runtime minimi.
Encrypt Pak IndexCrittografa l’indice dei file .pak, che impedisce a UnrealPak di aprire, visualizzare e decomprimere i file .pak del prodotto, a costi di runtime minimi.
Encrypt UAsset FilesCrittografa i file .uasset nel file .pak. Questi file contengono informazioni di intestazione sulle risorse all’interno, ma non sui dati delle risorse stesse. La crittografia di questi dati fornisce ulteriore sicurezza ai dati, ma aggiunge un piccolo costo di runtime e un aumento dell’entropia dei dati, che può aumentare le dimensioni delle patch.
Encrypt AssetsCrittografa completamente tutte le risorse all’interno del file .pak. Si noti che questa impostazione ha un effetto misurabile sulle prestazioni di I / O del file di runtime e aumenta la quantità di entropia nei dati impacchettati finali, rendendo il sistema di patch di distribuzione meno efficiente.
Enable Pak SigningAttiva o disattiva la firma dei file .pak.

Inoltre, è possibile impostare o cancellare le chiavi per la firma o la crittografia.

Contenuto del pacchetto “Cotto”

Come sviluppatore, durante l’iterazione di contenuti di gioco nuovi o modificati, potresti non voler sempre passare attraverso il lungo processo di impacchettare tutto nella directory di gestione temporanea e quindi eseguirlo da lì. È quindi possibile cucinare il contenuto per una determinata piattaforma di destinazione senza impacchettarlo facendo clic su File> Crea contenuto> [Nome piattaforma].

Si noti che questa funzione aggiornerà il contenuto nell’area di lavoro dello sviluppatore locale del progetto e non copierà alcuna risorsa nella directory di gestione temporanea. Puoi eseguire il gioco direttamente dall’area di lavoro dello sviluppatore locale per una rapida iterazione.

Ottimizzazione dei tempi di caricamento

I brevi tempi di caricamento sono essenziali per i giochi open world ma sono preziosi in ogni tipo di gioco. Unreal Engine offre diversi metodi per ottimizzare i tempi di caricamento del progetto durante il processo di confezionamento. Ecco alcune pratiche consigliate per ridurre i tempi di caricamento nei tuoi giochi. Per informazioni su come impacchettare il progetto, vedere la sezione Giochi di imballaggio e cucina.

Utilizzo del caricatore guidato dagli eventi (EDL) e del thread di caricamento asincrono (ALT)

  • Il thread di caricamento asincrono (ALT) è disattivato per impostazione predefinita, ma può essere attivato nel menu Impostazioni progetto nella sezione Motore> Streaming. Per i motori modificati, potrebbero essere necessarie alcune modifiche, ma in generale, ALT dovrebbe raddoppiare la velocità di caricamento, inclusi i giochi con tempi di caricamento “iniziali” e i giochi che trasmettono costantemente i dati. ALT funziona eseguendo contemporaneamente la serializzazione e il codice di post-caricamento su due thread separati e, di conseguenza, aggiunge il requisito che i costruttori di classi UObject, le funzioni PostInitProperties e le funzioni Serialize nel codice di gioco devono essere thread-safe. Se attivato, ALT raddoppia la velocità di caricamento. Per ulteriori informazioni sull’uso dei metodi di caricamento asincrono (in C ++), consultare la pagina Caricamento asincrono delle risorse.
  • Il caricatore guidato da eventi è attivato per impostazione predefinita, ma può essere disattivato nel menu Impostazioni progetto nella sezione Motore> Streaming. Per la maggior parte dei progetti, l’EDL ridurrà i tempi di caricamento della metà. L’EDL è stabile e può essere trasferito alle versioni precedenti di Unreal Engine oppure può essere ottimizzato per versioni del motore modificate o personalizzate.
EngineStreamingSettings.png

Comprimere il tuo file .pak

  • Per utilizzare la compressione dei file .pak nel tuo progetto, apri Impostazioni progetto e trova la sezione Packaging. In quella sezione, apri la parte avanzata dell’intestazione Confezione e seleziona la casella “Crea confezioni cotte compresse” che appare.
  • La maggior parte delle piattaforme non fornisce la compressione automatica e la compressione dei file .pak riduce i tempi di caricamento, ma ci sono alcuni casi speciali da considerare:
PiattaformaRaccomandazioni
Sony PlayStation 4La compressione del file .pak sarà ridondante con la compressione applicata automaticamente a ogni titolo PlayStation 4 e comporterà tempi di caricamento più lunghi senza ridurre le dimensioni del file. Pertanto non è consigliabile comprimere i file .pak per le versioni di PlayStation 4.
Nintendo SwitchI file .pak compressi sullo Switch a volte si caricano più lentamente a causa del tempo del processore necessario per decomprimere i dati, ma a volte si caricano più velocemente dai file compressi. La raccomandazione per i titoli Switch è quella di testare i tempi di caricamento con ciascun titolo e prendere una decisione caso per caso.
Microsoft XBoxOneLa compressione è fondamentale per ottenere i tempi di caricamento più veloci possibili sulla piattaforma XBox One.
SteamSteam comprime i file mentre vengono scaricati dagli utenti, quindi i tempi di download iniziali non saranno influenzati dalla compressione del file .pak del gioco. Tuttavia, il sistema di patch differenziale di Steam funzionerà meglio con file non compressi. I file compressi .pak risparmiano spazio sul sistema del cliente, ma impiegheranno più tempo a scaricarsi durante l’applicazione di patch.
OculusNon abilitare la compressione del file .pak. Il sistema di patch Oculus non è in grado di elaborare correttamente un file .pak compresso. Inoltre, la compressione del file .pak non ridurrà la dimensione del file.
Project Settings - Compress Pak option

Seleziona questa casella per abilitare la compressione nei tuoi file .pak.

Ordinare il tuo file pak

Un file .pak ben ordinato è fondamentale per ridurre i tempi di caricamento. Per aiutare a ordinare il tuo file .pak in modo ottimale, UE4 fornisce una serie di strumenti per scoprire l’ordine in cui sono necessari i tuoi dati e creare pacchetti con caricamento più veloce. Concettualmente, questo processo è simile all’ottimizzazione guidata dal profilo. Segui questo metodo per ordinare il nostro file .pak:

  • Costruisci ed esegui il gioco in pacchetto con l’opzione della riga di comando -fileopenlog, che consente al motore di registrare l’ordine in cui apre i file.
  • Esercita tutte le principali aree del gioco. Carica tutti i livelli, ogni personaggio giocabile, ogni arma, ogni veicolo e così via. Una volta che tutto è stato caricato, esci dal gioco.
  • Nel gioco distribuito ci sarà un file chiamato GameOpenOrder.log che contiene le informazioni necessarie per ottimizzare l’ordine dei file .pak. Ad esempio, nelle build di Windows, il file verrà trovato in WindowsNoEditor / (YourGame) / Build / WindowsNoEditor / FileOpenOrder /. Copia questo file nella directory di sviluppo in / Build / WindowsNoEditor / FileOpenOrder / percorso.
  • Con il file di registro in atto, ricostruire il file .pak. Questo e tutti i futuri file .pak prodotti utilizzeranno l’ordine dei file indicato nel file di registro.

In un ambiente di produzione, il file di registro deve essere verificato nel controllo del codice sorgente e aggiornato periodicamente con i risultati delle nuove esecuzioni -fileopenlog, inclusa un’ultima esecuzione quando il gioco è pronto per la spedizione.

Corso Unreal Engine da zero a livello avanzato

Ora, se sei quì, probabilmente hai un interesse per questo software, e quindi, in un certo senso, coltiviamo lo stesso interesse, se avrai la pazienza di leggere fino in fondo ti condurrò in questo mondo in modo semplice e gratuito.

Impara Unreal Engine 4 in Italiano ed in modo semplice e gratuito.

Se sei veramente intenzionato a muoverti nel mondo Unreal Engine, sei nel posto giusto, e non credo di peccare di presunzione.

Siediti e gustati questa playlist. La playlist.

Se vuoi far parte di questa cerchia, ti invito a diventare Patreon.

Non sai cos’è Patreon? Allora ti rimando a questo link

Patreon. Seguire tutti i corsi in toto e scaricare migliaia di risorse. (Assets, Progetti completi, utility realizzate dal sottoscritto.)

Il mio canale youtube, e se mi vuoi un poco di bene vieni a lasciare un bel pollicione in sù.

La pagina e il gruppo Facebook, nel caso volessi farmi sapere qualcosa, anche se nella sezione “Contatti” trovi tutte le referenze social e non solo.

E, nel caso lo volessi, ti lascio anche il link del market che ho dedicato ad Unreal Engine 4.

Se vuoi una playlist completa ed aggiornata clicca quì.

Se vuoi curiosare su di me, clicca pure quì.

Goditi pure i video adesso.

Iscriviti ala mia Newsletter, compila il form, e resterai in contatto con il mondo Unreal.

[newsletter_form type=”minimal” lists=”undefined” button_color=”undefined”]

giovanni messina architetto

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *