martes, 4 de marzo de 2008

Notas sobre mis comentarios en clase del 4 de marzo

Muy buenas!

Aquí VkThor haciendo un poco de multitasking:
- El Carrusel puesto (capturado con el VLC a través de mi radio a la entrada de línea para retrasarlo un poco)

- Viendo el partido del Sevilla en el DVB Viewer (Programa para ver canales digitales (TDT) que va a las mil maravillas en mi ATI x1900 all-in-wonder)

- Con el Sopcast puesto viendo la ESPN de Filipinas para el partido del Milan-Arsenal.

- Con otro Sopcast (canal desconocido) para ver el Barça-Celtic.

- Con el Messenger puesto (2 conversaciones).

- Y por supuesto, “escribiendo” esta entrada xD.

En fin, a lo que voy. Quería comentar un par de cosillas que hoy hemos visto en clase.

Empezaré por lo del tema de la discusión de los frames por segundo necesarios para jugar a un juego.

JJ comentaba un punto importante al hablar sobre los fotogramas que capta el ojo humano. No soy ningún experto en el tema, pero dudo mucho que el ojo humano funcione por “fotogramas”, jeje. Por ejemplo, las películas en el cine las vemos a 24 fps y nos parecen fluidas. Esto ocurre porque hay frames “intermedios” con un efecto que llamamos “motion blur” que ayuda a que el movimiento sea más fluido. Este efecto, de hecho, se está empezando a imponer en los juegos de nueva generación. Por ejemplo el archiconocido y muy utilizado motor gráfico “Unreal Engine 3” (Usado por juegos como Gears of War, Unreal Tournament 3, Lost Odyssey, Bioshock) está bloqueado a 30 frames por segundo (máximos), pero usa el efecto “motion blur” para dar más sensación de fluidez. En Halo 3 pasa lo mismo (aunque tiene un motor completamente distinto). Personalmente no los veo igual de fluidos que juegos sin ese efecto a 45 o más frames por segundo (de media, sin muchos bajones), pero son jugables.

Este último detalle fue el que me llevó a una pequeña discusión con Antares que JJ zanjó bastante bien. Un FPS va a ser jugable con una media de 30 frames por segundo (más si usa motion blur), pero si esa media significa que tiene caídas a 15 frames o menos, es una cifra bastante baja.

En clase comentaba el problema que añadía esto al juego por Internet. Supongamos que tenemos un juego que en nuestro PC funciona con la media anterior comentada de 30 frames por segundo. No está mal parece, pero cuando haya más carga gráfica (por ejemplo cuando nos encontremos con varios enemigos en pantalla) puede darse una bajada a 15 frames por segundo o menos. Eso significa que vemos una imagen cada 0.1 segundos o más, lo que sumado a otros 0.2 o más segundos de lag que nos supone el juego por Internet, me da un retraso muy importante para ciertas acciones (el ejemplo más claro es a la hora de combate cuerpo a cuerpo o intentar apuntar con un rifle de francotirador a larga distancia).

Todo este rollo que os estoy contando es otra historia si jugamos a otro tipo de juego que no sea FPS o que al menos no sea frenético como Quake III, Halo 3 o incluso un Unreal Tournament. Entonces una media de 30 frames o un poco menos con bajadas ocasionales a 15 frames no hace al juego injugable (aunque en mi opinión, sí que lo hace un poco feote).

Conclusión: Que no me hagáis mucho caso, porque esto es muy personal y cada uno puede soportar una tasa menor según a lo que esté acostumbrado o al nivel al que juegue.

Paso a otro tema. En la clase le comenté a JJ sobre la menor importancia de comparar distintos tipos de juegos a la hora de evaluar/comparar tarjetas gráficas, porque lo que importa no es eso sino comparar distintos motores gráficos que es lo que hacen normalmente en las páginas de reviews. En la que vimos en clase todos los juegos eran FPS, pero todos utilizaban un motor distinto, y esto es lo importante. La pregunta es “Bueno, también hay juegos de otros tipos y usan otros motores, por qué no se usan?”. La respuesta simple es que suelen ser los juegos tipo FPS los que más trabajado tienen el apartado gráfico, más carga poligonal tienen, más efectos usan, etc, por lo cual, a la hora de evaluar una nueva tarjeta gráfica cuando sale al mercado, se testea con juegos exigentes como éstos.

Los ejemplos que comento en clase son el motor de Doom 3 contra el de Unreal Tournament 2004. El motor de Doom 3 tiene unos efectos de iluminación mucho más complejos, trabajados y espectaculares, pero no es capaz de mover grandes espacios (no es amigo de una gran carga poligonal), mientras que el de Unreal Tournament 2004 es todo lo contrario: Sus efectos de iluminación son simples, pero a cambio tiene la posibilidad de aguantar más carga poligonal y espacios abiertos con menos problemas. Otro ejemplo es comparar el mismo motor de Doom 3 contra el de Half Life 2, el de Doom 3 está optimizado para que funcione mejor en tarjetas Nvidia, mientras que el de Half Life 2 funciona mejor en tarjetas ATI. Por lo cual tarjetas de potencia similar correrán mejor Doom 3 si son nVidia o Half Life 2 si son ATI.

Conclusión: Que tampoco me hagáis mucho caso, y si lo que queréis es jugar sin preocupaciones de tasas de frames, os olvidéis del PC, porque últimamente, por desgracia (creo), los maletines de billetes los mueven mucho Sony y Microsoft y los juegos salen primero para consola y luego se hacen cutre-ports para PC con el resultado de que necesitas un PC muy potente para mover un juego que no debería requerir tanto para ser movido con fluidez (Simplemente porque se pierde más dinero pasando un mes o dos optimizando el juego (más meses que pagar a los programadares) que perdiendo algunas ventas porque los consumidores (nosotros) no podemos jugar con nuestros pcs modestos y no de la NASA.

Un saludo a todos y gracias por aguantar el tocho. Si os queda alguna duda más os escucho en los comentarios.

Nota (Edit): Quiero dejar claro como ya digo en los comentarios que no sólo la tarjeta gráfica es la responsable de conseguir una buena tasa de frames por segundo. Si se juega a un juego exigente y no se tiene por ejemplo un buen procesador, por mucha gráfica que tengamos de poco nos servirá. Debemos evitar los llamados “cuellos de botella”, esto es, debemos tener un ordenador complementado, sin unos componentes que destaquen en calidad o que sean mucho más recientes que otros.

4 comentarios:

JJ Merelo dijo...

Lo que comentas es interesante, pero da una cierta impresión de que "con que se optimice una gráfica para FPS ya irá bien con todo", y no sé si será cierto en este caso en particular, pero no suele ser cierto en general. Por ponerte un caso muy concreto, si tienen cálculos físicos muy "pesados" (supongo que también los tienen los FPS, pero quizás los tengan más los de carreras), el que te dé altas prestaciones en FPS no quiere decir que te las vaya a dar a la hora de calcular el deformado de una carrocería y efecto en la dinámica del coche correspondiente.

VkThor dijo...

No estoy de acuerdo JJ, los juegos de FPS tienen muchísimos más cálculos físicos que un juego de carreras. De hecho los juegos de acción últimamente usan lo que se llama "motor de físicas" adicionalmente al motor gráfico que tienen para poder gestionar la gran cantidad de cálculos físicos que realizan. De hecho, últimamente en el mercado se han visto tarjetas PCI-express únicamente dedicadas a realizar estos cálculos físicos, y sólo algunos juegos FPS pueden aprovecharlas ya que los juegos de carreras al no tener tantos cálculos físicos no hacen uso de ellas.
Pero llevas mucha razón cuando dices lo de que no es cierto que "con que se optimice una gráfica para FPS ya irá bien con todo", porque no es así, se puede tener una gráfica muy potente, pero si no se tiene un ordenador con el resto de componentes acorde a la potencia de esa gráfica se creará lo que se llama un "cuello de botella" y el rendimiento de la gráfica no podrá ser aprovechado al 100%.
Un saludo

Benyer dijo...

Espero que no molestar pero me parece interesante el tema y me anime a dejar mi comentario.

Yo estoy en medio camino de ambas opiniones, creo como JJ que no solo hay que basar las medidas en juegos para FPS para evaluar una grafica a nivel global, ya que se ha demostrado que ATI´s con muy poca capacidad para cálculos Físicos y Movimiento de 3D funcionan mejor en la representación de fuentes y muchos mas eficientes a la hora de mover el sistema de ventanas de un SO. Otro ejemplo los 2D, ya casi extintos, pero se ha demostrado que gráficas punteras tienen problemas al moverlos, llegando incluso a estar por detrás de gráficas de hace 1 año en este apartado.

Pero en apartado referente a Juegos, es decir centrándonos solo en el rendimiento de una gráfica para juegos, creo que los FPS son ha día de hoy son el referente, por lo que creo que si una gráfica mueve bien los últimos juegos FPS, moverá casi cualquier otro tipo de juegos. No hay mas que ver que la mayoría de los juegos FPS crean su propio Motor Gráfico y los demás juegos usan estos motores, sino no hay mas que mirar el numero de MMO o árcades basados en el Unreal Engine.

Coincido con que el FrameRate puede afectar mucho a la hora del juego online, el puso el ejemplo de varios Shooter, yo pongo el de otro juego online, que se supone no es eminentemente gráfico, y que sacando el ping, la tasa de FPS puede afectarte mucho a la diversión, en mi caso es el WoW, soy un jugador casual de PVP de este juego y el juego suele correr en mi PC a unos 60-FPS, en batallas muy grandes puede esta tasa bajar a 25 o 20 FPS, segun sabemos no podriamos notar esa bajada, ya que es una tasa que veriamos normal, pero no es asi, comienzas a tener retrasos por culpa de la fluidez, ya que no es lo mismo una imagen de cine mas o menos estatica, que un juego donde lo que prima es el movimiento.

Un Saludo y Enhorabuena por la entrada, me pareció muy interesante

VkThor dijo...

Los comentarios y opiniones son siempre bienvenidos, jose ;).
Coincido plenamente contigo en todo lo que dices.
Un saludo