Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





consumo de recursos

Iniciado por Hechelion, 15 de Enero de 2011, 05:16:46 AM

« anterior - próximo »

Hechelion

Tengo algunas dudas sobre como calcular un aproximado de los recursos de un proyecto.

Tengo claro que al no ser un lenguaje de bajo nivel es un poco complicado (Por no decir imposible) hacer un calculo exacto, pero me imagino que debe haber formas de calcular un aproximado que no sea contar con muchos hardware y hacer pruebas.

Por lo que entiendo, la librería carga los mapas en la memoria de la GPU, si por ejemplo, cargo un PNG de 521*128 que pesa 10K, ¿en memoria usara 10K? o ¿será 32*512*128 bit?
¿Hay que agregar algún extra como cabecera o info?

¿Al cargar un mapa, esté usa RAM del PC o sólo de la GPU?

¿Las fuentes y sonidos se cargan en la RAM?

¿Algún consejo para calcular los recursos u optimizar el uso de la librería?

[EX3]

Pues no sabria decirte exactamente, para los graficos si tienes dos funciones que te devuelven el total de memoria de video y la cantidad de memoria en uso. Las texturas se cargan en memoria de la GPU salvo que le indiques lo contrario a Direct3D (cosa que no compensa por temas de rendimiento) y las fuentes de texto no tengo claro que hace Direct3D, si las importa como mapas de bits o las sigue trabajando como vectores (no tengo claro si implementa un motor de render de fuentes propio o usa el de Windows). Para el audio ya no tengo claro que hace DirectSound, si carga en memoria RAM o en memoria de la tarjeta de sonido (la música al trabajarla con DirectShow me imagino que si la carga en RAM). El resto de recursos que manejes a mano, datos propios, obviamente se cargaran en RAM.

De todas maneras, lo que tienes que hacer para controlar fácilmente el tema de recursos es cargar únicamente lo que vayas a necesitar en ese instante (al cargar un nivel o escena cargar solo que va a necesitar ese nivel o escena) y reutilizar los recursos redundantes (la textura y animaciones de un enemigo que vayas a mostrar numerosas veces). Igualmente puedo sonar un poco despreocupado con este tema pero es que hoy día, teniendo en cuenta el nivel de recursos que disponen desde hace 7 años atrás hacia hoy los PC's, muy muy muy difícil lo tienes para agotar o gastar de más en recursos en un juego 2D (no se, muy mal lo tendrias que hacer para llegar a eso).

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Hechelion

Pese a la mayor holgura en los equipos, igual al usar NET se siente el consumo de recursos, por ejemplo, mi juego lo diseñe para correr a 60 FPS y cuando hice una prueba con un netbbok (HP Mini, N270 de 1.6GHz, 1GB de RAM, Intel 950 de video), el juego corría a 30 FPS.

Tengo que optimizar mi código, lo tengo claro, pero las optimizaciones básicas ya están (Dibujar sólo lo que está en camra, etc), pero aún debo agregar AI y sonido, por lo cual estimo que si realmente quiero que ese equipo sea el hardware mínimo para jugar, voy a tener que aplicar bastante optimización.

[EX3]

#3
Cita de: Hechelion en 17 de Enero de 2011, 05:56:33 AM
Pese a la mayor holgura en los equipos, igual al usar NET se siente el consumo de recursos, por ejemplo, mi juego lo diseñe para correr a 60 FPS y cuando hice una prueba con un netbbok (HP Mini, N270 de 1.6GHz, 1GB de RAM, Intel 950 de video), el juego corría a 30 FPS.
Eso ya te digo que es de la grafica, que es una integrada y la de los netbooks suelen ser de las mas bajas (tengo la misma grafica en el Macbook y en el Aspire One y la del segundo entre otras cosas tiene 8Mb de memoria de video frente a los 64 del Mac). Te lo digo por que mi ultima version del motor en Visual Basic 6.0 le pasaba igual en mi Aspire One, de hecho, tenia una opcion implementada para forzar la ejecucion a 30 o 60 fps segun rendimiento medio por este tema.

Cita de: Hechelion en 17 de Enero de 2011, 05:56:33 AM
Tengo que optimizar mi código, lo tengo claro, pero las optimizaciones básicas ya están (Dibujar sólo lo que está en camra, etc)
Esto si te recomendaria que lo hicieras, de hecho fue el punto fuerte en el que me centre al en la implementación de la capa grafica del TLSA Engine como en la del motor de fisicas y en un juego como el tuyo vas a notar diferencia :)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.