Vaya, cuántos consejos...

1. Eso podría.. que el controlador haga un with y los dibuje por él, a futuro probaré si funciona :)
2. Sep, eso lo hice, se notó la mejora.
3. Error de novato, cómo pude olvidarlo?
4. Sep, eso también lo arreglé y por eso funcionó en Vista. La mayor textura que uso es 1024x1024, sólo una (y pierdo mucha calidad respecto a 2000 que tenía antes, pero bueno).
5. Esto podría agruparse con el punto 1 y el with, no?
6. Interesante...
7. Yo uso 30, ta guay pero.. y si el usuario no tiene multiplos de lo que yo uso? No me esperaba que estas cosas influyeran, sería jodido entonces...

Para lo de las frecuencias, se podria usar

display_get_frequency()
display_set_frequency()

para ajustar la velocidad de refresco según el monitor del usuario

Siempre está la opción de usar una dll, por ejemplo GMOgre3D que es más potente y extiende la funcionalidad 3D de GM, claro, lo que implica tener invertir tiempo en aprender cosas nuevas

#17 Febrero 05, 2014, 01:39:04 AM Ultima modificación: Febrero 05, 2014, 05:09:53 PM por DarkKRuleR
EDIT: lo he arreglado, ahora sólo un objeto hace TODOS los suelos y paredes leyendo las coordenadas de cada objeto suelo o pared. Cuando lo cuelgue veremos si se ha optimizado :D

#18 Febrero 12, 2014, 08:51:35 PM Ultima modificación: Febrero 12, 2014, 09:12:34 PM por DarkKRuleR
Buenas! Revivo un poco éste tema para hablar de la optimización. Recientemente hice una nueva versión de la demo optimizada al 80% para probar. La comprobé en otro PC donde el original me iba lento y éste me fue igual de lento. Tengo lo siguiente:

-Sigo teniendo muchos objetos para construir el entorno, pero un mismo objeto controlador dibuja en nombre de TODOS estos objetos. EN LA ROOM QUE PROBÉ sólo estaba el personaje y suelos y paredes, es decir, todo lo que había era dibujado por el mismo objeto prácticamente. Y...

-Desactivo los objetos que están fuera de la view, así que el punto de "que un solo objeto dibuje todo" y desactivar lo que está fuera creo que no es el problema.

-Desmarqué muchos precise collision checking, "Game Priority" a "Highest", CASI todas las texturas son múltimos de 2 (excepto las que no se dibujan con d3d o primitivas, como el HUD).

-Todos los muros los hago con primitivas. Sólo uso d3d_draw_floor para cosas como el personaje, pero, como os digo, en la room donde SÓLO HABÍA MUROS y el personaje, no debería influir. Sólo tengo una textura 1024x1024, las demás son todas alrededor de 128x128.

-El único problema que me falta: la frecuencia del monitor que decís que influye. ¿Podría ser esto lo que provoca que a alguno le vaya lento? (me va lento en mi PC "no tan nuevo", y de los que habéis jugado la demo a uno le iba lento). Si fuera así me molaría saber cómo remediar lo de la frecuencia y probar de nuevo en mi PC viejo. Si ahí va bien, irá bien en todos!! Pero no sé a qué os referís ni cómo arreglarlo.

A parte de la frecuencia esque directamente está todo mejorado como me dijísteis, un objeto dibujando en nombre de todos, desactivo lo que está fuera de la view...

y quiero saber dos cosas: que diferencias reales hay entre desactivar un objeto, o hacer que "ese objeto no se dibuje", o "no haga eventos"? Porque a veces desactivar objetos trae muchos problemas (como que desactivo el suelo y lo que hay encima cae atravesándolo, porque el objeto está dentro de la view pero el suelo está fuera), y ahí podría no desactivarlo sino hacer que no se dibuje, pero querría saber si perdería mucha eficiencia con ello... (porque desactivar lo que está fuera ayuda MUCHO a optimizarse pero da éstos problemas)

y qué diferencia real hay entre el d3d_draw_floor/wall y usar una primitiva con 4 vértices?