Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: mi-go en 11 de Febrero de 2009, 05:17:02 PM

Título: Resoluciones en un juego sencillo
Publicado por: mi-go en 11 de Febrero de 2009, 05:17:02 PM
Buenas!
Tengo una cuestión general sobre resoluciones para un juego.

Una de las cosas por las que me gusta Flash es porque no hay que preocuparse por las resoluciones que tenga la gente en su pc o móvil (flash lite).
Sólo basta con indicar si quieres que se mantenga visible lo que era visible en su formato original o si quieres que se muestre o se oculten cosas por culpa del cambio de aspecto (de 4:3 a 16:9 o 14:9).
Al no indicarle una resolución, si le decimos que se ejecute a pantalla completa realmente estaremos jugando a la resolución que teníamos puesta en el sistema operativo, por ejemplo 1400 pixels de ancho. Como un juego en Flash en 2D no suele estar demasiado cargado visualmente en la mayoría de los casos funcionará a la perfección.
Esto, en mi opinión, facilita mucho las cosas, libra al jugador de tener que seleccionar algo que igual no sabe lo que es y además en un TFT se verá siempre bien (si es que tenías puesta la resolución adecuada, que en la mayoría de los casos suele ser).

Bueno pues ahora me pregunto si no existe esa posibilidad en los motores 3D, para poder leer la resolución que tiene puesta en el sistema y poner esa del tirón.
He visto que muchos juegos sencillos no-flash lo que hacen es poner por ejemplo 800x600 o algo así (por ejemplo kukoo kitchen o World of Goo) sin importarles que se desproporcione en pantallas panorámicas o que se vea algo borroso en algunos TFTs.
Entiendo las razones para hacer eso, además de que creo que esos juegos están hechos con gráficos bitmaps y no vectoriales.

Pero ¿y en un juego 3D sencillo?
Si es un juego sencillo en 3D aunque lo pongamos a 1400 en la mayoría de pcs con acelaradora irá bien.
¿Sabéis si Irrlicht u Ogre tienen alguna función para leer la resolción del sistema (ya sea Win, Linux o Mac) antes de iniciar el modo de pantalla?
¿Creeis que es buena idea hacer eso o habría muchos juegos que no irían bien aunque fueran medianamente sencillos gráficamente?
Título: Re: Resoluciones en un juego sencillo
Publicado por: tewe76 en 11 de Febrero de 2009, 05:36:33 PM
Citar¿Sabéis si Irrlicht u Ogre tienen alguna función para leer la resolción del sistema (ya sea Win, Linux o Mac) antes de iniciar el modo de pantalla?
Ya sabes que soy novato en IrrLicht, pero creo que lo que tienes que hacer es iniciar con el NullDevice y así podrás acceder a la info del sistema para posteriormente ya iniciar con OGL o el que sea en la resolución adecuada. Para saber las resoluciones que soporta la máquina, tienes device->getVideoModeList(), aunque, ciertamente, no sé si hay manera de saber la que tiene actualmente el usuario. Supongo que sí. Si no lo has hecho aún, pregunta en los foros de IrrLicht.
Citar¿Creeis que es buena idea hacer eso o habría muchos juegos que no irían bien aunque fueran medianamente sencillos gráficamente?
Yo intentaría dar la opción a cambiarlo, por si el usuario quiere hacerlo por el motivo que sea. Aunque que por defecto cargue esa resolución actual me parece bien. Si es un juego sencillo, sí, debería funcionar bien.
Título: Re: Resoluciones en un juego sencillo
Publicado por: H-K en 12 de Febrero de 2009, 05:23:01 PM
Cita de: mi-go en 11 de Febrero de 2009, 05:17:02 PM
¿Sabéis si Irrlicht u Ogre tienen alguna función para leer la resolción del sistema (ya sea Win, Linux o Mac) antes de iniciar el modo de pantalla?
¿Creeis que es buena idea hacer eso o habría muchos juegos que no irían bien aunque fueran medianamente sencillos gráficamente?

Para Ogre no sé, pero en Irrlicht mira getDesktopResolution()  (http://irrlicht.sourceforge.net/docu/classirr_1_1video_1_1_i_video_mode_list.html#671c07efe6cc4d1544169d25416adbc6), a ver si es lo que estás buscando :)
Y estoy con tewe en lo de dar la opción de cambiarlo... por muy sencillo que sea el juego, siempre habrá algún ordenador por ahí en el que funcione como el culo   ^_^
Título: Re: Resoluciones en un juego sencillo
Publicado por: tewe76 en 12 de Febrero de 2009, 06:00:16 PM
Citaren Irrlicht mira getDesktopResolution()
8) Me lo apunto yo también, que puede ser útil
Título: Re: Resoluciones en un juego sencillo
Publicado por: mi-go en 14 de Febrero de 2009, 06:54:48 PM

Me importaba más la respuesta en general.
Supongo que es mejor hacer lo de siempre... resolución baja por defecto... y dar la posibilidad de subirlo...
Pero si sabes que en todos los pcs que se va a ejecutar tienen un mínimo de potencia 3D... está bien saber que puedes hacerlo.

He mirado en el foro de Irrlicht  y es así de fácil (lo he probado y funciona):

IrrlichtDevice *nulldevice = createDevice(video::EDT_NULL);
core::dimension2d<s32> deskres = nulldevice->getVideoModeList()->getDesktopResolution();
nulldevice -> drop();
IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D9, deskres, 32, true, false, true, &receiver);
Título: Re: Resoluciones en un juego sencillo
Publicado por: H-K en 15 de Febrero de 2009, 12:02:19 PM
El problema es ese, que hay miles de configuraciones distintas, con lo que no sabes cómo va a funcionar tu juego realmente. Hombre, si por juego 3D sencillo te refieres a uno que tire de fixed pipeline y que no maneje escenas ni efectos complejos, pues entonces más o menos sí puedes asegurar que irá bien, siempre que tengas como requisitos mínimos un ordenador de hace 10 años o así.