Slugs è stato sviluppato nel 2008 come progetto universitario per l'esame di
"Ambienti Virtuali Interattivi e Videogiochi", in gruppo con i miei amici Angelo Cafaro e Giannicola Scarpa.
Ci siamo basati su OGRE3D e sulla libreria PhysX (prima che Nvidia l'acquisisse da Ageia - era all'avanguardia!),
tramite il binding NxOgre.
Si tratta probabilmente del progetto universitario a cui ho dedicato più tempo, ma anche del più divertente.
Lavoravamo in sessioni di intere giornate di programmazione all'università, in stile XP,
e quando non era possibile incontrarsi ci assegnavamo dei task e lavoravamo indipendentemente,
sincronizzandoci via SVN.
Il giorno precedente alla presentazione del gioco (dopo mesi di lavoro part-time),
lasciammo l'università attorno alle 22.30, dopo una lunga (e proficua) giornata di bug-fixing.
La nostra amica Mara ci ha aiutato fornendoci le divertentissime voci per i personaggi, e dopo di lei altre due mie fantastiche amiche hanno registrato dei pack di voci alternative, di cui anche uno in inglese (Silvia e Alessia, con cui mi scuso pubblicamente di non aver poi pubblicato il gioco).
A causa dei limiti di tempo, il gioco non prevede AI, presenta un unico scenario, due sole armi (bazooka e granata) e supporta solo due giocatori, che possono sfidarsi in una battaglia a turni alternandosi ai controlli dello stesso sistema.
Qualche schermata di gioco:
Una lista di caratteristiche e funzionalità:
- le lumache sono composte da tre corpi connessi da giunti, gestiti tramite Physx
- le lumache subiscono danno da esplosioni e collisioni con l'ambiente. Inoltre, possono affogare
- gameplay a turni, in stile "Worms"
- l'interfaccia utente mostra (collocando opportunamente gli elementi a schermo in base alla risoluzione impostata)
- il tempo a disposizione per il turno corrente
- una barra di energia globale delle due squadre
- l'arma attualmente selezionata
- una mappa del livello indicante la posizione delle lumache e l'orientamento della lumaca selezionata
- billboards per nomi dei personaggi e barre di energia
- comportamento sofisticato della camera
- prima di fare fuoco, si può cambiare in qualsiasi momento visualizzazione tra "prima persona" (per mirare) e camera a volo d'uccello, utile a localizzare i nemici e selezionare il personaggio da pilotare
- dopo aver fatto fuoco, la camera segue l'azione (posizioni di missili e bombe, nemici che volano via dopo un'esplosione)
- missili e bombe sono oggetti PhysX lanciati con direzione e velocità basate sull'input dell'utente
- i missili esplodono appena collidono con qualcosa
- le bombe rimbalzano in giro per il livello fino all'esaurimento della miccia, per poi esplodere
- effetti particellari per fumo, esplosioni e spruzzi d'acqua
- livello composto da vari elementi
- geometria statica del terreno derivata da una heightmap
- una skybox e un quad, tramite opportuni shader, fanno da cielo e acqua
- alcuni oggetti gestiti tramite PhysX (muro distruttibile, rocce rotolanti, ponte, drappo strappabile con scritta "Slugs")
- divertenti musiche ed effetti sonori (trovati online)
- le lumache hanno svariate linee di dialogo (registrate da noi), riprodotte appropriatamente a seconda del gameplay, ad esempio
- quando si cammina verso un nemico
- quando si cammina verso un compagno di squadra
- quando un colpo va a vuoto
- quando si elimina per errore un compagno di squadra
- quando si elimina un nemico
- quando qualcuno affoga
- quando c'è un cambio di turno