Half-Life ha recentemente ricevuto un importante aggiornamento per celebrare il suo 25° compleanno, ma è rimasto un grosso bug. In una famosa sequenza sceneggiata, in cui un lungo tentacolo verde penetra attraverso una finestra e porta via un mondo, il mondo e i tentacoli saranno nell’allineamento sbagliato, facendo sembrare che il mondo stia fluttuando fuori dalla finestra di sua spontanea volontà.
Non più. Più di vent’anni dopo, il programmatore di Valve Ben Burbank ha risolto il bug e ha spiegato come ha fatto.
Innanzitutto, quando ho giocato per la prima volta a Half-Life nel 1998 e nel 1999, questo bug non esisteva. La teoria principale è che sia stata introdotta dall’API Win32 con Windows 2000. Spiega Burbank Su Mastodontesu “Computer che eseguono almeno Windows 2000 o versioni successive” vedrai il disallineamento.
“Volevamo risolvere questo problema per l’aggiornamento del 25° anniversario, ma altre cose avevano la priorità prima della spedizione”, ha scritto Burbank.
Quando si cercava una soluzione al problema a posteriori, sembravano esserci tre opzioni su come farlo. Fatelo correggendo il codice, che secondo Burbank sarà “ragionevole ma quasi certamente richiederà che ogni altra sequenza scritta venga completamente testata nuovamente, e potrebbe anche non essere corretta”; “Cambia l’animazione riprodotta (possibile)”; Oppure “Cambia la mappa in modo che i tempi funzionino”.
“Abbiamo scelto di cambiare la mappa per alcuni motivi. Se fissassimo la sequenza in modo che l’ora mondiale funzionasse, il giocatore sarebbe comunque in grado di stare sulla soglia e sparare al mondo, interrompere la sequenza e poi riprodurre la loro animazione in un modo “folle”. Quindi volevamo cambiare il modo in cui la sequenza veniva riprodotta in modo che fosse ininterrotta”, scrive Burbank.
“Tuttavia, la ricompilazione della mappa stava creando una serie di modifiche nel BSP risultante (ricordate, queste mappe sono state compilate l’ultima volta su un PC Windows 95/98!).
“Qualsiasi variazione in .bsp avrebbe causato piccoli ma fastidiosi errori di percorso e collisioni. Non volevo questo.
“Quindi, ho appena modificato la mappa. Riprodurre l’animazione quando la porta si apre (alcuni mod della community lo hanno fatto con versioni decompilate/ricompilate della mappa) invece che il giocatore che attraversa la porta assicura che il giocatore non possa sparare alla mondo prima che le cose inizino a ‘sincronizzarsi.'” La sequenza è leggermente diversa ma gioca più da vicino con ciò che veniva riprodotto nelle mappe alpha quando è stato scritto.
La modifica esadecimale è un modo per modificare i dati binari sottostanti di un file di computer e assomiglia alla stringa di lettere e numeri mostrata nell’immagine nella parte superiore del tema Mastodon di Burbank. Come spiega nella sua risposta, “Fortunatamente le parti [he] Era necessario il testo semplice sul lato destro.”
Adoro quando gli sviluppatori di giochi sono in grado di spiegare come hanno fatto qualcosa nel creare o sistemare un gioco, soprattutto perché di solito è molto più difficile da fare di quanto si possa immaginare, e questa è una prospettiva utile per lo sviluppo in generale. Diamine, sulla vita in generale. Se solo ogni studio lasciasse parlare effettivamente i propri sviluppatori.
“Guru professionista del caffè. Giocatore tipico. Difensore degli alcolici. Fanatico del bacon. Organizzatore.”