PDA

View Full Version : [CICLO 3] Storia 1


Jocchan
19-10-2005, 21:26
Nuovo ciclo, nuova storia...

Storia
Il sistema di coordinate utilizzato dal gioco è definito con l'origine degli assi in alto a sinistra dello schermo. Occorre tradurre queste coordinate, in modo da renderle compatibili con il formato adottato da OpenGL.
L'hot spot deve essere situato in alto a sinistra.
Uno sprite è definito da una porzione rettangolare di texel di dimensioni qualsiasi, posta all'interno di una texture di dimensione in potenza di due.

VICIUS
20-10-2005, 16:14
Durante il meeting di ieri sera abbiamo deciso come gestire le coordinate e le texture all'interno del progetto. Il sistema di coordinate avra quindi l'origine nel angolo in alto a sinistra. Questo vale anche per l'hotspot degli sprite e delle texture. Le Texture avranno sempre come dimensione una potenza di due. Sara poi Sprite a dover delimitare una zona all'interno di questa Texture.

Un'altra cosa molto importante riguarda la gestione dei task. Una volta che vi siete prenotati dovete subito pasare a scrivere i test che userete per l'implementazione. Finiti i test li publicate qui è aspettate una conferma mia o di fek. Solo dopo una nostra conferma potete procedere con implementazione e commit sul server.
Fra qualche ciclo, quando sarete tutti dei maestri dei test, elimineremo le fasi del post sul forum e della conferma.

Task
3.1 Transizione al nuovo sistema di coordinate in tutto il progetto e i test. (^TiGeRShArK^: completato)
3.2 Aggiungere a Texture e Sprite la capacita di gestire immagini con dimensioni diverse da una potenza di due. (cisc+fek: completato)
3.3 Transizione del'hotspot dal centro all'angolo in alto a sinistra. (71104: completato)

ciao ;)

^TiGeRShArK^
20-10-2005, 17:23
provo ad effettuare la transizione del sistema di coordinate visto che già nella scorsa storia a cui avevo pratecipato avevo visto un paio di punti "caldi" in cui venivano usate le coordinate...
temp oprevisto... boh... spero ke una volta proposti i test l'approvazione sia abbastanza veloce xkè x il week-end km al solito credo di non poter lavorare ke sarò fuori :Prrr:
In sintesi..... Prenotazione Task 3.1

VICIUS
20-10-2005, 17:37
provo ad effettuare la transizione del sistema di coordinate visto che già nella scorsa storia a cui avevo pratecipato avevo visto un paio di punti "caldi" in cui venivano usate le coordinate...
temp oprevisto... boh... spero ke una volta proposti i test l'approvazione sia abbastanza veloce xkè x il week-end km al solito credo di non poter lavorare ke sarò fuori :Prrr:
In sintesi..... Prenotazione Task 3.1
Ok è tutta tua. Per i test non penso ci sia bisogno in questo caso. Ce ne sono gia una decina sulle collisioni. Prima cerca di far passare quelli. Certo se ne vuoi proporre altri sono sempre benvenuti.

ciao ;)

^TiGeRShArK^
20-10-2005, 23:21
fiuuuuu...
fine....
che casino...
col rincoglionimento non ho messo neanche il log nel commit....
comunque dovrebbe essere la revision 339 quella funzionante col cambio di coordinate che ho appena committato...
c'è un modo per aggiungere un log dimenticato?
ho provato a fare edit log ma dice che il repository non è abilitato ad effettuare property change... :mbe:
comunque....
ORA SI RAGIONA CON LE COORDINATE IN TOP-LEFT.....
dopo ke ho sudato sangue (anche se non sembra dal poco codice che ho scritto :p) il primo che sbaglia ad usare le coordinate LO SCUOIO! :sofico:

cionci
20-10-2005, 23:53
TestOpenGLCooord :fagiano:

^TiGeRShArK^
21-10-2005, 00:01
miiiiiiiiiii ke pignolooooo!!!!
stai facendo a gara con fek?!?!?!?!?
cmq ho appena corretto :Prrr:
controlla! :sofico:

71104
21-10-2005, 02:07
aggiornata la knowledge; l'hot spot degli sprites è sempre al centro, vero?

cisc
21-10-2005, 09:10
se non sbaglio l'hotspot è passato in alto a sinistra, cmq aspetta un'altra conferma

^TiGeRShArK^
21-10-2005, 09:28
mmmmm...
no l'hot spot è sempre al centro...
per Transizione al nuovo sistema di coordinate in tutto il progetto e i test avevo inteso le coordiante vere e proprie...
l'hot spot quindi non l'ho toccato perchè non era specificato nel task e abbiamo detto di NON fare assolutamente quello ke non era richiesto...
poi se come al solito il task era ambiguo e dovevo fare pure quello mi metto e lo faccio stasera...
però fatemi sapere :Prrr:

Gammaglobulino
21-10-2005, 09:47
Guys posso fare una proposta?
Potremmo introdurre un regola percui una persona possa completare al max un 1 o 2 task per storia?
Questo sistema purtroppo penalizza chi batte tasti dalla mattina alla sera e ha poco tempo se non a notte inoltrata di lavorare al progetto ( si trova già i task assegnati :) ).

Chiaramente la regola potrebbe essere flessibile nei momenti di mancanza di manodopera :D che causerebbero uno stallo nella crescita?

Fatemi sapere

cionci
21-10-2005, 10:20
Concordo ;)

cdimauro
21-10-2005, 10:21
Sono d'accordo.

x ^TiGeRShArK^: anche l'hot spot dovrebbe stare in alto a sinistra. Non ho il log della chiaccherata su IRC in questo momento, ma io ho questo (vago) ricordo.

Jocchan
21-10-2005, 11:08
Confermo, l'hot spot deve essere in alto a sinistra.
Colpa mia, avrei dovuto specificarlo nella storia.

P.S.: Concordo, l'idea di Gammaglobulino è ottima. Più che come regola fissa, però, la considererei una sorta di autoregolamentazione che dobbiamo darci da soli (non si sa mai, tutto dipende dalle circostanze di ogni singola storia).

fek
21-10-2005, 11:26
Un'altra cosa molto importante riguarda la gestione dei task. Una volta che vi siete prenotati dovete subito pasare a scrivere i test che userete per l'implementazione. Finiti i test li publicate qui è aspettate una conferma mia o di fek. Solo dopo una nostra conferma potete procedere con implementazione e commit sul server.

Solo una piccola nota: non dovete scrivere tutti i test che vi servono per l'implementazione ma solo il test o i test che mostrano che il task e' stato completato (acceptance test). E poi procedere in Test Driven a scrivere il codice, ovvero prima un test, poi il codice, poi refactoring, test, codice, refactoring.

fek
21-10-2005, 11:29
Guys posso fare una proposta?
Potremmo introdurre un regola percui una persona possa completare al max un 1 o 2 task per storia?
Questo sistema purtroppo penalizza chi batte tasti dalla mattina alla sera e ha poco tempo se non a notte inoltrata di lavorare al progetto ( si trova già i task assegnati :) ).

Chiaramente la regola potrebbe essere flessibile nei momenti di mancanza di manodopera :D che causerebbero uno stallo nella crescita?

Fatemi sapere

Concordo. Ma non come regola, andiamo a buon senso per ora. Ognuno si prenoti per max 1 o 2 task alla volta. Se poi avanzano task quando ha finito i suoi puo' prenotarsi per altri.

fek
21-10-2005, 11:29
Confermo, l'hot spot deve essere in alto a sinistra.
Colpa mia, avrei dovuto specificarlo nella storia.

P.S.: Concordo, l'idea di Gammaglobulino è ottima. Più che come regola fissa, però, la considererei una sorta di autoregolamentazione che dobbiamo darci da soli (non si sa mai, tutto dipende dalle circostanze di ogni singola storia).

Puoi aggiornare questa Storia se vuoi e il task relativo.

Jocchan
21-10-2005, 11:35
Puoi aggiornare questa Storia se vuoi e il task relativo.

Fatto, per il task aspettiamo Vicius ;)

^TiGeRShArK^
21-10-2005, 12:26
....
qdi praticamente se lo acchiappa qualun altro il task dell'hot spot o tocca ancora a me ke non ho capito??? :mbe:
se lo fa qualcun altro ben venga così mi riposo un pò.... :Prrr:

cionci
21-10-2005, 12:57
Gente...c'è un test che fallsice... E' quello in TestSound.Java... Il motivo non lo so... Probabilmente il sonoro resta inizializzato e lui va avanti... Succede anche a voi ?

Per cambiare l'hot spot basta togliere i "/ 2f" in Sprite.java ? Ad occhio mi sembra di sì... Poi c'è da modifcare un mucchio di test, ma è banale...

cionci
21-10-2005, 13:01
Gente...c'è un test che fallsice... E' quello in TestSound.Java... Il motivo non lo so... Probabilmente il sonoro resta inizializzato e lui va avanti... Succede anche a voi ?
Ad occhio l'audio non viene "spento" correttamente in TestCollisionSound.java:

public void tearDown()
{
audio.shutDown();
}

Tra l'altro manca ad occhio manca un test per audio.shutDown();

VICIUS
21-10-2005, 13:25
Sono d'accordo.

x ^TiGeRShArK^: anche l'hot spot dovrebbe stare in alto a sinistra. Non ho il log della chiaccherata su IRC in questo momento, ma io ho questo (vago) ricordo.
Confermo anche l'hotspot sta in alto a sinistra.

ciao ;)

VICIUS
21-10-2005, 13:27
....
qdi praticamente se lo acchiappa qualun altro il task dell'hot spot o tocca ancora a me ke non ho capito??? :mbe:
se lo fa qualcun altro ben venga così mi riposo un pò.... :Prrr:
Vai pure in panchina a riposarti. Ci servirai ancora nel secondo tempo :asd:

ciao ;)

^TiGeRShArK^
21-10-2005, 13:38
Ad occhio l'audio non viene "spento" correttamente in TestCollisionSound.java:

public void tearDown()
{
audio.shutDown();
}

Tra l'altro manca ad occhio manca un test per audio.shutDown();
a me falliva TestAudioBeforeCreation.... ma la cosa strana era ke mi falliva solo da eclipse... :mbe:
lanciando la build con ant mi dava verde in tutti i test... :confused:
e comunque mi chiedo come faccia a non lanciare un'eccezione da eclipse se da anta la lancia perchè quel test verifica appunto che l'eccezione sia stata lanciata..
cmq in effetti credo che dovremmo investigarlo un pò meglio questo problema ....

P.S. tra l'altro nella frase precedente hai scritto "Tra l'altro manca ad occhio manca un test per audio.shutDown();"
tanto per abbassarmi al tuo livello di pignoleria :asd: :D

^TiGeRShArK^
21-10-2005, 13:41
Vai pure in panchina a riposarti. Ci servirai ancora nel secondo tempo :asd:

ciao ;)
ok mister provvedo! :O
sentivo giusto il menisco un pò cigolante :fagiano:

fek
21-10-2005, 13:51
Ad occhio l'audio non viene "spento" correttamente in TestCollisionSound.java:

public void tearDown()
{
audio.shutDown();
}

Tra l'altro manca ad occhio manca un test per audio.shutDown();

Lo aggiungi per favore? Sentitevi perfettamente liberi di aggiungere tutti i test che volete quando pensate che manchino.

Se un test fallisce, fissatelo pure.
Se vedete possibilita' di refactoring, fatelo.
Se mancano dei test, aggiungeteli.

Vi lasciamo molta liberta' su questo. Non siate timidi :D

cionci
21-10-2005, 15:26
Probabilmente da ANT non fallisce perchè TestAudioBeforeCreation viene testato prima di TestCollisionSound...

cionci
21-10-2005, 15:27
Vi lasciamo molta liberta' su questo. Non siate timidi :D
Non ho ben presente come funziona OpenAL non so se sono il più adatto, il test lo posso anche fare, non è un problema...

cionci
21-10-2005, 15:48
shutDown è stato testato, me l'ero perso... Aggiungendo questo test prima di quello che fallisce, tutti i test passano anche da Eclipse:

public void testSoundAfterAudioShutdown()
{
Audio audio = new Audio();
audio.shutDown();

try
{
Sound sound = new Sound("diamond");
}
catch (SoundException e)
{
return;
}
fail("exception not raised");

}

Quindi suppongo che ci sia un test che non fa uno shutDown dell'audio...

cionci
21-10-2005, 15:54
Non era stato fatto lo shutDown in TestGemWithBounds.java !!! :D

Committed ;)

VICIUS
21-10-2005, 17:30
Non era stato fatto lo shutDown in TestGemWithBounds.java !!! :D

Committed ;)
Ottimo lavoro :mano:

ciao ;)

fek
21-10-2005, 17:51
Non era stato fatto lo shutDown in TestGemWithBounds.java !!! :D

Committed ;)

Ottimo! E' importante che i test siano indipendenti l'uno dall'altro. Quando un test fallisce in maniera intermittente, vuol dire che questa indipendenza e' saltata.

fek
21-10-2005, 19:48
Sto dando un occhio al codice scritto recentemente e mi piace. E' tutto molto pulito e chiaro.

Mi piace la classe Coord, bella idea il separare la "traduzione" del sistema di coordiate in una sua classe, che e' facile da testare. C'e' anche spazio per qualche semplificazione che e' coperta dai test, segnale di un buon design.
Cambierei solo il nome in CoordinateSystem, perche' mi piaciono i nomi autoesplicativi, ma e' solo una pignoleria :)

Possiamo chiudere il primo task in 1 giorno.

fek
21-10-2005, 19:48
Chi si prende T2 e T3?

VICIUS
21-10-2005, 23:30
Chi si prende T2 e T3?
Su dai. Non fate i timidi :D

ciao ;)

^TiGeRShArK^
21-10-2005, 23:33
e stavolta io non posso a quest'ora :Prrr:
se ancora nn li ha presi nessuno x lunedi me ne faccio uno io...
(ma nn credo ke questo branco di lupi affamati me ne dia l'opportunità! :asd: :D)
[pignolo mode]vorrei ricordare di aggiornare il mio task con un bel COMPLETATO soprattutto dopo il refactoring di fek :O[/pignolo mode]

VICIUS
21-10-2005, 23:37
e stavolta io non posso a quest'ora :Prrr:
se ancora nn li ha presi nessuno x lunedi me ne faccio uno io...
(ma nn credo ke questo branco di lupi affamati me ne dia l'opportunità! :asd: :D)
[pignolo mode]vorrei ricordare di aggiornare il mio task con un bel COMPLETATO soprattutto dopo il refactoring di fek :O[/pignolo mode]
Fatto.

ciao ;)

fek
22-10-2005, 00:38
e stavolta io non posso a quest'ora :Prrr:
se ancora nn li ha presi nessuno x lunedi me ne faccio uno io...
(ma nn credo ke questo branco di lupi affamati me ne dia l'opportunità! :asd: :D)
[pignolo mode]vorrei ricordare di aggiornare il mio task con un bel COMPLETATO soprattutto dopo il refactoring di fek :O[/pignolo mode]

COMPLETATO +2 -1

71104
22-10-2005, 01:41
non avevo visto che era stato aggiunto il 3.3, vorrei farlo io, penso di farcela in 1 giorno (e per fare contento fek proverò a farlo test first :D)

cisc
22-10-2005, 12:44
Fek, per il T2 i test li prepari tu vero? penso che sia il task più insidioso e più delicato creato fon'ora, sarebbe possibile dividerlo anche in due?

VICIUS
22-10-2005, 12:51
non avevo visto che era stato aggiunto il 3.3, vorrei farlo io, penso di farcela in 1 giorno (e per fare contento fek proverò a farlo test first :D)
Ok. È tutto tuo.

ciao ;)

fek
22-10-2005, 14:04
Fek, per il T2 i test li prepari tu vero? penso che sia il task più insidioso e più delicato creato fon'ora, sarebbe possibile dividerlo anche in due?

Prova a prepararli tu qui e io ti aiuto. Oppure facciamo il task assieme in TDD sul forum come abbiamo fatto io e Vicius. Era venuto bene in quel caso.

cisc
22-10-2005, 15:27
sai, ho esperienza zero di OpenGL e grafica in generale, sto imparando con diamonds, in parole povere non saprei dove partire con il test... :stordita:

fek
22-10-2005, 15:30
Lo facciamo assieme. Domani pomeriggio?

cisc
22-10-2005, 15:36
ok, vediamo che ne esce fuori con me:D

71104
23-10-2005, 13:11
ho fatto ultimato il mio task ma Spartacus sembra spento al momento... VICIUS, metti "COMPLETATO", ma il commit lo farò appena possibile.

fek
23-10-2005, 13:13
ho fatto ultimato il mio task ma Spartacus sembra spento al momento... VICIUS, metti "COMPLETATO", ma il commit lo farò appena possibile.

Si mette "completato" quando e' stato fatto il commit e il sign off da me o Vicius :)

Puoi contattare Anta e vedere perche' il server e' giu'?

71104
23-10-2005, 14:24
Puoi contattare Anta e vedere perche' il server e' giu'? per ora su msn ha messo out to lunch, gli ho lasciato un messaggio, spero che legga quando torna; se non legge e/o non torna tra 1 oretta provo a chiamarlo.

ceAlex80
23-10-2005, 16:45
Scusate la niubaggine :D ma adesso che ho scaricato il tutto come faccio a compilare? :doh: Ho visto che nel repository ci sono le librerie lwgjl in formato jar, ma devo settare qualcos'altro nel progetto? Ho provato a fare un run, ma mi esce fuori quest'errore:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.lwjgl.Sys$1.run(Sys.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.<clinit>(Sys.java:65)
at org.lwjgl.opengl.Display.<clinit>(Display.java:104)
at it.diamonds.engine.DisplayImpl.findDisplayMode(DisplayImpl.java:91)
at it.diamonds.engine.DisplayImpl.initDisplay(DisplayImpl.java:114)
at it.diamonds.engine.DisplayImpl.<init>(DisplayImpl.java:35)
at it.diamonds.engine.Engine.create(Engine.java:35)
at it.diamonds.Game.createEngine(Game.java:70)
at it.diamonds.Game.main(Game.java:43)


Non ho tanta esperienza in Java ed Eclipse in particolare, ma vorrei dare anch'io il mio modestissimo contributo. Così imparo un pò..;)

fek
23-10-2005, 16:46
Puoi spostare il post nel topic di TroubleShooting per favore?

71104
23-10-2005, 22:11
il mio task (che penso sia stato svolto correttamente) ha introdotto un problema riguardante il pulsing del diamante (e tra parentesi i test non lo evidenziano): spostando l'hot spot in alto a sinistra succede che quando larghezza e altezza del diamante variano a causa della pulsazione, lo sprite subisce il clipping da destra e da sotto; ad es. se il diamante sta pulsando e tocca il bordo sinistro non succede nulla, se toccasse quello superiore idem, ma se tocca quello destro l'espansione della pulsazione e il clipping lo fanno spostare leggermente a sinistra, e la stessa cosa succederebbe se il diamante continuasse a pulsare dopo aver toccato il bordo inferiore.
inoltre dal momento che il centro dell'espansione provocata dalla pulsazione è sempre l'hot spot, ora che questo non si trova più al centro l'espansione non avviene più in tutte e quattro le direzioni, ma solo verso destra e verso il basso.
mi offro volontario per correggere il problema :D

fek
23-10-2005, 22:14
Elimina la pulsazione. In fondo non l'ha mai chiesta nessuno e ci ha dato solo problemi fino ad oggi. Questo e' l'ultimo problema che ci da' :)

Se in futuro una storia richiedera' diamanti che pulsano, lo implementeremo di nuovo.

Nel frattempo puoi aspettare un po' prima del commit per favore? Io e cisc stiamo facendo TDD assieme ed il repository e' un po' incasinato, perche' ci scambiamo il codice. Appena abbiamo finito la code base sara' di nuovo stabile e usabile da tutti gli altri. Grazie.

71104
23-10-2005, 23:04
ok, domani la tolgo, però è un peccato :confused: io propongo di rimetterla in futuro e di modificare i parametri in modo da renderla molto più veloce e un pochino più evidente: secondo me è un ottimo effetto grafico :)
l'unico problema è che è stata implementata prematuramente.

Jocchan
23-10-2005, 23:50
La pulsazione non è mai stata chiesta, però si è rivelata un'idea piuttosto piacevole (forse un pò troppo pronunciata, a voler essere pignoli).
In caso la reinseriremo, altrimenti amen (ed un problema in meno per i coder) :)

cisc
24-10-2005, 00:09
il problema potrebbe essere risolto secondo me aggiungendo un ulteriore classe che si occupi di gestire il problema incapsulando un oggetto gem...

fek
24-10-2005, 00:12
il problema potrebbe essere risolto secondo me aggiungendo un ulteriore classe che si occupi di gestire il problema incapsulando un oggetto gem...

Un Adapter sta piangendo per essere implementato qui. Piangera' ancora per un po', per ora eliminiamo la pulsazione :)

71104
24-10-2005, 00:18
eliminata :cry:

VICIUS
24-10-2005, 13:35
Bene. I task sono tutti completati. Chiudiamo il thread ?

ciao ;)

fek
24-10-2005, 14:05
Bene. I task sono tutti completati. Chiudiamo il thread ?

ciao ;)

T3.1.2 +3 cisc
T3.1.3 +2 71104

Vicius, passiamo ai task della Storia 2?

Nota: guardate la code base e compiacetevi di quanto sia pulita e sempilce. Bravi tutti :)

VICIUS
24-10-2005, 14:57
T3.1.2 +3 cisc
T3.1.3 +2 71104

Vicius, passiamo ai task della Storia 2?

Nota: guardate la code base e compiacetevi di quanto sia pulita e sempilce. Bravi tutti :)
OK. Ora posto il testo dei task che abbiamo deciso ieri in chat.

ciao ;)