Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Goganpis

16
Preguntas y respuestas / Re:Optimización del dibujado en 3D
Septiembre 03, 2019, 12:48:34 AM
Dixon eso es solo un modelo hecho de un cubo para simular un skybox en donde configure visualmente la figura del cubo invirtiendo las caras y repitiendo la textura de las estrellas 10 veces con Model Creator (by Maarten Baert).
Pense que conocias ese tipo de archivo  :-[
Cita de: dixon en Septiembre 02, 2019, 09:31:43 PM
Que es el md_skybox.gmmod?




Clamud lei una parte en el foro de yoyo el cual un usuario explica lo que se traga todo el rendimiento es: el procesamiento de estar dibujando en tiempo real demasiados poligonos y la memoria de video o algo asi es la que se cae en rendimiento y por ello sucede lo mismo que vemos al crear 100 estructuras por separado de un edificio en lugar de optimizarlo uniendo esas piezas y dibujarlo en un solo modelo. Las funciones de dibujos son rapidas, el costo de procesamiento es calcular a tiempo real cada poligono en distancia y cada textura, por eso se crean los modelos lo que hacen es tener eso listo ya para rellenarlo de una textura que seria menos procesamiento.
ej: Si en la vida real quieres hacer la figura de un circulo moneda o lo que sea en una hoja blanca manualmente sin ningun molde te costara hacerlo mientras que teniendo un molde solo subrayas lo que ya te indica la figura (el circulo en este ejemplo se dibuja mas rapido con un molde que dibujarlo sin molde). No se como explique espero que se entienda
Cita de: Clamud en Septiembre 02, 2019, 10:44:30 PM
Las funciones d3d_draw_* siempre son lentas, es mejor crear un modelo con código o cargarlo desde un archivo.
Usar un formato personalizado con vertex buffers es más óptimo, pero más difícil de implementar.
17
Preguntas y respuestas / Re:Optimización del dibujado en 3D
Septiembre 02, 2019, 06:53:27 AM
Pues solo dibuja lo que tienes al frente eso hacia NeedForSpeed: Most Wanted para aquella epoca en la que fue lanzada y una consola soporto graficos y calculos muy buenos tanto que era una ciudad bien detallada y particulas, etc etc... Eso se lo logra con la diferencia de angulos.

No dibujes mas alla de lo que no necesitas.

Cambia modelos detallados por modelos low poly cuando veas necesario para bajar recursos puedes usarlo en la distancia que no se logra detallar la deformacion de objetos.

Usa modelos en lugar de dibujar lo que necesitas en tiempo real.

Si no lo ves, no lo dibujes: Haz un algoritmo el cual cree el modelo del terreno que necesitas dibujar entre menos poligonos es mas fps.

No uses modelos detallados muy a menudo, mejor usa texturas bien hechas para simular realidad te recomiendo GamingEngineer, es un youtuber que usa GM y todos sus proyectos se notan muy realistas y gracias a lo que he diferenciado he mejorado mucho link del canal: https://www.youtube.com/channel/UCXTGsXscHY4vZE4TyVw9JzA

Lo que agrego dixon tambien funciona y tiene mucha razon aun no encuentro logica pero creo que es por el procesamiento de que game maker funciona es pixel por pixel.

Dejo un proyecto abjunto.
PD: El modelo tienes que vorverlo a actualizar en included files para que dibuje el modelo del skybox basico.
18
Preguntas y respuestas / Re:Renderización de niveles
Septiembre 02, 2019, 06:15:40 AM
Si quieres desactivar instancias solo usa las funciones instance_deactivate_* y las instance_activate_*

Ya para el dibujado es depende como lo plantees

1. Si es en una surface pues solo redibuja lo que necesitas en la posicion deseada.
2. Si es una animacion solo crea diferentes modelos 3D o los objetos que colocas en la room los destruyes o lo desactivas si estan fuera y activas los que entran dentro de la view.
3. Si es un efecto como el de minecraft solo dibuja lo que esta a tu alcance visual destruyendo lo que no necesitas y creando lo que vas a necesitar.
19
Preguntas y respuestas / Re:Scrollbars
Septiembre 01, 2019, 09:37:33 AM
OK te explico, aparte el codigo de antes lo modifique es que tenia varios bugs   :-[

scroll = 0; // Es la posicion del scroll o la bajada como entiendas lo que hace la scrollbar
option[0] = "blabla"; // Son las opciones imaginando que es un menu de opciones
option[1] = "otra opcion";
option[2] = "bla";
option[4] = "otro bla";
option[5] = "bla";

var wheel; // Esto solo es un controlador para mover el scroll eso puedes modificarlo
wheel = mouse_wheel_up()-mouse_wheel_down();

scroll += wheel; // Se suma la var wheel definida antes
if scroll > 3 // Esto es para que el scroll no salga del limite de opciones o se ira a un infinito loco donde no hay nada
    { // Aunque en este caso el array tiraria error al hacerlo
     scroll = 3;
    }
else if scroll < 0
    {
     scroll = 0;
    }

surface_set_target(scroll_surf); // Seleccionar surface
draw_clear_alpha(0,0); // Borrar dibujado para que entiendas se limpia la surface, pantalla como entiendas

var i,l;
l = scroll+3; // Solo es una variable para detener el bucle
for(i=scroll;i<l;i+=1)
    {
     // (i-scroll) = para que se dibuje en la surface(nueva pantalla) simulando el scroll y no en la posicion que sale del cuadro
     draw_text(0,(i-scroll)*20,option[i]); // Dibujara un texto esto no tiene ciencia
    }

surface_reset_target(); // Reinicia la surface (En si esto suelta la surface y no sufre ningun otro caso caotico
draw_surface(scroll_surf, room_width/2, room_height/2); // Se dibuja en la coordenada deseada


Cita de: jhgv en Septiembre 01, 2019, 09:20:42 AM
Muchisimas gracias por ayudarme bro el problema es que ando algo flojo (oxidado) en esto y la verdad no entiendo el codigo de los demás... podrias decirme como funcionan? para tomarlo de referencia osea dame el codigo pero con palabras :c ploss...
psd: lo Siento muchisimo peroo... ¿que es surface?
20
Preguntas y respuestas / Re:Scrollbars
Septiembre 01, 2019, 09:14:32 AM
Usa una surface del tamaño del cuadro y dibuja lo que necesitas alli y para el scrollbar solo usa un array donde guardes cada opcion del cuadro y lo vas dibujando mediante el limite que tenga el scroll ej:

scroll = 0;
option[0] = "blabla";
option[1] = "otra opcion";
option[2] = "bla";
option[4] = "otro bla";
option[5] = "bla";

var wheel;
wheel = mouse_wheel_up()-mouse_wheel_down();

scroll += wheel;
if scroll > 3
    {
     scroll = 3;
    }
else
    {
     scroll = 0;
    }

surface_set_target(scroll_surf);
draw_clear_alpha(0,0);

var i,l;
l = scroll+3
for(i=scroll;i<l;i+=1)
    {
     if i > 5 then break;
     
     draw_text(0,i*20,option[i]);
    }

surface_reset_target();
draw_surface(scroll_surf, room_width/2, room_height/2);


pd: scroll_surf tiene que ser creada anteriormente.
pd2: usalo en el evento Draw
pd3: Se mueve con la rueda del raton ya para el scrollbar usa una imagen que cambie la variable scroll.
21
Preguntas y respuestas / Re:Juego de lucha
Septiembre 01, 2019, 07:56:38 AM
Jaja si se me paso por alto el orden de dibujado pues lo hice sin probarlo...

Cita de: Neodreamer en Agosto 31, 2019, 01:21:56 PM
Hola muchas gracias a todos por constestar ,   Goganpis  te quedo perfecto ahora se me dibuja la sombra en todos los fps que necesito y en todas las sub-imagenes.Evidendemte tengo que ajustarlo por que quiero que vea la sombra desde "atras" del personaje .Pero es lo que quería  por cierto , no me acordaba se esa función
y mira que he leido el manual bastante veces.... es muy extenso  :-[  , se puede pasar cualquier cosa.Muchas gracias.

Aqui esta el edit
EVENT DRAW
// Sombra
// Aqui se dibuja aparentando una inclinacion en el angulo que le das y la altura del sprite reducida(image_yscale*0.25) Puede ser cambiado
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale*0.25, image_angle-45, c_black, image_alpha*0.35);

draw_self(); // Esta funcion dibuja tu sprite normalmente
22
Ehm una duda con gm8 y antiguos se puede vender?
23
Preguntas y respuestas / Re:Juego de lucha
Agosto 30, 2019, 11:22:18 PM
Practicamente no se programar con shaders, pero soy muy bueno en el pixel art y los calculos asi que yo uso esa funcion no entiendo que quisite decir con eso  :-\ pero esa funcion te ayuda de mucho, yo la uso para hacer sombras, efectos, scroll, particulas y ademas la uso para crear surfaces y convertirla a una sola imagen. No tiene porque retirarse
Cita de: jhgv en Agosto 30, 2019, 10:25:10 PM
Retirate master :v ¿quien usa el draw_sprite_ext? :p



Cuando estaba aprendiendo GML no sabia ni coña** pero wacho solo tenes que saber matematicas, fisicas y tener un intelecto con el coeficiente logico bien entrenado... Todo aqui es una falsedad ninguna colision es perfecta, ningun modelo 3D es detallado a la perfeccion, solo acomodate y te dejare el codigo para que lo uses

Cita de: Neodreamer en Agosto 30, 2019, 05:59:42 PM
Hola makeros estoy intentando hacer un juego de lucha tipo mortal kombat donde quiero crear las sombras tipo  mugen donde a cada sprite se le asigna una   para no hacerlas manualmente.Logicamente que la sombra siga al jugador , pero es que no tengo ni idea.He leido algo sobre los shaders sirve eso ? , Haber si me podeis ayudar.Gracias.

EVENT DRAW
draw_self(); // Esta funcion dibuja tu sprite normalmente

// Sombra
// Aqui se dibuja aparentando una inclinacion en el angulo que le das y la altura del sprite reducida(image_yscale*0.25) Puede ser cambiado
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale*0.25, image_angle-45, c_black, image_alpha*0.35);


PD: Ya solo ajustalo cuando queres que se dibuje
24
Preguntas y respuestas / Re:Detalles en los graficos
Agosto 27, 2019, 10:25:01 PM
Bueno dixon me encanto esa informacion es algo nuevo que comprendi por eso cuando creaba un mundo de minecraft con menos pixeles de tamaño habia una gran diferencia pues intentare hacer un script de colision que actue por si solo y lo colocare en el apartado de scripts para el que quiera probarlo es muy facil lo que intentas decir y con GML es rapido ya que solo calculas el decimal y no consume demasiado si llega a optimizarse, no hay necesidad de usar una mask puesto que solo usaras el room editor en lugar de colocar una variable que indique cuantos pixeles equivale un metro... Estuve leyendo la documentacion de minecraft y un bloque equivale a un metro sabiendo de que el bloque puede ser de 8x8 para no tener deformaciones grandes
25
Creo que ahora estas liado con los origenes de los sprites... Una mask tambien es como un sprite dibujado

Coloca esto en el evento draw del personaje para que notes lo que ocurre
draw_self();
draw_sprite(mask_index,0,x,y);


Debes de tener en cuenta de que la mask de colision se altera de la misma forma que un sprite.
26
Preguntas y respuestas / Re:Detalles en los graficos
Agosto 22, 2019, 11:49:38 PM
Me parecio una gran idea gracias a que trae miles de funciones que aceleran el proceso de crear nuestros propios scripts de funciones 3D pero lo que mas dio impresion fue sus funciones avanzadas para las colisiones y el desarrollo de las animaciones hechas en anim8 etc etc. Aunque la verdad es muy sencillo la realidad de los juegos 3D es dificil adaptarse :/
Cita de: Clamud en Agosto 22, 2019, 03:59:01 PM
No he usado Ultimate3D, pero he visto el TechDemo y parece muy buena opción para GM8. El manual sigue disponible. No es tan fácil de seguir como los tutoriales, pero es de mucha ayuda.



Como es la miniaurizacion maxima de elementos 3d?
Al parecer es muy limitado pero la facilidad de game maker es lo mas genial no quiero apartarme de el y quiero sacarle todo el potencial XD
Aun no se como es que Gaming engineer logra eso y hace parecer simples juegos a un realismo absoluto como si hubiera sido hecho para play 2... el ultimo video que subio es hecho en GMS2 pero parece hecho en unity.
Cita de: dixon en Agosto 21, 2019, 04:56:38 AM
Hola, encontré esta web http://ultimate3d.org/ colocando entre comillas la palabra "ultimate 3d" en google y con el navegador chrome la puedo traducir al español.


Si yo quisiera crear un juego 3D,  por los momentos no usaría ultimate 3D, usaría game maker 8 y aplicaría estas dos técnicas de ahorro de procesamiento que me permitirían crear mini ciudades en computadoras de bajos recursos.

1. Disiparía imágenes de figuras 3D lejanas según la distancia hasta desaparecerlas por completo.
2. Miniaurización máxima de elementos 3d.
3. Bajaria la cámara al ras del suelo.



27
Preguntas y respuestas / Detalles en los graficos
Agosto 18, 2019, 07:11:22 PM
Bueno primero que nada queria acelerar la forma en que corrian los fps en mi juego pero me consta de que con las funciones 3D predeterminadas que trae el GM esto no funcionaria ni optimizando todos los objetos que tiene el juego... Para ello he buscado informacion y dll's.

Me encontre con Ultimate3D alguien lo ha usado o tiene idea de como funciona ya lo he instalado y todo parece ir de maravilla pero me lia demasiado ya que no hay muchos tutoriales disponibles porque expiraron las paginas o simplemente fueron borrados y en el foro oficial no hay demasiados detalles para un principiante con esas funciones adicionales.
28
Preguntas y respuestas / Re:Problemas con Game Maker!
Agosto 09, 2019, 08:42:47 PM
Johann tienes razon pero como borraria solo los archivos temporales de game maker porque la verdad mi memoria no se colapsa, me doy cuenta porque siempre trabajo con el administrador de tareas abierto ya que programo en 3D y algunas veces se me crashea por algun loop infinito y no puedo salir... Algo extraño que ocurre es que todo trabaja bien hasta las carpetas abren, lo que no funciona es la funcion de apagado|suspender|reiniciar de windows y las funciones para abrir el administrador de tareas ( Varias veces se me olvida abrirlo y cuando voy a ejecutarlo no sale ni nada )
Cita de: Johann en Agosto 09, 2019, 02:03:43 AM
Parece que tuvieras tu disco duro (partición de sistema) muy lleno, intenta liberar espacio borrando archivos temporales y ese tipo de cosas.


Black_Cat esos recursos como haria para liberarlos en GM8 pues cuando usaba GMS (que deje de usarlo porque perdi la licencia sin querer y ya no se puede descargar el GMS) era borrando la cache al lado de los botones para probar el juego. Mi pc no da problemas con los juegos que tengo ni con photoshop ni con los 4 disco duros que tengo  ???
Cita de: Black_Cat en Agosto 09, 2019, 05:53:30 AM
A mi me suena que es algun recurso dinámico que no se está liberando porque si cada vez se pone peor, puedo suponer que son listas dinámicas por ejemplo que se van acumulando en la ram y eso ralentizaria la pc por lo quealapagar la compu se vacía la ram.
Sino la pc de facto andaría mal desde que prende hasta que se apaga   ??? Esta raro eso

29
Preguntas y respuestas / Problemas con Game Maker!
Agosto 09, 2019, 12:51:57 AM
Uso GM8 nunca me habia dado problemas pero ultimamente comienza a colocarse tedioso que a medida que voy probando mi proyecto se ralentiza la carga para probar el juego, seguidamente llega un punto en donde ni la barra de carga sale y se queda alli asi no mas sin abrir nada y intento salir pero no responde a nada ni con las funciones del administrador de tareas puedo terminar el proceso ni el arbol de procesos ademas que tampoco me deja apagar ni reiniciar la PC desde el mismo software entonces tengo que apagarla desde el boton "POWER".

Pd: tengo Windows7
30
Cita de: Silver_light en Agosto 03, 2019, 02:07:27 AM
El único problema que tiene este algoritmo es que, la instrucción mas importante:
[gml]
  tanteo = irandom(ListaMax); // Aleatoriedad del tanteo a elegir
[/gml]
Podría dar un numero repetido y el ciclo contaría de todas maneras la iteración. En el peor de los casos se dará para un elemento repetido y no habrán 3 elementos seleccionado sino 2 o para peor, solo 1.
Lo que cabría hacer es, verificar, que el número que saca "tanteo" no está repetido.
[gml]
  tanteo = irandom(ListaMax); // Aleatoriedad del tanteo a elegir
if (lista[tanteo] == 0)
     lista[tanteo] = 1;
  else
      i -= 1;  //repetir el ciclo restando -1, para decir que no cuente esta vuelta. (Aclaro que esto para mi desde un punto estructural siguiendo el paradigma de programacion estructurada, esta super mal XD )
[/gml]

El problema con este algoritmo es, lo que se llama "aplazamiento indefinido", que en el peor de los casos cae siempre en un espacio ocupado y se repite innecesariamente muchas iteracion.
Por lo que:No es la mejor manera, pero sigue siendo una solución corta de implementar. <3

Lo hice sin probarlo  :-[ :-[ Pues gracias por corregirme