Slugs

un videogioco 3D ispirato a "Worms"

Screenshot dello striscione

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:

Screenshot dalla camera a volo d'uccello
Visuale dalla camera a volo d'uccello, pensata per la valutazione della mossa successiva. Gioco in esecuzione a 1280x720, leggermente ridotto in scala.
Screenshot dalla camera in prima persona
Visuale dalla camera in prima persona, adatta a mirare. Gioco in esecuzione a 800x600

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