Sviluppo su ZDoom parte 2: perché il design ci fa schifo

Non perdiamo tempo: dopo quanto detto  nella prima parte , vado subito ad elencare i progressi su LZDoom.

Addio a LZDoom

Tanto per cominciare, ho scoperto che LZDoom non avrà più udpate.  Questo vuol dire che se voglio essere sicuro di supportare le ultime versioni di questo engine dovrò necessariamente passare a GZDoom, che, per far breve, è una variante più aggiornata e con funzionalità aggiuntive. Tutta roba che in realtà ora non mi serve.



È stato bello

Nuove texture

Ho iniziato a cambiare le texture stock del WAD originale con delle nuove texture disponibili senza diritto d'autore. L'idea era creare una specie di struttura sotterranea di cemento armato in rovina. Il cielo rosso è un'aggiunta temporanea solo per impratichirmi con la pseudo Skybox che ZDoom implementa.


Prima del trattamento ...

... e dopo

Polyobjects

Come avevo già scritto, la id Engine 1 non ragiona in poligoni, ma in Settori. In particolar modo, il rendering inizialmente non supportava oggetti che si muovevano orizzontalmente per una questione di ottimizzazione e performance dell'algoritmo di ripartizione binaria dello spazio (tutta roba supertecnica che vi invito a cercare altrove). 

La corsa agli armamenti delle schede grafiche negli anni successivi aveva ovviato a questa cosa, ma Doom ancora non aveva questa funzionalità. Tuttivia Hexen, un gioco successivo a Doom che però usava lo stesso engine, ha così introdotto i Polyobject , ovvero guppi di Linedef che permettono di renderizzare delle geometrie dinamiche (che devono tuttavia rispettare diversi limiti).

Grazie ai Polyobject ho potuto fare in modo che le porte di metallo scorressero lateralmente, come se scorressero lungo un binario sul pavimento. Per fare questo, però ho dovuto anche usare...

ACS, ovvero l'altro linguaggio di scripting

Un'altra cosa che ho dovuto imparare è ACS, il linguaggio di scripting C-like che controlla gli eventi nelle stanze. Avete capito bene: LZDoom ha due linguaggi di scripting C-like che però sono indipendenti tra loro. Hanno alcuni punti in comune, ma per il resto sono totalmente paralleli. Not cool.

Il design i fa schifo (ma lo dobbiamo fare)

A questo punto mi son reso conto che stavo girando a vuoto. Stavo facendo, in un certo senso, palestra con le features di ZDoom, ma non stavo creando nulla di simile ad un gioco. Ho deciso quindi di prendere carta e penna per fare un minimo di level design. 

Ho in mente una struttura a 4 livelli, di cui il primo serve come introduzione e tutorial. Questo è il livello che ho iniziato a progettare su questo bellissimo foglio a quadretti:




Successivamente, ho creato una nuova mappa lavorando su quello che avevo progettato. Volendo, grazie alla griglia offerta da Ultimate Doom Builder, avrei anche potuto fare qualcosa molto più preciso e su scala, ma per ora ho preferito essere più spannometrico. Questo il risultato:


Il nuovo mostro 

Un'altra modifica importante riguarda gli sprite del mostro che ti insegue. Il cagnolone mutante ha lasciato il posto a questo tizio mezzo sciolto che ha anche suoni diversi, più "demoniaci". 


va che bell'ometto

Non mi piace ancora completamente, vorrei renderlo più inquietante. Credo che dovrò fare del design (OMG NO) pure su di lui.

Si, ma in conclusione?

Ecco qui un video del gioco con il nuovo livello.



Continuate a seguire questi post se vi interessa sapere come si evolverà questo progettino.

Commenti

Post più popolari