Thursday, January 31, 2008
Prototipo di motore e hud
Ne approfitto per farvi vedere come procede l'implementazione del motore, e anche quella dell'HUD, anche se la qualità scarsa del filmato rende di fatto impossibile leggere i nomi.
Noterete che il movimento laterale e sopra/sotto e' ancora troppo inverosimile, mentre quello avanti-indietro è più morbido e realistico.
Penso di aggiungere un campo di "polvere" per dare maggiormente l'illusione del movimento, necessaria in quanto nello spazio, mancando punti di riferimento vicini, è quasi impossibile capire se ci si sta muovendo o se si è fermi.
Doveva succedere...
Oggi mi hanno comunicato che dovrò iniziare un nuovo lavoro, che senz'altro sull'immediato mi impedirà di dedicare al gioco (e al blog) il tempo che ho avuto questo mese.
Era inevitabile, e a dirla tutta anche giusto.
Questo però non vuol dire che mollerò. Quando iniziai, in Dicembre, l'intenzione era quella di sfruttare l'assenza di lavoro non per grattarmi ma per dare almeno un senso alla giornata, e che sarebbe tutto finito nel momento in cui avessi finalmente ripreso a produrre per ciò per cui mi pagano.
Durante questo mese però mi son reso conto di come sia preziosa per me questa esperienza, di come mi faccia sentire realizzato il riuscire anche solo a far apparire un pianeta, il poter "annusare" quello che giornalmente fanno coloro che sviluppano videogiochi, uno dei miei sogni nel cassetto (l'altro è fare l'astronauta, ma lasciamo perdere :) ), e da quando mi ci dedico mi sento molto meglio con me stesso, e credo di riflesso anche coloro che mi circondano: sono meno musone, ho il mio angolino di fantasia nel quale rifugiarmi quando tutto attorno va a rotoli, e pertanto non voglio rinunciare a tutto questo.
E' però ovvio che non potrò impegnare lo stesso tempo che ho impegnato fino ad oggi, le cose saranno più lente ma probabilmente anche più meditate. Tanto non ho nessuna fretta, non devo conquistare nessun mercato, nè ho delle scadenze da rispettare.
Per questo motivo colgo l'occasione per cambiare il titolo del blog.
Era inevitabile, e a dirla tutta anche giusto.
Questo però non vuol dire che mollerò. Quando iniziai, in Dicembre, l'intenzione era quella di sfruttare l'assenza di lavoro non per grattarmi ma per dare almeno un senso alla giornata, e che sarebbe tutto finito nel momento in cui avessi finalmente ripreso a produrre per ciò per cui mi pagano.
Durante questo mese però mi son reso conto di come sia preziosa per me questa esperienza, di come mi faccia sentire realizzato il riuscire anche solo a far apparire un pianeta, il poter "annusare" quello che giornalmente fanno coloro che sviluppano videogiochi, uno dei miei sogni nel cassetto (l'altro è fare l'astronauta, ma lasciamo perdere :) ), e da quando mi ci dedico mi sento molto meglio con me stesso, e credo di riflesso anche coloro che mi circondano: sono meno musone, ho il mio angolino di fantasia nel quale rifugiarmi quando tutto attorno va a rotoli, e pertanto non voglio rinunciare a tutto questo.
E' però ovvio che non potrò impegnare lo stesso tempo che ho impegnato fino ad oggi, le cose saranno più lente ma probabilmente anche più meditate. Tanto non ho nessuna fretta, non devo conquistare nessun mercato, nè ho delle scadenze da rispettare.
Per questo motivo colgo l'occasione per cambiare il titolo del blog.
Wednesday, January 30, 2008
HUD 2

Lo so, ieri parlavo di motori, ed oggi son di nuovo qui a parlare del computer di bordo.
Ma ieri riflettevo sull'utilità del HUD così come l'avevo implementato e mi sono accorto che può diventare ancora più prezioso se, oltre ad indicare gli oggetti visibili, riuscisse a dare qualche informazione su dove si trovano quelli che invece escono dal campo visivo.
Tutto nasce dal fatto che ora ho implementato il movimento della telecamera non piu' lungo una circonferenza, ma sulla superficie di una sfera, per poter così guardare in tutte le direzioni, e non solo a destra e a sinistra. E mi sono accorto che così facendo, diventa un'impresa riuscire ad inquadrare un qualsiasi oggetto. Oggetti molto lontani infatti sono altrettanto sensibili alla rotazione della telecamera, e spesso basta un piccolo movimento per perderli di vista (chiunque abbia mai provato a guardare il cielo con un telescopio mi ha capito).
L'idea quindi è quella di indicare con delle frecce la posizione degli oggetti che sono fuori dallo schermo, in modo da permettere all'osservatore di sapere dove ruotare la visuale per poterli inquadrare.
L'immagine che vi propongo (solito click per ingrandirla) è la testimonianza di quello che vi ho appena raccontato: la terra è inquadrata, la luna e' invece più a sinistra, e giove infine è in alto a sinistra. Il sole è dietro, pertanto non compare il suo identificatore.
Ed in effetti ora è diventato semplice trovare un oggetto, mentre prima era a dir poco proibitivo!
Tuesday, January 29, 2008
Signor Scotty
Bene, abbiamo un piccolo motore che disegna pianeti e che gestisce le distanze reali tra corpi celesti. Abbiamo l'illuminazione dinamica, che dipende dalla posizione della stella. Abbiamo un prototipo di HUD che ci aiuta ad identificare la posizione deglio oggetti scuri o lontani, manca ancora una mappa del settore (quella della galassia è abbozzata, se ricordate).
Che facciamo adesso?
Credo sia tempo di iniziare a lavorare alla propulsione.
Nel mio piccolo prototipo per ora ci si sposta orientandoci col mouse e muovendoci con i consueti tasti WASD, comodo per esplorare velocemente le zone del sistema solare, ma non certo realistico per il gioco. Ci vuole quindi una propulsione di tipo newtoniano, ovvero la simulazione di come si muove un'astronave nello spazio.
Principalmente vi son due tipi di motori: quelli di propulsione e quelli di manovra. I motori di propulsioni permettono di dare la spinta all'astronave e in sostanza di muoversi per lo spazio. Motori che però hanno un limite: spingono, e spingono solo lungo il vettore dell'astronave. Come del resto avviene in una comune automobile, la quale si sposta seguendo la direzione "puntata" dal muso. Per cambiare la direzione di movimento una macchina utilizza le ruote anteriori, con lo sterzo si girano le ruote e l'attrito con l'asfalto fa il resto.
Nello spazio ovviamente non è possibile usare questo trucco, quindi pensavo di prevedere 4 piccoli motori aggiuntivi, che permettono alla navicella di ruotare a sinistra, a destra, verso l'alto e verso il basso.
Il difficile sarà implementare il medesimo tipo di movimento anche nelle astronavi guidate dal computer, quindi creare una AI che sappia quale motore accendere e quando farlo se vuole arrivare dal punto X al punto Y, ma di questo mi preoccuperò in un secondo momento.
Pro memoria mio personale: supposto che l'astronave pesi m kg, supposto che il motore di propulsione abbia una forza f, supposto che il motore venga tenuto acceso per t secondi, e supposto che prima di accendere il motore l'astronave avesse una velocità v1, la velocità al termine dell'uso del motore e' v2=v1+f*t/m
Che facciamo adesso?
Credo sia tempo di iniziare a lavorare alla propulsione.
Nel mio piccolo prototipo per ora ci si sposta orientandoci col mouse e muovendoci con i consueti tasti WASD, comodo per esplorare velocemente le zone del sistema solare, ma non certo realistico per il gioco. Ci vuole quindi una propulsione di tipo newtoniano, ovvero la simulazione di come si muove un'astronave nello spazio.
Principalmente vi son due tipi di motori: quelli di propulsione e quelli di manovra. I motori di propulsioni permettono di dare la spinta all'astronave e in sostanza di muoversi per lo spazio. Motori che però hanno un limite: spingono, e spingono solo lungo il vettore dell'astronave. Come del resto avviene in una comune automobile, la quale si sposta seguendo la direzione "puntata" dal muso. Per cambiare la direzione di movimento una macchina utilizza le ruote anteriori, con lo sterzo si girano le ruote e l'attrito con l'asfalto fa il resto.
Nello spazio ovviamente non è possibile usare questo trucco, quindi pensavo di prevedere 4 piccoli motori aggiuntivi, che permettono alla navicella di ruotare a sinistra, a destra, verso l'alto e verso il basso.
Il difficile sarà implementare il medesimo tipo di movimento anche nelle astronavi guidate dal computer, quindi creare una AI che sappia quale motore accendere e quando farlo se vuole arrivare dal punto X al punto Y, ma di questo mi preoccuperò in un secondo momento.
Pro memoria mio personale: supposto che l'astronave pesi m kg, supposto che il motore di propulsione abbia una forza f, supposto che il motore venga tenuto acceso per t secondi, e supposto che prima di accendere il motore l'astronave avesse una velocità v1, la velocità al termine dell'uso del motore e' v2=v1+f*t/m
Monday, January 28, 2008
HUD

Uno strumento essenziale, quando si viaggia nello spazio, oltre alla mappa, è senz'altro l'HUD, ovvero il computer di bordo in grado di sovrapporre delle immagini sintetiche a quello che viene visto fuori dal "finestrino".
Al di là del nome che fa molto "Star Trek", l'HUD si rende necessario specie per identificare quegli oggetti che sono troppo lontani o troppo scuri e che quindi non risultano visibili.
L'immagine che vi allego è un esempio abbastanza chiarificatore (clickateci per ingrandirla): di fronte a noi c'è la Terra e la Luna, ma son piccolissime visto che sono lontane, mentre Giove è molto visibile.
Se dovessi dirigermi verso la terra come faccio? L'idea è quella di racchiudere tra un rettangolino il centro di ciascun oggetto in modo che anche se l'oggetto è invisibile siamo comunque in grado di localizzarlo.
Ancora è troppo grezzo, oltre al rettangolino voglio metterci anche il nome del corpo inquadrato (sareste in grado di distinguere nell'immagine la Terra dalla Luna?), ma intanto la versione "base" funziona, e sopra di questa posso costruirci qualcosa di più appetibile
Thursday, January 24, 2008
Subscribe to:
Posts (Atom)
