I più veloci metodi di collisione in GM

Algoritmi, discussioni sulle possibili implementazioni, matematica, fisica e tutti gli argomenti correlati alla programmazione
Rispondi
Will
Newbie
Messaggi: 27
Iscritto il: 14/10/2013, 18:01
Specialità: Programmazione
Uso: GM:Studio 1.4 Master
Contatta:

I più veloci metodi di collisione in GM

Messaggio 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.

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: I più veloci metodi di collisione in GM

Messaggio 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.

Will
Newbie
Messaggi: 27
Iscritto il: 14/10/2013, 18:01
Specialità: Programmazione
Uso: GM:Studio 1.4 Master
Contatta:

Re: I più veloci metodi di collisione in GM

Messaggio 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.

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: I più veloci metodi di collisione in GM

Messaggio 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.

Will
Newbie
Messaggi: 27
Iscritto il: 14/10/2013, 18:01
Specialità: Programmazione
Uso: GM:Studio 1.4 Master
Contatta:

Re: I più veloci metodi di collisione in GM

Messaggio 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.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti