Wie sieht ein Motor wie Frostbite in den frühen frühen Stadien aus? [geschlossen]

15

Es hat mir großen Spaß gemacht, Battlefield zu spielen, und ich bin begeistert davon, wie alles aussieht und klingt. Ich habe mich nur gefragt, als was eine Game-Engine anfängt zu leben. An welchem ​​Punkt des Codeschreibens macht es endlich etwas und was hat es getan, bevor es begann, alle Texturen, Licht und Partikel perfekt zu rendern?

Gibt es gute Artikel, Online-Artikel oder Beispiele, die jemand gesehen hat?

Djave
quelle
1
Keine

Antworten:

25

Wenn Sie sprechen von der sehr Anfang, und beachten Sie, dass sehr wenige große Spiele - Engines von Grund auf neu codiert werden mehr, und beachten Sie, dass dies ein Beispiel und nicht unbedingt , wie es funktioniert immer. . .

Rendern:

Beginnen Sie mit dem Rendern eines Würfels mit flachem Schatten. Fügen Sie grundlegende Lichteffekte hinzu. Fügen Sie eine Möglichkeit hinzu, die Kamera zu bewegen. Jetzt kannst du um einen langweiligen Würfel fliegen, der in einer unendlichen schwarzen Leere hängt. Yay.

Als Nächstes möchten Sie wahrscheinlich ein Modell importieren. Zumindest kann Ihr Künstler ein Demomodell erstellen (eine Teekanne ist überraschend traditionell), aber er hat möglicherweise ein tatsächliches Spielmodell, das er Ihnen geben kann. Wieder bleiben wir vorerst bei der flachen Schattierung, sodass es so aussieht, als wäre es aus. . . Nun, keine realistische Substanz, sondern eine Art Kreuzung zwischen mattem Kunststoff und Porzellan. Dies aber ohne gute Beleuchtung. Und wir sind immer noch an dem Punkt angelangt, an dem es sich nicht mehr bewegt.

Die nächsten drei Hauptschritte können in beliebiger Reihenfolge ausgeführt werden.

  • Zuerst möchten Sie Gelände. Die meisten modernen Spiele unterteilen das Rendern in "statische Geometrie" und "Schauspieler", wobei die statische Geometrie Dinge enthält, die sich nicht ändern (Wände, Boden, Laternenpfähle), und die Schauspieler Dinge enthalten, die sich ändern (Spieler, Fahrzeuge, zerstörbare Laternenpfähle) Das grundlegende Rendering-Konzept ist für beide gleich. Sie können Optimierungen für statische Geometrie vornehmen, die Sie für Schauspieler nicht durchführen können. Sie brauchen Terrain, damit die Gameplay-Ingenieure richtig loslegen können. Wenn sie also auf Sie warten, ist es an der Zeit, zumindest das grundlegende Terrain-Rendering zu optimieren.

  • Zweitens möchten Sie Texturierung. Dies ist ein riesiges Thema, und es besteht die Möglichkeit, dass Sie einen Meilenstein erreichen, etwas anderes Kritisches tun und dann wiederholt darauf zurückkommen. In Ihrem ersten Durchgang können Sie dem Modell einfach Texturen hinzufügen. Ihr zweiter Durchgang kann die Beleuchtung und das Oberflächenverhalten verbessern. Ihr dritter Durchgang fügt möglicherweise Schatten hinzu (ich könnte eine ganze Antwort füllen, in der es um Schatten geht). Je nachdem, welche Art von Spiel Sie spielen, kann dies beliebig kompliziert werden. Irgendwo hier können Sie auch Ihre gesamte Spiel-Engine auf verzögertes Rendern umstellen.

  • Drittens möchten Sie Animation. Ihre Animatoren (vorausgesetzt, Sie leben nicht im Jahr 1995) haben Animations-Rigs für ihre Modelle eingerichtet, die aus Knochen bestehen, die durch das Modell laufen, und Informationen darüber, wie sich die Knochen während bestimmter Animationen bewegen. Sie werden wahrscheinlich mit der Möglichkeit beginnen, Animationen bei Bedarf abzuspielen, und dann die Möglichkeit hinzufügen, Animationen miteinander zu mischen.

Sobald dies erledigt ist, ist es Zeit, an der Kompatibilität zu arbeiten. Wenn Sie an einem AAA-Spiel arbeiten, haben Sie die Möglichkeit, Ihren Code auf vielen verschiedenen Arten von Hardware zu testen - vielleicht im eigenen Haus oder bei einer Testfirma. Ein Großteil Ihres Codes wird auf bestimmten Grafikkarten oder bestimmten Treiberversionen beschädigt, und Sie können so viele Fehler beheben, wie Sie können.

Es ist auch Zeit, über Optimierung nachzudenken. Das Rendern ist ein großes Problem mit der Geschwindigkeit. Sie müssen jetzt herausfinden, wie Sie die Hardware auf der tiefsten Ebene ausnutzen können, um so schnell wie möglich zu arbeiten. Wenn Sie der Meinung sind, dass dies im Widerspruch zur "Kompatibilität" steht, haben Sie Recht! Das macht es total! Die besten Optimierungen funktionieren bei manchen Karten einfach nicht. Sie müssen alle diese Faktoren ausbalancieren.

Ab diesem Zeitpunkt fordern Ihre Künstler neue Texturierungswerkzeuge oder neue Animationsfunktionen, und Ihre Level-Designer möchten neue Terrain-Rendering-Techniken. Gehen Sie zurück zu "Die nächsten drei Hauptschritte können in beliebiger Reihenfolge ausgeführt werden" und wiederholen Sie den Vorgang, bis das Spiel beendet ist.

Spielweise:

Ich werde die Teile überspringen, die optisch nicht besonders auffällig sind. Zunächst müssen Sie warten, bis das Terrain-Rendering aktiviert ist, obwohl Sie bis dahin eine Menge Backend-Aufgaben erledigen können.

Sobald Sie das haben, werden Sie einige grundlegende Kollisionen einrichten. Dies geschieht wahrscheinlich in Form eines Fliegens zu einem Ort im Spiel und anschließendem Drücken eines Knopfes, der einen Würfel fallen lässt. Der Würfel fällt und schlägt auf den Boden. Sobald der Würfel gleichmäßig auf dem Boden landet, können Sie die Spielerbewegung einrichten und auf die gleiche Weise wie ein Spieler um die Welt rennen.

Sobald Sie die Grundlagen der Bewegungsphysik erarbeitet haben, befinden Sie sich wieder in einem dieser Segmente "Diese können gleichzeitig ausgeführt werden":

  • Kampf muss umgesetzt werden. Sie brauchen Dinge, die auf Dinge schießen können, und all diese Dinge müssen sich angemessen verhalten.

  • Physik muss implementiert werden. Kollisionen funktionieren, aber Kollisionen sind nur ein kleiner Teil der Physik. Wenn jemand einen Jeep von einem Tank fährt, muss sich alles ungefähr so ​​verhalten, wie es beabsichtigt ist.

  • Spielmechanik muss implementiert werden. Woher weißt du, wann du gewonnen oder verloren hast? Wie oft laichen Dinge und was kontrolliert das? Wenn die Kommunisten einen Brutpunkt erobern, warum laicht er dann weiterhin anarchistische Fahrzeuge? Diese Art von Ding.

All dies kann wiederum eine beliebige Zeit in Anspruch nehmen, je nachdem, wie viel Material Ihre Designer von Ihnen verlangen. Sie werden auch eine Menge Zeit damit verbringen, Fehler aufzuspüren ("Hey, schau, was passiert, wenn ich einen Panzer auf den Flügel dieses Düsenjägers fahre"). Beachten Sie, dass dies in einer unstrukturierten Welt oder bei Modellen, die in der Position "Character Rig " herumlaufen, oder bei Panzern, bei denen es sich nur um große Kisten handelt, auf denen das Wort "TANK" unbeholfen aufgesprüht ist, häufig vorkommt.

Benutzeroberfläche:

Die Benutzeroberfläche kann tatsächlich gestartet werden, bevor der Haupt-Rendering-Code eingeht, da die Benutzeroberfläche und das Rendering in der Spielwelt in der Regel völlig unterschiedliche Codepfade verwenden. Anstatt mit einem Würfel zu beginnen, beginnen Sie mit einer Box, fügen der Box Texturen hinzu und fügen der Box Text hinzu.

An diesem Punkt wird Ihr Leben damit verbracht, genug Zeit für das Schreiben von Allzweck-Widgets zu haben, während Sie dennoch genügend Zeit für die Benutzeroberfläche verwenden, damit die Designer und Entwickler der Spielmechanik das Spiel in einem vagen Anschein von Realismus testen können. Irgendwann werden Ihre Benutzeroberflächen-Interpreten ein einheitliches Gefühl für die Benutzeroberfläche entwickeln, und dann werden Sie mit der Arbeit an den finalisierten Benutzeroberflächenelementen beginnen und diese Benutzeroberflächenelemente an tatsächlichen Playern testen, um sicherzustellen, dass sie verständlich und verwendbar sind.

Ich kann bei Bedarf mehr darüber sprechen, aber es wird zu einer Megaresponse, wenn ich das tue, also werde ich es vorerst nicht tun :)

ZorbaTHut
quelle
4
Super .. danke für deine Zeit und faszinierenden Einblicke!
Djave
If the Communists conquer a spawn point, why does it keep spawning Anarchist vehicles?Sie arbeiten an einem Spiel über den spanischen Bürgerkrieg?
Peter Taylor
1
Nicht schlecht, aber dein Beitrag bezieht sich nur auf einfache Spiele, nicht auf AAA-Spiele. Heutzutage ist das Technische nur die halbe Miete, das Werkzeug das andere. Schauen Sie sich einfach im UDK um und Sie werden sehen, wie viele verschiedene Funktionen darin enthalten sind.
Peter Ølsted
1
Auch das einfache Konzept von Texturen und Shadern ist heutzutage mit diffusen, spiegelnden, umgebenden und emittierenden (unter anderem) Elementen viel fragwürdiger. Schauen Sie sich nur an, wie Materialien heutzutage erstellt werden. udk.com/elements/img/galleries/features-shaders-hero.jpg
Peter Ølsted
1
Dies war eine großartige Antwort.
Jcora