Visualizzazione post con etichetta videogiochi. Mostra tutti i post
Visualizzazione post con etichetta videogiochi. Mostra tutti i post

domenica 24 marzo 2013

LEAGUE OF LEGENDS COMIC CONTEST



AAAAaaaaaahhhh.... che bella dormita! Ne avevo proprio bisogno!
Come dite? Sono trascorsi più di 9 mesi dall'ultimo aggiornamento? Urca come passa il tempo!
Scherzi a parte, la vita ha preso il sopravvento ed ho avuto letteralmente troppo da fare. Ora -incrociando le dita che non si sa mai- sto riprendendo ritmi più umani e penso che ricomincerò ad aggiornare il blog con una certa frequenza (magari non settimanale, ma di sicuro nemmeno una volta ogni 9 mesi!).

Intanto riparto col botto: assieme a Dario Delfino, un ragazzo che conosco tramite il giro dei giochi di ruolo, ho partecipato ad un concorso bandito da League Of Legends, il gioco strategico online.
Si trattava di disegnare una tavola di fumetto che ritraesse in modo umoristico i Campioni (cioè i personaggi che si possono scegliere nel gioco) quando sono fuori servizio, cioè quando non combattono.
Dario ha fornito l'idea e la sceneggiatura, ed io ci ho messo disegni e colori.

Il risultato, intitolato "I love my job!" potete vederlo qui e ne sono piuttosto soddisfatto, sia perchè credo che sia venuto bene, sia perche è un concorso mondiale e stiamo più o meno stabili tra il secondo ed il quarto posto su oltre 500 partecipanti iniziali.
Siccome però i giochi sono tutt'altro che finiti, e come tutti sanno League of Legends è molto competitivo, se qualcuno di voi ha un account di League of Legends vi chiedo di:

  1. andare a questa pagina
  2. votare per noi cliccando la freccetta verso l'alto accanto a "I love my job!"
  3. votare contro tutti gli altri cliccando la freccetta verso il basso accanto alle loro tavole.
Se invece non avete un account di League Of Legends, vi chiedo per favore di diffondere la voce ai vostri amici, se non altro per la soddisfazione di vedere una vignetta italiana sul podio!.

Grazie e alla prossima!

lunedì 14 maggio 2012

METAL GEAR SOLID 3 FANART



Disegni: Michela Da Sacco
Colori: Luca Bonisoli


Fanart che ho colorato come regalo di compleanno per mio cugino Marco.
Basi di colore e ritocchi finali fatti con Photoshop; tutto il resto fatto con Paint Tool Sai.


lunedì 6 febbraio 2012

KINGDOM RUSH


Oggi spendo due parole su un videogioco che in questi giorni mi sta "prendendo" tantissimo. Si chiama Kingdom Rush ed è stato sviluppato dagli Ironhide Studios in collaborazione con Armor Games.
E' un gioco fantasy del genere "tower defense": il giocatore deve disporre le sue truppe lungo un percorso per impedire che i mostri lo attraversino completamente da un lato all'altro. Se troppi mostri riescono a fuggire, game over. I mostri arrivano ad ondate successive sempre più impegnative e difficili da fermare; ogni mostro abbattuto fa guadagnare monete d'oro che possono essere spese per potenziare le torri disposte lungo il percorso, oppure costruirne di nuove. Ogni livello ha una mappa diversa, così come sono diverse le ondate di mostri da fermare.

Le truppe a disposizione del giocatore sono di quattro tipi:
- Soldati = combattono solo corpo a corpo e la loro funzione è quella di rallentare l'avanzata dei mostri in modo da permettere alle altre torri di abbatterli. Una volta potenziati al massimo possono diventare paladini (molto resistenti e in grado di curare le proprie ferite) oppure barbari (meno resistenti, ma vere e proprie "affettatrici" ambulanti).
- Arcieri = la loro funzione è quella di abbattere i nemici velocemente e da una certa distanza. Hanno un'ottima velocità di tiro, ma sono poco efficaci contro i mostri corazzati (che purtroppo sono tanti). Una volta potenziati al massimo possono diventare una sorta di "super-arcieri dei boschi", mitragliatrici di frecce avvelenate con radici degli alberi che intrappolano i nemici, oppure cecchini armati di moschetto in grado di colpire lontanissimo e abbattere i nemici con un colpo singolo.
- Maghi = utili per danneggiare con proiettili magici i mostri corazzati, hanno una velocità di tiro un po' bassa, ma sono formidabili agli alti livelli. Una volta potenziati al massimo possono diventare... ehm... "maghi viola" oppure "maghi arancioni". I primi causano danni piuttosto alti e possono lanciare una sorta di raggio della morte, nonchè teletrasportare via i nemici facendoli arretrare nel loro percorso (abilità impagabile nei livelli finali del gioco), mentre gli altri possono evocare un possente golem di pietra e trasformare i mostri in pecore (beeeeeeh!!!).
- Artiglieri = sono i classici nani che amano far esplodere le cose. Lentissimi nel colpire, costosi da potenziare e praticamente inutili all'inizio del gioco, diventano inarrestabili macchine per distruggere agli alti livelli, soprattutto quando ce ne sono due o tre vicini tra loro. Una volta potenziati al massimo possono costruire il cannone "Big Bertha" in grado di lanciare missili a ricerca e granate a frammentazione, oppure generatori Tesla in grado di lanciare fulmini che si propagano da mostro a mostro.

Durante le partite il giocatore ha anche la possibilità di schierare sul campo di battaglia alcune truppe di rinforzo oppure lanciare devastanti piogge di meteore. Inoltre in alcuni livelli sono disponibili truppe bonus (costose, ma efficaci) come gli elfi silvani, oppure un Sasquatch, oppure ancora un obelisco in grado di lanciare raggi di luce che inceneriscono i nemici sul posto.

I mostri sono estratti dal classico bestiario fantasy alla D&D (goblin, orchi, troll, lupi, gargoyle, ragni giganti, scheletri, cavalieri oscuri, demoni vari, ecc...) ed hanno caratteristiche diverse l'uno dall'altro: ci sono quelli che fungono da carne da cannone, quelli deboli ma veloci, quelli lenti ma resistentissimi, quelli volanti che non possono essere fermati dai soldati, quelli che curano o potenziano i loro compagni, quelli che colpiscono da lontano... il tutto senza dimenticare i boss finali (enormi e 50 volte più difficili da abbattere dei mostri normali).


Di questo gioco mi piace praticamente tutto, ma mi voglio soffermare su alcuni punti in particolare:
- L'aspetto grafico = è colorato, fumettoso ed estremamente stiloso. Le animazioni sono splendide e tutti i personaggi, nonostante siano minuscoli sullo schermo, sono perfettamente riconoscibili.
- Le voci = Ogni volta che si potenzia una torre, la torre risponde con una frase. Le voci sono perfette e contribuiscono tantissimo a caratterizzare i personaggi, ad esempio "Like a whisper" per gli arcieri, oppure "Let there be light!" per i paladini. Ma i miei preferiti sono di gran lunga i nani artiglieri con il cannone Big Bertha! ("Hail to the king, babe!", "Rest in pieces!", "Say hallo to my little friend!").
- Il gameplay = richiede davvero una buona dose di strategia (i livelli sono DIFFICILI!) e la conoscenza perfetta delle caratteristiche non solo di tutte le torri, ma anche di tutti i mostri. Notevole la possibilità di rigiocare ogni livello in tre modalità: "Campaign" (quella normale, condita con un po' di trama di sottofondo), "Heroic" (solo 6 ondate di mostri molto impegnativi) e "Iron" (un'unica mega-ondata di mostri da affrontare in condizioni particolari, tipo "niente soldati", oppure "solo maghi").
- L'umorismo = è la ciliegina sulla torta. dei nani ho già parlato, inoltre il gioco è pieno zeppo di citazioni dei film (es. "I see dead people", "Avada Kedavra!", "You shall not pass!" e l'immortale "Yippie kay yay motherf*****!" di Bruce Willis in Die Hard). A proposito: provate a cliccare ripetutamente sulle pecore sparse in giro per i livelli... ^__-

Ultima nota: come molti giochi sviluppati in Flash, è GRATIS. Però, se come me volete sbloccare i contenuti extra (più monete d'oro, due livelli extra e la possibilità di cambiare l'aspetto delle truppe di rinforzo, facendole diventare i personaggi di Guerre Stellari o di Street Fighter), dovrete fare uno sforzo e pagare la bellezza di... 3 dollari! (praticamente 2 euro e mezzo).
Se vi piace il genere, ne vale sicuramente la pena!


martedì 6 dicembre 2011

AGGIORNAMENTO


Con lentezza esasperante, causa i soliti impegni, sto proseguendo nella realizzazione di Double Rumble Universe.

In particolare:
- ho finito il Mission Builder, ma devo ancora testarlo per bene prima di tradurlo in inglese;
- ho aggiunto nel MissionBuilder la possibilità di adeguare automaticamente la difficoltà dei combattimenti al livello dei personaggi (più o meno), in modo che tutti i giocatori possano giocare la stessa missione con lo stesso grado di difficoltà (più o meno) indipendentemente dal livello del loro personaggio;
- ho quasi raddoppiato le mosse speciali a disposizione dei personaggi nei combattimenti (da 20 a 37) ed ho aggiornato l'Hero Maker per permettere ai giocatori di scegliere, però sto ancora litigando con il codice per farle funzionare quando devono (attualmente i personaggi si mettono nella posa giusta, poi però il gioco si pianta lì ^__^');
- ho sistemato qualche baco sparso di cui mi sono accorto strada facendo;

Purtroppo la lista dei "da fare" è ancora piuttosto lunga:
- far funzionare le nuove mosse speciali;
- aggiungere la lingua inglese sia nell'HeroMaker che nel MissionBuilder;
- aggiungere almeno un altro modello di personaggio da poter scegliere quando si crea il proprio supereroe (adesso ce n'è soltanto uno);
- aggiungere le 3 missioni che mancano per completare DoubleRumble Adventures, poi testare tutto e pubblicarlo;
- aggiornare le schermate di apertura, passando da DoubleRumble Adventures a DoubleRumble Universe;
- aggiungere un sistema per selezionare le missioni predefinite in DoubleRumble Universe;
- aggiungere un po' di contenuti (qualche sfondo, qualche personaggio, qualche missione...)
- provare, provare e provare ancora il gioco;
- pubblicarlo!

Per fortuna Luca Rivara mi sta dando una mano con gli sfondi (a proposito: scusa se non ti ho ancora risposto all'ultima e-mail. Lo farò presto!), altrimenti fare tutto da solo diventa pesante...

Restate sintonizzati!

lunedì 31 ottobre 2011

AGGIORNAMENTO DI HALLOWEEN - IL FUTURO DI DOUBLE RUMBLE


Ne approfitto di Halloween per fare gli auguri a tutti e rifarmi vivo su questo blog.
Ultimamente gli aggiornamenti vanno un po' a rilento perchè sono molto impegnato con attività extra-lavorative (qualcosa di grosso, tra un mese e mezzo saprete tutto).

Ma il motivo del prolungato silenzio è anche un altro: con estrema lentezza (sempre a causa degli impegni che ho appena citato) sto rimettendo mano al mio videogioco Double Rumble Adventures e ne sto facendo quello che per le mie limitate capacità è un vero gioiellino!

Lo so, avevo scritto che difficilmente avrei aggiunto nuove funzionalità, ma giocando al mio MMORPG preferito (City of Heroes) mi ha travolto un'ispirazione particolarmente intensa e altrettanto duratura, così ho praticamente rivoluzionato tutto!

Con la nuova versione del gioco, che si chiamerà Double Rumble Universe, i giocatori avranno accesso a tutte le modalità di gioco di Double Rumble Adventures (missioni, partita veloce, sfide speciali, sopravvivenza), ed in più potranno:

- creare personaggi personalizzati con un apposito "Hero Maker", dotandoli dell'aspetto, dei poteri e delle mosse speciali desiderate (mi sono ispirato a "City of Heroes");

- utilizzare il proprio personaggio per giocare apposite "Missioni" organizzate in "Linee narrative" e "Archi narrativi" facendolo crescere di livello e diventare più potente (anche qui mi sono ispirato a "City of Heroes");

- salvare i progressi tramite un apposito "codice eroe", che potrà anche essere distribuito agli altri gocatori per permettere loro di usarlo come personaggio secondario nelle Missioni (questa invece è farina del mio sacco: volevo qualcosa di facile da distribuire, ma che non richiedesse di tenere un database su un server);

- creare (e questa è la parte di cui sono di gran lunga più orgoglioso) le proprie storie con l'apposito "Mission Builder", salvandole in un apposito "codice missione" da distribuire agli altri come avviene per il codice eroe. In questo modo chiunque potrà giocare le storie create dagli altri utenti (pure qui mi sono ispirato a "City of Heroes", in particolare al "Mission Architect"). Ecco qualche schermata del Mission Builder:




Dimenticavo: sto anche rendendo tutto bilingue (italiano e inglese) perchè sia fruibile su internet ad un pubblico più ampio.

Attualmente sto lavorando agli ultimi dettagli tecnici, come aggiungere nuove mosse speciali, migliorare l'intelligenza artificiale degli avversari, tradurre tutto in inglese e aggiustare alcune schermate, poi passerò ad un'altra fase impegnativa, ossia quella grafica (devo disegnare un sacco di roba per riempire di contenuti quelli che attualmente sono sostanzialmente contenitori vuoti). Se qualcuno vuole darmi una mano mi fa un favore, altrimenti non ho fretta.

Probabilmente prima di concludere Double Rumble Universe pubblicherò un'altra versione di Double Rumble Adventures che fungerà da "ponte" tra i due giochi, ma ormai la strada è segnata...

Restate sintonizzati per altri futuri aggiornamenti!

mercoledì 3 agosto 2011

DOUBLE RUMBLE ADVENTURES!




Sorpresa!

Anche se dalla conclusione di Sfida Finale (ben cinque mesi fa) non ho pubblicato più nulla sugli eroi di Spear City, non significa che abbia smesso di lavorarci! (a dire il vero avrei potuto essere pronto molto tempo fa, se non avessi avuto un periodo terribilmente incasinato tra marzo e luglio...^__^')

In ogni caso, ecco qua i frutti del sudore versato dietro le quinte in questo lungo periodo: il nuovo videogioco sugli eroi di Spear City: Double Rumble Adventures, che riprende tutto quello che c'era nel vecchio DoubleRumble raddoppiandone le potenzialità!

Infatti Double Rumble Adventures non comprende solo i combattimenti tra personaggi, ma anche la possibilità di giocare vere e proprie storie (a fumetti, naturalmente). In altre parole ho integrato i motori di gioco di DoubleRumble e Per un Pancho di Dollari, realizzando il videogioco definitivo sugli eroi di Spear City (ossia, proprio quello che ho sempre desiderato fare)!

Dico "definitivo" perchè non credo che in futuro il motore di gioco subirà chissà quali miglioramenti, ma una cosa è certa: si arricchirà di contenuti!
Periodicamente, infatti aggiungerò nuove storie, nuovi personaggi, nuove location, ecc...
Già rispetto al vecchio DoubleRumble le novità sono parecchie:
- Le prime 3 missioni
- 1 nuovo personaggio principale (Regina dei Ghiacci)
- 6 nuovi "scagnozzi" (li potete vedere -e combattere- giocando le missioni)
- 5 nuove location
- Contenuti di gioco sbloccabili molto più rapidamente rispetto a DoubleRumble

Spero che il risultato vi piaccia!
Buon divertimento e non dimenticate di dirmi cosa ne pensate! ^__^

giovedì 14 luglio 2011

FACCIAMO UN (VIDEO)GIOCO? - PARTE 6

Inserisci link
Come dicevamo nello scorso articolo, oggi passiamo dal singolo labirinto al vero e proprio dungeon multi-livello.

Cominciamo come al solito con un po' di pianificazione, tenendo sempre presenti i due concetti fondamentali: pensare in piccolo e impostare il gioco in modo procedurale:
- in questo caso "pensare in piccolo" significa che il gioco dovrà essere ridotto ad un puro e semplice dungeon crawler: nessun PNG con cui interagire, nessuna quest, nessuna possibilità di ritornare ai livelli precedenti del dungeon. Sarebbero tutte caratteristiche bellissime, per carità, ma sfortunatamente per essere implementate richiederebbero molto più tempo di quanto io possa dedicarci, quindi ahimè dovremo eliminarle.
- "impostare il gioco in modo procedurale" significa dare al giocatore la possibilità di impostare alcuni parametri, facendo gestire tutto il resto al computer.

Tradotto in pratica, questo significa che:
- il giocatore potrà impostare la profondità del dungeon (es. da 5 a 30 livelli);
- si inizierà con una breve introduzione che spiega la storia dietro al gioco (ci ho ragionato un po' sopra e mi pare di aver ideato una trama in grado di giustificare in modo abbastanza plausibile sia le limitazioni a cui ho accennato sopra, sia altre che introdurrò più avanti);
- subito dopo il gioco entrerà direttamente nel vivo con l'esplorazione del primo livello del dungeon, generato casualmente;
- ogni volta che si accede ad un nuovo livello del dungeon la mappa precedente viene cancellata ed il nuovo livello viene creato da zero (quindi non è possibile, nè necessario, salvare le mappe dei livelli precedenti)
- Dopo aver raggiunto l'uscita dell'ultimo livello del dungeon, si passa alla schermata (o alle schermate) di epilogo, dove si conclude la storia.

Dal punto di vista della programmazione, questo sistema è molto lineare, quindi concettualmente semplice da implementare:
- dopo aver impostato le caratteristiche del dungeon e creato i personaggi, si passa alla prima schermata dell'introduzione, poi alla seconda e così via;
- dopodichè si genera automaticamente il primo livello e si avvia il gioco;
- all'uscita del primo livello si genera automaticamente il secondo, poi il terzo e così via fino all'ultimo. Sono sufficienti due variabili: una che contiene il numero totale dei livelli (impostato dal giocatore) e l'altra che contiene il numero del livello corrente. Quando il livello corrente è uguale al numero totale dei livelli, significa che è stato raggiunto l'ultimo livello del dungeon.
- all'uscita dell'ultimo livello si passa alla schermata della conclusione.

Una leggera complicazione tecnica di tutto questo procedimento (nulla di insormontabile, comunque) è data dal fatto che non posso semplicemente "staccare" improvvisamente da una schermata all'altra, ma devo inserire delle transizioni (fade out - fade in) per rendere i passaggi meno improvvisi e quindi più gradevoli.

Così anche questa è fatta: abbiamo l'introduzione, l'intero dungeon completamente esplorabile e la conclusione. La prima parte del gioco (diciamo il "contenitore") è completa. Ora dobbiamo iniziare a riempirlo di "contenuti" aggiungendo avventurieri, mostri e tesori. Cominceremo nel prossimo articolo con gli avventurieri.

martedì 5 luglio 2011

FACCIAMO UN (VIDEO)GIOCO? - PARTE 5


Ci siamo: finalmente è ora di iniziare ad esplorare il labirinto! Affrontiamo quindi il problema del movimento.

Innanzitutto decidiamo come impostarlo: per questioni di semplicità, ci muoveremo "a scatti" di una cella per volta e le rotazioni (girare a destra e a sinistra) saranno solo di 90°; inoltre il movimento sarà comandato dai tasti delle frecce direzionali (freccia in su = "un passo avanti"; freccia in giù = "un passo indietro"; freccia a sinistra = "gira a sinistra"; freccia a destra = "gira a destra").

Il secondo passaggio è definire nei dettagli come avviene il movimento. Prima di spostare il nostro personaggio da una cella a un'altra, infatti, il motore di gioco deve verificare se quel movimento è ammesso oppure no, ed eventualmente lanciare qualche tipo di evento collaterale (es. far scattare una trappola che si trova nella cella di destinazione). Solo dopo questa verifica il passaggio ad una nuova casella può essere effettuato. La verifica si può sintetizzare più o meno in questo modo:
I movimenti di rotazione (girare a sinistra e a destra) sono sempre ammessi; per gli spostamenti (passo avanti e passo indietro) devo invece prima verificare il contenuto della cella di destinazione:
- se la cella di destinazione è un muro, il passo non si può fare;
- se la cella di destinazione è un corridoio vuoto, il passo si può sempre fare;
- se la cella di destinazione contiene un forziere chiuso, lo apro lanciando l'evento corrispondente (ottengo un tesoro oppure faccio scattare una trappola), poi sostituisco il contenuto della cella con un forziere aperto (senza effettuare il passo);
- se la cella di destinazione contiene un forziere aperto, il passo non si può fare;
- se la cella di destinazione contiene un tesoro casuale in mezzo al corridoio, lo raccolgo lanciando l'evento corrispondente e poi sostituisco il contenuto della cella con un corridoio vuoto (senza effettuare il passo);
- se la cella di destinazione contiene una trappola nascosta, faccio il passo e la faccio scattare lanciando l'evento corrispondente;
- se la cella di destinazione contiene un teletrasporto (uscita), ignoro lo spostamento e passo direttamente al labirinto successivo;
In questo modo, come si vede, tutti gli eventi di gioco vengono lanciati semplicemente tentando di "entrare" nella cella corrispondente. Questa è una bella semplificazione, perchè è molto intuitiva e non mi obbliga ad elaborare un sistema per avvisare il giocatore dell'evento, chiedendogli magari conferma e gestendo la risposta.

Infine, dopo tutte le verifiche e le funzioni sopra riportate, l'ultima fase è quella di aggiornare la finestra di visuale in soggettiva come descritto nel precedente articolo, per mostrare il movimento compiuto.

Ora, dopo aver pianificato tutto, si passa alla realizzazione ed emergono subito i primi problemi.

Ad esempio: se tengo premuto un tasto direzionale, lo spostamento viene ripetuto in modo talmente rapido da risultare fastidioso, inoltre si rischia di effettuare inavvertitamente più spostamenti consecutivi solo tenendo premuto il dito sul pulsante un po' troppo a lungo. Devo quindi aggiungere un timer che blocchi l'input dei tasti per un certo periodo di tempo (mezzo secondo o anche meno), consentendo quindi di separare nettamente un comando dall'altro.

Secondo problema: devo implementare un sistema che gestisca la transizione da un labirinto all'altro e che mi permetta di "uscire" una volta terminato l'ultimo.

Terzo problema: molti degli eventi che ho citato sopra (raccogliere un tesoro, far scattare una trappola, ecc...) devono ancora essere programmati e richiedono la presenza di un "personaggio" a cui essere applicati.

Quarto problema: non ho ancora affrontato la parte relativa all'apparizione casuale di mostri da combattere, che hanno un'influenza pure sul movimento (per semplicità, durante i combattimenti il movimento sarà impedito).

Non c'è male come scaletta!
Per il momento ho risolto solo il primo problema (il più semplice) creando un timer che blocca l'input dei tasti per un certo periodo di tempo. Nel prossimo articolo ci occuperemo del secondo ostacolo (passare dal singolo labirinto ad un vero dungeon con più livelli), mentre gli altri problemi li affronteremo con calma più avanti.

mercoledì 4 maggio 2011

FACCIAMO UN (VIDEO)GIOCO? - PARTE 4


Nei precedenti articoli abbiamo creato la mappa del labirinto e la schermata di visualizzazione in soggettiva; ora dobbiamo legare questi due elementi per poter finalmente ottenere qualche risultato concreto!

Per farlo ci servono due informazioni: quale casella stiamo occupando e in quale direzione stiamo guardando. Il programma sarà quindi impostato in modo da comunicare al motore grafico innanzitutto le coordinate (X, Y) della nostra posizione attuale e la direzione (N, S, W, E) verso cui siamo rivolti.

Il secondo passaggio è quello di sovrapporre alla mappa del labirinto quella delle celle visibili, in modo da determinare quali celle del labirinto sono appunto visibili. Il risultato naturalmente è diverso a seconda che l'osservatore sia orientato in una direzione piuttosto che in un'altra, come mostrato dall'immagine in alto, all'inizio dell'articolo.

Il terzo ed ultimo passaggio è quello che serve per mostrare solo le pareti visibili, non tutte. Ogni cella "piena" è associata ad 1 o 2 pareti, come mostrato dall'immagine qui sotto (in blu le pareti, in rosso il campo visivo)...


...quindi le pareti corrispondenti alle celle piene dovranno essere mostrate, mentre quelle corrispondenti alle celle vuote dovranno essere nascoste.
Questo sistema, anche se produce un risultato visivamente corretto, in realtà è inefficiente, perchè non distingue tra le pareti effettivamente visibili e quelle nascoste da altre pareti. Fortunatamente, per i nostri scopi la potenza di calcolo dei computer compensa largamente la presenza di calcoli superflui, quindi possiamo ignorare il difetto ed evitare di correggerlo (lo so, sono pigro ^__^).

Un procedimento analogo può essere seguito per visualizzare gli eventuali oggetti che occupano i corridoi davanti a noi: se una cella visibile contiene un oggetto, il corrispondente oggetto viene mostrato anche nella visualizzazione in soggettiva; altrimenti non viene mostrato nulla.

Nel prossimo articolo faremo un ulteriore passo avanti... anzi più di un passo, visto che saremo finalmente in grado di muoverci all'interno del labirinto!

mercoledì 27 aprile 2011

FACCIAMO UN (VIDEO)GIOCO? - PARTE 3


Nel precedente articolo abbiamo creato il labirinto; ora dobbiamo visualizzarlo. Ci serve quindi una schermata che mostri tutte le pareti come se stessimo guardando da una finestra (visualizzazione "in soggettiva") e per farlo dobbiamo ricorrere alle regole della prospettiva centrale.
Il nostro campo visivo sarà quindi composto da 3 tipi di elementi: lo sfondo, le pareti e gli "oggetti" (mostri, forzieri, teletrasporti, ecc...) che possono occupare i corridoi.

Lo sfondo
E' piuttosto semplice: si tratta di un gradiente lineare che parte da un colore di base in alto e in basso e sfuma verso il nero al centro, per suggerire l'idea che il giocatore abbia con sè una sorgente di luce (torcia, lanterna, o altro), quindi gli oggetti vicini sono ben visibili mentre in lontananza il labirinto sfuma vero l'oscurità. Per aggiungere varietà perdendo poco tempo, si possono creare più sfondi diversi (es. una dozzina) semplicemente cambiando il colore del gradiente e aggiungendo a mano delle irregolarità.

Le pareti
Qui il discorso si fa decisamente più complesso. La prima cosa da decidere è la profondità del campo visivo (fino a quante celle di distanza sono visibili le pareti?). Più aumenta la distanza, più elementi sono visibili, più la programmazione diventa complessa. Un buon compromesso è costituito da 4-5 file di celle davanti all'osservatore. Anche in questo caso, più le pareti si allontanano dall'osservatore (cioè dalla luce), più sono scure per dare l'impressione della profondità. Considerando 5 file di celle nel campo visivo, compresa quella in cui si trova l'osservatore (cioè il giocatore), le pareti potenzialmente visibili sono 24, come mostrato nell'immagine qui sotto (le pareti sono in colore blu; il campo visivo in colore rosso):


Ora però le pareti vanno disegnate!
Fondamentalmente le pareti hanno 2 sole possibili geometrie: rettangolare (per quelle poste di fronte all'osservatore) e trapezoidale (per quelle poste lateralmente rispetto all'osservatore). Impostando la prospettiva in modo opportuno, è sufficiente disegnare una sola parete per ciascun tipo e tutte le altre possono essere derivate da quelle due, semplicemente cambiandone le dimensioni e/o "stirandole" un po'. Non male come risparmio di fatica, vero?
A proposito di risparmio di fatica: anche per le pareti si può dare l'impressione della variabilità creandone diverse copie (es. una dozzina) che differiscono solo per il colore. Se calcoliamo le possibili combinazioni di colore delle pareti e dello sfondo, otteniamo circa 150 "look" diversi, sufficienti per non annoiarsi troppo.

Gli "oggetti"
Per "oggetti" intendo qualsiasi elemento che occupi una cella (mostri, tesori, teletrasporti, ecc...). Nell'immagine all'inizio di questo articolo, gli oggetti sono esemplificati da un cilindro verticale. Vista la forma del campo visivo (disegnato in rosso nella seconda immagine di questo articolo), i possibili oggetti da mostrare sono 12.

Mettiamo insieme la schermata
In totale gli elementi che compongono il campo visivo sono 37 (lo sfondo, 24 pareti e 12 oggetti). Ognuno deve stare su un piano prospettico separato (più precisamente su un "livello" separato, come in Photoshop), in modo che i più vicini all'osservatore si trovino sovrapposti a quelli più lontani e li nascondano. Il tutto, infine, dev'essere racchiuso dentro ad una "maschera" che permetta di vederNe solo una porzione, come guardando attraverso una finestra.

Nel prossimo articolo entreremo nel nostro labirinto e lo vedremo dall'interno!

giovedì 21 aprile 2011

HADOKEN!!!


Fanart che ho commissionato al prode Aurelio Mazzara per un regalo di compleanno. I colori naturalmente sono miei.

venerdì 15 aprile 2011

FACCIAMO UN (VIDEO)GIOCO? - PARTE 2


Il videogioco che ho iniziato a realizzare e di cui ho parlato nel precedente post sarà suddiviso sostanzialmente in due parti: una di esplorazione del labirinto ed una di combattimento e gestione dei personaggi creati dai giocatori.
Visto che queste due parti si sovrappongono molto poco, possiamo tranquillamente iniziare dalla prima senza preoccuparci troppo, per il momento, della seconda.
Concentriamoci quindi sull'esplorazione del labirinto.

Primo problema: per avere un labrinto da esplorare, bisogna crearlo! Come si può fare?

Ricorderete che l'idea iniziale era quella di impostare il gioco in modo procedurale, quindi la creazione dei labirinti dev'essere automatica.
Esistono diversi algoritmi per generare labirinti. Quello che ho scelto è chiamato "Randomized depth-first search" implementato con una variante detta "Recursive backtracking". Al di là dei nomi, che sembrano complicatissimi e spaventano, il procedimento in realtà è relativamente semplice:
1 - Il labirinto può essere pensato come una griglia quadrata di celle, che all'inizio sono tutte "piene" (come se si trovassero sepolte all'interno di una montagna).
2 - Si individua a caso una cella di partenza ad un'estremità del labirinto e la si "svuota" (come se si scavasse via un cubo di roccia dentro la montagna).
3 - Si controlla quali celle tra le confinanti sono "piene", considerando un raggio di 2 celle (cioè: non solo le celle confinanti, ma anche quelle dietro di esse). All'inizio, naturalmente, tutte le celle sono piene e quindi tutte le direzioni sono "ammissibili" per costruire il labirinto. Il dettaglio di considerare 2 celle anzichè 1 è molto importante, ma non voglio addentrarmi troppo in tecnicismi, quindi non sto a spiegarvi il motivo (quiz a sorpresa: chi riesce ad arrivarci da solo?).
4 - Si sceglie a caso una direzione tra quelle ammissibili e si "scavano" due celle consecutive, svuotandole.
5 - Ci si sposta nell'ultima cella appena svuotata.
6 - Si continua a "scavare" ripetendo i passaggi 3-4-5 e cambiando direzione a caso, fino ad arrivare a una cella dove non è più possibile "scavare" in nessuna direzione. Questa cella è l'uscita. Se guardiamo bene, ci accorgiamo che il percorso finora è privo di ramificazioni ed occupa solo una porzione relativamente piccola della griglia, quindi non è un granchè come labirinto.
7 - Per aggiungere le ramificazioni, si ripercorre all'indietro il percorso "scavato", spostandosi di due passi (due celle) alla volta, fino a trovarne una da cui si può ricominciare a "scavare" in un'altra direzione.
8 - Si "scava" fino a quando è possibile, poi di nuovo si ritorna indietro passo-passo fino al punto in cui si può ricominciare a "scavare" in un'altra direzione, e così via fino a quando non si è ritornati alla cella di partenza e non è più possibile scavare in nessuna direzione. Il labirinto ora è completo, però è composto solo da corridoi, senza stanze.
9 - Per aggiungere anche le stanze, si possono distribuire a caso nella mappa un certo numero di blocchi quadrati di 2 x 2 celle vuote, "scavando" le celle "piene" che cadono all'interno di quei blocchi. Il risultato saranno stanze dalla forma irregolare, che derivano dall'interazione casuale tra la geometria dei corridoi e quella dei blocchi 2 x 2.

Che fatica! A leggerlo sembrava più semplice!
Però almeno adesso i labirinti creati automaticamente hanno un aspetto decente, inoltre posso generarne un numero pressochè infinito, ognuno diverso dall'altro... e tutto quello che deve fare il giocatore è specificare lunghezza e larghezza della griglia! (altro quiz a sorpresa: per un risultato ottimale, lunghezza e larghezza del labirinto devono essere due numeri dispari e anche la cella iniziale deve trovarsi in posizione "dispari". Sapreste spiegarmi perchè?)

Proseguendo, ora che abbiamo il nostro labirinto possiamo popolarlo di elementi "statici" (cioè: che non si muovono).
- Entrata e uscita le abbiamo già individuate. Per aggiungere un pizzico di sfida in più, mettiamo un mostro che funga da "boss di fine livello" proprio davanti all'uscita.
- Poi passiamo ai forzieri. Per semplicità li collocheremo alla fine di tutti i "vicoli ciechi" (terzo quiz a sorpresa: come posso far capire al computer che una cella si trova alla fine di un vicolo cieco e non invece in mezzo a un corridoio?). Alcuni forzieri conterranno un tesoro ed altri una trappola, con una probabilità che dipende dalle impostazioni definite dal giocatore.
- Infine, visto che utilizzando l'algoritmo "depth-first search" i vicoli ciechi (e quindi i forzieri) sono molto pochi, dobbiamo aggiungere anche ulteriori tesori e trappole distribuiti a caso nei corridoi e nelle stanze. Anche in questo caso il numero di tesori e di trappole dipende dalle impostazioni definite dal giocatore.

Uno dei possibili risultati, disegnato con caratteri di testo, potete vederlo nella figura all'inizio di questo articolo. E' la rappresentazione di un labirinto generato automaticamente in una griglia di 21 x 21 celle. Le impostazioni definite dall'utente sono solo 4: lunghezza, larghezza, frequenza dei tesori, frequenza delle trappole. Tutto il resto è generato dal motore di gioco.

Legenda:
# = Muro
* = Casella di partenza
$ = Forziere contenente un tesoro
T = Forziere contenente una trappola
+ = Tesoro lungo un corridoio o in una stanza
! = Trappola lungo un corridoio o in una stanza
B = Boss di fine livello
@ = Teletrasporto (uscita)

Nel prossimo articolo ci occuperemo della schermata che riproduce la visuale "in soggettiva".

venerdì 8 aprile 2011

FACCIAMO UN (VIDEO)GIOCO? - PARTE 1


Come ho già avuto modo di scrivere, sono un appassionato di videogiochi e mi diverto anche a realizzarli, soprattutto con Flash. Ne ho già fatti alcuni in passato, potete trovarli qui, qui e qui (ci sarebbe in ballo anche un quarto progettino, ma per ora mantengo il riserbo. Rilascierò qualche anticipazione più avanti, quando sarà il momento... ^__^).

Ultimamente ho deciso di rimettermi all'opera, con calma, senza una scadenza precisa e condividendo sul blog tutte le fasi della lavorazione (ma senza entrare nei noiosi dettagli della programmazione).
Non sono un professionista, quindi molte delle considerazioni e delle soluzioni tecniche che adotterò saranno inefficienti. Pazienza, non si può avere tutto dalla vita.

Il gioco che vorrei fare è ad ambientazione fantasy ed appartiene al genere dei cosiddetti "dungeon crawler" con vista "in soggettiva". Per capirci, intendo ispirarmi a miti degli anni '80-'90 come Eye of the Beholder o Dungeon Hack, dove un gruppo di avventurieri deve trovare la via d'uscita in un complesso labirinto, mentre tenta di sopravvivere ai combattimenti contro le creature che lo popolano. Nell'immagine all'inizio del post potete vedere come mi immagino grossomodo la schermata di gioco.

Naturalmente per questioni di tempo dovrò tagliare brutalmente sulla parte grafica e sulle funzionalità di gioco, e questo è un bel problema! Infatti, se il gioco è bruttino e le meccaniche sono pure scarne, il tutto diventa rapidamente noioso.

Come posso fare allora perchè valga la pena di realizzare quello che ho in mente di fare? Come posso produrre un gioco che sia almeno un minimo divertente e che non finisca subito?
Seguendo due linee-guida:
1 - Pensare in piccolo = non posso creare un nuovo Final Fantasy, però posso fare un giochino per passare il tempo ogni tanto.
2 - Adottare un'impostazione "procedurale" = invece di inserire tanti elementi singoli e specifici, disegnati e programmati uno ad uno, è meglio individuare una serie di fattori che possono avere un certo numero di variazioni e fare in modo che sia il motore di gioco a mescolarli più o meno casualmente per generare ogni volta combinazioni diverse, facendo così in modo che il tutto sembri più vario di quanto non sia in realtà.

Ecco spiegato perchè si è fatta strada nella mia mente l'idea del dungeon crawler con vista in soggettiva:
- E' relativamente semplice da programmare
- Ha un impatto visivo più interessante rispetto ad altri tipi di visualizzazione (es. dall'alto oppure laterale), quindi posso fare una figura decente anche con una grafica mediocre
- Può essere strutturato in modo procedurale con estrema facilità (labirinti generati casualmente, grande possibilità di personalizzare le caratteristiche dei labirinti e dei personaggi, ecc...)
- Sorprendentemente in giro per la rete non ho trovato nessun giochino Flash dello stesso tipo!!!

Nel prossimo post di questa serie entrerò un po' più in dettaglio nel game design.

venerdì 25 marzo 2011

MIO!!!


Oggi è uscito, oggi l'ho comprato! Il prossimo passo sarà acquistare anche il primo videogioco, che dovrebbe arrivare nel pomeriggio (Super Street Fighter IV - 3D edition... BWAHAHAHAH!!!)
...
...
...
A proposito: SI', l'effetto 3D senza occhialini è esattamente tanto figo quanto sembra!!!

lunedì 11 ottobre 2010

INTERACTIVE FICTION FAI-DA-TE



Sono sempre rimasto affascinato dalle cossiddette "avventure testuali", più correttamente chiamate in inglese "interactive fiction".
Siccome mi piace inventare storie, ho pensato più volte di scriverne qualcuna, però mi sono scontrato subito con alcuni problemi fondamentali:
- dovrei imparare un linguaggio di programmazione apposito (ad esempio Inform7)
- dovrei scrivere ramificazioni della storia che tengano conto di tutte le possibili conseguenze di ogni singolo comando inserito durante il gioco, complicando tutto esponenzialmente al crescere della lunghezza della storia
- potrei scrivere solo giochi per altre persone, visto che io dovrei necessariamente essere a conoscenza di ogni singolo passaggio della storia.
A quel punto mi sono posto una domanda un po' strana: "se volessi inventare una storia senza sapere a priori cosa succederà, come potrei fare?"
Volevo insomma implementare un sistema per poter giocare in solitario un'avventura testuale lunga a piacere, superando il paradosso di essere sia il creatore sia il lettore della storia.
Ma come si può inventare una storia senza prima conoscerla?

Dopo un po' di riflessione, la soluzione si è presentata più semplice del previsto:
1 - Scrivo un paragrafo della storia
2 - Concludo il paragrafo descrivendo una situazione incerta (un dilemma, un pericolo incombente, una scelta da compiere, ecc...)
3 - Pongo una domanda su come si risolverà la situazione
4 - Lascio che qualcun altro mi dia la risposta
5 - Proseguo la storia sulla base della risposta ottenuta.

A quel punto si trattava di pianificare concretamente l'idea in termini informatici, ed il problema successivo era: "come faccio a scrivere un programma che risponda in modo sensato alle domande su come procederà la storia?". Anche qui la risposta era piuttosto semplice: basta formulare le domande in modo che il computer debba rispondere solo con un "" o un "no" (e relative gradazioni intermedie).

Una volta stabilito quello, la fase di programmazione poteva essere affrontata con facilità, tanto da permettermi di realizzare al volo sia una versione in italiano che una in inglese.
Naturalmente il risultato finale è molto grezzo, tanto che per il momento il salvataggio ed il caricamento di una storia devono essere fatti a mano (copiando/incollando il testo della storia in/da un file di testo appositamente creato), però funziona!
A questa microscopica applicazione ho dato il nome di "Interactive Storytelling Tool" e potete trovarla all'indirizzo http://istool.bravehost.com/ (oppure tra i "links" nella colonna di destra).

Spero che lo troviate divertente!
Buona storia a tutti! ^__^

sabato 5 dicembre 2009

SPEAR CITY HEROES DOUBLE RUMBLE





Finalmente ci siamo!

Da oggi potete giocare alla versione "open beta" del secondo videogioco degli Eroi di Spear City: Spear City Heroes Double Rumble!

Scegliete due personaggi, due avversari, lo scorcio di metropoli che preferite e vivete in prima persona le battaglie più epiche dei nostri supereroi preferiti!

Troverete 10 personaggi (5 supereroi ed altrettanti supercattivi), 10 arene e 3 modalità di gioco:

- Partita veloce (per chi ha poco tempo a disposizione e vuole solo divertirsi un po')

- Sopravvivenza (battaglia contro infiniti avversari, progressivamente più potenti. Quanti ne riuscirete a sconfiggere?)

- Sfide speciali (combattimenti sottoposti a particolari condizioni, più difficili di quelli normali)

E non è tutto: ho realizzato il gioco in modo da poterlo "espandere" facilmente, quindi in futuro aggiungerò nuovi personaggi, nuove arene di combattimento e nuove sfide speciali! (tenete d'occhio le Copertine Impossibili, perché le novità verranno principalmente da lì, come accade per tutti i videogiochi tratti dai fumetti... ^__-).

Ma torniamo a Double Rumble: naturalmente all'inizio non sarà possibile accedere a tutti i contenuti: vi dovrete accontentare di 4 personaggi, le rispettive arene e la modalità di gioco "Partita veloce".

Per sbloccare i contenuti extra dovrete sconfiggere un certo numero di avversari, ricominciando da capo ogni volta che giocate.

Come dite? Ricominciare da capo tutte le volte è una palla e non lo volete fare? Vabbè dai, siccome siamo sotto Natale e sono buono, vi faccio un regalo. Cliccando qui riceverete un codice segreto che vi permetterà di sbloccare altri 4 personaggi, 4 arene e la modalità di gioco "Sopravvivenza"!

L'accesso agli ultimi 2 personaggi, le ultime 2 arene e la modalità di gioco "Sfide speciali" invece dovrete guadagnarvelo sconfiggendo i vostri avversari... a meno che non decidiate di fare il regalo di Natale a me! (eheheheh... ^__-) Mi spiego: fare videogiochi per gli altri è divertente, ma è anche molto impegnativo e ci vogliono mesi di tempo, soprattutto se uno deve fare tutto da solo come me!

Non ho intenzione né voglia di distribuire i miei lavori a pagamento, infatti tutti i contenuti di Spear City Heroes Double Rumble sono e saranno sempre accessibili gratuitamente. Però, se apprezzate i frutti della mia fatica e pensate che valgano qualcosa, qui sotto trovate il pulsante per farmi una piccola donazione. In cambio riceverete un altro codice segreto, che vi permetterà di sbloccare tutto subito, e che sarà valido anche per i contenuti che aggiungerò in futuro! Dove la trovate un'altra offerta così? Praticamente è regalato! (ah, no, dimenticavo, è regalato comunque... ^__^')

E ora concludo con un ultimo regalo: se cliccate qui potrete scaricare pure il manuale del gioco, nel caso abbiate qualche difficoltà (anche se non dovrebbe essercene troppo bisogno).

Per qualsiasi necessità (e soprattutto per segnalare gli eventuali bachi) lasciate un commento e vi contatterò, oppure scrivete una email all'indirizzo che trovate nel mio profilo (colonna a destra, in alto).

Buon divertimento!!!

Per le donazioni:






sabato 28 novembre 2009

DOUBLE RUMBLE STA PER ARRIVARE!


Attenzione - attenzione!

DoubleRumble, il secondo videogioco degli Eroi di Spear City, è in dirittura di arrivo!

Ancora qualche piccolo ritocco, poi potrete giocare alla versione "open beta", che approderà su internet nel corso del prossimo fine-settimana!

Rispetto al primo videogioco ("Per un Pancho di Dollari") questo sarà molto diverso, sia per il genere completamente differente (un picchiaduro anzichè un'avventura), sia perchè DoubleRumble sarà "ampliato" con personaggi nuovi o sfide speciali nel corso del tempo!

...e poi non dite che non vi tratto bene! ^__-

domenica 15 novembre 2009

PICCOLI PROGGETTINI ORMAI NON SONO PIU' TANTO "PICCOLI"








Tutti i personaggi di Spear City Heroes, comprese le immagini sopra riportate, sono Copyright di Luca Bonisoli

Sicuramente avete presente Double Rumble, il nuovo videogioco degli Eroi di Spear City su cui sto lavorando. Ebbene, oggi sono molto orgoglione di presentarvi la galleria dei personaggi sviluppati fino ad ora! Oltre ai nostri quattro eroi Pancho, Mach5, Thunderlass e Maximum, che ormai conosciamo bene, potete ammirare altrettanti super-cattivi, un po' meno noti.
- Il primo è Vinnie La Rosa, che avevamo già visto nella primissima avventura dei nostri eroi (qui, qui, qui, qui e qui).
- Il secondo è Kernel, super-cattivo legato all'eroe Armstrong, di cui per il momento non svelo nulla per scaramanzia (spero ci possano essere sviluppi interessanti, nel caso vi terrò informati).
- Il terzo è costituito dall'accoppiata Gaspard / Aurelie Lefevre, ossia Les Enfants Terribles, comparsi per la prima volta quest'estate nel videogioco Per un Pancho di Dollari.
- Il quarto ed ultimo è Alexander Faust, le cui origini sono strettamente legate al supereroe Steelfog (prima o poi le racconterò, non temete). Anche questo è un personaggio nuovo, ma lo ritroverete presto, per l'esattezza nel numero 4 delle Copertine Impossibili.

Oltre a questi 8 personaggi, il videogioco conterrà due personaggi "bonus", dei quali non allego nessuna immagine perchè sono un genio del male e voglio tenervi in sospeso (...ok, mi avete beccato, il vero motivo è che non li ho ancora disegnati ^__^'):
- Il primo è Tafferuglio (anche lui comparso per la prima volta nel videogioco Per un Pancho di Dollari).
- Il secondo è Ooter (devo aggiungere altro?)

giovedì 22 ottobre 2009

PICCOLI PROGETTINI CONTINUANO A CRESCERE



DoubleRumble, il nuovo videogioco degli Eroi di Spear City, è a un ottimo punto di sviluppo. Dall'ultimo aggiornamento ho aggiunto la modalità di gioco "sfide speciali" e la possibilità di scegliere l'arena di combattimento nella modalità "partita veloce". La struttura del gioco è quasi completa, poi dovrò aggiungere un po' di personaggi nuovi (la maggior parte saranno super-cattivi, visto che tutti i personaggi attuali sono super-eroi) e finalmente potrò pubblicare una versione beta del gioco. Al momento sono presenti quattro personaggi (i nostri vecchi amici Pancho, Mach5, Maximum e Thunderlass) e ne sto pianificando altri cinque, che potrebbero ulteriormente aumentare col tempo.

Come potete vedere dalle schermate qui sopra, sto cercando il più possibile di rendere l'impressione di "giocare un fumetto".
Ce la farò?
Me lo direte voi! ;-)

lunedì 12 ottobre 2009

PICCOLI PROGETTINI CRESCONO...

Qualche mese fa avevo annunciato un nuovo videogioco sugli eroi di Spear City, e lentamente il progetto sta prendendo forma.
Allo stato attuale sono presenti quattro personaggi (i nostri eroi: Pancho, Mach5, Maximum e Thunderlass, che potete vede in azione qui sotto) e due modalità di gioco (partita veloce e sopravvivenza).
Ora sto lavorando ad una terza modalità di gioco (sfide speciali) e ad aggiungere alcuni dettagli secondari ma importanti ai fini dell'esperienza di gioco.
Il prossimo passo sarà aggiungere almeno altri quattro personaggi (tutti super-cattivi, naturalmente) e lavorare ancora al bilanciamento del gioco, poi sarà la volta del beta testing.

Ah, e naturalmente dovrò tradurre tutto in inglese, visto che ho in programma di internazionalizzare il gioco...

Non ho programmato date precise per il "lancio"; diciamo che se riuscissi a farcela entro fine anno mi riterrei soddisfatto...