- Seit
- 15 Mai 2006
- Beiträge
- 25.225
Weil mir immer wieder auffällt, dass hier und in anderen Foren unglaublich gerne mit diesem Begriff geworfen wird, ohne dass jemand versteht, was eine Engine ist und wie sie funktioniert, dachte ich mir, man sollte es mal erklären.
Was ist eine Engine?
Eine Engine ist eine Laufzeitumgebung für Spiele. Spiele laufen auf Engines.
Werden Spiele mit der Engine gemacht?
Nein. Erstellt werden die Spiele mit einer Toolchain, einer Reihe externer Werkzeuge. Die Toolchain muss allerdings zur Engine passen, damit die eigentliche Engine die erstellten Inhalte versteht. Viele Engines kommen im Paket mit entsprechenden Toolchain-Komponenten wie zum Beispiel Leveleditoren.
Woraus besteht dann das Spiel?
Aus Assets, also aus den Inhalten, die mit der Toolchain erstellt werden. Das sind beispielsweise 3D Modelle, Texturen, Leveldesigns, Soundeffekte, Musik, Cutscenes, das Interface und nicht zuletzt das eigentliche Spiel: eine Sammlung von Skripten, die die Spielabläufe steuern. Die Regeln, sozusagen.
Spiel und Engine sind also verschiedene Programme?
Könnte man so sagen. Und es kommen üblicherweise auch unterschiedliche Programmiersprachen zum Einsatz. Während die Engines überwiegend in C, C++ und/ oder Assembly geschrieben werden ("richtigen" Programmiersprachen also, wobei Assembly eigentlich schon gar keine Programmiersprache mehr ist), werden die eigentlichen Spiele idR in Skriptsprachen geschrieben, also beispielsweise LUA, ECMA (JavaScript), Lisp, Squirrel, Perl oder Python. Manche Engines verwenden eigene Skriptsprachen, wie beispielsweise die Unreal Engine von Epic (UnrealScript). Skriptsprachen sind nicht nur wesentlich einfacher und schneller zu programmieren, sie sind auch plattformunabhängig. Ein LUA-Skript läuft auf jeder Plattform, für die es einen LUA-Interpreter gibt. Und damit auf so ziemlich jedem Stück Hardware von der PS3 bis zur Kaffeemaschine.
Wie sieht eine Engine aus?
Gar nicht. Engines selbst sehen überhaupt nicht aus, sie klingen nicht, sie machen ohne Spiel ziemlich genau gar nichts. Daher sind Aussagen wie "alle UE3-Spiele sehen gleich aus" unsinnig. Wie das Spiel aussieht, klingt oder sich spielt hängt in erster Linie von den Assets ab, und natürlich von den Möglichkeiten der Hardware. "Das Spiel sieht scheiße aus, weil die Engine nix taugt" kann in Ausnahmefällen stimmen - in der Regel sind aber tatsächlich nur die Assets scheiße.
Interessiert den Entwickler des eigentlichen Spiels die Engine dann überhaupt?
Kaum. Den Entwickler interessiert im Prinzip nur die Toolchain, denn damit muss er schließlich arbeiten. Und von der Engine hängt eben ab, welche Werkzeuge er benutzen kann. Und natürlich, wie stabil die Engine läuft, und was man mit ihr (wie einfach) umsetzen kann.
Warum verwenden dann so viele Leute beispielsweise die UE3, wenn die Engine doch eigentlich keine Rolle spielt?
Ich sage nicht, dass die Engine überhaupt keine Rolle spielt. Die UE3 ist robust und einigermaßen flexibel. Aber in erster Linie hat die UE3 eine sehr gute, gut dokumentierte und effiziente Toolchain. Es ist also einfach, auf UE3 zu entwickeln. Sofern man damit während der Entwicklung ausreichend Zeit und Geld spart, können die horrenden Lizenzkosten kompensiert werden. Und nicht zuletzt hängt von der Engine ab, auf welchen Plattformen das Spiel am Ende überhaupt läuft bzw. laufen kann. Das Spiel kann nur auf Plattformen laufen, für die es eine passende Laufzeitumgebung gibt.
Ab welchem Punkt der Entwicklung spielt die Plattform eine Rolle?
Eigentlich erst am letzten Punkt, also wenn das eigentliche Spiel auf der Engine ausgeführt wird. Sofern die Laufzeitumgebung auf mehreren Plattformen läuft, und die Assets nicht überdimensioniert sind, läuft das Spiel auf jeder unterstützten Plattform mehr oder weniger gleich. Es ist also durchaus möglich, eine "Engine" zu entwickeln, die Plattformen vom DS bis hin zu high-end PCs unterstützt, und auf jeder Plattform erlaubt, das Maximum herauszuholen. Tatsächlich wären es aber unterschiedliche Laufzeitumgebungen für jede Plattform - nur die Toolchain wäre immer die selbe.
Also ist selbst die UE3 ein glorifiziertes Flash?!?
Dingdingding! Die UE3 Laufzeitumgebung ist das Flash Plugin, UnrealEd ist Flash, UnrealScript ist ActionScript, und der Rest der Toolchain kann sogar mehr oder weniger identisch sein (Photoshop, Illustrator, 3D Studio, Wavelab etc.).
Habe ich noch irgendwelche typischen Fragen vergessen?
Was ist eine Engine?
Eine Engine ist eine Laufzeitumgebung für Spiele. Spiele laufen auf Engines.
Werden Spiele mit der Engine gemacht?
Nein. Erstellt werden die Spiele mit einer Toolchain, einer Reihe externer Werkzeuge. Die Toolchain muss allerdings zur Engine passen, damit die eigentliche Engine die erstellten Inhalte versteht. Viele Engines kommen im Paket mit entsprechenden Toolchain-Komponenten wie zum Beispiel Leveleditoren.
Woraus besteht dann das Spiel?
Aus Assets, also aus den Inhalten, die mit der Toolchain erstellt werden. Das sind beispielsweise 3D Modelle, Texturen, Leveldesigns, Soundeffekte, Musik, Cutscenes, das Interface und nicht zuletzt das eigentliche Spiel: eine Sammlung von Skripten, die die Spielabläufe steuern. Die Regeln, sozusagen.
Spiel und Engine sind also verschiedene Programme?
Könnte man so sagen. Und es kommen üblicherweise auch unterschiedliche Programmiersprachen zum Einsatz. Während die Engines überwiegend in C, C++ und/ oder Assembly geschrieben werden ("richtigen" Programmiersprachen also, wobei Assembly eigentlich schon gar keine Programmiersprache mehr ist), werden die eigentlichen Spiele idR in Skriptsprachen geschrieben, also beispielsweise LUA, ECMA (JavaScript), Lisp, Squirrel, Perl oder Python. Manche Engines verwenden eigene Skriptsprachen, wie beispielsweise die Unreal Engine von Epic (UnrealScript). Skriptsprachen sind nicht nur wesentlich einfacher und schneller zu programmieren, sie sind auch plattformunabhängig. Ein LUA-Skript läuft auf jeder Plattform, für die es einen LUA-Interpreter gibt. Und damit auf so ziemlich jedem Stück Hardware von der PS3 bis zur Kaffeemaschine.
Wie sieht eine Engine aus?
Gar nicht. Engines selbst sehen überhaupt nicht aus, sie klingen nicht, sie machen ohne Spiel ziemlich genau gar nichts. Daher sind Aussagen wie "alle UE3-Spiele sehen gleich aus" unsinnig. Wie das Spiel aussieht, klingt oder sich spielt hängt in erster Linie von den Assets ab, und natürlich von den Möglichkeiten der Hardware. "Das Spiel sieht scheiße aus, weil die Engine nix taugt" kann in Ausnahmefällen stimmen - in der Regel sind aber tatsächlich nur die Assets scheiße.
Interessiert den Entwickler des eigentlichen Spiels die Engine dann überhaupt?
Kaum. Den Entwickler interessiert im Prinzip nur die Toolchain, denn damit muss er schließlich arbeiten. Und von der Engine hängt eben ab, welche Werkzeuge er benutzen kann. Und natürlich, wie stabil die Engine läuft, und was man mit ihr (wie einfach) umsetzen kann.
Warum verwenden dann so viele Leute beispielsweise die UE3, wenn die Engine doch eigentlich keine Rolle spielt?
Ich sage nicht, dass die Engine überhaupt keine Rolle spielt. Die UE3 ist robust und einigermaßen flexibel. Aber in erster Linie hat die UE3 eine sehr gute, gut dokumentierte und effiziente Toolchain. Es ist also einfach, auf UE3 zu entwickeln. Sofern man damit während der Entwicklung ausreichend Zeit und Geld spart, können die horrenden Lizenzkosten kompensiert werden. Und nicht zuletzt hängt von der Engine ab, auf welchen Plattformen das Spiel am Ende überhaupt läuft bzw. laufen kann. Das Spiel kann nur auf Plattformen laufen, für die es eine passende Laufzeitumgebung gibt.
Ab welchem Punkt der Entwicklung spielt die Plattform eine Rolle?
Eigentlich erst am letzten Punkt, also wenn das eigentliche Spiel auf der Engine ausgeführt wird. Sofern die Laufzeitumgebung auf mehreren Plattformen läuft, und die Assets nicht überdimensioniert sind, läuft das Spiel auf jeder unterstützten Plattform mehr oder weniger gleich. Es ist also durchaus möglich, eine "Engine" zu entwickeln, die Plattformen vom DS bis hin zu high-end PCs unterstützt, und auf jeder Plattform erlaubt, das Maximum herauszuholen. Tatsächlich wären es aber unterschiedliche Laufzeitumgebungen für jede Plattform - nur die Toolchain wäre immer die selbe.
Also ist selbst die UE3 ein glorifiziertes Flash?!?
Dingdingding! Die UE3 Laufzeitumgebung ist das Flash Plugin, UnrealEd ist Flash, UnrealScript ist ActionScript, und der Rest der Toolchain kann sogar mehr oder weniger identisch sein (Photoshop, Illustrator, 3D Studio, Wavelab etc.).
Habe ich noch irgendwelche typischen Fragen vergessen?

Zuletzt bearbeitet: