Ergebnis 1 bis 8 von 8

Thema: Mal ne total dumme Frage: Engine/API???

  1. #1

    Users Awaiting Email Confirmation

    Mal ne total dumme Frage: Engine/API???

    Ja, haut mich tot, aber es wurde mir eben noch nie gesagt:

    Was ist eigentlich eine API bzw. eine Engine? Anders ausgedrückt: Worin unterscheiden sie sich? Sind das nicht beides Sammlungen von Funktionen zu einem bestimmten "Thema"? Also Qt ist zum Beispiel eine Sammlung an GUI Funktionen (und mehr) und Irrlicht eine Sammlung an 3D-Funktionen (un mehr), wo ist da jetzt der Unterschied?

    Danke für euer Verständnis.

    Micha

  2. #2
    Eine API (Application Programming Interface) gibt eigentlich nur die, wie der Name schon sagt, Schnittstelle an. Das heißt Sachen wie Funktionsnamen, Parameter, etc., bzw. eine Schnittstelle zwischen verschiedenen Komponenten (Programmen oder so). Eine Engine geht meiner Wortinterpretation nach schon eher ins "handfeste" über, in Code der Arbeit verrichtet.

    Keine Ahnung ob das stimmt, aber ich verstehe die Worte so. :D

  3. #3
    Mal gucken wie ich das definieren würde...^^

    Also, eine API bietet Zugriff auf Funktionen eines bestimmten Programms. Im Falle der WinAPI wär' das Programm das Betriebssystem Windows, demnach kann man mit der WinAPI alle Möglichen Dinge betreffen Windows machen, so ziemlich alles was Windows kann wurde in Funktionen gefasst um den Benutzer die Möglichkeit zu bieten, eigene Programme für Windows zu erstellen. Fenster erstellen, verschieben, Kopieren, Töne ausgeben, Mauszeiger, Netzwerk, Gui, einfach alles was Windows kann.
    Eine API kann aber auch für ein einzelnen Programm sein, damit man eben gezielt für dieses Programm neue Erweiterungen schreiben kann. Man bietet mit einer API somit die Möglichkeit ein Programm zu erweitern, die API ist also gekoppelt an ein Programm. Im Falle Windows erweitert man das Betriebssystem eben um ganze eigenständige Programme die aber alle auf Windows zurückführen und nur dort lauffähig sind. Denn sie benötigen das Hauptprogramm, das Betriebssystem Windows.

    So, eine Engine hingegen ist eine Sammlung von Funktionen die dazu dient, mit ihr die verschiedensten Aufgabenstellungen zu bewältigen. Etwa eine Grafikengine kann genutzt werden um Dinge auf dem Monitor auszugeben. Dabei ist die Engine oft unabhängig vom Betriebssystem oder einem bestimmten Programm und kann in vielen verschiedenen Programmiersprachen genutzt werden. Es ist also nicht Gedacht um ein Programm, zu dem die Engine gehört, zu erweitern, sondern es ist das eigentliche Programm und kann in jeder Weise genutzt werden um damit eigenständige Programme zu erstellen. Im Vergleich zur API ist diese an das Hauptprogramm gekoppelt. Die Engine hingegen wird im eigenen Programm eingesetzt als Mittel zum Zweck.

  4. #4

    Users Awaiting Email Confirmation

    Ah, hey, danke, im rpg-kingdom gibt es immer so schnelle hilfe, die gleichzeitig auch sehr gut ist!

    Nach euren Erklärungen ist es auch klar, warum Qt eine API ist: Qt bietet eine plattformunabhängige(!) Schnittstelle zu den Komponenten und Funktionen des jeweiligen Betriebssystems, um möglichst schnelle GUI-Anwendungen zu ermöglichen.
    Und Irrlicht bietet mehr als DirectX und OpenGL, also ist es eine Engine.

    Sind dann API's auch schneller als Engines? Der Gedanke liegt doch nahe, wenn API's auf vorhandes "verweisen" und Engines (groß-)teils neues "erschaffen" müssen?

    /edit
    *lol* les grad in Wikipedia, dass OpenGL und DirectX selbst nur API's sind! Also ist Irrlicht eine auf API's aufbauende Engine, wenn man so will. Einfach herrlicht lustig!

    Geändert von Teelicht (04.03.2006 um 23:03 Uhr)

  5. #5
    Natürlich sind das APIs sie bauen ja bei DirectX auf DirectX nun mal auf das man benötigt um Spiele zu spielen während man eine Engine nicht braucht.

  6. #6

    Users Awaiting Email Confirmation

    Zitat Zitat
    das (DirectX) man benötigt um Spiele zu spielen
    Nö, OpenGL reicht da völlig :P

    Spaß beiseite, für einen Anfänger, der sich bisher nur damit rumschlägt, API's und Engines zu benutzen und damit schon genug zu tun hat, ist so etwas nicht selbstverständlich Es war einfach überraschend zu sehen, dass man eine Engine auch auf einer API "basieren" lassen kann; umgekehrt klingt es logisch, aber so rum war es lustig ^^

  7. #7
    Zitat Zitat von Gardisto
    Natürlich sind das APIs sie bauen ja bei DirectX auf DirectX nun mal auf das man benötigt um Spiele zu spielen während man eine Engine nicht braucht.
    Bin ich zu müde, um ordentliche Sätze zu verstehen? Oder bist du zu müde, um ordentliche Sätze zu schreiben? Satzzeichen können manchmal übrigens durchaus hilfreich sein.

    Es ist absolut nichts Ungewöhnlich, dass eine Engine auf einer Schnittstelle basiert. Schnittstellen lassen den Programmierer überhaupt erst die Funktionen komplexer Systeme nutzen. Engines vereinfachen häufig die Benutzung dieser Funktionen. Also muss erstmal der Zugriff über die Schnittstelle da sein.

    freundliche Grüße, Rolus

  8. #8
    Eine API ist an sich nichts anderes als ein paar Funktions- oder Klassennamen und die dazugehörige Bedienungsanleitung. Der Sinn der API ist, eine Möglichkeit zum Datenaustausch zu beschreiben. Beispielsweise stellt OpenGL eine Schnittstelle zum Treiber dar, der wiederum eine Schnittstelle zur Grafikkarte darstellt.

    Eine Engine ist dazu da, tatsächlich etwas zu erledigen: Irrlicht bietet eine Reihe von Funktionen etc., die das Erstellen und Manipulieren von Szenen stark vereinfachen. Damit geht es in der Funktion über eine reine Schnittstelle hinaus.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •