Warum brauchen Spielestudios Grafikprogrammierer, wenn sie Game-Engines verwenden?


55

Im Credits-Bereich der Spiele, die ich spiele, gibt es Namen von Grafikprogrammierern . Warum brauchen sie einen Grafikprogrammierer, wenn sie eine Spiel-Engine verwenden ? Macht die Game-Engine nicht ihren Job?


15
Wenn Sie möchten, dass Ihr Spiel genau so ist wie das aller anderen, verwenden Sie einfach eine Engine. Wenn Sie möchten, dass es in irgendeiner Weise anders ist, verwenden Sie den Motor als Ausgangspunkt, und ändern Sie ihn. Ich benutze eine Game-Engine (Jmonkey-Engine), habe aber auch Shader geschrieben, um einige der Standard-Verhaltensweisen für Dinge zu überschreiben, die mir besonders am Herzen liegen.
Richard Tingle

29
Das ist so, als würde man fragen, warum man einen Bauingenieur braucht, wenn Bauarbeiter die Brücke bauen wollen. Die Brücke ist mehr als nur das Zusammenschlagen von Beton und Metall. Es gibt eine Menge detaillierter Physik- und Materialanalysen, die die Bauarbeiter nicht kennen werden. Bei einer Brücke von größerer Komplexität und / oder Last ist es wahrscheinlich, dass der Versuch, ohne dieses Wissen zu bauen, nicht gut gelingt. Ebenso wird das Wissen eines Softwareentwicklers über die Funktionsweise von Computing und Engine bei der Entwicklung eines Spiels von unschätzbarem Wert sein. (In extremen Fällen
benötigen

2
@RichardTingle Beim Schreiben eines Shaders wird die Engine nicht geändert, sondern es werden neue Inhalte für die Engine bereitgestellt.
Pharap

11
Verwandte: Warum brauchen Unternehmen Mathematiker und Ingenieure, wenn sie über Taschenrechner und Computer verfügen?
xDaizu

1
Einen Shader zu schreiben, ist kaum ein Grafiker. @ShuvoSarker - "Oder jede Spiel-Engine hat ihre eigene Methode," sicher, "Low-Level-Engineering" für Spiele kann eine beliebige Anzahl von Fähigkeiten umfassen. (Der Titel "Grafikprogrammierer" bedeutet nichts. Es könnte einfach jemand sein, der die 'grafischen Dinge' in Unity erledigt, oder er könnte im Wesentlichen bedeuten, als würden Sie "hinter der Engine liegende, knifflige Dinge" denken.)
Fattie

Antworten:


94

Selbst mit einem Motor ist es nicht immer einfach, etwas so auf dem Bildschirm anzuzeigen, wie Sie es möchten. Es wird viele Fälle geben, in denen jemand mit Programmierkenntnissen erforderlich ist, um die Grafik korrekt anzuzeigen. Diese Personen werden im Abspann möglicherweise als Grafikprogrammierer bezeichnet (Grafikprogrammierer ist kein zertifizierter oder geschützter Titel, und der Unterschied zwischen verschiedenen Titeln kann je nach Unternehmen sehr unterschiedlich sein).

Bringen wir ein konkretes Beispiel. Wir brauchen einen animierten rotierenden Kreis, wie folgt:

Bildbeschreibung hier eingeben

Einige unserer Optionen sind:

1 Platzieren Sie den Kreis auf einer Werbetafel und schreiben Sie ein Skript, um die Werbetafel zu drehen.

2 Verwenden Sie ein animiertes GIF als Quelle.

3 Machen Sie das Ganze in einem Shader, der 2 verschiedene Optionen erlaubt:

  • Drehen Sie die Werbetafel im Vertex-Shader
  • Zeichnen Sie im Fragment-Shader einen gedrehten Kreis.

In 1. muss jemand dieses Skript schreiben, eine Art Programmieraufgabe, die mit Grafiken zu tun hat. Für 2. brauchen wir keinen Programmierer, es sei denn, die Engine unterstützt - wie die meisten - den Import von animierten Gifs nicht. In diesem Fall muss jemand diesen Teil programmieren. In 3. muss jemand den Shader programmieren, der ein Künstler oder ein Programmierer sein kann.

BEARBEITEN, um Abstimmungen zu beheben:

Die Abstimmungen scheinen zu sein, weil der Effekt zu einfach ist und daher von einem "echten" Grafikprogrammierer nicht implementiert werden würde. Ich weiß nicht wirklich, von wem es sonst implementiert werden würde, wenn ein Grafikprogrammierer im Team wäre, und gelegentlich implementiere ich solche Rotationseffekte in Shadern - obwohl die Rotation normalerweise nur ein Teil eines größeren Ganzen ist, wie in dieses Beispiel .


Kommentare sind nicht für längere Diskussionen gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Josh

65

Game Engines sind wie Küchen, und Entwickler (dh Programmierer) sind wie Köche.

Game Engines bieten Möglichkeiten, während die Programmierer diese Möglichkeiten für die Bedürfnisse des Spiels nutzen.

Daher benötigen Spielefirmen Grafikprogrammierer, um die Grafikmöglichkeiten der Engine an die Bedürfnisse des Spiels anzupassen.

Wenn die Game Engine alles verwalten würde, ohne Änderungen vorzunehmen, würden alle von dieser Engine produzierten Spiele so aussehen, als ob sie aus der gleichen Form stammen: Die Künstler können verschiedene 3D-Modelle und 2D-Kunst produzieren, die auf die Vision der Designer zugeschnitten sind, aber die Die Anpassung dieser Grafiken im Spiel ist auf das beschränkt, was die Engine standardmäßig bietet.


Beachten Sie, dass Sie zwar die verwendete Grafik ändern können, einige Spiele-Engines jedoch nicht die Möglichkeit bieten, die anderen grafischen Aspekte an die Anforderungen des Spiels anzupassen. Ich denke, dass RPG Maker so war: Sie konnten die Art ändern, aber Sie waren in Bezug auf die Art und Weise, wie Sie Ihr Spiel optimieren konnten, um ihm eine ganz besondere Note zu verleihen, eingeschränkt. Dies hat sich in den letzten Jahren möglicherweise geändert, da ich diese Software eine Weile nicht mehr angerührt habe.


Kommentare sind nicht für längere Diskussionen gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Josh

20

Die spezifische Bedeutung der meisten Titel in der Spieleindustrie ist von Studio zu Studio sehr unterschiedlich. Denken Sie also daran. Was in einem Studio unter "Grafikprogrammierung" zu verstehen ist, kann in der Tat bedeuten, dass nur Shader- oder Material-Tweaks vorgenommen werden. In einem anderen Studio kann dies bedeuten, dass in der Nähe der zugrunde liegenden Grafik-API und so weiter Optimierungsarbeiten auf relativ niedriger Ebene ausgeführt werden.

Das heißt, in größeren Studios ist es relativ selten, Engine-Middleware zu verwenden, ohne Änderungen vorzunehmen. In den meisten Fällen müssen bestimmte Aspekte der Engine optimiert werden, da sie nicht den Anforderungen entspricht oder ein Fehler in dieser Version vorliegt und das Unternehmen noch kein Upgrade auf eine neuere Version durchführen kann, mit der der Fehler behoben werden kann cetera.

Grafiken sind ein Bereich, in dem die Leute dazu neigen, einiges zu tun. Möglicherweise muss die Verwendung von Direct3D oder Ähnlichem in der Engine nicht umgeschrieben werden , es kann aber dennoch erforderlich sein, die Shader anzupassen oder zu optimieren, die Verwaltung der Grafikressourcen zu verbessern, um die Nutzungsprofile des jeweiligen Spiels besser zu berücksichtigen, neue Rendering-Funktionen oder -Optionen hinzuzufügen und die Grafik zu optimieren Grafik-Asset-Pipeline, die sich besser an den Workflow des Studios anpasst, und so weiter.

Darüber hinaus gibt es viele Fälle, in denen ein Studio die Integration zusätzlicher grafikbezogener Middleware übernehmen möchte. Es gibt Middleware-Pakete wie Granite, Enlighten und TrueSky, die verschiedene grafische Funktionen bieten (Textur-Streaming, globale Beleuchtung, Himmelsimulation und Rendering usw.). Alle diese Middleware-Pakete lassen sich in Unreal integrieren, für deren Integration ist jedoch Arbeit erforderlich. Einige von ihnen stehen möglicherweise in Konflikt miteinander oder müssen optimiert werden, um gut zusammenzuarbeiten, da sie alle von verschiedenen Unternehmen entwickelt wurden. Grafikprogrammierer werden wahrscheinlich auch in diese Art von Arbeit involviert sein.


7

Dank der vielen Engines können Sie Spiele jetzt ganz einfach ohne Grafikprogrammierer ausliefern. Was Sie in der Regel einen Grafikprogrammierer benötigen, sind Dinge wie

  1. Optimierung

    Ein Grafikprogrammierer würde wissen und / oder lernen, wie eine bestimmte Engine funktioniert, und in der Lage sein, die Künstler zu leiten oder die Materialien zu modifizieren oder Modelle zusammenzuführen oder andere Techniken usw. zu verwenden, um eine bessere Leistung der Engine zu erzielen.

  2. Verständnis und Unterweisung

    Ein Künstler möchte einen bestimmten Effekt erzielen. Der Grafikprogrammierer, der versteht, wie die Engine funktioniert, kann erklären, wie dieser Effekt erzielt werden kann.

  3. Anpassungen und Effekte

    Bestimmte Effekte müssen möglicherweise programmiert werden. Ein Großteil des Renderings von Bound ist benutzerdefiniert.

Das ist nichts anderes als Filme. Mit Hunderten von Programmierern, einem großen Budget und schlechten Texten könnten Sie Star Wars: The Phantom Menace bekommen. Ohne Programmierer und gutes Schreiben könnten Sie Primer bekommen. Programmierer (oder andere technische Leute) können neue Dinge zulassen. Programmierer brachten CG-Schlamm zu Shrek, CG-Haare zu Monsters Inc., Bullet Time zu The Matrix usw. Aber in Filmen geht es nicht um die Effekte, und es ist durchaus möglich, erstaunliche Filme ohne Effekte oder neue benutzerdefinierte Technologien zu erstellen.

Das Gleiche gilt mehr oder weniger für Spiele. Grafikprogrammierer können die Flüssigkeiten in Pixel Junk Shooter oder die gesamte dynamische Geometrie von Bound verwenden, aber mit Standard-Engine-Technologie und ohne Grafikprogrammierer können viele Spiele erstellt werden.


Macht es ihre Werke trivial?
Shuvo Sarker

2
Nachdem ich seit über 30 Jahren Spiele gemacht habe, sehe ich, dass es in der Spieleentwicklung eine Menge Trival-Arbeit gibt. Aber ich würde nicht sagen, dass Grafikprogrammierer trivalisieren. In der Tat, wenn Sie tatsächlich eine brauchen, ist es meist nicht trival.
gman

1
@immibis Das hört sich so an, als ob Sie sagen, dass das Balancieren von Spielen trivial ist. Ich bin damit nicht einverstanden, da dies getan werden müsste, da es sonst das Spiel ruinieren kann. Trivial bedeutet, dass es wenig Bedeutung hat.
Grumpy sagt Reinstate Monica

2
@GrumpyCrouton Eine einfache Aufgabe hat nichts mit ihrer Bedeutung zu tun. Eine triviale Aufgabe bedeutet, dass es fast zu einfach ist, überhaupt eine Aufgabe genannt zu werden. Außerdem ist das Balance-Design schwierig, und einige davon sind in der Tat trivial.
Brian H.

1
@GrumpyCrouton Der Schlüssel hat, wie Sie bereits erwähnt haben, nur einen geringen Wert. Wir sprechen nicht über das, was die Aufgabe erreicht, sondern über die Aufgabe selbst, die wenig bis gar keinen Wert hat. Sie ändern buchstäblich den Wert einer Konstanten und sind fertig.
Brian H.

4

Häufig erfüllten Game Engines nicht 100% der Anforderungen und Spezifikationen eines Spielprojekts. Dies gilt insbesondere für Triple-A-Titel, die immer wieder die Grenzen der Spieletechnologie überschreiten. Wenn einige der Grafikteile der Game-Engine nicht mit dem übereinstimmen, was die Künstler und Designer sofort erreichen möchten, können sie einen Grafikprogrammierer / -spezialisten beauftragen, der ihnen dabei hilft, herauszufinden, ob ihre Erwartungen realisierbar sind Wenn ja, wie kann man das erreichen? Möglicherweise müssen Sie die Shader- / Art-Assets optimieren, Teile des Renderings überarbeiten oder sogar eine Middleware verwenden. Oder eine Kombination davon.


3

Die meisten Standardtechniken werden in jeder anständigen kommerziellen Engine implementiert, wie FXAA, Beleuchtung, Cel Shading, normales Mapping usw., aber nicht in allen.

In dem Fall, in dem ein Spieledesigner festgelegt hat, dass ein bestimmter Effekt auftreten muss, können Sie ihn entweder aus dem bereits vorhandenen erstellen oder einen neuen Shader codieren oder die Grafikengine ändern, um ihn zuzulassen. In beiden Szenarien ist ein Grafikprogrammierer erforderlich.


-8

Definieren Sie die Engine und anschließend die Graphics Engine. Wenn Sie eine vorhandene Engine verwenden, um ein Spiel zu erstellen, entspricht dies nicht dem Schreiben eines Spiels von Grund auf im Code. Wenn man durch Code definieren kann, was Grafik oder Engine ist, spielt es keine Rolle, wie Sie es nennen, wenn Ihr Code stark ist. Das Erstellen von Spielen in dieser Engine, ihren Grenzen und / oder Stärken basiert ausschließlich auf den Fähigkeiten der Programmierer. Die Verwendung von Unity oder sogar Unreal oder einer anderen Pro-Engine definiert Ihre Fähigkeiten nicht. Game-Engines sind lediglich Abstraktionen, die in C ++ nicht enthalten sind. Sie können zum Beispiel Programmierer und sogar Künstler einstellen, aber Sie würden sich auf die Vision oder die Grenzen der Engine beschränken. Es ist also besser, von Grund auf neu zu programmieren, als etwas zu verwenden, das bereits existiert. Problem ist, dass du gewonnen hast t find answers online like the Stackexchange Ich bezweifle, dass viele Leute sich überhaupt die Mühe gemacht haben, ein Spiel zu programmieren, geschweige denn ein 2d-Projekt fertigzustellen. Ich zögere nur ein wenig, was bedeutet, dass es nicht viele eigennützige Antworten gibt. Der beste Weg ist lernen und üben!


Dies ignoriert völlig die Frage, weshalb Leute Grafikprogrammierer für Projekte in Engines wie Game Maker benötigen.
The Great Duck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.