In welcher Beziehung stehen Engines wie Unreal zu OpenGL oder DirectX?

8

Ich bin völlig neu in der Computergrafik und vor allem in der Spieleentwicklung. Ich suche nach Informationen, um schnell die Grundlagen zu lernen. Ich habe eine Frage im Kopf; In welcher Beziehung stehen Engines wie die Crytek Engine oder die Unreal Engine zu OpenGL oder DirectX?

Ich interessiere mich sehr für Spielphysik, aber ich kann nicht herausfinden, wie Physik, Grafik und Engine zusammenkommen. Es gibt Lücken, die ich nicht füllen kann.

BRabbit27
quelle
Hier ist ein Teil der Antwort, aber es bringt nur andere Fragen. Scientificninja.com/blog/write-games-not-engines
BRabbit27
Wo kommt die Physik rein? Es ist, als ob ich einen Physikalgorithmus schreiben sollte, zum Beispiel einen Kollisionsalgorithmus, und dann einige auf OpenGL erstellte Kreise gemäß meinem Physikalgorithmus verhalten sollte.
BRabbit27

Antworten:

9

TL; DR: Ein Motor ist nur eine Sammlung wiederverwendbarer Komponenten.

Textwand: Spiele speichern eine Darstellung der Welt, z. B. hätten Sie eine Entität wie ein Haus, die ein Netz hat, das definiert, wie ihre Geometrie aussieht, und eine Position.

Jetzt haben Sie wahrscheinlich mehr als eine Entität. Nehmen wir an, wir haben einen vom Spieler kontrollierten Charakter und einige Kisten. Wenn der Spieler sich bewegen möchte, bewegen Sie den Charakter und prüfen, ob er mit einem Kästchen kollidiert. Hier kommt die Physik ins Spiel. Je nachdem, wie die Physik modelliert ist, kann der Charakter einfach durch die Kisten gehen, vor den Kisten anhalten oder die Kisten schieben.

Wohlgemerkt, dies ändert nur den internen Zustand der Spielwelt.

Nachdem Sie Bewegung und Physik berechnet haben, rendern Sie einen Rahmen, z. B. zeichnen Sie den aktuellen Zustand der Welt auf dem Bildschirm.

OpenGL und DirectX sind Grafik-APIs. Sie werden nur zum Rendern von Inhalten (z. B. des Zeichens) auf dem Bildschirm verwendet.

Sie sagen OpenGL / DirectX also im Grunde: "Ich möchte das Zeichen an Position 1 und ein Kästchen an Position 2 zeichnen und ...".

Dies ist natürlich eine grobe Vereinfachung.

Wie auch immer, da wir diese Prozedur nicht die ganze Zeit Schritt für Schritt durchgehen wollen, ordnen wir diese Dinge in Funktionen und Klassen ein. Wir haben also möglicherweise eine Klassenphysik, die alle für die Physiksimulation erforderlichen Funktionen enthält, oder eine Grafikklasse, die mit der Grafik-API verbunden ist und unsere Entitäten zeichnet. Et voila, wir haben einen Motor.

Exilyth
quelle
Es fehlt ein Akzent "Et voilà" haha ​​nur ein Scherz. Vielen Dank, ich glaube, ich habe richtig gedacht, war mir aber nicht sicher, also habe ich beschlossen zu fragen. Vielen Dank!
BRabbit27
2
DirectX ist keine Grafik-API, Direct2D und Direct3D jedoch.
@JaakkoLipsanen Ja, ich sehe jetzt, DirectX ist ein vollständiges Framework für die Spieleentwicklung (3D, Audio, Video usw.) und Direct3D ist nur das Grafikmodul.
BRabbit27