Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich finde dieses Thema unglaublich interessant und möchte es nochmal aufgreifen.

Noch eine Frage zur Engine. Wann ist eine Engine eine Engine? Es wurde gesagt, dass sie die wichtigen und grundlegenden math. Funktionen des Spieles zur Verfügung stelt. Wenn ich jetzt ein einfaches 2D-Spiel basteln will, in dem sich Objekte von rechts nach links bewegen, und der Spieler muss mit seinem Schiff/Charakter/... den sich nähernden Objekten in einer vertikalen Bewegung ausweichen, was ist dann die Engine? Ist dieser Begriff nicht eher für komplexere Anwendungen vorgesehen, oder ist eine Sammlung von Formeln auch schon meine Engine?

Grüße :StefanE

Geschrieben

Mir ist der Begriff "Engine" zum ersten Mal untergekommen als es mit den 3D-Spielen so richtig los ging. Für mich ist eine Engine dann eine Engine, wenn sie die grundlegenden technischen Funktionen für ein Spiel zur Verfügung stellt (Grafikdarstellun, Soundausgabe) und mehr oder weniger universell für mehrere Spiele einetzbar ist.

Das sagt Wikipedia: http://de.wikipedia.org/wiki/Engine

Geschrieben

Als ich mich an der 3D-Programmierung versucht habe, ging es mir nicht primär darum ein nettes Spiel zu erstellen, sondern darum zu verstehen wie es funktioniert und etwas zu haben an dem man herumbasteln kann.

Ansonsten würde ich auch dazu tendieren eine fertige Engine zu nutzen.

Geschrieben
Ich finde dieses Thema unglaublich interessant und möchte es nochmal aufgreifen.

Noch eine Frage zur Engine. Wann ist eine Engine eine Engine? Es wurde gesagt, dass sie die wichtigen und grundlegenden math. Funktionen des Spieles zur Verfügung stelt. Wenn ich jetzt ein einfaches 2D-Spiel basteln will, in dem sich Objekte von rechts nach links bewegen, und der Spieler muss mit seinem Schiff/Charakter/... den sich nähernden Objekten in einer vertikalen Bewegung ausweichen, was ist dann die Engine? Ist dieser Begriff nicht eher für komplexere Anwendungen vorgesehen, oder ist eine Sammlung von Formeln auch schon meine Engine?

Grüße :StefanE

Sowas ist eigentlich ganz einfach mit hilfe von Directx Programmierung

habe leider gerade nicht die seite im kopf.

Am besten mal bei google nach der entwicklungs umgebung bzw. sprache in verbiindung mit direktx suchen

Geschrieben

@Erik_hfr: Eine Formelsammlung ist keine Engine!

Folgendes ist meine persönliche Auffassung, aber ich denke, daß 99% der Spieleentwickler meine Sicht zu diesem Thema teilen dürften.

Formelsammlungen stellen lediglich das Grundgerüst für die Engine bereit und definieren die Form der Daten im Speicher und deren Verarbeitung. Es gibt auch keine "Formelsammlung" für Kollisionen, sondern nur Routinen zur Kollisionsabfrage und davon meistens sogar mehrere für verschiedene Einsatzbereiche. Die Kollision eines Schusses muß anders berechnet werden als die Kollision des eigenen Raumschiffes auf der Oberfläche, eine Kollision von einzelnen Körperteilen ist wesentlich komplexer und anders abzufragen (wegen Verwundungen oder Splattereffekten) als eine Gesamtkollision mit dem Objekt an sich, welche nicht so genau funktionieren muß und einen "vermutlich Treffer!" liefert - Hauptsache der Gegner fällt tot um oder explodiert =8-)

Verschiedene Verhaltensweisen lassen sich nicht so leicht in Formen quetschen wie die 3D-Rotationen und Translationen. z.B. wenn ein Schuß von einem Gegner auf einen abgefeuert wird, muß berücksichtigt werden, daß man sich selbst in Bewegung befindet (gerade bei Weltraumkampfsimulationen) die Richtung des Schusses muß aus der Bewegungsrichtung und Gewschwindigkeit des Ziels abgeleitet werden und den vermutlichen Zielpunkt bei gleichem Kurs anvisieren, sonst würde man niemals getroffen werden, außer bei totalem Stillstand! Die Formeln, die man einsetzt kann man auf einige bestimmte Grundformeln reduzieren. Aber erst der korrekte Einsatz der Formeln im Bezug miteinander in Programmabläufen macht eine Spieleengine im Ansatz wirklich aus.

Etwas abstrakt betrachtet kann man sich das etwa so vorstellen:

Das Design eines Autos entspricht eher den Formeln, das Benzin sind die Eingabedaten, Levels, Sounddateien, etc., dann wäre die eingesetzte Technik als die Engines in Ihrer Gesamtheit zu Verstehen, wodurch man die einzelnen Teile der Fahrzeugtechnik abstrakt als getrennt entwickelte Engines (Physik-, Grafik-, Sound-, etc.-Engine) ansehen kann und die Gesamtheit des Fahrens als Spiel.

Was ist nun die Engine?

Eine Engine muß compilierter, ausführbarer Programmcode sein. Er muß effektiv Eingangsdaten wie Objekte, Bilder, Texturen verarbeiten können und diese auf den Bildschirm bringen können. Man spricht zwar allgemein immer von Engine und meint heute dabei meistens die Grafik-Engine. Zur Engine gehören aber auch die KI für die Objektsteuerung, Pathfinding-Algorithmen zur Bewegungssuche von Objekten, Kollisionsprüfung, die Verwaltung von eventuellen Inventories, usw.. Diese sind Teil der Spiele-/Game-Engine.

Was in letzter Zeit die Grafikengine immer mehr und mehr bei den Diskussionen verdrängt, ist die Physik-Engine - insbesondere bei Half-Life 2 ist dies das Hauptthema. Diese gewährleistet ein an der Realität möglichst nah liegendes korrektes Verhalten möglichst vieler physikalischer Gesetze der Spielobjekte.

Logischerweise fehlt zur Vervollständigung noch die Sound-Engine, die jedem klar sein dürfte (Musik, Effekte, akkustische 3-Dimensionale Raumverteilung).

Weitere Sondereffekte wie Muskeln, Gesichtsausdrücke, Lippensynchrone Mundbewegung der Figuren beim Sprechen, lassen sich nicht ganz so einfach in eine Sparte stecken und können eher als Hybridengines bezeichnet werden, weil sie viele Engines parallel beeinflussen.

Einerseits simulieren sie die reellen Gegebenheiten (Physik-Engine), andererseits werden sie auf dem Bildschirm sichtbar und müssen dargestellt werden können (Grafik-Engine) oder wirken sich auf die Game-Engine aus, weil sie den Verlauf des Spiels beeinflussen können.

Unterteile davon sind eher der Game-Engine oder gar keiner klar zuordenbar, z.B. die Audio-Analyse, die die Lippensynchronität überhaupt ermöglicht. Davon gibt es auch einige Vertreter, wie z.B. Landschafts-/Objektmorphing, Wettersimulation, Inverse Kinematik, Eingabeberäte (Joystick, Mouse, Tastatur), Netzwerkkomponenten wie Gameserver, Netgaming, Chatsystem, ... vielleicht könnte man die zuletzt genannten auch als sowas wie die Net-Engine bezeichnen - das liegt wohl wie immer im Auge des Betrachters.

Wer allerdings was wie nennt und welcher Engine zuordnet, spielt an sich keine allzu große Rolle, da Softwareentwicklung heutzutage eh modular abläuft und alles zum Schluß miteinander vernetzt wird. Hauptsache die Engines greifen nahtlos und absturzfrei ineinander, überlassen allen Programmteilen die Zeit, die sie benötigen um "flüssig" Laufen zu können (es gibt Programmteile, die bei jedem Bildschirmframe durchlauft werden müssen, einige regelmäßig alle paar Millisekunden und anderen reicht es aus im Zeitrahmen von 10-30 Sekunden einmal durchlaufen zu werden), bieten sich gegenseitig ausreichende Schnittstellen zur Kommunikation an und ermöglichen dem Spieler auf diese Art und Weise ein angenehmes Spielen in seiner virtuellen Umgebung.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...