Halo-Wars-2-awakening-nightmare-new-maps

Lo scorso 29 Gennaio è stato rilasciato un nuovo aggiornamento per Halo Wars 2. L’aggiornamento in questione include tutte le patch di bilanciamento precedenti alla build attuale, risoluzione di bug, e inoltre una correzione di alcuni file di giochi per meglio bilanciare la build in futuro.

La strada per poter rendere questo possibile è stata caratterizzata da un progetto passionevole di diverse persone nello studio, dedicate al mantenimento, bilanciamento e all’aggiornamento costante di Halo Wars 2. Con il Publishing Team fortemente concentrato sulla MCC, è stata una sfida non da poco, ma che ha portato moltissima soddisfazione agli sviluppatori. Troveremo altro riguardante tutto ciò più in basso nella prima edizione di “The ScoopTM” dedicata ad Halo Wars 2.

L’aggiornamento non è piccolo in termini di dimensioni, siamo intorno ai 12GB, ma ci sono una grande ottimizzazione e riconfigurazione incluse che renderanno di fatto l’installazione generale di Halo Wars 2 più leggera di prima. Questo lavoro renderà molto più facile per gli sviluppatori rilasciare gli aggiornamenti in futuro. Il Team ha altri eccitanti piani in serbo per il 2019, e saranno condivisi nei prossimi mesi.

BUG FIXES

Globale

  • Corretti gli hardlock incontrati durante il download di una patch di bilanciamento
  • Corretti gli hardlock nel main menu all’avvio del titolo
  • Rimossi i file duplicati
  • Corretto un problema di desincronizzazione che accadeva spesso dopo una patch di bilanciamento
  • Tutti i cambiamenti di bilanciamento del passato inclusi nei contenuti dell’update
  • Aggiunta di 20+ file tattici per migliorare il bilanciamento della unità

Win10

  • Ritardo dell’inizio del gioco al lancio di un match multiplayer migliorato per le schede grafiche AMD

THE SCOOPTM

halo-wars-2-grun-goblin

Il principale ingegnere in trincea, Sean ‘Scoops’ Cooper, non si limita a scrivere del suo lavoro sulla Master Chief Collection, ogg infatti abbiamo il primo The Scoop: Halo Wars 2 Edition:

“La strada per il 17° aggiornamento di content di Halo Wars 2 (da non confondere con una patch – il gioco ne ha viste molte più di 17) è stata lunga e tortuosa. Sono stati necessari circa otto mesi. Il team di sviluppo attivo è un gruppo di appassionati sviluppatori di Halo Wars, staff di controllo qualità e membri della community che ci hanno aiutato a continuare a supportare il progetto.

Halo Wars occupa un posto speciale sia dentro che fuori la mia vita professionale. Ho passato alcuni anni a decodificarlo quando era solo un titolo per Xbox 360, a capire come decodificare / decomprimere / ricomprimere i suoi file e modificare i file di salvataggio del gioco per fare ogni genere di cose pazzesche. Questo lavoro è il modo in cui ho finito per entrare in contatto con uno dei principali sviluppatori del primo Halo Wars, Rich Geldreich.

A quel tempo, Rich non era più in Ensemble Studios, ma con lui ho passato tempo prezioso per confrontarmi prima di tornare a Dallas, in Texas. Dallas è anche il luogo in cui si trovavano gli Ensemble Studios al tempo, e dove molti studi sono sorti dalle sue ceneri. Curiosità: Dallas è anche il luogo in cui si trova Gearbox, che ha lavorato su Halo PC. Rich sarebbe tornato a Dallas per lavorare come CTO per Boss Fight Entertainment e mi ha garantito un lavoro lì (il mio primo *vero* lavoro nel settore). Lo studio ha avuto una sottolicenza per il motore di Halo Wars, quindi ho avuto modo di scimmiottare con esso nel tempo libero. Non era in uno stato in cui si poteva costruire, quindi c’era un sacco di lavoro da grunt per far funzionare il motore e gli strumenti in un ambiente Xbox 360 di Frankenstein. Non avevano alcune risorse di Halo Wars, quindi c’era ancora più creatività nel far funzionare tutto usando i contenuti retail. Quindi, durante il reverse engineering Halo (durato ere!). Sin dagli albori dei suoi giorni da FPS, il primo gioco che ho avuto modo di toccare è stato Halo Wars. Alcuni anni dopo, mi sono trasferito in un altro studio davvero fantastico fondato dall’ex membro di Ensemble Studios, Playful Corp. Prima che potessi iniziare a pianificare un modo di lavorare in ogni studio sorto dalle ceneri di Ensemble, mi è stato presentata un’opportunità davvero unica con il Publishing Team di 343 Industries.

Così, dopo alcuni mesi nel Publishing Team, mi sono offerto per assumere la responsabilità di Halo Wars 2 dalla parte del nostro lavoro su MCC. Non stavamo sviluppando così attivamente Halo Wars e avevo già avuto modo di osservare il motore di gioco, anche se nella forma originale del primo gioco, quindi sembrava ragionevole. Ciò che è venuto è stato un sacco di lavoro iniziale. Eravamo in procinto di assumere tutte le funzioni da Creative Assembly (CA). Il depot Perforce del gioco (Source Control), una volta ospitato in CA, è stato spedito su un NAS da 10 TB. Abbiamo finito per usarlo come archivio e abbiamo creato un nuovo depot su un altro server (c’erano un paio di problemi tecnici che hanno reso questa la migliore e più veloce scelta). Il sistema di costruzione del gioco, una volta ospitato in CA, era ora in fase di installazione per essere eseguito sul posto in 343. Ho individuato il punto in cui Joseph Cheng, l’originale sviluppatore 343 della build, aveva interrotto. C’erano molte cose che dovevo imparare su TeamCity (il sistema di gestione della build utilizzato dal gioco) e tutte le diverse fasi di costruzione coinvolte.

Da quando abbiamo avviato un nuovo server Perforce, che non è stato specchiato dall’originale, non abbiamo iniziato con nessuno degli attributi che molti file avevano, e in alcuni casi, richiedevano. Questi attributi includono cose come “questo file è sempre scrivibile” senza che uno sviluppatore verifichi manualmente le modifiche. In un caso particolare, c’era un file che uno strumento Visual C ++ prevedeva come scrivibile perché lo apriva per scrivere, anche quando lo utilizzava solo in quella che è effettivamente una modalità di sola lettura. Ciò che ha reso le cose peggiori è che non ha fornito un chiaro messaggio di errore.

La build farm che CA possedeva era anche configurata per utilizzare database di cache per il game content. Cioè, il sistema di compilazione produrrebbe il contenuto sorgente in formati pronti per il gioco, quindi memorizzerà gli output su questi database cache. Quindi estrarrebbe da questi database durante la creazione dei dati anziché rigenerarli. Ciò significava anche che una nuova build poteva essere rimessa in piedi e che avrebbe riutilizzato gli stessi file di dati di gioco spediti. Alcuni strumenti non generano gli stessi file esatti (byte per byte) anche quando il contenuto sorgente non cambia (cioè hanno output non deterministici). Allo stato attuale, se un singolo byte cambia in un file di gioco esistente, il sistema di aggiornamento di Xbox One richiede il download del file intero invece che eseguire una modifica più dettagliata dei soli download.

A 343, non stiamo facendo uso di alcun database di cache. Invece, abbiamo tre “macchine” di generazione e ho dedicato una di loro alla creazione di file di dati per Xbox One. mentre un’altra gestisce Windows. Queste macchine hanno iniziato a costruire i dati da zero. Si è scoperto poi che costruire da zero tutto il contenuto del gioco per una singola piattaforma sull’hardware che abbiamo a disposizione è un processo di circa 30-48 ore. Ma, fino a quando non eseguiamo il nuke della cartella di output (o lasciamo che gli spazi di lavoro ‘cleanup’ di TeamCity non siano stati usati in X giorni…), controllerà solo le modifiche al contenuto sorgente e ricostruirà quel sottoinsieme. Questo processo è relativamente veloce… purché il progetto sia ospitato su un SSD (e non era il caso delle macchine di compilazione con cui abbiamo iniziato).

Quindi, dato che le macchine dovevano iniziare a costruire i dati del gioco da zero, abbiamo finito per generare file che non corrispondevano a tutti i file di CU16, portandoci ad un aggiornamento su Xbox One di circa 13 GB. Tuttavia, per questo aggiornamento ho avuto la possibilità di rimuovere circa 500 MB di dati. Ciò significa che, nonostante vedrete questo aggiornamento richiedere un download piuttosto grande, il gioco sarà più piccolo in generale dopo. Sto ancora osservando alcune altre modifiche/correzioni alla pipeline di generazione dei dati che, se tutto va bene, potrebbero portare a una riduzione ancora maggiore delle dimensioni del gioco.

Halo-Wars-2-Sgt.-Johnson-rostercard_collosus

C’è molto altro che potrei probabilmente raccontare riguardante gli sforzi per creare una build farm completamente funzionante qui a 343, ma ho già scritto praticamente un libro senza aver nemmeno toccato alcune delle modifiche/correzioni affrontate con questo aggiornamento!

Poco dopo The Yappening lo scorso anno, Matt, Tyler, Pierre e io ci siamo riuniti e abbiamo pianificato quali bug abbiamo ritenuto prioritari e doebbano essere corretti in ogni aggiornamento futuro. Anche se non abbiamo affrontato l’intera lista in questa CU, crediamo di aver identificato alcuni dei bug più aggressivi. Due di loro hanno causato quelli che vengono definiti come Hard Lock. Si tratta di quando il gioco si blocca completamente e non ci sono animazioni di sorta. Questo va paragonato ad un Soft Lock, in cui il gioco o la sua interfaccia utente smettono di rispondere agli input ma in background potrebbero ancora esserci animazioni in corso. Dopo aver esaminato i bug, è apparso chiaro che lo stesso problema avrebbe probabilmente causato entrambi i blocchi. Due piccioni con un fava!

Un altro problema riguardava solo la versione PC del gioco con schede grafiche AMD, che provocava il caricamento più lento e quindi il gioco giocato ad un più alto tasso di velocità per essere sincronizzato con tutti gli altri. Era dovuto ad un cambiamento fatto prima che il gioco fosse effettivamente rilasciato, che non avrebbe dovuto essere incluso, ma che lo fu comunque. Ciò ha comportato alcuni usi non ottimali dell’implementazione DX12 di AMD.

Mi è capitato di imbattermi nella causa di un altro problema mentre familiarizzavo con il codice del gioco. Era stato menzionato una o due volte prima che dopo le patch del gioco abbiamo avuto un picco nei report Out of Sync nei nostri dati di sessione. È emerso che per le playlist crossplay (PC in gioco con Xbox One) non abbiamo considerato i dati delle patch nel determinare se i giocatori avrebbero potuto giocare insieme. Questo è diventato un problema poco dopo l’aggiornamento del gioco perché alcune persone già online durante il rilascio dell’aggiornamento non ottenevano i nuovi dati, mentre altri si collegano successivamente con il gioco già aggiornato. Quando entrambi entravano in matchmaking, il gioco “pensava” che tutto fosse corretto nei parametri, e quando i giocatori entravano in una partita e, a seconda delle modifiche, uno di loro eseguiva un’operazione usando dati patchati mentre l’altro no, sì causava un fuori sincrono nel gioco.

Mentre sono stati trovati ancora alcuni bug basati su codice che desideriamo risolvere, questo è tutto ciò a cui puntiamo per questo aggiornamento. Il resto dovrà venire quando lavorerò sugli aggiornamenti della MCC o su altre attività interne prioritarie 😊.”

GUARDANDO AVANTI

Il team di sviluppo sa quante persone che amano Halo Wars 2 ci sono là fuori, lo si è visto nell’Halo Wars Championship League nel corso delle diverse stagioni, e non solo. Wrensi e il resto del team hanno lavorato dietro le scene per la community di Halo Wars 2 e non vedono l’ora di rilasciare maggiori informazioni al riguardo.

Nel caso in cui vorreste condividere il vostro feedback sul nuovo aggiornamento, vi invitiamo a farlo sui forum di Halo Waypoint. 

Come sempre, per tutte le news sul vasto universo di Halo, seguiteci sui social e sul nostro sito!