
Quake II
Buy GameScoprite tutti i dettagli tecnici della versione migliorata di Quake II
Quake II
Buy GameLa nuova versione di Quake II include tantissimi miglioramenti.
Abbiamo integrato alcune aggiunte moderne (come le ombre dinamiche) e migliorato le tecniche utilizzate al tempo della pubblicazione originale di Quake II, nel 1997.
Con una dinamica di gioco degli anni '90 perfettamente conservata, ecco un'analisi dei miglioramenti tecnici più importanti e delle collaborazioni che ci aiuteranno a portare Quake II a una nuova generazione. Che tu conosca da tempo il mondo delle mod, sia un entusiasta di retrogaming o semplicemente ti incuriosisca scoprire cosa rende speciale questa versione di Quake II, questo articolo è per te!
Strumenti di compilazione della mappa
Simile alla versione originale del 1997, la maggior parte dell'illuminazione in Quake II è inserita nel file BSP in fase di compilazione. L'illuminazione è pre-calcolata dallo strumento di illuminazione e una texture compressa della sola illuminazione viene salvata nel file BSP.
Abbiamo lavorato con due autori del progetto ericw-tools, Eric Wasylishen e Jonathan Barkley, per migliorare il supporto per i BSP di Quake II. Siamo andati oltre il supporto del gioco originale per consentire una migliore illuminazione sia nelle mappe originali che in quelle create dagli utenti.
La creazione dell'illuminazione è un processo basato interamente sulla CPU e può essere eseguito su macchine senza periferiche esterne e senza alcuna GPU. Per illuminare le mappe originali sui PC del 1997, la fase finale della creazione richiedeva spesso ore, anche tutta la notte. Con una maggiore efficienza per megahertz e decine di core a nostra disposizione, illuminare la tua mappa con gli strumenti moderni a nostra disposizione richiede solo pochi minuti.
Aumentata la densità dei luxel
Andando oltre il gergo tecnico, questo miglioramento nella compilazione delle mappe è semplice: il gioco originale illuminerebbe il mondo con un rapporto 16:1, quindi 16 unità nel gioco corrisponderebbero a un campione di luce. Abbiamo ricostruito tutte le mappe e aumentato il rapporto a 8:1, quadruplicando i dettagli. L'effetto è appena percepibile nelle aree con luce diffusa, ma le aree con punti luce che proiettano ombre definite migliorano significativamente.
Supporto alle griglie di luce
Questa funzione per la compilazione delle mappe è stata ripresa da Quake III Arena. Per la versione originale di Quake II illuminare i soggetti in base alla loro posizione sul terreno era una vera sfida. Questo processo funziona bene per oggetti e nemici che poggiano sul terreno, ma i problemi iniziavano quando erano presenti mostri volanti. Spesso risultavano scuri a mezz'aria perché passavano sopra un'ombra o qualcosa del genere.

Oltre a memorizzare le mappe di luce, ora memorizziamo una griglia di voxel all'interno dello spazio del mondo contenente un campione di luce e tutti i raggi che contribuiscono vengono proiettati attraverso quell'area. È un sistema abbastanza semplice che si basa principalmente sull'aumento delle dimensioni dei file e della memoria per le mappe, motivo per cui non è stato utilizzato fino a Quake III Arena.
Illuminazione indipendente delle texture
Un altro concetto ripreso da Quake III Arena è la memorizzazione delle mappe di luce in relazione alle superfici. Nella versione originale di Quake II, le texture distorte o con dimensioni modificate riportavano lo stesso effetto sull'illuminazione. Ora, le mappe di luce vengono memorizzate in base alle dimensioni del pennello e non a quelle delle texture.

Occlusione ambientale
Uno dei primi miglioramenti apportati da ericw-tools è l'occlusione ambientale, che aiuta ad aggiungere profondità al mondo di gioco scurendo le zone che ricevono meno luce di riflesso.

Ombreggiatura Phong
Dopo l'uscita di Quake II è stato pubblicato uno strumento chiamato ArghRad. Si tratta di uno strumento per l'illuminazione che supporta l'ombreggiatura Phong. È una tecnica che risale al 1970 e regola l'illuminazione su superfici con pochi poligoni. Questo effetto fa apparire arrotondato un elemento senza doverne ricostruire la struttura per aggiungere poligoni. Le nostre mappe aggiornate adesso sfruttano questa tecnica dove necessario.

Materiali traslucidi
Un'altra modifica che ha migliorato l'illuminazione sono le texture traslucide, che permettono alla luce di passargli attraverso aggiungendo una sfumatura del proprio colore al punto di arrivo. Questo vuol dire che vetri colorati, ologrammi e terminali possono essere attraversati dalla luce e modificarla in modo opportuno.

Illuminazione dei liquidi
Questa è una funzione che ha una certa popolarità tra i creatori di mappe di Quake, perché migliora vistosamente tutte le mappe in cui siano presenti dei liquidi. Nella versione originale, l'acqua non era illuminata e veniva mostrata al massimo della luminosità. Adesso, le superfici liquide possono avvalersi delle mappe di luce come qualsiasi altra superficie, senza bloccare i raggi sottostanti.

Grafica
Una delle funzioni più all'avanguardia di Quake II alla sua uscita era l'illuminazione colorata. Al giorno d'oggi, questa funzione è scontata, ma la nuova versione di Quake II è stata migliorata per adattarsi ai tempi mantenendosi fedele all'originale.
Animazione
Le animazioni di Paul Steed in Quake II hanno dato carattere al mondo. Da sottili contrazioni e animazioni inattive a salti mortali e tuffi esagerati, i nemici erano sempre imprevedibili. Per molti di noi che ai tempi giocavano per la prima volta, vedere una guardia accovacciarsi per schivare i colpi era una vera sorpresa. Tuttavia, all'epoca c'erano alcune limitazioni alla tecnologia che impedivano a queste animazioni di raggiungere il loro pieno potenziale.
Innanzitutto, il formato del modello MD2 ha una gamma limitata quando si tratta di precisione del vertice. Questo comporta un tremolio, specialmente sui modelli delle armi in prima persona. Siamo riusciti a recuperare i file delle animazioni originali per la maggior parte dei modelli nel gioco e abbiamo utilizzato queste animazioni ad alta risoluzione per creare animazioni scheletriche, eliminando il tremolio.

Passare all'animazione scheletrica ha risolto anche alcuni problemi con l'interpolazione lineare. Il caso più eclatante è l'animazione di morte di Parassita, in cui si rivoltava e ruotava così velocemente che l'animazione interpolata linearmente portava a un pasticcio di poligoni.

Glowmap
Quake II ha molti schermi e luci nelle texture, come le parti luminose delle armi. Nel motore di base, tuttavia, sono influenzati dalla luce e dall'oscurità come qualsiasi altra cosa. Ora supportiamo le glowmap, ovvero una maschera applicata sulla texture che specifica quali aree devono illuminarsi. Ciò significa che le luci sui nemici si illumineranno nell'oscurità e le luci sulle armi ora si illumineranno, il che migliora i dettagli di illuminazione dipinti sulle skin esistenti.

Nebbia d'altitudine
Abbiamo esteso il nostro supporto per la nebbia, aggiungendo il supporto per la nebbia basata sull'altezza che consente ai mappatori di utilizzare due colori diversi. Questo processo viene gestito in post-elaborazione e non come volume all'interno della mappa. Ci sono dei compromessi, ma è un ottimo strumento per i mappatori per diversificare gli spazi.

Lampi alla volata
Pur non essendo strettamente una novità tecnologica, è un cambiamento che ha un impatto così positivo sul gameplay che lo includeremo comunque! Le armi sia dei giocatori che dei nemici ora emettono dei lampi quando sparano, oltre alle luci dinamiche. Questo aiuta i giocatori a identificare rapidamente chi sta sparando, specialmente in stanze ben illuminate dove le luci dinamiche potrebbero non essere così visibili.

Audio
Abbiamo migliorato anche l'audio nella nuova versione di Quake II. Oltre a correggere bug nel codice dell'audio originale e aumentare i limiti per supportare più voci grazie alle CPU più veloci, ora supportiamo l'assegnazione di un nome a ogni texture.
Questo porta a due risultati: il primo è consentire di riprodurre la traccia del materiale della superficie colpita, rendendo unici i passi su ogni superficie. Il secondo è che ora calcoliamo una stima approssimativa delle dimensioni e dei materiali della stanza per selezionare un preset di riverbero. Questo rende il suono sotterraneo in una fogna diverso da un'area erbosa all'aperto.
Intelligenza artificiale
L'IA di Quake II ha subito parecchi cambiamenti durante lo sviluppo. Originariamente Quake II doveva utilizzare QuakeC, ma in una fase avanzata dello sviluppo è stata presa la decisione di passare dal codice interpretato a una libreria nativa. Ciò ha portato a dover trasferire tutto il QuakeC esistente su C e, nel processo, l'IA è stata semplificata per essere un po' più simile al Quake originale. In questa riedizione, ci siamo basati sui bot e abbiamo potuto esporre una parte maggiore della loro logica interna all'IA nemica.
Navigazione migliorata
Abbiamo esposto molte delle funzioni di navigazione del bot alla DLL del gioco, consentendogli di gestire la pianificazione del percorso da e verso punti arbitrari. Tuttavia, l'IA richiede ancora punti di navigazione posizionati manualmente. Inizialmente abbiamo studiato la generazione di navmesh attraverso soluzioni come Recast, ma abbiamo deciso che non si adattava al nostro programma di sviluppo e abbiamo deciso invece di migliorare gli strumenti esistenti per i bot.

L'IA originale di Quake II aveva delle funzioni base per orientarsi nell'ambiente. Ora, l'IA può decidere di muoversi vicino a te e attraversare stanze complesse con scale e sfruttare determinati punti per saltare verso il basso.
Processo decisionale migliorato
Il processo decisionale dell'IA è stato migliorato e i nemici si comporteranno in maniera più complessa rispetto alla versione originale. I nemici capiranno meglio anche se hanno la possibilità di colpirti o no, soprattutto quelli che sferrano più attacchi.
Per esempio, un artigliere con il braccio mitragliatore bloccato da una parete userà le granate invece di scaricare le munizioni contro un angolo. I nemici a volte potranno anche iniziare a sparare mentre si avvicinano, invece di aspettare sempre di aver raggiunto la propria destinazione. Queste modifiche aiutano a far sì che l'IA non prenda decisioni sbagliate senza modificare realmente il loro comportamento o il modo in cui combattono.
Nuova IA personaggi volanti
L'IA dei personaggi volanti adesso è molto più naturale. Prima di una svolta, i nemici rallenteranno e inizieranno a planare invece di fermarsi bruscamente. I droni degli sciami collideranno e rimbalzeranno tra loro prima di arrivare in posizione.
Contenuti recuperati
Chiunque abbia dato un'occhiata ai file originali di Quake II, avrà notato diverse animazioni che non sono mai state utilizzate nella versione originale. Le abbiamo esaminate, corrette e aggiunte al gioco. Per esempio, il tecnico ora allunga i suoi tremendi artigli per annunciare un'imboscata e il berserker è diventato ancora più feroce con un attacco in salto.

Abbiamo apportato un paio di modifiche anche al Parassita per rendere i combattimenti più divertenti. La sua proboscide ora è un proiettile che si può schivare e che si andrà a conficcare nella parete. Abbiamo aggiunto questa meccanica per fare in modo che il Parassita possa usare l'animazione di ribaltamento anche quando è vulnerabile dopo un attacco fallito.

Bot
Ecco alcune nuove funzioni dei bot per la versione migliorata di Quake II:
- I bot ora possono raggiungere zone impervie come la megasalute di The Edge sfruttando il salto con i razzi
- Tutte le armi, gli oggetti e i potenziamenti del gioco vengono compresi e utilizzati in maniera corretta.
- Tutti i nemici vengono compresi e vengono attaccati se sono ostili
- I bot possono saltare, accucciarsi, salire su ascensori e piattaforme, usare le scale, attivare le trappole per i nemici ed evitare le trappole attive
- I comandi di alto livello delle DLL del gioco permettono ai modder di decidere i movimenti e le azioni dei bot
- Aggiungete nuovi oggetti, armi e nemici alla vostra mod e aggiungete una piccola modifica a un semplice file di testo per permettere ai bot di comprenderli e utilizzarli (ulteriori informazioni in seguito)
Bot istruiti da dati per supportare le mod
I bot sono programmati per supportare rapidamente le mod tramite una serie di file di dati che spiegano loro a quali elementi interessarsi e come funzionano. I modder non dovranno far altro che creare dei file di definizioni per armi, oggetti e mostri unici della propria mod.
La lista dei file disponibili e alcuni esempi si possono trovare qui:

Editor navigazione migliorato
La versione migliorata di Quake II ti permette di creare velocemente un sistema di navigazione su qualsiasi mappa con informazioni e feedback inclusi direttamente nell'editor. Il file NAV creato dall'editor viene salvato come file separato da condividere nella tua mod o con gli amici.

Strumenti di debugging migliorati
Sono disponibili diversi strumenti di debugging per i bot che permettono di analizzare un bot specifico, inviargli comandi o scoprire cosa pensa.
Questi strumenti vi permettono di:
- Mostrare le informazioni su stato generale, obiettivi e altro riguardante il bot
- Mostrare lo stato attuale del sistema di comportamento del bot
- Mostrare informazioni sulla modalità di gioco e gli oggetti/entità d'interesse per il bot
- Dare obiettivi ai bot per provare i sistemi di navigazione
- Mostrare quali nemici possono vedere e attaccare
- Mostrare lo stato attuale del sistema di armi del bot e l'inventario a disposizione

Linee di debug
Ora puoi disegnare dei segni dal codice di gioco. In questo modo potrai disegnare per esempio il posto di un'entità, del testo di gioco o anche la direzione di movimento, tutte funzioni molto utili per il debugging.
Segni di render di debug disponibili:
- Linea
- Punto
- Cerchio
- Confini
- Sfera
- Testo del mondo orientato (si orienta sempre verso la visuale del client locale)
- Testo del mondo statico
- Cilindro
- Raggio
