Pagina 1 di 1

I più veloci metodi di collisione in GM

Inviato: 12/03/2014, 8:35
da Will
Salve, facendo riferimento a questo topic sul forum ufficiale http://gmc.yoyogames.com/index.php?showtopic=564424 ho scaricato il .gm81che si trova allegato li (http://www.box.net/shared/fvfj40m8t7002591cc6r) ed ho ottenuto questi risultati:

per Windows

Codice: Seleziona tutto

place_meeting: 2874 
position_meeting: 2773 
instance_place: 2820 
instance_position: 2740 
place_free: 2197 
place_empty: 2280 


1 
1.03778 
1.24716 
1.26218 
1.28357 
1.30815 
Per YYC su Windows

Codice: Seleziona tutto

place_meeting: 1240 
position_meeting: 1129 
instance_place: 1177 
instance_position: 1135 
place_free: 346 
place_empty: 1012 


1 
2.92486 
3.26301 
3.28035 
3.40173 
3.58382 
Numeri minori indicano performances migliori.

Ho necessità di ottimizzare il controllo delle collisioni nel mio gioco e m'interesserebbe sapere che risultati riuscite ad ottenere voi col medesimo programma.
Grazie.

Re: I più veloci metodi di collisione in GM

Inviato: 12/03/2014, 9:07
da Homunculus
La differenza, perlomeno dai tuoi risultati, mi sembra davvero minima. Secondo me non vale nemmeno la pena ottimizzare sulla base della performance delle singole funzioni visto che bene o male sono tutte relativamente simili in quanto a tempo di esecuzione, ma soprattutto fanno cose diverse. Non puoi semplicemente sostituire place_meeting con position_meeting o una delle altre funzioni...

Magari se ci spieghi la situazione e perché necessiti di ottimizzare questo aspetto in particolare si può trovare insieme qualche soluzione più efficace.

Re: I più veloci metodi di collisione in GM

Inviato: 12/03/2014, 13:53
da Will
Spoiler
Non chiedevo un parere, per quanto gradito, su come risolvere un problema di ottimizzazione.
Io non ho alcun problema in merito altrimenti avrei postato in una sezione diversa da questa sul forum.
Mi dispiace aver dato questa impressione.
Anche se ognuna di quelle funzioni fa cose diverse, principalmente, rispondono tutte alla stessa domanda "C'è una collisione?" tra le diverse funzioni, la più pronta a rispondere a quella domanda è "place_free" (per quanto riguarda il mio test, il risultato in YCC è schiacciante e non simile alle altre funzioni concorrenti)
M'interessava scoprire se altri avessero risultati molti discostanti dai miei e fare un confronto.

Nel topic che ho linkato, sul forum ufficiale, se ne parla in maniera sommaria e per nulla esauriente.

Come scrivevo, ho necessità di ottimizzare il controllo delle collisioni nel mio gioco e vorrei farmi un'idea su quale di queste funzioni possa basarlo.
Se su altri sistemi le differenze sono irrisorie (cosa che non sembra accadere sul mio pc) mi avvantaggerò della funzione più lenta ( place_meeting ) altrimenti passerò ad una più performante.

Re: I più veloci metodi di collisione in GM

Inviato: 12/03/2014, 14:12
da Homunculus
Will, quello che io e xeryan stiamo cercando di dirti é che non ha senso confrontare la velocità di queste funzioni perché sono funzioni diverse e non intercambiabili. Anche ammesso che place_free sia effettivamente più veloce di instance_place, semplicemente non puoi sostituire instance_place con place_free per ottimizzare il tuo gioco, perché servono a due scopi differenti.

Re: I più veloci metodi di collisione in GM

Inviato: 12/03/2014, 14:30
da Will
Homunculus ha scritto:Will, quello che io e xeryan stiamo cercando di dirti é che non ha senso confrontare la velocità di queste funzioni perché sono funzioni diverse e non intercambiabili. Anche ammesso che place_free sia effettivamente più veloce di instance_place, semplicemente non puoi sostituire instance_place con place_free per ottimizzare il tuo gioco, perché servono a due scopi differenti.
Potremmo continuare così all'infinito.

place_meeting
position_meeting
instance_place
instance_position
place_free
place_empty
rispondono tutte alla stessa domanda "C'è una collisione?"
dopo di che spetta a me decidere come creare il sistema migliore, secondo le mie necessità, per sfruttare le diverse situazioni per le quali ognuna di queste funzioni è stata creata.
Ma siamo completamente OT.

Rimane la domanda nell Open Post: che risultati riuscite ad ottenere voi col medesimo programma?

NB: appena ho sufficiente tempo posterò un quadro preciso della situazione in cui il mio codice si trova a questo bivio. Per ora capisco di essere stato poco chiaro ed di avervi fuorviato.