amigos de comunidadgm tengo una pregunta: porque cuando yo estoy creando mi juego 3d y le pongo muchas cosa al mundo 3d el juego va cargando mas lento cada vez que le pongo algo el se me va poniendo mas leto me explico si tengo el juego vacio solo con el jugador uffff el juego es rapido pero si comienzo a ponerle como casa y cosas haci el juego se pone lento y cada vez mas lento si le voy poniendo mas cosas si hubiera algo de que me lo ponga normal se lo agrade seria

#1 Enero 17, 2015, 08:36:45 PM Ultima modificación: Enero 17, 2015, 08:42:17 PM por Clamud
Porque GM no está optimizado para funcionar en 3D y además en GM8 el código no es compilado, es interpretado. Para que funcione a una velocidad decente, el juego tiene que estar muy bien optimizado:

-Si los objetos ejecutan largas piezas de código, harán más lento al juego conforme el número de instancias aumente, por eso no se deben poner muchas instancias en la escena y se deben desactivar las que no son visibles o que no son muy importantes. Se debe ver la posibilidad de simplificar el código, también evita usar muchas variables locales (declaradas con var).

-Si los objetos tienen poco código, pero aún así reducen la velocidad, es porque sus modelos tienen demasiados polígonos, una solución es simplificar los modelos, también ayuda hacer invisibles los objetos que no están enfrente de la cámara o que están muy lejanos, poner niebla ayuda a mitigar las apariciones y desapariciones bruscas de los objetos lejanos.

-Desactivar la interpolación de texturas mejora la velocidad, pero sólo en tarjetas de video viejas.

-Disminuiye la resolución del juego, haciendo más pequeña la room o la view.

Una opción más radical, es pasar tu proyecto a ENIGMA (LateralGM); como el código si es compilado, los juegos corren más rápido (yo he conseguido hasta 600 fps en 3D). El problema es que tendrás que modificar mucho código, porque hay muchas cosas que no son compatibles, tal vez lo primero sería comprobar que tu sistema de comunicación con la red es compatible.

ok gracias si tengo una idea con eso quisiera ponerle la niebla al juego y hacerle un espacio mas pequeño para que mi juego no se ponga lento


me ayudas hacer el codigo de la niebla ?

Poner niebla es fácil, sólo se usa una función:
[gml]d3d_set_fog( enable, color, start, end );[/gml]
enable tiene que cambiarse por true, color es el color de la niebla, elige el que prefieras, lo normal es que sea del mismo color que el fondo de la room, start indica a qué distancia de la cámara la niebla se empieza a opacar, y end indica a qué distancia la niebla es completamente opaca.

nose para poner ese codigo tengo que crear uno nuevo objeto ohhhh entrarlo en unos de esto
obj_d3d
obj_floor
obj_control

asi me dice que esta malo el codigo d3d_set_fog( true, color_get_blue, start, end );

El código que te dieron ponelo en el evento Create de obj_control. Completá los parámetros con los valores que queres.

Para poner varios modelos y que no se vean afectados los FPS te recomiendo hacer el mata en un único modelo 3D. Es decir, en vez de armar un bosque poniendo varios modelos en :GM8: hacé un modelo 3D donde hayan varios árboles, de esa forma te vas a evitar varios problemas, eso es lo que hice en mi juego en 3D.

#6 Enero 18, 2015, 12:11:34 AM Ultima modificación: Enero 18, 2015, 12:15:51 AM por am3500
ok si  es verdad yo puse machas matas y se me puso lento lo hare haci creo un modelo que tenga muchas matas XD.

tengo un problemita a cuanto le pongo en el start y en el end

Ponele 10 y 100 y andá probando, eso te determina la intensidad de la niebla.

ok gracias ya lo puse como 100 y 400 y anda algo rapido pero tengo un problema la niebla es negra no como humo o blanco


#10 Enero 18, 2015, 01:10:29 AM Ultima modificación: Enero 18, 2015, 01:27:35 AM por am3500
-ya si esta la niebla gracias a todos los que me ayudaron.

-y en tonce tengo que crear todo mi model junto para que no se cargue el juego por ejemplo si quiero poner matas tendria que hacer un model de muchas matas ?

ok alquin sabe de ustedes como hacer que el jugador de un golpe o un attack

Tenes que modelar y animar el personaje atacando y después asignarle eso al juego. Con :GMS: se puede hacer con shaders, en :GM8: desconozco como se hace.