Problema con d3d durante l'esportazione Mac (GM:Studio)

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
MyMadness
Membro attivo
Messaggi: 282
Iscritto il: 28/03/2011, 10:56
Specialità: Tuttofare
Uso: GM:Studio 2
Contatta:

Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da MyMadness »

Salve gente, come va? È tanto che non ci si legge =D

Spero di non aver sbagliato sezione (forse andava nella sezione inerente il 3D?), nel caso così fosse chiedo venia...
...Ma veniamo a noi.

Oggi sono finalmente riuscito a fare il bel papozzo di roba necessario per esportare (con GM:Studio) i miei giochi su Mac. Tutto funziona alla grande: la chiave di licenza è ok, la connessione tra pc è stabile e con piacere noto che di "bug" durante la conversione ce ne sono relativamente pochi.
Questo, purtroppo, riguarda esclusivamente il 2d.

Ho provato a portare su Mac un gioco in 3D utilizzando l'engine di Imscared: l'ho adattato a GM:Studio grazie all'aiuto di Tiz, quindi il tutto funzionava alla grande su sistema Windows.
Quando vado a buildare su Mac, però, si presenta un fastidioso bug (che sembra insistere anche con diversi engine scaricari qua e là che utilizzano il mouse come "visuale"): la telecamera di gioco (solo in MacOS, sia chiaro) rimane puntata verso il basso (o verso l'alto) ruotando freneticamente. Tutto il resto funziona, ma il mouse è fuori controllo manco fosse impazzito.


Ponendo si trattasse di un problema delle funzioni mouse di GM:Studio, ho provato altri giochi che utilizzavano tale funzione: niente, funziona tutto alla grande ed il problema si presenta solo con i giochi che utilizzano il d3d.

Di seguito il mio draw event, dovesse essere utile per svelare l'arcano:

Codice: Seleziona tutto

{
  var ss,cc,display_width,display_height,change_x,change_y,vector_x,vector_y,vector_z;

  display_width = display_get_width();
  display_height = display_get_height();
  change_x = (display_mouse_get_x()-display_width/2)/15;
  change_y = (display_mouse_get_y()-display_height/2)/15;
  direction -= change_x;
  zdirection += change_y;
  zdirection = max(min(zdirection,80),-80);
  ss = sin(degtorad(direction));
  cc = cos(degtorad(direction));
  vector_x = cc*cos(degtorad(-zdirection));
  vector_y = ss*-cos(degtorad(-zdirection));
  vector_z = sin(degtorad(-zdirection))+z+height;
  display_mouse_set(display_width/2,display_height/2);
  d3d_set_projection_ext(x,y,z+height,x+vector_x,y+vector_y,vector_z,0,0,1,55,640/480,1,100000);
  draw_set_color(c_white);
  draw_set_alpha(1);
}

Un grazie in anticipo per l'aiuto, ragazzi =)

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da Tizzio »

Saranno buggate le funzioni display_mouse_set
Prova a fare un test su quella funzione e in caso segnalala a yoyogames (http://bugs.yoyogames.com/).
Comunque non so a te, ma se uso d3d ho seri problemi con l'alpha (prova a fare un d3d_draw_wall con una texture "finestra", che abbia un buco [alpha=0] al centro). Non si vedranno gli oggetti dietro.

Inoltre ci sono vari casini coi modelli che sfruttano le texture alphate, ho segnalato a yoyogames
http://bugs.yoyogames.com/view.php?id=10645
Spoiler
Immagine
Speriamo che risolvano presto, dovrò esportare anch'io per mac tra non molto :fapensare:

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

Re: Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da Homunculus »

Tizzio ha scritto: Comunque non so a te, ma se uso d3d ho seri problemi con l'alpha (prova a fare un d3d_draw_wall con una texture "finestra", che abbia un buco [alpha=0] al centro). Non si vedranno gli oggetti dietro.
Credo (ma si sa che il 3d non é il mio forte) che questo sia normale in realtà (e non solo in GM, ma parlando di 3d in generale), e dipende dall'ordine di disegno. Prova a variare la depth dell'oggetto alphato e di ciò che sta dietro, in teoria quando l'oggetto con alpha ha una depth maggiore (viene disegnato dopo) dovrebbe funzionare come ti aspetti.

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da Tizzio »

Homunculus ha scritto: l'oggetto con alpha ha una depth maggiore (viene disegnato dopo) dovrebbe funzionare come ti aspetti.
é l'opposto, comunque sia, in gamemaker 8.1 funziona benissimo, e questo problema non dovrebbe esistere ormai coi nuovi sistemi, non posso credere che si torni al passato con gmstudio (questi problemi c'erano in gm6)

Comunque sia, il problema principale è un altro.
Come vedi nell'immagine che ho postato su, ho un tavolo (un semplice "cubo" texturato a modi tavolo), in gm81 si vede un tavolo, in gmstudio si vede un cubo marrone :lol:
Comunque sia mi hanno accettato il bug, quindi spero risolvano presto...

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da Jak »

Tizzio ha scritto:comunque sia, in gamemaker 8.1 funziona benissimo, e questo problema non dovrebbe esistere ormai coi nuovi sistemi, non posso credere che si torni al passato con gmstudio (questi problemi c'erano in gm6)
Bè, questi problemi esistono ancora con qualunque engine. In effetti l'alfa testing è una tecnica che risolve il problema ma non permette variazioni di alpha. Il problema è risolto comunque per metà. Nel caso di game maker anche nella 8.1 funziona solo se l'alpha è completamente a 0 e se attivi l'interpolazione da strani risultati.
Le uniche soluzioni attualmente utilizzabili sono cose del tipo deep peeling, in pratica memorizzano tutti i vari layer di alpha per calcolarli successivamente ma sono tecniche ancora da evitare in quanto molto pesanti.
L'unica "vera" soluzione attuale è quella di sistemare l'ordine di disegno degli oggetti che non risolve tutti i problemi ma sicuramente la maggior parte.
Ecco perchè è sempre meglio evitare di usare l'alpha con il 3d ed ecco perchè sistemi "ibridi" cioè usare billboard e sprite in giro son sempre complicati e pieni di problemi di questo genere.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da Tizzio »

Jak ha scritto:
Tizzio ha scritto:comunque sia, in gamemaker 8.1 funziona benissimo, e questo problema non dovrebbe esistere ormai coi nuovi sistemi, non posso credere che si torni al passato con gmstudio (questi problemi c'erano in gm6)
Bè, questi problemi esistono ancora con qualunque engine. In effetti l'alfa testing è una tecnica che risolve il problema ma non permette variazioni di alpha. Il problema è risolto comunque per metà. Nel caso di game maker anche nella 8.1 funziona solo se l'alpha è completamente a 0 e se attivi l'interpolazione da strani risultati.
Le uniche soluzioni attualmente utilizzabili sono cose del tipo deep peeling, in pratica memorizzano tutti i vari layer di alpha per calcolarli successivamente ma sono tecniche ancora da evitare in quanto molto pesanti.
L'unica "vera" soluzione attuale è quella di sistemare l'ordine di disegno degli oggetti che non risolve tutti i problemi ma sicuramente la maggior parte.
Ecco perchè è sempre meglio evitare di usare l'alpha con il 3d ed ecco perchè sistemi "ibridi" cioè usare billboard e sprite in giro son sempre complicati e pieni di problemi di questo genere.

Grazie jak, Comunque sia (grazie xeryan :lol: ) adotterò questo sistema del depth sorting in base alla distanza dalla camera...

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da Jak »

Tizzio ha scritto:Grazie jak, Comunque sia (grazie xeryan :lol: ) adotterò questo sistema del depth sorting in base alla distanza dalla camera...
Ricordati che per questioni di prestazioni nel caso di oggetti completamente opachi il discorso è l'esatto opposto. Se li disegni dal più vicino al più lontano puoi guadagnare moltissimi fps ;)
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Problema con d3d durante l'esportazione Mac (GM:Studio)

Messaggio da Tizzio »

Jak ha scritto:
Tizzio ha scritto:Grazie jak, Comunque sia (grazie xeryan :lol: ) adotterò questo sistema del depth sorting in base alla distanza dalla camera...
Ricordati che per questioni di prestazioni nel caso di oggetti completamente opachi il discorso è l'esatto opposto. Se li disegni dal più vicino al più lontano puoi guadagnare moltissimi fps ;)
Ha molto senso :fapensare:
Questo topic si fa interessante!

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 170 ospiti