Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.02.2010, 13:23

Begrifflichkeiten

Hallo Community,

ich lese hier seit einiger Zeit still und heimlich mit und immer wieder habe ich das Gefühl, dass entweder ein paar Begriffe durcheinander geworfen werden, oder ich sie nicht verstanden haben.

Es geht hauptsächlich um Engine, Framework und API.
Soweit ich das verstehe ist DirectX eine Grafikengine, Irrlicht ein Framework, dass mit vorgefertigten Funktionen die Bedienung von DirectX erleichtert und eine API ist doch eher eine Schnittstelle, die dem Entwickler Funktionen zur Verfügung stellt bzw. extrahiert. Ist das soweit richtig?

Mich verwirrt es halt immer, da viele sagen, dass sie sich eine Engine basteln und das in meinen Augen dann aber meist vielmehr ein DirectX Framework ist.

Auch wenn die Frage vielleicht doof klingt würde ich mich über eine kompetente Antwort freuen ;). Ich bin noch ziemlich neu in der C++- und Spiel-Entwicklung und meine bisherigen Erfahrungen beziehen sich auf PHP und JavaScript, wo alles IMO viel klarer definiert ist ;).

2

18.02.2010, 13:27

Bei irrlicht bin ich mir nicht sicher aber im Grunde stimmt das.

Man könnte auch sagen, dass eine Engine mit Daten gefüttert wird und diese dann "selbstständig" bearbeitet. Ein Framework kapselt eigentlich nur Funktionalität um dem Entwickler viel Funktion auf einfache Weise zur Verfügung zu stellen. Eine API ist wie der Name es schon sagt eine Schnittstelle mit er ein Entwikler eine spezielle Funktionalität nutzen kann.

Hier noch ein paar Wikipedia Links:
- Engine
- Framework
- API

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

3

18.02.2010, 13:42

Re: Begrifflichkeiten

Zitat von »"JBeh"«

Hallo Community,

ich lese hier seit einiger Zeit still und heimlich mit und immer wieder habe ich das Gefühl, dass entweder ein paar Begriffe durcheinander geworfen werden, oder ich sie nicht verstanden haben.

Es geht hauptsächlich um Engine, Framework und API.
Soweit ich das verstehe ist DirectX eine Grafikengine, Irrlicht ein Framework, dass mit vorgefertigten Funktionen die Bedienung von DirectX erleichtert und eine API ist doch eher eine Schnittstelle, die dem Entwickler Funktionen zur Verfügung stellt bzw. extrahiert. Ist das soweit richtig?

Ich glaube nicht...

DirectX (Graphics :roll:) ist eine Grafik-API und Irrlicht eine Engine, denn eine Engine ist der "Motor" für ein Spiel, welcher mehr als nur eine Kapselung der API ist.

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

4

18.02.2010, 14:09

Letztendlich geht wohl alles fließend ineinander über.
Wahrscheinlich würde ich DX als API bezeichnen, weil es relativ lowlevel ist, aber die ganzen Hilfsfunktionen sind eigentlich schon eher eine Art Framework.
Engine ist für mich sowas wie z.B. die Source Engine, wo die Spiele alle recht ähnlich sind und quasi sowas wie Mods sind, d.h. man würde kein Echtzeitstrategiespiel wie WarCraft3 oder so damit machen. Wenn man eine reine 3D Engine hat wie z.B. Irrlicht, geht das schon wieder in Richtung Framework.

Letztendlich ist es auch relativ egal, wie man etwas nennt, letztendlich kommt es darauf an, was man tatsächlich damit machen kann.
Lieber dumm fragen, als dumm bleiben!

Mastermind

unregistriert

5

18.02.2010, 14:10

Die Begriffe sind halt nicht klar abgegrenzt, bzw. werden oft falsch verwendet (besonders API).

Im wörtlichen Sinne kann eine Bibliothek (sei es DirectX, Irrlicht etc.) kein API sein, sondern nur ein API haben. Nämlich die Klassen und Funktionen die von außen zugreifbar sind.

Vor allem bei systemnahen Bibliotheken hat es sich durchgesetzt API und Bibliothek synonym zu verwenden, was teilweise auch gerechtfertigt ist. DirectX ist ja tatsächlich nicht viel mehr als eine Schnittstelle zum Graphiktreiber. Umgekehrt ist die "Bibliothek" zum Windows-API Windows selbst. Es wäre jedoch ungewöhnlich Windows als Bibliothek zu bezeichnen.

Framework ist meiner Meinung nach der am besten abgegrenzte Begriff von den dreien. XNA wäre ein Beispiel für ein Framework aus dem Spielekontext.

Engine ist vor allem ein Buzz-Word für alles und nichts. Im engeren Sinne sollte eine Engine "mehr" können als ein reines Framework. Ich finde die Kurzdefinition bei Wikipedia eigentlich recht gelungen.

Alyx

Treue Seele

Beiträge: 236

Wohnort: Hannover

Beruf: Head Of Software Development

  • Private Nachricht senden

6

18.02.2010, 15:58

Zitat

Soweit ich das verstehe ist DirectX eine Grafikengine, Irrlicht ein Framework, dass mit vorgefertigten Funktionen die Bedienung von DirectX erleichtert und eine API ist doch eher eine Schnittstelle, die dem Entwickler Funktionen zur Verfügung stellt bzw. extrahiert. Ist das soweit richtig?


Abgesehen davon, dass du bei Direct-X -engine und -API vertauscht hast, kann man das eigentlich so stehen lassen.

Wenn ich es erklären würde:
- API: Schnittstelle zu einem spezifischen Thema, API für die Grafik-Ausgabe, API für den Sound etc. pp.
- Framework: große Sammlung von Klassen, vom String über die Liste bis hin zum eigenen UI-System, sprich quasi alles was man benötigt um eine komplexe größere Anwendung zu erschaffen
- Engine: komplexes in sich geschlossenes System, das ohne großes Mitwirken des Hauptprogramms eine spezielle, größere Aufgebe erfüllt... wie z.Bsp. Landschaftsengines, die vom Darstellen des Bodens bis hin zu den sich biegenden Bäumen eine reale Welt darstellen.

LG
Alyx

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

7

18.02.2010, 21:25

Oh man, DirectX ist eine Grafik-API?! Solch ein Blödsinn!

DirectX Graphics ist eine Grafik-API, aber DirectX ist eine Bibliothek von APIs.

8

18.02.2010, 21:46

Ja, ulong, dennoch vergleichen alle DirectX mit OpenGL...

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

9

18.02.2010, 21:49

Naja alle nicht.

Ich halte Menschen die so etwas miteinander vergleichen, sowieso für Idioten. Ich vergleiche ja auch keine Türrahmen mit Toiletten.

Erinnert mich an die Frage mit der Klippe und dem Springen.

Direct3D mit OpenGL zu vergleichen halte ich generell auch für etwas "vage".

10

18.02.2010, 21:58

Ja, natürlich nicht alle - aber mir kommt's beinahe so vor.
Ich bin auch der Meinung, dass man einfach alle APIs o.ä., die man eventuell nutzen möchte, antesten sollte, und nicht einfach im Internet nach irgendwelchen Vergleichen zu suchen. Meistens ist es ja eher ne Gewohnheitsfrage. Dem einen gefällt Google, dem anderen Bing.

Werbeanzeige