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?
graphics-programming
game-industry
Shuvo Sarker
quelle
quelle
Antworten:
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:
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:
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 .
quelle
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.
quelle
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.
quelle
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
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.
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.
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.
quelle
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.
quelle
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.
quelle
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!
quelle