Verwenden Branchenprofis, die Spiele mit UE4 erstellen, überhaupt Blueprints oder ausschließlich C ++?

15

Als Lehrer eines Spieleentwicklungsmoduls habe ich in der Regel darauf bestanden, dass Benutzer C ++ verwenden, da es eine gefragte Fähigkeit in der Industrie ist, aber der Online-Support und die Informationen zu C ++ in Unreal Engine 4 scheinen relativ schwach zu sein. Verwenden Profis jetzt auch Blueprints oder nicht?

Mark Green
quelle
11
Die Dokumentation wird kein gutes Maß dafür sein, wie viel etwas verwendet wird.
MichaelHouse
Die Dokumentation zu Unreal Engine 4 C ++ fehlt, da Sie den Code selbst lesen. Sie benötigen keine Dokumentation, wenn Sie auf den Quellcode zugreifen können. Es wäre aber schön, es zu haben.
Oxy
1
@Oxy Der Quellcode ist kein Ersatz für die Dokumentation. Zeitraum. Die Quelle ist per Definition viel schwerer zu lesen als die Dokumentation, da der Dokumentationspunkt darin besteht, die Funktionen in ein lesbares Format umzuwandeln. Dies gilt in zweifacher Hinsicht für leistungsstarken, extrem leistungsfähigen Code wie Unreal.
Fund Monica's Lawsuit
1
Ich erkläre, was passiert, nicht zu rechtfertigen. "Es wäre aber schön, es zu haben." Und Sie sollten den Code der Funktionen, die Sie verwenden, besser lesen, auch die dokumentierten, da einige wichtige Funktionen goldene Nuggets wie "foo (x) {/ * foo Nicht implementiert, stattdessen wird bar (x) ausgeführt, da sich normalerweise wie foo (x verhält Ich muss noch ein Dokumentationssystem in Aktion sehen, das mit der Codeentwicklung Schritt hält. Abgesehen von der automatisierten Dokumentation, die nichts weiter tut, als die Parametertypen und Rückgabetypen auszuspucken, genau wie Lesen eines Headers tut das.
Oxy

Antworten:

25

Ja, professionelle Spiele verwenden Blueprints.

Einige verwenden eine Mischung aus C ++ und Blueprints. Wir verwenden beide bei Dead by Daylight.

Eines der großartigen Dinge an Blueprints ist, dass Nicht-Programmierer Zugriff auf die Fähigkeit erhalten, Verhaltensmuster zu erstellen. Nicht jedes Projekt wird sie auf diese Weise verwenden, aber es ist einer der Gründe, warum sie entworfen wurden. Sie ersetzten UnrealScript, um das Verhalten zu ändern, ohne auf C ++ zuzugreifen, und Kismet, das visuelle Skriptsystem von Unreal 3.

Almo
quelle
Kannst du erweitern? Verwenden nur die Programmierer Blueprints oder nur das "nicht-technische" Personal oder etwas von beidem? Wird es für bestimmte Zwecke oder für fast alles verwendet?
KABoissonneault
7
@KABoissonneault Es ist sehr viel eine Mischung. Meistens gibt es keine einfache Möglichkeit, klar abzugrenzen, woran Programmierer arbeiten, und woran Nicht-Programmierer arbeiten. Dies gilt insbesondere, wenn Sie einen Designer haben, der wahrscheinlich den gesamten Code optimieren möchte . Blaupausen werden auch häufig für Rapid Prototyping verwendet und müssen nicht unbedingt in C ++ konvertiert werden, wenn die Leistung dies nicht erfordert. Es wird auch sehr unterschiedlich sein, je nach Studio und Projekt, daher gibt es keine Antwort.
Fund Monica's Lawsuit
9

Eine kleine Anekdote von außerhalb der Spielebranche: Wir verwenden UE4 für die Architekturvisualisierung in VR.

Während ich die meisten Dinge lieber in C ++ bauen lassen möchte, verwenden wir Blueprints auch häufig für alle Arten von "zusätzlicher Logik" wie Lichtschalter, Türen usw.

Es ist jetzt seit etwas mehr als zwei Jahren so und ich war der einzige Programmierer am Anfang dieses Unterfangens. Also hier sind meine Beobachtungen:

  • Es ist erstaunlich, was Nicht-Programmierer mit Blueprints machen können!
  • Ich kann entsetzlich sein, was Programmieranfänger mit Blueprints machen;)
  • Auch wenn ich es am Ende in C ++ konvertiere, sind Blueprints für eine schnelle RnD-Phase gut geeignet

Und das Größte für mich: In vielen Gesprächen wurde mir klar, dass Blueprints den Wunsch geweckt haben, Programmierer in meinen Non-Tech-Kollegen zu werden. Der Hauptgrund dafür ist, dass sie eine recht komplexe Logik implementieren konnten, während sie sie visuell debuggen konnten.

Sie lernten tatsächlich einige harte Lektionen über die Softwarearchitektur und die Fallstricke (oder vielmehr Albträume) von riesigen Spaghetti-Blaupausen. Aber erst, nachdem wir auf dem Weg eine Menge kleiner Erfolge gefühlt haben! Sie ließen sich also nicht entmutigen, sondern waren motiviert, es besser zu machen und selbst herauszufinden, wie das geht.

Seitdem sie Kurse in C ++, Python und C # besucht haben, hat sich die Gesamtqualität unserer Blueprints deutlich verbessert, aber vor allem: Ich habe jetzt Hilfe bei der Entwicklung unserer Kernbibliotheken :)

TLDR;

Ja, wir verwenden Blueprints und sie haben meine anfänglich nicht-technischen Kollegen sogar zu besseren Programmierern gemacht.

Xceno
quelle
1
Das Schöne an visuellen Sprachen wie Blueprints ist, dass Sie sich keine Gedanken über die Syntax machen müssen und dass sie im Allgemeinen so abstrahiert sind, dass Sie mit sehr wenig Boilerplate viel erreichen können . Sie erleichtern das Erlernen des Codierens, ohne an der Syntax festzuhalten. Sie sind normalerweise auch zu hoch, um Zauberei zu betreiben, aber das ist ein Kompromiss, den ich eingehen möchte, damit Nicht-Programmierer einen direkten Einfluss auf das Verhalten des Spiels haben.
Fund Monica's Lawsuit
@ NicHartley versuchen, myVector.x += otherVector.xin Blueprints zu tun . : o
Almo
1
@Almo Ich bin mir zu 90% sicher, dass dies möglich ist, es sei denn, Sie möchten wirklich, dass es eine "Zeile" ist. Nur (get myVector x) (get otherVector x) -> (+) -> (assign myVector x)(wow, es ist schwer, Blaupausen im Text zu schreiben ...). Ich habe jedoch keine Kopie von Unreal zum Testen. Oder wenn Vektoren unveränderlich sind, machen Sie einfach eine neue,(myVector.x + otherVector.x, myVector.y, myVector.z)
Fund Monica's Lawsuit
1
Es ist definitiv möglich, aber es ist chaotisch. Vektorlinie in eine Break-Box mit x-, y- und z-Ausgängen. Führen Sie dies zweimal aus, einmal, um myVector.x und einmal, um otherVector.x abzurufen, fügen Sie diese hinzu und leiten Sie sie an eine Zuweisungsbox weiter.
Almo
1
Ich habe nicht gesagt, dass du nicht konntest. Nur dass es abscheulich ist.
Almo