Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

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


Mensajes - DarkKRuleR

Páginas: 1 2 3 ... 48
1
¡Buenas! Esto es mu raro... tengo una surface con color plano de fondo y, cada vez que dibujo un sprite semitransparente, éste deja un "agujero" que me permite ver a través de la surface... ¿Alguna idea? >_<

if (!surface_exists(sur)) sur = surface_create(size, size);
if (surface_exists(sur)) surface_set_target(sur);
draw_clear_alpha(c_black, 0);
draw_set_blend_mode(bm_normal);
draw_sprite_ext(iconoDeColorOpacoRojoOscuro, 34, 256, 256, 8, 8, 0, c_white, 1);

draw_sprite_ext(manchaBlancaConTransparencias, 0, xMancha[i], yMancha[i], size, size, 0, colMancha[i], alphaMancha[i]);
 
surface_reset_target();
   
if (surface_exists(sur)) txEstrella = surface_get_texture(surEstrella);

EDIT: Resuelto con bm_add, el efecto me gusta.

2
¡Buenas! ¿Alguien conoce cuál es la implementación de d3d_model_block y similares? Como no tiene coordenadas de textura, alpha ni color, tuve que crearme uno personalizado, y pos tiro de d3d_model_primitive_begin y d3d_model_vertex_texture_colour, y me va perfecto. Pero noto que el juego ralentiza bastante. Lo que gano en eficiencia de poder tener 300 cubos en 1 solo modelo y 1 sola llamada a draw, lo pierdo en tener que definir los vértices de cada una en cada step (modelo dinámico que debo redefinir en cada step).

¿Sabéis si d3d_model_block también hace esto, o si hace algo como "precargar" el modelo e insertarlo? ¿Es posible hacer (emularlo) en caso de que exista eso, definir los vértices del modelo en otro lado e "insertarlo"/"fusionarlo" al modelo actual? Si tengo que hacer 300 draw_block, volvería de nuevo a ralentizar todo...

3
Juegos completos / Re:Adiós, capitán.
« en: Diciembre 31, 2020, 05:34:50 pm »
Grande, Dixon.

4
Preguntas y respuestas / Re:como puedo hacer un sistema de misiones
« en: Noviembre 08, 2020, 09:38:08 pm »
Manéjate con variables. En un objeto principal ten una variable por cada misión, cuyo valor inicial podría ser -1, que significa "no disponible". En el momento en que te dan la misión, puedes ponerlo a 0, indicando que la comenzaste. Asímismo podrías chequear que el NPC o lo que sea sólo te de la misión si su variable vale -1, para no repetir. Entonces, de 0 hacia arriba son los estados. Por ejemplo, mision: caza al gato, vale 0. Al atrapar el gato, pones la variable = 1, que significará "devuelve el gato al dueño". Al llegar al dueño, si la variable vale 1, descubres que en realidad el dueño es el gato y el gato es el dueño, entonces la pones = 2. Etc etc. Chequeando el valor de las variables puedes tener el flujo. Y por ejemplo, esta mision al acabar, la pongo = 7 (si tuvo 7 pasos) y entonces ya aparece como completada (cada mision tendria su propio numero para salir como completada).

5
Preguntas y respuestas / Fatal error in Vertex Shader Compilation
« en: Noviembre 02, 2020, 06:34:43 pm »
Así sin más, sin menos. Le explotó en la cara en el PC de algunos amigos. Es raro porque en el pasado ya les funcionó lo mismo en esos mismos PCs, y no veo que haya añadido nada nuevo para que ocurra... Al resto nos va bien.


6
Preguntas y respuestas / Re:Orden triángulos en modelo 3D
« en: Octubre 08, 2020, 08:52:57 pm »
Si te fijas, en la imagen, la cara inferior de la mesa es la frontal, y en las patas, sus caras también son frontales. Ocurre que si en el modelo está definida primero la cara FRONTAL de la pata, y luego la cara FRONTAL de la mesa, pero lo miras desde abajo, entonces la cara FRONTAL de la mesa se superpone a la cara FRONTAL de la pata

Con modelos que son parecidos a cuadrados o redondos no ocurre

Y sí, siempre tengo el culling activado

EDIT: d3d_set_zwriteenable lo resuelve automáticamente... siempre pensé que no servía para nada la función xDDD Resuelto!

7
Preguntas y respuestas / Re:Orden triángulos en modelo 3D
« en: Octubre 08, 2020, 06:47:55 pm »
Ya tengo el culling activado. Pondré un ejemplo gráfico, culpa mía.



Si, por ejemplo, defines el modelo de la mesa primero las patas y luego la tabla, al dibujar la tabla al final, se dibujará superpuesta a las patas. Bien. Pero al mirar la mesa desde abajo, la tabla se seguirá superponiendo a las patas, pues así fue definido el modelo en el orden de sus triángulos, y se verá mal. No depende del culling.

Cada modelo se verá mal de 300 formas distintas segun desde dónde lo mires, y no se me ocurre cómo arreglan esto los que hacen juegos...

8
Hola DarkKRuleR

Cada dibujo que haces, pasa por una Shader por defecto de Game Maker que hace ciertas correcciones "por si acaso" a lo que dibujas.
Puedes intentar evitar esa Shader para ver si eso tiene alguna mejora en el código o no.

Simplemente crea una nueva Shader, llámala como quieras y no le hagas ningún cambio, déjala tal como la genera Game Maker.
En el Draw_Event usas:
shader_set(tu_shader_aqui)
//tus draw events aqui
shader_reset()

Eso hará que Game Maker en vez de usar la Default Shader, usará tu Shader que has generado que no tiene código.

Esa información se encuentra en este artículo:
https://help.yoyogames.com/hc/en-us/articles/216754868-Optimising-The-Draw-Pipeline

Otra cosa que puedes hacer es obviamente NO dibujar a los personajes que se encuentren fuera de cámara.

Saludos

Gracias por la respuesta. Al final lo resolví con aquello que encontré, vertex_buffers. Me permiten definir todas las llamadas al "draw", todos los triángulos, para ser enviados con una sola llamada al draw, siendo super eficiente. Y para modelos estáticos, uso modelos tal cual.

Lo que dices es un muy buen consejo que ya había leído anteriormente, pero lo hicimos de otra forma. Modificando el shader en las carpetas de window y quitando todas esas comprobaciones que dices, para que todos los juegos compilados no usen ese shader por defecto ineficiente!

9
Preguntas y respuestas / Re:Orden triángulos en modelo 3D
« en: Octubre 08, 2020, 06:11:12 pm »
Hola DarkKRuleR

Mejor crear el objeto (como triángulo) en un programa externo (como Blender que es gratuito) e importar el .OBJ o no?
y la textura en .PNG

Saludos

Crearlo en un programa externo no cambiaría nada. El orden de los triángulos definidos en el modelo sería fijo y ocurriría ese problema al verlos desde el lado contrario, no?

10
Preguntas y respuestas / [Resuelto] Orden triángulos en modelo 3D
« en: Octubre 08, 2020, 02:17:31 am »
¡Buenas! La duda, la duda... ¿Cómo lo hace la gente en el mundo y todos los juegos para no tener problemas con el orden de los triángulos en un modelo 3D? Imaginad un caso simple, una mesa. Si dibujo primero las patas y luego la tabla, se ve bien mirando desde arriba, pero si miro desde abajo... Al principio mis modelos eran simples pero... a la mínima complejidad, el modelo peta si lo miras desde otro lado. No se me ocurre nada que sea... viable. ¿Cómo le hacen en los demás juegos? Gracias.

11
Juegos completos / Re:El pan de nuestra familia
« en: Septiembre 26, 2020, 03:39:07 am »
Hermoso. Una forma curiosa de mostrar la realidad que uno vive al mundo.

12
¡Buenas! Os cuento el resumen. Yo tengo mis personajes. Defino las coordenadas de las partes del cuerpo y sus ángulos (hombro, codo, cintura, rodilla...), para tener la información de dónde dibujar el cuerpo y en qué pose. Entonces dibujo los sprites en esas coordenadas (el brazo, la mano, la pierna, el pie).

Qué pasa, que se ejecutan muchos draw_ .... y el coste se dispara bastante. He hecho comprobaciones y es como el 90% del coste de mi juego, sólo los personajes. Al parecer lo costoso no es la complejidad de qué dibujas, sino el hecho de llamar a las funciones de dibujo. Y como ejecuto muchos draw_ ... separados, pues consume mucha memoria.

¿Hay alguna forma de hacer esto más eficiente? Al ser el cuerpo dinámico, en principio no puedo hacer un modelo estático, pues si me muevo, las piernas se mueven, cambiando las coordenadas de sus vértices. ¿Alguna forma de dibujar todo esto sin tener el coste por llamar muchas veces a draw? ¿Alguna forma de, no sé, guardar todas esas coordenadas en una iteración, y luego dibujar todo de golpe, aunque sean coordenadas distintas en cada step?

EDIT: Justo he encontrado vertex_create_buffer y vertex_submit y demás, podría ser la solución... pero me cuesta entender.

13
Preguntas y respuestas / Re:Cámara 3D que no atraviese sólidos.
« en: Agosto 19, 2020, 03:34:51 pm »
Graciass. En principio no planteé collision_line ya que al ser full 3D pues faltaba la tercera componente. Sin embargo vi que de alguna forma podía hacerse, aunque fue complicado.

Entre pruebas y pruebas di con una solucion alternativa. La original, con un pequeño retoque xD Gracias igual por ser esa chispa (!)

14
¡Buenas! Pues tengo una cámara con una posición 3D dada, digamos "x, y, z". El problema es que si me pongo contra un muro, la cámara puede quedarse dentro de él, viendo las cosas desde ángulos incorrectos o hasta pudiendo ver cosas que hay detrás de las paredes. Incluso si no ocurre esto, podría ocurrir que la cámara quede al otro lado de un muro, sin colisionar con nada en x, y, z, pero sí colisionando en la línea, quedando la cámara al otro lado de la pared y también viendo cosas que no debería poder ver.

Hice un bucle para calcular en qué coordenada poner la cámara, comenzando en el personaje, sumando 1 píxel a la distancia, calculando que no haya colisión, y así iterar hasta llegar a la posición de la cámara, habiéndome asegurado que entre el personaje y ésta no haya sólidos. Pero iterar tanto y buscar colisión en cada iteración dispara el coste. Intenté poner un modo "económico" en que hiciera saltos por ejemplo de 50 en 50 píxeles (los muros son de tamaño 150), pero a veces los atraviesa igual.

También pensé alternativas, como dejar que la cámara atraviese los muros, pero si lo hace, poner la vista en negro, o teletransportarla al personaje, o mil cosas.... pero ninguna me convence. Y el problema principal es saber que entre la cámara y el personaje no haya sólidos y colocar la cámara a la distancia máxima (pegada al muro) sin disparar el coste con un bucle y mil comprobaciones.

¿Quien haya hecho algo similar, cómo lo arreglaste?

15
Preguntas y respuestas / Re:Modelo 3D con color y alpha variables
« en: Agosto 11, 2020, 02:04:15 am »
Vale... al final resulta que draw_set_color sí funcionaba con modelos si usabas el draw vertex base SIN especificar color ni alpha... Al final encontré una forma de lograr mi efecto deseado sin especificar alpha en los modelos, y entonces me agarró el alpha global. La vida xD Gracias por todo. Lo de los shaders podría estar bien tenerlo en cuenta.

Páginas: 1 2 3 ... 48