He estado desarrollando un motor de juego, y he estado descubriendo y leyendo sobre tecnologías de juego como el filtro anisotrópico, la oclusión ambiental, el suavizado, etc.
Por lo general, en los juegos, puedes activar y desactivar esta configuración. Sin embargo, si estas configuraciones solo agregan más que positivos, ¿hay alguna razón para agregar valores de alternancia para estos en un motor de juego para el desarrollador?
Entiendo que el rendimiento es un factor importante, pero ¿hay alguna otra razón por la cual estas configuraciones siempre estén disponibles para cambiar?
graphics-programming
scalability
Java Man Tea Man
fuente
fuente
Respuestas:
El rendimiento es generalmente la razón principal por la que el usuario puede activar y desactivar estas funciones. En general, son caros, y al permitir a los usuarios desactivarlos, un desarrollador amplía el conjunto de máquinas que ejecutan el juego de manera efectiva para incluir más máquinas de gama baja. Esto se traduce en potencialmente más jugadores y, por lo tanto, potencialmente más ventas (suponiendo que esos jugadores puedan vivir con la disminución de la fidelidad visual).
Estas características avanzadas también pueden afectar más la vida útil de la batería o la salida del ventilador, como señaló @Artelius, por lo que los usuarios pueden deshabilitarlas por esas razones.
Finalmente, simplemente para proporcionar a los usuarios una opción sobre lo que prefieren. Es posible que a algunas personas no les guste cómo se ve el suavizado, o cómo deshabilitar v-sync puede causar el desgarro de la pantalla. O, para un ejemplo más práctico, considere Pillars of Eternity, que tiene una opción para habilitar o deshabilitar las ligaduras de fuentes. Estos probablemente no cuestan tanto en términos de rendimiento de tiempo de ejecución, pero algunos usuarios pueden encontrar el texto más difícil de leer con ellos. O (como señala @SeanMiddleditch), es posible que desee deshabilitar una función porque tiene errores en una máquina individual. O puede desear deshabilitar una función para obtener una ventaja competitiva (como deshabilitar los efectos visuales ruidosos que distraen de la mecánica).
fuente
Como Josh Petrie ya señaló, la preocupación más importante es el rendimiento. No solo no puede saber qué tan poderoso es el hardware de los usuarios finales, cuando está construyendo un motor, ni siquiera sabe cómo la gente lo va a usar. ¿Quizás los desarrolladores de juegos quieran construir un juego que ponga tantos polígonos en la pantalla que incluso el mejor hardware no pueda reproducirlo en tiempo real sin desactivar los efectos? Pero manejar eso automáticamente podría no ser una buena idea tampoco: tal vez los desarrolladores quieran decidir qué efectos deshabilitar en qué objetos.
Pero además del rendimiento, también puede ser una preocupación estética.
Por ejemplo, cambiar del filtro anisotrópico a la interpolación del vecino más cercano y usar texturas de baja resolución o sprites mejorados conduce a un aspecto nostálgico de pixel art. Un ejemplo popular de un juego que hace esto es Minecraft. Y, por supuesto, los muchos juegos que copian su estética. No porque no sepan hacerlo mejor, sino porque no quieren hacerlo.
fuente
Por supuesto, el rendimiento. Algunos efectos como los rayos crepusculares, la profundidad de campo y la floración son muy exigentes para los fps, en particular en las GPU más antiguas. También una buena manera de obtener algunos fps adicionales es reducir o deshabilitar los reflejos y las sombras. Además, para repetir el punto de Artelius , los efectos visuales también afectarán la duración de la batería.
Aparte de eso:
Modded Minecraft es realmente un buen patio de recreo para esto. Minecraft procesa fragmentos enteros, por lo que su recuento de polígonos es mayor de lo que parece ser. Agregue a eso las complicaciones de disponer trozos en una basura recolectada y desprovista de lenguaje puntero como Java [1], y puede esperar algunos problemas de rendimiento, en particular, en hardware antiguo, como siempre. Algunas personas exigieron mejores gráficos, mientras que otras querían un mejor rendimiento. Y así, mods como GLSL Shaders Mod y surgieron Optifine , ambas agregando opciones gráficas adicionales, aunque para diferentes fines, son compatibles [2], si tienes la oportunidad de usarlas, puedes experimentar los efectos de rendimiento de efectos visuales.
[1]: Microsoft ha creado un puerto C ++ de Minecraft para Windows 10, basado en la edición de bolsillo, que funciona mucho mejor que las versiones anteriores de Java. Eso no significa que Java no pueda funcionar, esto no es solo un síntoma de ser C ++ sino también de ser Microsoft.
[2]: De hecho, esas modificaciones se fusionaron para Minecraft 1.8.9 - Optifine absorbió GLSL Shaders Mod .
Y dices que estás desarrollando un motor de juego , por lo que espera que su código tenga la posibilidad de ser reutilizado para muchos juegos diferentes. Es una buena idea permitir que el desarrollador del juego decida si desea usar estos efectos y si desea proporcionar opciones para deshabilitarlos o no. No todos los efectos pueden tener sentido para todos los juegos, y algunos juegos pueden depender de algunos efectos.
Tenga en cuenta que algunos juegos utilizarán estos efectos para crear un ambiente, transmitir información al jugador o simplemente para obtener una licencia artística.
En particular, se trata de usar efectos visuales para tratar de hacer que se vea como si fuera visto por una cámara en lugar del ojo humano. Esto se intenta mediante el uso de efectos como aberraciones cromáticas, destellos de lente, grano de película y otros efectos "cinematográficos". Estos no encajan bien en todos los juegos, por lo que no deberían ser impuestos por el motor del juego.
Podría decirse que la mayor parte de esto, si no todo, se realiza en sombreadores, deje que su motor de juego permita que el desarrollador cargue sus sombreadores.
Una nota sobre las opciones de accesibilidad: muchos videojuegos ignoran a las personas sordas. Proporcionar información solo de manera auditiva puede no ser lo suficientemente bueno. Agregar efectos visuales para reflejar cosas como la dirección del fuego entrante o la presencia de enemigos cercanos (que "puedes escuchar") es una buena idea [3]. Y, por supuesto, subtítulos. Además, tenga en cuenta que hay personas daltónicas ... esos elementos que solo se distinguen por el color ... sí, se considera un rediseño.
[3]: Simplemente no sabes qué dolor son esas enredaderas en Minecraft, cuando no puedes escuchar ni un silbido. Se convierten en una muerte aleatoria.
Cuanto más sabes ★
fuente
Algo no mencionado por otros todavía:
La desactivación de las características gráficas puede ser una solución válida para problemas con una determinada configuración , sin relación con el rendimiento.
Solo un ejemplo, algunas opciones de gráficos simplemente no funcionan correctamente con un motor de renderizado dado cuando se ejecuta un juego de Windows en Wine (la capa de compatibilidad de Windows para Linux).
Para cierto juego (intencionalmente sin nombre), necesito ajustar el filtrado a trilineal y desactivar los reflejos. No porque mi equipo no esté a la altura (sin duda lo es), sino por generar fallas y fallas si no lo hago.
En otro juego, tenía que deshabilitar los efectos de "niebla" para cualquier equipo que ejecutara tarjetas nVidia (incluso en Windows nativo), porque siempre hacían que la niebla fuera 100% opaca.
Algo que se menciona en otras respuestas / comentarios, pero en realidad es una razón para no hacer que ciertas configuraciones (como la densidad del follaje, gras) sean opcionales:
Visibilidad de los oponentes en juegos competitivos.
Si los jugadores pueden obtener una ventaja competitiva al establecer el "aspecto" de su juego en "realmente malo", está perjudicando la experiencia del juego de dos maneras:
Evite eso si es posible. Haga que el césped y el follaje se vean torpes para plataformas de bajo rendimiento, pero asegúrese de que las configuraciones más bajas no den una ventaja de juego.
fuente
Claridad de visión en juegos competitivos.
Los jugadores en juegos competitivos en línea pueden preferir una vista más simple o más clara a una vista más bella, incluso si el rendimiento no es una preocupación: muchas opciones visuales agregan realismo visual pero ocultan las cosas que los jugadores realmente quieren ver.
Es posible que en tu juego sea más fácil notar o apuntar a un enemigo si configuras el cliente del juego para deshabilitar todo tipo de hierba u hojas adicionales, efectos especiales, humo / niebla / fuego, etc. Esto coloca a los jugadores que habilitan tales efectos en desventaja.
fuente
Las otras respuestas son buenas, pero creo que carecen de buenos ejemplos de efectos reales que es posible que desee desactivar.
Para mí, el "desenfoque de movimiento" realmente barato y horrible que, por ejemplo, tenía GTA3, empeoró el juego. Por suerte pude apagarlo.
No lo he jugado, pero lo que he visto de GTA5 es otra solución bastante hacky que deshabilitaría si alguna vez intento GTA5. (ver https://www.youtube.com/watch?v=VjIhl8hbO18 )
fuente