domenica 18 dicembre 2011

Aggiornamento Blog - Ubuntu Font

Ora grazie a http://www.google.com/webfonts il blog utilizza il bellissimo Ubuntu Font!

domenica 6 novembre 2011

Contre Jour - IGF game



Contre Jour è un adventure puzzle game dalla musica cullante (pianoforte tipicamente francese, David Ari Leon) e dalla grafica molto curata, tanto da autodefinirsi
Blurring the lines between games and interactive art
È un gioco per iOS(>3), quindi si usano le dita. Il giocatore deve far muovere e sopravvivere un "Petit" interagendo con il mondo circostante, in cui sono presenti simil-corde, simil-elastici, portali (sì, alla Portal), cose da raccogliere e cose da evitare, l'obiettivo è una specie di portale azzurro.

Ah, lo stile della grafica ricorda un fottio World of Goo secondo me.

Compagnia: Mokus (L'viv, L'vivska - Ukraine)
Sito web: http://www.chillingo.com/games/contre-jour/ (sulla pagina di IGF non c'è, in effetti è il sito del publisher, Chillingo di EA, che ha pubblicato anche Angry Birds)


Pagina IGF

Blink (Blue Void Studios) - IGF game



Blink è un platforming puzzle game in prima persona con un velo di mistero. Sfrutta una ben consolidata caratteristica di gameplay: il passare "on run" tra due diverse versioni del mondo, in questo caso la scusante è una diversa percezione della realtà.

Compagnia: Blue Void Studios (Portland, Oregon - United States)
Sito web: http://blink.bluevoidstudios.com/



Pagina IGF

Autumn Dynasty - IGF game



Autumn Dynasty è un gioco di strategia in tempo reale con grafica in stile dipinti tradizionali cinesi, è pensato per un'interfaccia touch e si comanda con pennellate :)
Un difetto? È per iPad.
Sono presenti la modalità campagna e la modalità schermaglia, disponibile anche in modalità multiplayer attraverso il bluetooth.


Compagnia: Touch Dimensions (Singapore, Singapore - Singapore)
Sito web: http://autumndynasty.touchdimensions.com/



Pagina IGF

giovedì 3 novembre 2011

Amphora - IGF game

Ecco che arriva una carrellata di giochi selezionati apposta per voi dall'enorme lista degli iscritti all'IGF di quest'anno! Non li ho giocati, ho solo visto i video/immagini e non vi metto giochi che già conosco, perchè forse li conscete anche voi :) Ve li posterò in ordine alfabetico per non fare torti a nessuno.




Amphora, la cui grafica è dichiaratamente ispirata ai teatri delle ombre, è un puzzle game basato sulla fisica, nel quale il giocatore comanda una mano fantasma uscente dall'anfora del nome.

Compagnia: Moondrop (Hamar, Hedmark - Norway)
Sito web: http://amphora.moondrop.no



Pagina di IGF

mercoledì 19 ottobre 2011

OmniTouch - il picoproiettore, la mano e le superfici - demo video

La Microsoft negli ultimi anni sta portando avanti molte ricerche nel campo del touch e delle sue possibili applicazione e forme. Qui vediamo un sistema molto futuristico, in cui lo schermo di divide in pezzi e si distribuisce su quello che circonda l'utente, che interagisce con le proprie dita; il tutto grazie ad un picoproiettore e a una telecamera di profondità a corto raggio. Avere un aggeggio sopra la spalla forse sarà scomodo, ma le applicazioni sono molteplici e la comodità data dal loro utilizzo potrebbe compensare il dover fare il pirata col pappagallo sulla spalla :)

sabato 17 settembre 2011

RECALL - FirstPersonShot

Pixel Prospector ha pubblicato questo video di RECALL. Per i primi secondi ho pensato "perchè tiene il braccio così? Sarà un'animazione remporanea.Perchè si chiamerà REC ALL? Come avranno inserito il registrare nel gameplay?" Poi Inizia a registrare e a rewindare... e poi a sovrascrivere e... guardate:

Recall Concept Demonstration from imwill on Vimeo.

mercoledì 31 agosto 2011

Portal: No Escape - live Action Short Film

Ecco un altro bellissimo cortometraggio su Portal, realizzato con una qualità tecnica eccellente. Grazie a Eclipse per averlo postato su IndieVault.

Escape From City 17 - Part Two (e Part One)

Finalmente dopo la prima parte, la quale mi lasciò letteralmente a bocca aperta e commosso, I Purchase Brothers hanno realizzato, con soli 250$, la seconda parte di Escape from City 17!

Noto che avevo detto qua che avevo notato che non l'avevo postato e che l'avrei postato, ma non lo ho mai fatto!

*frustate*

Quindi per rimediare includo anche la prima parte

lunedì 29 agosto 2011

The Binding of Isaac - trailer

Sempre grazie a indiegames.com ecco il trailer del nuovo gioco del creatore di SuperMeatBoy, Edmund McMillen. The binding of Isaac dovrebbe uscire a settembre su Steam, si vocifera a 5$. In un'intervista realizzata da IndieVault E.McMillen descrive il gioco come un
un roguelike shooter basato sulla struttura dei dungeon di Zelda
Il gioco vedrà il giocatore impersonante Isaac ad esplorare una serie di stanze create manualmente da E.McMillen(140 differenti stanze), la cui disposizione sarà invece generata casualmente, mantenento un crescendo di difficoltà. Ci saranno molti nemici e potenziamenti differenti e combinabili (i potenziamenti) e un sacco di riferimenti a culti vari ed eventualmente satanici:
Col passare del tempo le cose sono diventate un po’ più macabre, e ho cominciato a introdurre temi biblici, assieme a bambini senza testa che vagabondano nelle stanze buie, Satana che incombe nell’oscurità, carte dei tarocchi, riferimenti all’astrologia, rituali pagani.



Sarà sicuramente un "bought day one" :D

Neotokyo - Source SDK Mod

Indiegames.com ieri mi ha fatto scoprire Neotokyo, un mod per Source SDK (quindi per farlo andare basta che abbiate un gioco che funziona con il Source Engine, come HL2, TF2, CS:source, Portal...), praticamente un gioco a se. Uno sparatutto multiplayer con un'ambientazione giapponese futuristica realizzata egregiamente. Sul sito ufficiale si possono trovare sfondi, screenshot, link al download del mod, link correlati dettagli sul team di sviluppo e la descrizione del gameplay. Da qui cito alcuni passi che mi hanno fatto esaltare non poco:
Don't get shot. Take your time, use your abilities and be careful because there is no healing and no respawning.
Non farti sparare. Prenditi il tuo tempo, usa le tue abilità e sii attento perchè non ci sono rigenerazione respawning.
If you reload with a primary weapon and your clip is not empty, and remaining rounds in the clip will be discarded along with the spent clip, and replaced with a fresh one. Be careful not to waste too many rounds in this way.
Se ricarichi con un'arma primaria e il tuo caricatore non è vuoto, e i rimanenti colpi nel caricatore verranno scartati insieme al caricatore usato, e sostituito con uno completamente nuovo. Sii attento a non sprecare troppi colpi in questo modo.

Caratteristiche come queste sono sempre state il mio sogno. Dovrebbero quais cancellare il gameplay arcade pieno di bunny hopper, corner hopper, dolphiner, runner, noob toober ecc., ovvero tutto quello che caratterizza CoD :D Finalmente un po' di tattica o muori e non giochi fino alla nuova partita! Inoltre se fai troppo fuoco amico vieni espulso :D

Lo metto in download instant :)

Qui c'è il trailer ufficiale, è un po' vecchio (del 2008), ma rende l'idea molto bene :)

lunedì 22 agosto 2011

Gears of War 3 - Intro clip

Gears of War 3 è pronto, i dischi stanno venendo stampati ora, per essere distribuiti il 20 settembre, e intanto Epic ci fa ingannare l'attesa con il video di introduzione: ah, e grazie ai vantaggi dati dall'utilizzo dell'Unreal Engine, che garantisce un'ottima portabilità, avremo presto GoW3 su PC!

...

cosa?

... T_T

No, non faranno mai un porting per PC. Mai.

mercoledì 29 giugno 2011

Outside Aperture - Cortometraggio ispirato a Portal

È più di un mese che non posto, eppure di cose da postare ce ne sono state.
Questi esami-noia del cavolo...

Per tirarci su il morale ecco un bel video ispirato a Portal!
Mi raccomando l'HD!

sabato 26 marzo 2011

Play - di David Kaplan

Un bellissimo cortometraggio statunitense, che ho scoperto ieri notte all'ZScience e di cui mi sono innamorato.
Per un videogiocatore e/o per un aspirante game programmer è assolutamente un must, da vedere assolutamente.

giovedì 17 marzo 2011

Snapshot - new gameplay video!

Un nuovo video di gameplay per Snapshot! Ne avevo già parlato qua
Come si vede dal video gli oggetti mantengono le caratteristiche dinamiche quando li si fotografa e li si rilascia, e si possono anche rilasciare ruotati. Inoltre si vedono anche cose come un disegno di un elefante che rilascia un elefante vero e proprio.
Questo gioco mi sembra sempre più una figata :D.

mercoledì 23 febbraio 2011

Fray - teaser short

Fray è un gioco di strategia a turni multigiocatore. Potere trovare tutte le informazioni al riguardo qui
Sembra che abbiano un op' di soldi i ragazzi, e hanno fatto questo corto (credo iniziato qualche mese fa)

martedì 22 febbraio 2011

Paolo Pedercini - AKA "La Molle Industria" - Videocartolina - IGDA Italia & Global Game Jam 2011

Un titolo bello lungo eh!

Ringrazio il mio amico Martino Ferrari per avermi passato questo video. Davvero.

Prima vedetevi il video.

IGDA Italia & Global Game Jam 2011 from paolo pedercini on Vimeo.


Da circa quando ho deciso di diventare un programmatore, diciamo tra la 1ª e la 2ª liceo, ho avuto il sogno di creare in Italia una casa produttrice di videogiochi, perché in Italia non ce n'era. Da circa un anno i giochi Indie stanno esplodendo (tranquilli non è pericoloso :D ), e ho visto un sacco di giochi sviluppati da svedesi. In 4ª liceo (credo) organizzavo un viaggio a Stoccolma con un mio amico, poi cambiato in Bruxelles. La Svezia mi ha sempre attirato, la Scandinavia tutta mi ha sempre attirato. La sua scena musicale riempie gran parte della mia libreria musicale. Sono in erasmus a Valencia solo per una questione di corsi, la mia prima scelta sarebbe stata la Svezia, ma non c'era nulla per noi di Genova. Questo ragazzo dice il vero, un sacco di cose vere e sagge. Un videogioco, come un film, può essere arte, cultura o una carota per trainare il carro dei soldi. Molto probabilmente se un videogioco è sviluppato o finanziato da grandi e traboccati di denaro signori dell'industria del videogame, sarà una bellissima carotona in ceramica per ingannare i consumatori. Se invece un videogioco è sviluppato da gente che non lo fa per guadagnare ma per passione, da sviluppatori indipendenti, liberi dal denaro, potrebbe essere qualcosa di vero, che comunica, trasmette valori e sentimenti.
Spero di riuscire a continuare con i miei studi paralleli all'università (visto che l'università mi offre dei salatini, e sono nel deserto a mezzogiorno, e ho sete) e di fare qualcosa di concreto al più presto. Spero che quando avrò finito l'Università, o anche prima magari, conoscerò tanti ragazzi Italiani come me, che mettano passione nella creazione di videogiochi; altrimenti la tentazione di andare in Svezia o magari in Danimarca è forte.
Per adesso la strada continua sotto i miei piedi, e non mi resta che camminare, sperando che non ci sia nebbia, così che possa ammirare un bel paesaggio.

P.S.: quel Paolo dice il vero sì, ma sul mio tempo libero... cavolo è quasi finito Febbraio e io sono ancora qui a tentare di studiare cose che non mi piacciono per degli esami... fosse per me avrei già messo delle belle "V" sulla mia whish list di Amazon e mi sarei tuffato nell'OpenGL...

venerdì 4 febbraio 2011

OpenGL SecondProject - Texture sui modelli!

Vedere una casa tutta bianca e senza luci né ombre è certo un bel passo in avanti, ma ad ogni passo ne deve seguire un altro. Per questo ho dato ai modelli le loro texture. Anzi la loro texture. Sì, perchè un modello tridimensionale per coprirsi di colore può usare o più file o uno solo, equivalente ai "più file" opportunamente ruotati per stare tutti in un'unica immagine, e per ora ho dato ad ogni modello solo una texture.
Sono partito con l'idea di usare tutte le texture, per dare la possibilitá a modelli con texture multiple di entrare nel mondo in construzione, ma sono incappato in un problema: in un 3ds, da quello che vedo grazie alla libreria lib3ds, per ogni mesh sono elencati in array tutti i vertici e tutti i triangoli, ognuno con i 3 indici dei vertici che lo compongono e l'indice del materiale di cui è fatto. Ogni materiale ha 2 texture, e tante altre cose, come normalMaps, ecc. Le informazioni sulla posizione della texture per i vertici cono messe in un bell'array di coppie UV, il che mi fa pensare che vi sia una coppia UV per ogni vertice, peccato che se così fosse potrebbe funzionare solo con una sola texture poichè, in caso di texture multiple, ad un vertice dovrebbero corrispondere diverse coordinate UV a seconda di quale triangolo si sta considerando. Ho cercato un po' online, ma non ho trovato gran che (se qualcuno avesse trovato qualcosa mi farebbe un favore facendomelo sapere :D), così ho deciso di caricare solo la texture del primo materiale che incontro e di usarla per tutto il modello. Che poi pensandoci bene avere una texture sola per un singolo modello dovrebbe aumentare le prestazioni rispetto a dover caricare più texture. Certo si perde il vantaggio di poter riusare texture base per comporre texture più complesse (ad esempio una texture per il cemento usata su diversi modelli di edificio), ma si può ovviare a questo creando asset componibili, ovvero non modellare un edificio intero, ma le sue parti separatamente, il che porta anche il vantaggio del riutilizzo dei modelli oltre che delle texture.

Usando solo la prima texture i modelli con più texture appaiono corretti solo nelle parti originariamente coperte dalla texture usata.

il modello della casa dovrebe avere anche altre texture...

Mentre modelli con una sola texture appaiono corretti al cento percento!

il modell del carretto ha una sola texture, quindi è visualizzato correttamente

Implementando questa nuova caratteristica di base ho anche introdotto un gestore di texture, ceh permette di non caricare più volte una stessa texture. Ho scelto di implementarlo con metodi statici, invece di ricorrere ad una variabile globale, ma si può sempre cambiare.

Per caricare le texture dei modelli nella loro cartella ho incluso la libreria Boost FileSystem, perfettamente portabile, per poter usare la cartella del modello come base per il path della sua texture.

Dovrò poi capire come usare normal-maps, reflection-maps e compagnia bella.
Per qualsiasi cosa commentate!

mercoledì 2 febbraio 2011

OpenGL SecondProject - Texture!

Ieri ho sentito la necessità di conoscere gli FPS dell'applicazione che sta nascendo, così ho aggiunto un semplice contatore di FPS (semplicemente contando il tempo che passa tra un ciclo e l'altro e dividere "1 secondo" per quel tempo, niente medie o cose simili per ora). Unico problema: come visualizzare gli FPS? Stampandoli sullo schermo, sì, ok, ma OpenGL e SDL non ci sanno alcun supporto per la stampa di testo (GLUT ha qualcosa di essenziale, ma lavorando per un gioco non si può usare GLUT :D ), quindi bisogna provvedere da sè o trovare qualche libreria. Qualche libreria c'è, come google vi potrà mostrare, ma questa volta ho preferito fare da solo. Ho ricevuto un grande aiuto dal codice di Lugaru, dal quale ho preso l'idea di usare le liste di OpenGL (praticamente una serie di azioni memorizzata e associata ad un Id, richiamabile a necessità) e una texture per i caratteri (praticamente tutto il necessario :D).
Oh, guarda! "Texture"! Bisogna aggiungere il caricamento delle texture! FreeImage, la conoscete? È una famosa libreria che permette di leggere e scrivere immagini in tantissimi formati rilasciata con due licenze: GNU GPL e FIPL. La seconda è quella che mi interessa: ne permette l'uso a fini commerciali.
Per riuscire a caricare correttamente le immagini ho perso un sacco di tempo. Per memorizzare delle texture con OpenGL serve un array contenente i dati di tutti i pixel, in questo caso texel. Per capire come ottenere il suddetto array ci ho messo un po'; la luce mi è stata portata da questo tutorial. inizialmente ho usato il wrapper a oggetti FreeImagePlus, ma seguendo il tutorial, che non ne fa uso, ho capito come usare la libreria classica e lo ho abbandonato.
Per i primi test ho fatto un'immagine con GIMP e la penna del mio TabletPC alla veloce, quindi alcuni caratteri escono un po' dal loro riquadro e fanno capolino in quello di qualcun altro (vedi lo spazio); inoltre sono a risoluzione molto bassa. Ho scoperto che posso usare l'UbuntuFont e credo che farò una texture con quello, dato che lo trovo fantastico. Ora i due quadrati hanno una texture!

Quello grande ha una texture rettangolare (scelta rettangolare per vedere come si comportava): una foto che ho fatto ad un concerto degli Ulver.

quadrato grande: foto dal concerto degli Ulver - the rest is silence

Quello piccolo porta su di sé la texture del font.

quadrato piccolo: texture del font

Ho aggiunto il test sullo Z-buffer e sull'alpha per poter "non-vedere" correttamente gli oggetti coperti da altri e per avere la trasparenza con la texture del font. Una delle cose che ho aggiunto ha portato un bug, che è lo stesso che ho in Minecraft, e per questo credo potrebbe essere causato dalla mia scheda grafica: da certi poligoni partono triangoli con un vertice al punto di fuga. Credo accada solo con poligoni senza texture. Vedrò di indagare.

bug dei triangoli al punto di fuga

Ho fatto anche qualche ricerca sulle proporzioni del campo visivo umano, per avere una visione il più possibile completa e realistica, e ho scoperto che abbiano all'incirca un'apertura orizzontale di 160º e verticale di 120º, il che vuol dire 4/3. Sconvolgente eh? E i 16/9? non dovrebbero essere le proporzioni che più si avvicinano a quelle della nostra visuale? Beh, tutti quei gradi comprendono tutto quello che vediamo, ma se consideriamo la zona ad alta risoluzione ecco che i 4/3 scompaiono e compare una zona ellissoidale, più simile ai 16/9, anche se la zona con massima risoluzione è in realtà di circa 2º (º-º poco, no?). Pero ora le immagini che vedete sono 640*480(4/3) e con un FOV orizzontale di 120º. Avrò tempo per riflettere su questi aspetti.
Non ho postato codice, ma se avete dubbi o curiosità, anche non relative al codice, non esitate a commentare e chiedere!

lunedì 31 gennaio 2011

Imparando OpenGL: OpenGL SecondProject has begun

Come saprete "da grande" voglio programmare videogiochi (sì, proprio tutto :D), quindi, dopo aver terminato il corso di grafica, riprendo a giochicchiare con OpenGL, ma adesso più consapevole e più seriamente. Ho deciso di postare i miei progressi (fiducioso che ce ne saranno :) ), poiché visto che ho perso un sacco di tempo a cercare cose online magari sarò utile a qualcun altro.

Per prima cosa ho scaricato il sorgente di Lugaru (gran gioco, lo consiglio) e ci ho dato una letta: "OMG complesso! Iniziamo con calma..".

Prima di iniziare a scrivere codice: installare svn e creare un repository. Pensavo fosse complicato, ma non c'è da fare quasi nulla, visto anche che NetBeans dialoga volentieri con svn :). Sapendone poco o nulla ho cercato un tutorial: html.it aiuta sempre. Per non usare il terminale (a parte per la creazione che è una riga) ho installato le GUI che ho trovato nelle repository di Ubuntu: RapidSVN e esvn (optando poi per RapidSVN).
Usare un programma di VersionControl è una buona prassi quando si creano progetti medio grandi: mi evita di fare tanti zip con tutto il progetto dentro e mi permette di avere uno storico delle modifiche dettalgiato e di poter tornare ad una versione precedente con semplicità.

Come prima cosa ho scritto le solite classi Vec3 e Vec2 (credo si capisca cosa sono, ma non si sa mai: rispettivamete vettore tridimensionale(XYZ) e vettore bidimensionale(XY)) con tutti i metodi che ho potuto immaginare. In uno spazio 3D non possono mancare le rotazioni. Come si effettuano le rotazioni in 3D? O con matrici o con quaternioni. La differenza? I quaternioni sono composti da 4 variabili, mentre una matrice ne ha 16, e per i calcoli è più semplice (leggi con meno errori numerici) e veloce; difatti in computer grafica si usano quasi sempre i quaternioni (attenzione perchè per effettuare trasformazioni generiche vengono usate le matrici, vedi OpenGL, quindi è bene implementare anche loro). Unico problema: mai usati quaternioni. Ero abbastanza fuso e abbattuto, dopo aver tentato di capire come usarli leggendo un po' di roba su wikipedia e varie google ricerche, quando la salvezza mi si carica in una tab di Chrome: il codice con un poco di spiegazione di una classe Quaternions sulla GameProgramming Wiki!
Amore per la wiki <3.
Dopo 4 classi matematiche (ho scritto anche Matrix4) c'è bisogno di vedere dei risultati per tirare su il morale. Ancora una, dai forza: Camera. Per poter esplorare un mondo 3D serve un occhio! La visuale in OpenGL è gestita con una matrice di trasformazione che viene applicata ai vertici per il rendering: un po' complicato da gestire, quindi serve un wrapper! Una bella classe Camera con tutti i suoi bei metodi per muoverla, impostarla e applicarla in OpenGL. Riporto gli header:
class Camera
{
public:
    Vec3 pos;
    Vec3 target;
    Vec3 vertical;
    virtual void setGLCamera(void)=0;
    Camera(void);
};

class PerspectiveCamera : public Camera
{
protected:

public:
    double near, far;
    double width, height;
    Vec2 vanishingPoint; // 0.0 - 1.0
    double FOV;
    double ratio;
    PerspectiveCamera(void);
    void setGLCamera(void);
    void setFOV(double FOV);
    void setAspectRatio(double ratio);
    void setVanishingPoint(Vec2 vp);
    void setNear(double near);
    void setFar(double far);
    Vec3 getDirection(void);
    void moveX(double deltax);
    void moveY(double deltay);
    void moveZ(double deltaz);
    void move(Vec3 v);
    void rotateX(double alphax);
    void rotateY(double alphay);
};
Ho fatto una classe Camera e una sua estensione PerspectiveCamera per non precludermi altri tipi di visuale, come la proiezione ortogonale o la isometrica. La classe madre ha solo una classe virtuale, ma nel caso ne metterò altre, come move* ad esempio (che sarebbe da mettere...).
Per applicare la camera prospettica alle OpenGL uso due funzioni: glLookAt per posizionarla e gñFrustum per impostarne le caratteristiche.
void PerspectiveCamera::setGLCamera()
{
    glLoadIdentity();
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(pos.x, pos.y, pos.z, target.x, target.y, target.z, vertical.x, vertical.y, vertical.z);
    glMatrixMode(GL_PROJECTION);
    glFrustum(-vanishingPoint.x*width, (1-vanishingPoint.x)*width, -vanishingPoint.y*height, (1-vanishingPoint.y)*height, near, far);
}

Attenzione al rapporto che ci dev'essere tra FOV, near e width:
void PerspectiveCamera::setFOV(double FOV)
{
    this->FOV = FOV;
    this->width = near*tan(DEG2RAD(FOV/2.0))*2.0;
    this->height = width/ratio;
}
(ovviamente questa relazione si vede anche in tutti metodi che modificano near o width)

Oh, finalmente si possono vedere dei risultati!
Imposto un main con GLUT e grazie alla presenza di un buon wrapper con tanti utili metodi voillà: una telecamera in prima persona!

Ringraziamo GLUT e diciamogli addio. Sì, perchè GLUT è una libreria tanto utile e semplice da usare, ma non è pensata per videogiochi: dobbiamo passare a SDL!
Come OpenGL, SDL è una libreria gratuita, aperta e multipiattaforma. Permette di comunicare con i vari dispositivi di input, come mouse, tastiera e pad, con l'eventuale gestore di finestre, e ci dà una mano in altri vari campi. Rispetto a GLUT è meno specifica e più versatile: c'è da scrivere di più, ma il gioco vale la candela.
Per usare SDL con OpenGL in C++ ci sono vari tutorial segnalati sul sito ufficiale. Io ho usato questo di Cone3d e vari dal sito SDLtutorials.com, grazie ai quali ho scritto una classe per gestire i vari input e una per le finestre. Per quanto riguarda gli input più in là credo che proverò l'ottimizzazione di Game Programmer.

prima visione: 2 quadrati


Che bello: posso esplorare il mio mondo 3D! Due quadrati... un po' vuoto no? Prima di andare avanti con la grafica bisogna mettersi nelle condizioni di poter testare il lavoro: caricare modelli 3d.
Dando un'occhiata al codice di David (il genio che ha scritto Lugaru) apprendo che usa il formato .solid, credo fatto da lui ma non ne ho la certezza, e che lo legge e parsa direttamente, senza usare librerie esterne. Io preferisco usare un formato diffuso per semplificare la vita ai modellatori (quindi a me :D) e a me che dovrei scrivere tool e plug-in di conversione. Mi metto a esplorare il mondo dei formati per modelli tridimensionali. Ero alla ricerca di un formato aperto e usato da programmi gratuiti come blender, una sorta di standard creato dal mondo Open, come esiste l'OpenDocumentper i documenti, ma sono rimasto deluso e a bocca asciutta. Blender ha un suo formato, il .blend, ma sembra lo usi solo lui e mi sembrava complicato. Cercando guide trovo che alcuni usano formati creati per i vari Quake Engine, altri il .obj, ma la maggior parte usa il 3ds, il formato di 3dStudioMax, programma di modellazione 3d professionale (avete presente cose come Shrek?) la cui ultima versione ora costa 3945$. Ok che potrei scaricarlo gratuitamente con licenza studente (grazie AutoDesk :) ), ma non tutti possono, ok che molti usano copie pirata, ma è una cosa cattiva e, per fortuna, non tutti rubano, e ok che molti software ne supportano l'import/export (no, non si parla di commercio...), ma io volevo qualcosa di più libero, quindi ho tentennato. Dopo un po' mi sono arreso e mi sono deciso per il 3ds. Non rimaneva che trovare una libreria gratuita e usabile commercialmente per gestirlo: ahahah! T_T Altro tempo lanciato nel vuoto alla ricerca dell'arcana libreria. Ho trovato due librerie in licenza LGPL: C3ds, di un italiano, e lib3ds. Dopo averle lette e valutate entrambe ho scelto la seconda perchè mi ci son trovato subito meglio.
Così, predendo conoscenza importante dal codice di Lugaru, ho scritto la classe Model, con il suo bel metodo load, che sfrutta lib3ds per caricare il suo modello e convertirlo in vertici e triangoli. Per ora non ho messo l'uso di texture, normali e mappature varie, ma di certo lo metterò.
A dire il vero prima di preoccuparmi del codice mi sono messo a cercare qualche modello in LGPL da usare come test: altre risatone! È quasi impossibile! Si trovano modelli gratuiti ma nessuno permette l'uso commerciale! Ho trovato solo qualcosa su TurboSquid, un sito che vende modelli 3d, ma ha anche qualcosa gratis. Prima di scaricarne anche solo uno, anche solo per usarlo come test, ho cercato di capire se la licenza permetteva l'uso commerciale: nelle FAQ, presenti anche in italiano, si parla della licenza per modelli comprati, ma credo che i modelli gratuiti si "comprino" a 0€. Si scaricano con licenza lì detta Standard Royalty Free. Se qualcuno sa o crede che mi sbagli al riguardo me lo faccia sapere, grazie :D.
I modelli gratis lì presenti non sono moltissimi, in più io cercavo qualcosa di medioevale, però qualcosa ho trovato.
Ecco l'immagine del primo modello nel mondo virtuale del mio progetto!

il primo modello


Ora dovrò aggiungere un po' di luce per raccapezzarsi meglio, e tutto il resto :D
Per qualsiasi domanda o osservazione, commentate!
Al prossimo post!

domenica 23 gennaio 2011

Snapshot - Gameplay Video

Snapshot è un altro indie game presente su IndieDB che secondo me merita un post. Ve ne parlo ora che è uscito il primo video di gameplay.

Questo gioco è un platformer, se ne vedono tanti di platformer nella scena indie, ma pochi sono originali e meritevoli. Alcuni esempi positivi sono Braid e Gish, per il resto la maggior parte sono i soliti giochi stile Mario and .co, ma non Snapshot.



Dal video si intende cosa si debba fare: raccogliere stelline. Originale? No, per nulla. Nei platformer generalmente il PG deve arrivare alla fine del livello, alla 'porta' che gli permette di uscire e cambiare livello; la sfida per il giocatore può stare nella presenza di nemici e quindi nel doverli eliminare o evitare, nel compiere acrobazie per muoversi nel livello, nel risolvere enigmi, raccogliere oggetti o attivare congegni per 'sbloccare' l'uscita. Queste caratteristiche spesso convivono tra di loro e con altri elementi innovativi per formare giochi originali. È questo il caso: in Snapshot il giocatore ha l'abilità di fotografare zone della mappa e di riposizionare le foto fatte su di essa, con che risultato? Insieme alle immagini vengono catturati gli oggetti 'dinamici' stessi, che vengono poi rilasciati al riposizionamento della foto che li contiene. Grazie a questo meccanismo l'utente può sfruttare la moltitudine di oggetti presenti nel gioco per risolvere enigmi, un po' come se il PG li prendesse in inventario, con la differenza che così si possono prendere e rilasciare oggetti in posti non direttamente raggiungibili dal PG, e ovviamente che la modalità originale e intrigante aumenta il divertimento.

Per concludere: mi sembra un ottimo gioco, gameplay originale e grafica piacevole, solo manca il sapere quale sarà il collante che terrà assieme i vari livelli.

sabato 22 gennaio 2011

Crysis 2 - 'Invaders Must Die ' Multiplayer Trailer

Volete vedere qualcosa che spesseggia? Ma tanto eh.
Guardatelo.


Finalmente il multiplayer di Crysis smette di essere tanti PG single player buttati tutti insieme e un po' smarriti e prende un bel po' di carattereistiche originali aggiungendo al gioco dinamismo e possibilitá creative.

martedì 18 gennaio 2011

ORION: Prelude - new Trailer

Eccoci qua, dopo le vacanze di Natale & .co nel bel mezzo degli esami :)

ORION: Prelude è un FPS sviluppato da SpiralGameStudios, che fanno bene il loro lavoro, a quanto pare :)
ORION è nato come MOD per il motore della Valve Source Beta, che ha dato vita a HL2 per intenderci, ma ora, dopo anni, dopo aver sperimentato e prototipato sono passati ad una fase molto più concreta e hanno deciso di utilizzare l'UDK, motore molto usato dagli sviluppatori indie, poiché potente e gratis finché non si vende il prodotto, e nel caso di commercializzazione pur sempre economico.

Non ho ancora parlato di ORION, nonostante sia comparso su IndieDB l'11 agosto 2010. Ho aspettato di vedere di più.
Ve ne parlo ora che sono aperte le iscrizioni alla beta multiplayer, che è uscito un nuovo trailer e che hanno aperto una pagina su KickStarter, di cui ho parlato qui.

Cos'é ORION? Estratto dal post di presentazione sopra linkato:

ORION is a fast-paced, first person shooter with a heavy emphasis on team-based, multiplayer play. The game is set on three distinct worlds, two of which have been revealed: Earth and Orion. Each world has its own unique art styles associated with them allowing us to really explore and get creative. Earth is in a post-apocalyptic stage after centuries of warfare. Orion is a beautiful, lush, infant Earth which also happens to house living dinosaurs.

Per chi non capisse l'Inglese:
ORION è uno sparatutto in prima persona rapido con una forte enfasi sul gioco a squadre multigiocatore. Il gioco è ambientato in tre diversi mondi, due dei quali sono stati rivelati: la Terra e Orion. Ogni mondo ha associati i suoi unici stili grafici, permettendoci di esplorare veramente ed essere creativi. La Terra è in una fase post-apocalittica dopo secoli di conflitti armati. Orion è bello, con una lussureggiante vegetazione, una Terra primordiale che si da il caso ospiti dinosauri vivi.

Come potete vedere dalle immagini sul sito ufficiale e sul profilo su IndieDB l'ambientazione è ben caratterizzata e realizzata, come potrete vedere dal nuovo trailer la musica è carica ed appropriata. Non resta che aspettare per vedere se la storia sará all'altezza e intanto iscriversi alla beta multiplayer!

Prima del video vi vorrei ricordare che essendo indie non hanno soldi e vivono della fiducia dei giocatori, quindi, se vi sentirete ispirati qui o sul sito ufficiale trovate il link alla pagina di kickstarter, dove potrete contribuire.

A voi!(in HD mi raccomando!)

Related Posts Plugin for WordPress, Blogger...