Pourquoi les studios de jeu ont-ils besoin de programmeurs graphiques s'ils utilisent des moteurs de jeu?

55

Dans la section des crédits des jeux auxquels je joue, il y a des noms de programmeurs graphiques . S'ils ont utilisé un moteur de jeu, pourquoi ont-ils besoin d'un programmeur graphique ? Le moteur de jeu ne fait-il pas son travail?

Shuvo Sarker
la source
15
Si vous voulez que votre jeu soit exactement le même que tous les autres, utilisez simplement un moteur. Si vous voulez que ce soit différent, utilisez le moteur comme point de départ, puis modifiez-le. J'utilise un moteur de jeu (moteur jmonkey) mais j'ai également écrit des shaders pour remplacer certains de ses comportements par défaut pour des choses qui me tenaient particulièrement à cœur)
Richard Tingle Le
29
C'est comme si vous demandiez pourquoi vous avez besoin d'un ingénieur civil si les ouvriers du bâtiment vont construire le pont. Le pont ne se limite pas à associer du béton et du métal. Les travailleurs de la construction ne connaîtront pas beaucoup d'analyses détaillées de la physique et des matériaux. Pour un pont de toute complexité sérieuse et / ou charge, essayer de construire sans cette connaissance ne va probablement pas bien se passer. De la même manière, les connaissances d'un développeur de logiciel sur le fonctionnement de l'informatique et du moteur vont être d'une valeur inestimable pour la construction d'un jeu. (Dans les cas extrêmes, vous aurez besoin de connaissances de base en matière de matériel.)
jpmc26
2
@RichardTingle L'écriture technique d'un shader ne modifie pas réellement le moteur, elle fournit un nouveau contenu pour le moteur.
Pharap
11
Connexes: Pourquoi les entreprises ont-elles besoin de mathématiciens et d'ingénieurs si elles disposent de calculatrices et d'ordinateurs?
xDaizu
1
Bien au contraire, écrire un shader n’est guère un ingénieur en graphisme. @ShuvoSarker - "Ou chaque moteur de jeu a sa propre façon de le faire", bien sûr, "l'ingénierie de bas niveau" pour les jeux pourrait englober un grand nombre de compétences. (Le titre "programmeurs graphiques" ne signifie rien. Il peut simplement s'agir de "quelqu'un qui exécute les" éléments graphiques "dans Unity" ou cela peut signifier essentiellement que vous pensez "élément complexe de bas niveau" au-delà du moteur "").
Fattie

Réponses:

94

Même avec un moteur, afficher quelque chose à l'écran comme vous le souhaitez n'est pas toujours anodin. Il y aura de nombreux cas où quelqu'un avec des connaissances en programmation est nécessaire pour que les graphiques s'affichent correctement. Ces personnes peuvent être appelées programmeurs graphiques dans le générique (le programmeur graphique n’est pas un titre certifié ou protégé, et la différence entre les différents titres peut varier beaucoup selon les sociétés).

Apportons un exemple concret. Nous avons besoin d’un cercle animé tournant comme suit:

entrez la description de l'image ici

Certaines de nos options sont:

1 Placez le cercle sur un panneau d'affichage, écrivez un script pour le faire pivoter.

2 Utilisez un gif animé comme source.

3 Faites le tout dans un shader, ce qui permet 2 options différentes:

  • Faire pivoter le panneau dans le vertex shader
  • Tracez un cercle en rotation dans le fragment shader.

Dans 1. quelqu'un a besoin d'écrire ce script, qui est une sorte de tâche de programmation liée aux graphiques. Pour 2. nous n'avons pas besoin d'un programmeur, à moins que le moteur - comme la plupart - ne supporte pas l'importation de gifs animés, auquel cas quelqu'un doit programmer cette partie. Dans 3. quelqu'un doit programmer le shader, qui peut être un artiste ou un programmeur.

EDIT pour adresser les votes négatifs:

Les votes négatifs semblent être dus au fait que l'effet est trop simple et ne pourrait donc pas être mis en œuvre par un "vrai" programmeur graphique. Je ne sais pas vraiment par qui il sera implémenté s'il y a un programmeur graphique dédié dans l'équipe, et j'implémente parfois de tels effets de rotation dans les shaders - bien qu'en général la rotation ne soit qu'une partie d'un tout plus grand, comme dans cet exemple .

Peter
la source
Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
Josh
65

Les moteurs de jeu sont comme des cuisines et les développeurs (c.-à-d. Les programmeurs) sont comme des cuisiniers.

Les moteurs de jeu offrent des possibilités, tandis que les programmeurs exploitent ces possibilités pour répondre aux besoins du jeu.

Les sociétés de jeux ont donc besoin de programmeurs graphiques pour adapter les possibilités graphiques du moteur aux besoins du jeu.

Si le moteur de jeu devait tout gérer, sans aucun ajustement, tous les jeux produits avec ce moteur auraient l'air de sortir du même moule: les artistes peuvent produire différents modèles 3D et des illustrations en 2D adaptées à la vision des concepteurs, mais les la personnalisation en jeu de ces graphiques sera limitée à ce que le moteur offre hors de la boîte.


Notez que, même s’ils vous permettent de modifier l’art utilisé, certains moteurs de jeu ne permettent pas d’adapter les autres aspects graphiques aux besoins du jeu. Je pense que RPG Maker était comme ça: cela vous permettait de changer d’ art, mais vous étiez limité quant à la façon de modifier votre jeu pour lui donner une touche très distinctive. Cela a peut-être changé au cours des dernières années car je n’ai pas touché à ce logiciel depuis un moment.

Vaillancourt
la source
Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
Josh
20

La signification spécifique de la plupart des titres dans l'industrie du jeu varie beaucoup d'un studio à l'autre, alors gardez cela à l'esprit. Ce qui constitue une "programmation graphique" dans un studio peut signifier simplement faire des ajustements de matériaux ou de matériaux, alors que dans un autre studio, cela pourrait signifier de faire un travail d'optimisation de niveau relativement bas près de l'API graphique sous-jacente, et cetera.

Cela dit, dans les grands studios, il est relativement rare de prendre un middleware de moteur et de l’utiliser sans y apporter de modification. La plupart du temps, certains aspects du moteur devront être peaufinés, car ils ne répondent pas parfaitement aux exigences ou parce qu'il y a un bogue dans cette version et que la société ne peut pas encore passer à une version plus récente susceptible de corriger le bogue, et cetera.

Les graphiques sont un domaine dans lequel les gens ont tendance à peaufiner. Cela pourrait ne pas impliquer une réécriture de l’utilisation de Direct3D ou similaire dans le moteur, mais également du travail de personnalisation ou d’optimisation des shaders, une amélioration de la gestion des ressources graphiques afin de mieux tenir compte des profils d’utilisation du jeu spécifique, l’ajout de nouvelles fonctionnalités ou options de rendu, la rationalisation des fonctions. pipeline d'actifs graphiques pour mieux correspondre au flux de travail du studio, et cetera.

De plus, il existe de nombreux cas où un studio voudra intégrer des intergiciels supplémentaires liés aux graphiques. Il existe des packages middleware, tels que Granite, Enlighten et TrueSky, qui offrent diverses fonctionnalités graphiques (streaming de texture, éclairage global, simulation et rendu du ciel, etc.). Tous ces packages de middleware s'intègrent à Unreal, mais leur intégration nécessite un travail supplémentaire. Certains d'entre eux peuvent entrer en conflit ou nécessiter quelques ajustements pour bien fonctionner ensemble, car ils ont tous été développés par différentes sociétés. Les programmeurs graphiques seront probablement impliqués dans ce type de travail également.

Josh
la source
7

Vous pouvez expédier des jeux sans programmeur graphique assez facilement maintenant à cause de tous les moteurs. Ce dont vous avez généralement besoin d’un programmeur graphique, ce sont des choses comme:

  1. optimisation

    Un programmeur graphique saurait et / ou apprend comment fonctionne un moteur particulier et peut diriger les artistes, modifier les matériaux, fusionner des modèles ou utiliser d'autres techniques, etc. pour obtenir de meilleures performances du moteur.

  2. compréhension et instruction

    Un artiste veut obtenir un certain effet. Le programmeur graphique qui comprend le fonctionnement du moteur peut expliquer comment obtenir cet effet.

  3. personnalisations et effets

    Certains effets peuvent nécessiter une programmation. Une grande partie du rendu de Bound est personnalisée.

Ce n'est pas différent des films. Avec des centaines de programmeurs, un budget important et une mauvaise écriture, vous pourriez avoir Star Wars: La Menace Fantôme. Sans programmeur ni bonne écriture, vous pourriez avoir Primer. Les programmeurs (ou autres techniciens) peuvent permettre de nouvelles choses. Les programmeurs ont apporté CG boue à Shrek, CG Hair à Monsters Inc, Bullet Time à Matrix, etc. Mais les films eux-mêmes ne traitent pas des effets et il est tout à fait possible de faire des films étonnants sans effets ni nouvelle technologie personnalisée.

La même chose est plus ou moins vraie pour les jeux maintenant. Les programmeurs graphiques peuvent autoriser les fluides dans Pixel Junk Shooter ou toute la géométrie dynamique de Bound, mais de nombreux jeux peuvent être créés avec des technologies de moteur standard et aucun programmeur graphique.

gman
la source
Cela rend-il leurs travaux triviaux?
Shuvo Sarker
2
Ayant créé des jeux pendant plus de 30 ans, je constate qu’il ya énormément de travail inutile dans le développement de jeux. Mais, je ne dirais pas que le travail des programmeurs graphiques est trival. En fait, si vous en avez réellement besoin, ce n'est probablement pas trival.
Gman
1
@immibis Cela ressemble à votre dicton, l'équilibrage du jeu est trivial, ce que je ne partage pas, car il faudrait le faire, sinon cela pourrait ruiner le jeu. Trivial signifie qu'il a peu d'importance.
Grincheux dit de réintégrer Monica
2
@GrumpyCrouton une tâche triviale n'a rien à voir avec son importance. une tâche triviale signifie que c'est presque trop simple pour être appelé une tâche. de plus, la conception de l'équilibre est difficile, et sa mise en œuvre est en réalité triviale.
Brian H.
1
@GrumpyCrouton la clé a peu de valeur, comme vous l'avez mentionné, nous ne parlons pas de ce que la tâche accomplit, nous parlons de la tâche elle-même, qui a peu ou pas de valeur. vous changez littéralement la valeur d'une constante et vous avez terminé.
Brian H.
4

Bien souvent, les moteurs de jeu ne répondent pas à 100% aux exigences et spécifications d’un projet de jeu. Cela est particulièrement vrai pour les titres triple-A qui repoussent sans cesse les limites de la technologie des jeux. Si certains éléments graphiques du moteur de jeu ne correspondent pas à ce que les artistes et les concepteurs souhaitent réaliser immédiatement, ils peuvent engager un programmeur / spécialiste en graphisme pouvant les aider à déterminer si leurs attentes sont réalisables, et si c'est le cas, comment y parvenir. Cela peut impliquer de peaufiner les actifs de shader / art, de retravailler certaines parties du rendu ou même d’utiliser un middleware. Ou une combinaison d'entre eux.

EZzyPEZzy
la source
3

La plupart des techniques standard seront appliquées à n’importe quel moteur commercial décent, comme le FXAA, l’éclairage, l’ombrage des cellules, la cartographie normale, etc., mais pas toutes.

Dans le cas où un concepteur de jeu a spécifié qu'un effet particulier doit se produire, vous le construisez à partir de ce qui existe déjà, ou vous codez un nouveau shader, ou vous modifiez le moteur graphique pour le permettre. Dans les deux scénarios, un programmeur graphique est requis.

Ian Young
la source
-8

Définir le moteur, puis définir le moteur graphique. Si vous utilisez un moteur existant pour créer un jeu, ce n'est pas la même chose que d'écrire un jeu à partir de zéro dans le code. Si à travers le code, on peut définir ce que sont les graphiques ou le moteur, peu importe comment vous l'appelez si votre code est puissant. La création de jeux dans ledit moteur, ses limites et / ou ses points forts reposent uniquement sur la capacité du ou des programmeurs. Utiliser quelque chose comme Unity ou même Unreal ou tout autre moteur professionnel ne définit pas vos capacités, les moteurs de jeu ne sont que des abstractions codant en C ++ pur. Vous pouvez par exemple engager des programmeurs, même des artistes, mais vous seriez limité à la vision ou aux limites du moteur. Il vaut donc mieux coder à partir de zéro que d’utiliser quelque chose qui existe déjà. Le problème est que vous avez gagné t trouver des réponses en ligne comme Stackexchange Je doute que beaucoup de gens se soient donné la peine de coder un jeu, encore moins de terminer un projet en 2D. Je vais juste tergiverser un peu, ce qui veut dire que peu de réponses personnelles servent à le préciser. Le meilleur moyen est d’étudier et de pratiquer!

Meeps
la source
Cela ignore complètement la question, raison pour laquelle les gens ont besoin de programmeurs graphiques pour des projets dans des moteurs tels que Game Maker.
Le grand canard