Was ist eigentlich eine Engine?

Spieler und Technikbegeisterte stolpern nicht selten über den Begriff „Engine“- aber was ist das eigentlich genau? Und wofür braucht man das überhaupt?

Ein Auto braucht einen Motor (ach was?!). Aber wofür braucht ein Programm einen Motor?

 

Engine-Typen

Zunächst einmal gibt es verschiedene Engine-Typen. Zu den bekanntesten zählen die Physik-Engine, die Spiel-Engine und die Grafik-Engine.

Grundsätzlich ist eine Engine (Eng. Motor) genau das, was der Motor auch für ein Auto ist: Der Antrieb. Sie stellt einen Teil des Programmes dar, die Berechnungen durchführen oder Aktionen simulieren soll. Es handelt sich dabei also um ein Software-Paket um Software entwickeln zu können.

Computer-SpieleDie Spiel-Engine kann als Oberbegriff für Physik und Grafik-Engine verstanden werden, da beide in Spiel-Engines inkludiert sind. Im Zusammenspiel sollen diese dafür sorgen, dass Figuren oder Objekte nach den physikalischen Gesetzen korrekt fallen bzw. steigen und das Spiel durch Effekte bereichern. Zusätzlich bieten viele Engines auch Modellierungs-Werkzeuge für Entwickler.

Für uns ist es logisch, dass ein Ball nach unten fällt. Und ich denke, jeder wird mir zustimmen, dass eine Flagge in Windrichtung weht. Für einen Computer aber ist dies alles andere als logisch: Warum bewegen sich Flaggen im Wind aber Beton nicht? Engines sind dazu da, dies Software beizubringen.

Ohne Physik-Engine würde kaum ein Spiel ordentlich laufen: Man stelle sich ein Autorennspiel vor, in welchem Rauch- und Explosions-Effekte fehlen und Autos bei Kollisionen einfach weiterfahren würden. So ein Spiel würde niemand spielen wollen, oder?

Doch Engines werden nicht nur für Spiele gebraucht: Auch in anderen Software-Typen kommen Engines vor. Browser beispielsweise besitzen eine Layout-Engine, um den HTML-Text von Websites überhaupt grafisch darstellen zu können.

 

Wofür Engines?

Aber wofür braucht man jetzt überhaupt Engines? Entwickler verwenden Engines vor allem, um sich das Leben leichter zu machen und die Produktionskosten zu minimieren. Sie müssen sich keine Gedanken über die dynamische Physik, Ton oder Grafik-Berechnung machen. All diese zeitaufwendige Arbeit nimmt eine Engine den Entwicklern ab.

Würde jeder Entwickler all diese Berechnungen selbst in ihr Programm integrieren, so würde sich die Entwicklungszeit drastisch verlängern.

Bekannte Engines sind zum Beispiel die Cry-, Frostbite- oder Unreal Engine.

Was denkst du darüber?