J'ai développé un moteur de jeu, et j'ai découvert et lu des technologies de jeu telles que le filtrage anisotrope, l'occlusion ambiante, l'anticrénelage, etc.
Habituellement, dans les jeux, vous pouvez activer ou désactiver ces paramètres. Cependant, si ces paramètres n'ajoutent que des éléments positifs, y a-t-il une raison d'ajouter des valeurs de bascule pour ceux-ci dans un moteur de jeu pour le développeur?
Je comprends que les performances sont un facteur majeur, mais y a-t-il une autre raison pour laquelle ces paramètres sont toujours disponibles pour changer?
graphics-programming
scalability
Java Man Tea Man
la source
la source
Réponses:
Les performances sont généralement la principale raison pour laquelle ces fonctionnalités peuvent être activées et désactivées par l'utilisateur. Généralement, ils sont chers et en permettant aux utilisateurs de les désactiver, un développeur élargit l'ensemble des machines qui exécutent efficacement le jeu pour inclure davantage de machines bas de gamme. Cela se traduit par potentiellement plus de joueurs, et donc potentiellement plus de ventes (en supposant que ces joueurs puissent vivre avec la fidélité visuelle diminuée).
Ces fonctionnalités avancées peuvent également entraîner un impact plus important sur la durée de vie de la batterie ou la sortie du ventilateur, comme l'a souligné @Artelius, et les utilisateurs peuvent donc vouloir les désactiver pour ces raisons.
Enfin, il s'agit simplement de donner aux utilisateurs le choix de ce qu'ils préfèrent. Certaines personnes peuvent ne pas aimer l'apparence de l'anticrénelage ou la désactivation de v-sync peut provoquer un déchirement de l'écran. Ou pour un exemple plus pratique, considérez Pillars of Eternity, qui a une option pour activer ou désactiver les ligatures de police. Ceux -ci ne coûtent probablement pas beaucoup en termes de performances d'exécution, mais certains utilisateurs peuvent trouver le texte plus difficile à lire avec eux. Ou (comme le souligne @SeanMiddleditch), on peut vouloir désactiver une fonctionnalité car elle est boguée sur une machine individuelle. Ou on peut vouloir désactiver une fonctionnalité pour obtenir un avantage concurrentiel (par exemple en désactivant des effets visuels bruyants qui distraient de la mécanique).
la source
Comme l'a déjà souligné Josh Petrie, la préoccupation la plus importante est la performance. Non seulement vous ne pouvez pas savoir à quel point le matériel des utilisateurs finaux est puissant, mais lorsque vous construisez un moteur, vous ne savez même pas comment les gens vont l'utiliser. Peut-être que les développeurs de jeux veulent créer un jeu qui met tellement de polygones à l'écran que même le meilleur matériel ne peut pas le rendre en temps réel sans désactiver les effets? Mais gérer cela automatiquement n'est peut-être pas une bonne idée non plus: peut-être que les développeurs veulent décider quels effets désactiver sur quels objets.
Mais en plus de la performance, elle peut aussi être un souci esthétique.
Par exemple, passer d'un filtrage anisotrope à une interpolation du plus proche voisin et utiliser des textures basse résolution ou des images-objets à l'échelle conduit à un look pixel art nostalgique. Un exemple populaire d'un jeu qui fait cela est Minecraft. Et bien sûr les nombreux jeux qui copient son esthétique. Non pas parce qu'ils ne savent pas faire mieux, mais parce qu'ils ne le veulent pas.
la source
Bien sûr, la performance. Certains effets tels que les rayons crépusculaires, la profondeur de champ et la floraison sont très éprouvants pour les fps, en particulier dans les anciens GPU. Un autre bon moyen de gagner des fps supplémentaires est de réduire ou de désactiver les reflets et les ombres. Aussi - pour répéter le point Artelius - les effets visuels affecteront également la durée de vie de la batterie.
Par ailleurs:
Modded Minecraft est vraiment un bon terrain de jeu pour cela. Minecraft rend des morceaux entiers, donc son nombre de polygones est supérieur à ce qu'il semble être. Ajoutez à cela les complications de la suppression de morceaux sur une poubelle collectée et dépourvue de langage de pointeur tel que Java [1], et vous pouvez vous attendre à des problèmes de performances - en particulier, dans l'ancien matériel, comme toujours. Certaines personnes exigeaient de meilleurs graphismes, tandis que d'autres souhaitaient de meilleures performances. Et donc, des mods tels que GLSL Shaders Mod et Optifine ont vu le jour, ajoutant des options graphiques supplémentaires - bien qu'à des fins différentes - ils sont compatibles [2], si vous avez la possibilité de les utiliser, vous pouvez expérimenter sur les effets de performance du effets visuels.
[1]: Microsoft a créé un port C ++ de Minecraft pour Windows 10 - basé sur l'édition de poche - il fonctionne beaucoup mieux que les anciennes versions de Java. Cela ne signifie pas que Java ne peut pas fonctionner, ce n'est pas seulement un symptôme d'être C ++ mais aussi d'être Microsoft.
[2]: En fait, ces mods ont fusionné avec Minecraft 1.8.9 - Optifine absorbé GLSL Shaders Mod .
Et vous dites que vous développez un moteur de jeu , vous vous attendez donc à ce que votre code ait une chance d'être réutilisé pour de nombreux jeux différents. C'est une bonne idée de permettre au développeur du jeu de décider s'il souhaite utiliser ces effets et s'il souhaite fournir des options pour les désactiver ou non. Tous les effets peuvent ne pas avoir de sens pour tous les jeux, et certains jeux peuvent dépendre de certains effets.
Considérez que certains jeux utiliseront ces effets pour créer une ambiance, pour transmettre des informations au joueur, ou tout simplement pour une licence artistique.
En particulier, il est difficile d'utiliser des effets visuels pour essayer de donner l'apparence d'une caméra à la place de l'œil humain. Ceci est tenté en utilisant des effets tels que les aberrations chromatiques, les reflets de l'objectif, le grain du film et d'autres effets "cinématiques". Ceux-ci ne conviennent pas à tous les jeux et ne doivent donc pas être imposés par le moteur de jeu.
On peut dire que la plupart de ces opérations, sinon toutes, sont effectuées dans des shaders, laissez votre moteur de jeu permettre au développeur de télécharger leurs shaders.
Remarque sur les options d'accessibilité: de nombreux jeux vidéo ne tiennent pas compte des personnes sourdes. Fournir des informations uniquement de manière auditive peut ne pas être suffisant. Ajouter des effets visuels pour refléter des choses telles que la direction du tir entrant ou la présence d'ennemis proches (que vous "pouvez entendre") est une bonne idée [3]. Et bien sûr, sous-titrage. Aussi, sachez qu'il y a des personnes daltoniennes ... ces articles qui ne se distinguent que par la couleur ... oui, considérés comme une refonte.
[3]: Vous ne savez tout simplement pas quelle douleur sont ces lianes dans Minecraft, quand vous ne pouvez même pas entendre un sifflement. Ils deviennent aléatoires instadeath.
Plus vous en savez ★
la source
Quelque chose qui n'a pas encore été mentionné par d'autres:
La désactivation des fonctionnalités graphiques peut être une solution de contournement valide pour les problèmes avec une certaine configuration , sans rapport avec les performances.
Juste un exemple, certaines options graphiques ne fonctionnent tout simplement pas correctement avec un moteur de rendu donné lors de l'exécution d'un jeu Windows sur Wine (la couche de compatibilité Windows pour Linux).
Pour un certain jeu (intentionnellement anonyme), je dois réduire le filtrage à trilinéaire et désactiver les réflexions. Non pas parce que ma plate-forme n'est pas à la hauteur (c'est certainement le cas), mais à cause des problèmes de rendu et des plantages si je ne le fais pas.
Dans un autre jeu, vous deviez désactiver les effets de «brouillard» pour toute plate-forme exécutant des cartes nVidia (même sur Windows natif), car elles rendaient toujours le brouillard 100% opaque.
Quelque chose qui est mentionné dans d'autres réponses / commentaires, mais qui est en fait une raison pour ne pas rendre certains paramètres (comme la densité du feuillage, gras) facultatifs:
Visibilité des adversaires dans les jeux compétitifs.
Si les joueurs peuvent obtenir un avantage concurrentiel en définissant le "look" de votre jeu sur "vraiment mauvais", vous blessez l'expérience de jeu de deux manières:
Évitez cela si possible. Faites en sorte que le gras et le feuillage soient maladroits pour les plates-formes à faible performance, mais assurez-vous que les paramètres inférieurs ne donnent pas d'avantage au gameplay.
la source
Clarté de vue dans les jeux compétitifs
Les joueurs des jeux en ligne compétitifs peuvent préférer une vue plus simple ou plus claire à une vue plus belle même si les performances ne sont pas un problème - de nombreuses options visuelles ajoutent du réalisme visuel mais obscurcissent les choses que les joueurs veulent réellement voir.
Il se peut facilement que dans votre jeu, il soit plus facile de remarquer ou de cibler un ennemi si vous configurez le client de jeu pour désactiver toutes sortes d'herbe ou de feuilles supplémentaires, les effets spéciaux, la fumée / le brouillard / le feu, etc. Cela place les joueurs qui permettent une telle désavantages.
la source
Les autres réponses sont bonnes, mais je pense qu'elles manquent de bons exemples d'effets réels que vous voudrez peut-être désactiver.
Pour moi, le "flou de mouvement" vraiment bon marché et horrible que, par exemple, GTA3 avait, a rendu le jeu pire. Heureusement, je pouvais l'éteindre.
Je ne l'ai pas joué, mais ce que j'ai vu de GTA5 est une autre solution assez hacky que je désactiverais si j'essayais GTA5. (voir https://www.youtube.com/watch?v=VjIhl8hbO18 )
la source