|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
[CICLO 1] Storie e divisione in task
Nel Ciclo 1 implementeremo due storie.
Storia 1: Il gioco deve disegnare un diamante su uno sfondo nero in finestra o a pieno schermo e riprodurre un suono. Storia 2: Un sistema di build automatico che gira sul server, scarica l'ultima versione del codice disponibile dal repository e riporta via mail in caso di errori di compilazione o testing. La Storia 1 e' il vero inizio del progetto. La Storia 2 e' una storia cosiddetta "tecnica", di servizio, che ci servira' per supportare il resto del progetto. Storia 1. Suddisivisione in task. T1_1. Aprire una finestra di dimensione fissa (800x600 pixel di client area) [cidimauro 1 giorno COMPLETATO] (-2) +4 T1_2. Inizializzare OpenGL per il disegno 2D e colorare la finestra di nero via OpenGL [TigerShark 2 giorni COMPLETATO] +4 T1_3. Inizializare OpenAL [cisc 1 giorno] COMPLETATO +2 T1_4. Caricare l'immagine del diamante in una texture [Vifani 1 giorno] COMPLETATO +2 T1_5. Disegnare la texture del diamante applicata a due poligoni che formano un quadrato in coordinate schermo nel centro della finestra [Vifani 2 giorni] COMPLETATO +2 T1_6. Caricare un suono e riprodurlo [cisc 1 giorno] COMPLETATO (-2 + 3) T1_7. Disegnare una texture 64x64 con un diamante [Antares 1 giorno] COMPLETATO Storia 2. Suddivisione in task a seguire. Il Ciclo 1 inizia Lunedi' 19 Settembre e si conclude Venerdi' 30 Settembre. Sta a voi dichiarare su quali task volete lavorare. Quando avete scelto, date anche una stima in giorni da sostituire alla mia.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 23-09-2005 alle 10:20. |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
ma ci possiamo prenota re da ora?
![]() no perchè io farei T1_3 (ke tra l'altro mi sfugge perkè è messa prima di T1_2 ![]()
__________________
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
![]() Si', ci si puo' prenotare fin da ora. Dimmi il task che vuoi fare e la tua stima di tempo.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
![]() l'ho detto prima quale volevo fare... Inizializzare OpenGL per il disegno 2D e colorare la finestra di nero via OpenGL perchè mi interessa e SOPRATTUTTO non penso sia difficilissimo....visto che non ho tanto tempo e devo farmi pure lo spike di jogl sotto win..... come stima...boh... penso che vada bene due giorni dato che il primo giorno cmq è in sovrapposizione con lo spike e al lavoro sono messo maluccio in quei giorni..... spero di farcela! ![]() Altrimenti mi aspetta la fustigazione e il pubblico ludibrio mi sa! ![]()
__________________
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Aggiornato.
Vi faccio una piccola richiesta per alleggerire le discussioni ![]() Abbiamo tutti altri impegni e soprattutto questo non e' il nostro impegno principale. Quindi diamo per sottointeso e non scriviamo neanche che abbiamo altri impegni e siamo incasinati con altro. Ma teniamone conto quando diamo le stime: "In questo periodo ho molto da fare, normalmente impiegherei un giorno, ma visto gli impegni posso finirlo in 3 giorni". L'importante e' che le stime siano accurate e possibilmente sempre in eccesso. In altre parole, se mi dite che fate un task in 3 giorni, fate il commit (PULITO) in 3 giorni, perche' passato il tempo, e' facile che venga riassegnato. Questo per prevenire stalli nel lavoro attendendo che qualcuno magari troppo impegnato non riesca a concludere il suo task. Ultima cosa: tengo traccia in un mio db delle vostre previsioni e del tempo che impiegate, per avere dati su cui calcolare la nostra "Velocita'". Non mi interessa che la velocita' sia alta, mi interessa che sia costante e sostenibile. Vi teniamo d'occhio ![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 17-09-2005 alle 10:36. |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
vorrei prenotarmi per il T1_3, stima 1 giorno
![]()
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
|
Io vorrei prenotarmi per T1_4 e T1_5. Tempo stimato 2 giorni per la consegna di entrambi a partire da quando sarà definito il binding.
|
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 832
|
Fek, ho fatto una prova per la texture del diamante come mi hai chiesto su msn. Eccola con sfondo trasparente:
![]() Ed eccola con sfondo nero: ![]() Può andare ?
__________________
Trattative concluse su mercatino: The_Saint, ewandeep, Wiltord, maurizioi, Compulsion, mauryxxx76 |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
difficile, quell'immagine ha anche un canale alpha... suppongo che sia PNG (che altro potrei aspettarmi da te anta, che ti conosco bene
![]() come faremo a caricarla nel gioco? dobbiamo interpretare il formato PNG oppure esistono le libpng anche per Java? :| edit: e invece no, era jpeg!! ![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 832
|
quella con sfondo trasparente è png (ma dovrebbe venire bene anche in gif con trasparenza attiva), mentre quella su sfondo nero è in jpg.
__________________
Trattative concluse su mercatino: The_Saint, ewandeep, Wiltord, maurizioi, Compulsion, mauryxxx76 |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
|
La definizione delle API da utilizzare è ancora un punto interrogativo. Sto aspettando di trovare fek online per discuterne.
|
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Ragazzi, usiamo questo thread solo per prenotarsi per i task per cortesia.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
|
Task 1.4 e 1.5 completati. Attendo i test da eseguire
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
![]() ma alla fine cosa dobbiamo usare? JOGL o LWGJL? mi sa che me lo sono perso.... ![]()
__________________
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
SU forza ragasuoli che il povero Vifani ha fatto 3/4 del lavoro. A guardare il codice ha fatto ben oltre i soli 1.4 e 1.5 ![]() ciao ![]() |
|
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Abbiamo scelto LWGL e le librerie sono nel repository. Partite pure con i vostri task.
Ricordate che il codice e' responsabilita' di tutti. Significa che non dovete chiedere il permesso di scrivere nel codice degl'altri, che se qualcun altro ha gia' scritto il vostro task, potete guardare il codice che ha scritto e cercare di semplificarlo. Siete incoraggiati a scorrere il codice degl'altri e farne refactoring, semplificandolo ed eliminando le duplicazioni. Ultima cosa: Un task non e' completato fino a che i test relativi non passano. E se non ho scritto neppure un test per un task? Allora non e' completato e non ne faccio il sign off. Per i primi cicli vi scrivo io qualche test obbligatorio per i vari task (fra stamattina e oggi pomeriggio). I test che scrivo non sono i soli che dovete far passare, siete altamente incoraggiati a scriverne altri. Siete molto incoraggiati a scriverli ancora prima di scrivere il codice e farvi una test list, che magari potete postare per i primi tempi, cosi' da scambiarci consigli.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Vi scrivo qui itest da implementare e far passare obbligatoriamente per ogni task.
Task 1 Codice:
void testEngineCreation() { Engine engine = new Engine(800, 600); assertTrue(engine.IsCreated(), "Engine has not been created correctly"); } void testDisplaySize() { Engine engine = new Engine(800, 600); assertAreEqual(800, engine.getDisplayWidth(), "Display width must be 800"); assertAreEqual(600, engine.getDisplayHeight(), "Display height must be 600"); } void testEngineShutdown() { Engine engine = new Engine(800, 600); engine.shutDown(); assertTrue(engine.IsCreated(), "Engine has not shut down correctly"); } Da definire. Task 3 Codice:
void testAudioCreation() { Audio audio = new Audio(); assertTrue(audio.IsInitialised(), "Audio has not been initialised correctly"); } void testAudioShutdown() { Audio audio = new Audio(); engine.shutDown(); assertTrue(audio.IsCreated(), "Audio has not shut down correctly"); } Codice:
void testLoadDiamondTexture() { Texture texture = new Texture("diamond"); assertTrue(texture.isLoaded(), "texture has not been loaded"); } void testSize() { Texture texture = new Texture("diamond"); assertEqual(64, texture.getWidth(), "texture width is wrong"); assertEqual(64, texture.getHeight(), "texture width is wrong"); } void testLoadFailed() { try { Texture texture = new Texture("this_texture_doesnt_exist"); } catch (TextureNotFoundException) { return; } assertFail(); } Qui serve un mock, ma primo devo dirvi che cos'e' un mock. Scrivo i test in seguito. Task 6 Codice:
void testSound() { Sound sound = new Sound("diamond"); assertTrue(sound.isLoaded(), "sound has not been loaded"); } void testLoadSoundFailed() { try { Sound sound = new sound("this_sound_doesnt_exist"); } catch (TextureNotFoundException) { return; } assertFail(); } void testPlaySound() { Sound sound = new Sound("diamond"); sound.play(); assertTrue(sound.isPlayed(), "sound has not been played"); } Non ho compilato i test, ci saranno sicuramente errori di sintassi e magari non sara' proprio Java, ma servono per darvi l'idea dei test che ho bisogno che implementiate. Ricordate: Il task non e' completo se questi test non passano. Implementate solo il codice che serve per far passare questi test. Siete caldamente invitati a scrivere altri test che servano per testare il codice che state scrivendo per far passare questi test. I nomi delle classi che uso nei test e' "abbastanza" obbligatorio. E' un esempio di come vi dettero' l'architettura del gioco attraverso i test e non attraverso un documento. Se vedete duplicazioni nei test (e ci sono), siete invitati ad eliminarle usando le feature di JUnit. Infine, questi test lasciano dei buchi, come il clear dello schermo. Alcune cose non sono facili da testare automaticamente, soprattutto quando c'e' di mezzo la presentazione a video. Vedremo in seguito come possiamo risolvere anche questo problema. Per ora abbiamo qualche test e qualche test e' sempre meglio di nessun test.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 19-09-2005 alle 12:17. |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
|
Quote:
|
|
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
E' il nome della texture. Queste sono una parte delle specifiche. L'altra specifica e' sottintesa nel fatto che c'e' un file di nome diamonds.png (mi sembra png) nel folder bin/data. Il resto del test ti dice che quando io chiedo diamonds devi dire che l'hai trovato, quando ti chiedo una texture che nel folder sottointeso non c'e', tu devi darmi l'eccezione. Sei libero di aggiungere altri testi per chiarire meglio le mie specifiche e renderle piu' coerenti, magari aggiungendo un test che affermi che il folder in cui devi guardare sia bin/data. In sintesi, prova a scrivere il codice piu' semplice che ti viene in mente, date le specifiche, che fa passare quel test esattamente come e' scritto. cionci, puoi splittare il mio post e quello di Raffaele in un topic "Chiarimenti sul Task 4 Ciclo 1" per cortesia?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 19-09-2005 alle 15:03. |
|
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Ho aggiunto i test di questo ciclo alla cartella src/it/diamonds/tests/ignore.
Spostateli nella cartella src/it/diamonds/tests e poi implementate il codice per farli passare. Ricordate di spostare i test altrimenti verranno ignorati dalla build automatica.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:07.