Ich bin nur ein Anfänger in 3D-Spielen, meine bevorzugte Plattform ist Android. Ich habe in einem anderen Forum eine Frage zu "Was ist zu verwenden: OpenGL oder Unity3d?" Sie alle hoben Unity3D hervor und verwendeten seine eingebauten Funktionen und Tools, die ich selbst codieren müsste, wenn ich OpenGL verwenden würde. Aber dann sagt jemand, dass die meisten komplexen Spiele benutzerdefinierte Engines erfordern. Warum sollte ich eine Engine wie Unity3D über OpenGL verwenden?
25
Antworten:
Ich denke, Sie haben diese Frage bereits selbst beantwortet. Sie sagten "Ich bin nur ein Anfänger in 3D-Spielen" . Weiter sagten Sie "... Unity3D und seine eingebauten Funktionen und Tools, die ich selbst codieren müsste, wenn ich OpenGL verwenden würde" .
Im Wesentlichen bedeutet dies, dass Sie, wenn Sie OpenGL alleine verwenden, eine Spiel-Engine schreiben und möglicherweise Jahre später Ihr Spiel schreiben werden. Wenn Sie sich auf ein Spiel konzentrieren möchten, nutzen Sie die verfügbaren Ressourcen, um diesem Ziel so nahe wie möglich zu kommen. Die Verwendung einer Spiel-Engine ist die beste Möglichkeit, sich auf die Erstellung eines Spiels zu konzentrieren, anstatt alle für die Erstellung eines Spiels erforderlichen Informationen zu schreiben.
Sehen Sie sich diese verwandte Frage an: Was ist der Unterschied zwischen einer Bibliothek und einer Engine und dieser ? Was ist ein Game Framework im Vergleich zu einer Game Engine?
quelle
Denn Anfänger wissen per Definition nicht, was sie tun .
OpenGL hat eine riesige Lernkurve. Sicher, Sie können ein paar glBegin-Befehle eingeben, sich darauf freuen, ein paar Dreiecke auf den Bildschirm zu bringen, und dann das tiefe Ende mit etwas Komplexerem verlassen, das Sie noch lange nicht in Angriff nehmen können. Das ist kein guter Weg, um zu lernen. Eine Analogie (etwas übertrieben) könnte darin bestehen, dass man einige Grundphysik-Übungen lernt, die dann für den Large Hadron Collider zuständig sind. Es ist nicht Sinken oder Schwimmen, es ist Schwimmen oder Verlassen eines großen radioaktiven Lochs im Boden.
Es wird davon ausgegangen, dass die meisten Leute fragen: "Ich möchte ein Spiel machen, was soll ich verwenden?" Die Frage möchte tatsächlich ein Spiel erstellen (sonst hätten sie sicherlich eine andere Frage gestellt?). Die Antwort ist also auf die Frage zugeschnitten, und die Verwendung eines bereits vorhandenen Toolkits, Frameworks oder einer Engine ist eine Möglichkeit, um dieses Ziel zu erreichen Für die Aktualisierung einer einzelnen Matrix ist es vorzuziehen, sich nicht davon abzulenken, ob ein UBO- oder ein glUniform-Aufruf erfolgt.
Es geht darum, Schritt für Schritt voranzukommen, den Lernprozess zu vereinfachen und Ihnen am Ende etwas Belohnendes zu bieten. Der Versuch, zu lernen, wie man ein Spiel macht und wie man eine ausgereifte und leistungsstarke 3D-API gleichzeitig richtig einsetzt, ist für einen Anfänger wahrscheinlich zu viel. Dies entspricht dem Mahn-Krüger-Effekt abzüglich der negativen Konnotationen. Sie wissen nicht, was Sie nicht wissen, also haben Sie wirklich kein realistisches Bild von dem, worauf Sie sich einlassen würden.
Wenn Sie dagegen OpenGL lernen möchten, möchten Sie eigentlich kein Spiel machen! Sie möchten OpenGL lernen, und es im Zusammenhang mit dem Erstellen eines Spiels zu tun, mag eine unterhaltsame Art des Lernens sein, aber das Erstellen eines Spiels ist ein Mittel zum Zweck, kein Selbstzweck (und sicherlich nicht die einzige Art, OpenGL zu lernen) ). Sie werden es wahrscheinlich nie veröffentlichen, und Sie werden in ein paar Jahren fast definitiv darauf zurückblicken und sich schrecklich für einige der dummen Dinge schämen, die Sie getan haben.
quelle
Es hängt wirklich davon ab, was Sie aus diesem Projekt herausholen möchten. Wenn Ihr Hauptziel darin besteht, sich auf das Game-Design zu konzentrieren, sind Sie wahrscheinlich mit einer vorgefertigten Engine besser dran, da Sie so viel schneller zum Game-Making-Teil gelangen. Wenn Sie mehr über das Programmieren von Spielen erfahren möchten (insbesondere, wenn Sie sich auf einen Job in der Branche vorbereiten möchten), ist die Arbeit mit OpenGL wahrscheinlich eine wertvollere Erfahrung. Denken Sie daran, dass keine der vorhergehenden Aussagen zu 100% der Zeit zutrifft.
Es gibt wirklich keine Regel, wenn man sich für so etwas entscheidet. Die meisten Antworten, die Sie in dieser Art von Frage hören, sind Meinungen, und nur sehr wenige davon sind für Ihr eigenes Projekt und Ihre Fähigkeiten vollständig relevant.
quelle
Der Unterschied ist einfach. Unity ist eine Kutsche mit vier runden Rädern, mit denen man sich platzieren kann. OpenGL ist Sägemehl, mit dem Sie einen Laden einrichten und möglicherweise einen verbesserten und moderneren Wagen und Räder formen können. Das ist, wenn Sie viele Stunden Ihrer Zeit investieren, um zu lernen, was die Leute vor Ihnen zuerst getan haben.
Ihr Ziel als Anfänger sollte es sein, zuerst die vorhandenen Wagen und ihre Konstruktionen zu studieren. Es hat keinen Sinn, alles aus dem Fenster zu werfen und von vorne zu beginnen. Lernen Sie zuerst, was bereits vorhanden ist, und machen Sie sich gründlich damit vertraut. Wenn nicht, woher wissen Sie, welche Einschränkungen es gibt, und wenn Sie die Einschränkungen nicht kennen, wie können Sie sie durchbrechen? Worum geht es, wenn man etwas Mittelmäßiges macht, das nutzlos ist und all die lebendigen vorhandenen Tools, die bereits verfügbar sind, ignoriert?
Imho die Schritte eines jungen Spielentwicklers sind:
Wenn Sie alleine daran arbeiten, etwas zu erstellen, das bereits erstellt wurde, werden Sie für niemanden zu einem wertvollen Entwickler, da Sie in Wahrheit nicht produktiv sind und in dieser Angelegenheit nicht gut lernen können lese und verstehe sie. Wie das alte Pokemon-Sprichwort sagt: "Es ist nicht sehr effektiv ...".
Das Schlimmste daran ist, dass diese Art der Herangehensweise nicht einfach zu bewältigen ist, da sie keine Befriedigung bietet, sodass Sie mit roher Willenskraft arbeiten, die sich wissenschaftlich als begrenzte Ressource für den Menschen erwiesen hat. Sie müssen etwas tun, das Sie täglich befriedigt, oder Sie werden wahrscheinlich nicht in der Lage sein, es aufrechtzuerhalten.
Zusammenfassend ist eine Engine hervorzuheben, weil Sie die Dinge mit einer Engine erledigen können und es viel wahrscheinlicher ist, dass Sie auf diese Weise erfolgreich sind. Selbst großartige Spieleentwickler verließen sich auf die frühere Arbeit eines anderen, und das ist die Natur des Fortschritts. Sie müssen das große Ganze verstehen und wissen, wie man mit den von anderen gelieferten Legostücken spielt, bevor Sie Ihre eigenen Legostücke herstellen.
quelle
Angenommen, Ihr Ziel ist es, ein Spiel zu erstellen, dann hat sich der Typ geirrt, der davon gesprochen hat, dass benutzerdefinierte Engines erforderlich sind . Wenn überhaupt, erfordern komplexe Spiele eine ausgereifte Engine, die von Profis entwickelt, implementiert, optimiert, getestet und gewartet wird, die seit langem in der Branche tätig sind - oder eine, die ihrer Qualität entspricht (zumindest für die Zwecke eines bestimmten Spiels). , wenn das möglich ist.
Große Spieleentwickler bauen zwar firmeneigene Engines, verwenden diese jedoch weiterhin häufig für ihre zukünftigen Spiele. Bedenken Sie jedoch, dass ihre Budgets, Teamgrößen und viele andere Faktoren sich erheblich von denen unabhängiger Entwickler unterscheiden. Es kann für sie wirtschaftlicher sein, eine eigene Engine zu entwickeln, auch wenn die vorhandenen technologisch nicht unzureichend sind.
Natürlich gibt es immer noch das Missverständnis, dass viele Funktionen in vorhandenen Engines nicht sofort implementiert werden können, aber das ist normalerweise ungenau.
Denken Sie daran, dass einige der innovativsten modernen Spiele, wie Portal und Antichamber, mit vorhandenen Engines erstellt wurden. Einige recht komplexe Online-Spiele wie Aion und TERA wurden mit vorhandenen Engines erstellt. Einige der schönsten Spiele, wie Bioshock Infinite und Thief, wurden mit vorhandenen Engines erstellt. Und einige natürlich auch nicht. Aber der Punkt ist: Nichts, was ich jemals gesehen habe, erforderte wirklich einen kundenspezifischen Motor.
Wenn Sie dagegen Konzepte der Grafikprogrammierung erlernen möchten, ist OpenGL der richtige Weg. Aber denken Sie auch dann daran, dass Sie, wenn Sie mit ein paar vorhandenen Triebwerken vertraut sind, sehr gut verstehen, was Sie tun und worauf Sie abzielen sollten.
quelle
citation needed
s