Wednesday, October 1, 2008

Little steps..

The pointing routine that we have seen yesterday has a beauty side effect: you can use it to point the ship to the speed direction.
With the inertial behaviour, the ship orientation is not always also the ship direction: if you point to North, and accelerate until a speed of 1000km/h, then rotate and point to West, the ship will move always to North. Now if you accelerate, you don't move in East direction, but into a new direction that will be the vectorial sum of old speed and new speed.
Again, if you're moving and you want to stop, first of all you must point to the speed direction, then decelerate until the ship stops. If you only decelerate, you'll never be able to stop!
So, for the autopilot, but also for manual navigation, it's very useful to have an "utility" that align your ship with the speed direction. And the utility is the same of the autopilot.. the autopilot "points" to a target, but the same routine can be used to align with any vector.
I've also added an indicator in the hud that shows the effective direction of the ship, so you can try to align the ship manually: first of all move the indicator to the center of the screen. Now you're aligned and you can use the retro burner to stop.

---

L'algoritmo di riallineamento che ho implementato ieri ha un gradevole effetto collaterale, ovvero puo' essere utilizzata anche per riallineare l'astronave lungo la direzione di movimento.
Nel moto inerziale non sempre (anzi quasi mai) la direzione di puntamento coincidono con quella di spostamento.
Se accelero un'astronave fino a 1000 km/h in direzione Nord, e poi la ruoto in modo che punti verso Est, questa continua comunque a spostarsi verso Nord.
Non solo: se a questo punto aziono i motori, l'astronave non si muovera' verso Ovest (non e' un'automobile), ma si spostera' lungo una direzione che e' la risultate della somma vettoriale tra la velocita' precedente ed il nuovo "impulso" verso Ovest.
Pertanto: se vi state muovendo e volete rallentarvi fino a fermarvi dovete prima di tutto orientare la nave nella direzione verso la quale si sta spostando, solo a questo punto usando i retrorazzi potrete rallentare fino allo stop completo.
In tal ottica quindi un'utilita' che permetta all'astronave di riallinearsi con la propria direzione di spostamento viene molto comoda quando si vuole semplicemente accelerare o decelerare. La routine e' la medesima dell'autopilota, quindi e' venuta pressoche' "gratis".
Ho inoltre aggiunto un indicatore nell'hud che mostra costantemente la direzione di spostamento. Con questo e' possibile eseguire l'allineamento anche manualmente.. bastera' portare l'indicatore a centro schermo e l'astronave sara' allineata.

7 comments:

Anonymous said...

ciao, sono un idiota qualsiasi, uno dei tanti che probabilmente tu detesti perchè hai mezzi e conoscenze approfonditi e campi nell'umiltà mentre individui come me un giorno, mentre stanno magari sulla tazza, credono di avere l'idea per conquistare il mondo.
lo so che non ti interessa starmi ad ascoltare, e tantomeno io potrei parlarti perchè l'avvocato ancora si deve decidere a mettere a punto l'accordo di non divulgazione, però me li concederesti lo stesso cinque minuti?
almeno per sparare un po' di luoghi comuni su quanto era bello frontier e su come nessuno lo capirebbe ai giorni nostri :P
qui c'è il sito, lì c'è l'email, anche un "vaffa" è accettato, purchè sia una risposta

PdG said...

Orpo!
E perche' mai ti dovrei detestare? :)

Sulla tazza ci vado pure io, e sono tutto tranne che un genio, purtroppo!
Quelli bravi son coloro che han fatto la storia dei videogiochi, il mio e' solo un blog come tanti che racconta di un progettino amatoriale come tanti.
David Braben fece le stesse cose che sto cercando di fare io, pero' 15 anni fa, in assembly, su un pc a 16 bit che andava a 7 mhz, e senza l'aiuto delle directx ma scrivendosi da solo tutta la pipeline di rendering.
Non c'erano editor di mesh, non c'era internet per cercare informazioni su come superare questo o quell'altro problema.
E c'e' un'altra differenza tra me e lui: lui riusci' a finirlo, ed era un'idea sua, io mi limito a copiare e non e' affatto probabile che riusciro' a completar l'opera.

Pertanto benvenuto e nessun vaffa :)

PdG said...

p.s. hai pure un blog molto carino

Anonymous said...

no, dai, per pietà, quel "posto" è orribile, lo tengo giusto per ricordarmi che una volta sono stato molto più depresso di così (altrimenti non avrei mai aperto un... un... mi riesce difficile anche solo nominarlo).

be', di solito chi sa fare qualcosa, in qualsiasi campo, non vede di buon occhio un ignorante totale che pretende di sfruttare il suo lavoro in nome di una non ben identificata idea che, a conti fatti, si rivela una cagata pazzesca e per di più nemmeno realizzabile.
per fortuna non ho in mente nulla di tutto questo ^^'
sono convinto che la mia idea sia più che buona, ma non credo sia questo luogo nè occasione per parlarne. ci spostiamo?

mi fa piacere non essere stato azzannato, chissà se riceverò la stessa accoglienza anche altrove :/ purtroppo sono un signor nessuno, chi si va a fidare senza credenziali di uno che è tanto incapace da doverlo ammettere?

Utnapishtim said...

suvvia, fate sapere anche a noi pubblico :)

Unknown said...

chiedero' l'aiuto di maria de filippi ;)

Anonymous said...

In bocca al lupo per il tuo progetto... e che sia portato a termine! :-P