Game-Engine

Game-Engine
Redundanz Die Artikel Liste der Spiel-Engines und Spiel-Engine#Bekannte Engines überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein erst nach vollständiger Abarbeitung der Redundanz. Mps 23:56, 24. Feb. 2009 (CET)

Eine Spiel-Engine (engl. Game Engine [ˈgeɪmˌɛndʒɪn]) bildet das Grundgerüst vieler Computerspiele. Sie besteht aus einer Programmbibliothek, die Entwicklern von Computerspielen häufig benutzte Werkzeuge zur Verfügung stellt.

Inhaltsverzeichnis

Bestandteile

Die Engine besteht, je nach Spiel, unter anderem aus folgenden Bereichen:

Basisfunktionalitäten

Grafik-Engine

Die Grafik-Engine ist für die grafische Darstellung auf dem Bildschirm verantwortlich. In Fall einer 3D-Darstellung wird die Grafik-Engine auch oft 3D-Engine genannt.

Eine Grafik-Engine beinhaltet meistens folgende Werkzeuge:

  • Funktionen zum Laden, Verwalten und Anzeigen von Texturen bzw. Sprites
  • Kollisionsabfragen
  • Textausgabe

Im Falle einer 3D-Engine kommen oftmals folgende Werkzeuge hinzu:

  • Funktionen zum Laden, Verwalten, Darstellen und Animieren von 3D-Modellen
  • Schnelle, optimierte Klassen für Vektoren, Matrizen, Ebenen, Strahlen, Farben (inklusive Operatoren und Hilfsfunktionen)
  • Shader-System zur möglichst realistischen Darstellung der Wirkung von Licht und Schatten auf verschiedene Materialien (Metall, Holz, Haut)
  • Effekte wie Feuer, Explosionen, Wasser, Schnee, Nebel

Physiksystem

Aktuelle Spiele werden mit zusehends realistischeren Physiksystemen (Physikengine) ausgestattet. Neben höherem visuellen Realismus kann das Physiksystem auch Auswirkung auf das Spielgeschehen haben, wenn beispielsweise ein fallendes Objekt (z. B. eine geworfene Handgranate) einen Hügel herunterkullert, anstatt darauf liegen zu bleiben. Man kann zwischen verschiedenen Arten von Physik unterscheiden:

  • Weit verbreitet ist Rigid-Body-Physik, das heißt die Simulation der Newton'schen Mechanik für feste Körper.
  • Ein Teilaspekt von Rigid-Body-Physik ist Ragdoll-Physik: Virtuelle Charaktere können physikalisch korrekt fallen, und können dabei mit den Gliedmaßen an anderen Gegenständen anstoßen.
  • Manche Spiele simulieren auch das realistische Verhalten von z.B. Fahnen (etwa in Prince of Persia), Kleidung oder Wasser.

Physikengines bekamen im Jahr 2005 auch eine Hardwareunterstützung spendiert, sogenannte Physikbeschleuniger, um physikalische Effekte genauer und in größerem Ausmaß berechnen zu können. Prinzipiell gilt: Je besser die Gesetze der Physik dargestellt werden, desto höher ist der Realismusgrad bei der Interaktion mit Gegenständen in virtuellen Welten (siehe Immersion).

Soundsystem

Der Sound kommt in aktuellen Spielen auch nicht zu kurz. Aktuelle Spiele wie z.B. Far Cry oder Half-Life 2 unterstützen 5.1-, teilweise sogar 7.1-Surroundsound und EAX, entsprechende PC-Hardware und Boxen vorausgesetzt. Dadurch wird der räumliche Eindruck der Spielwelt verstärkt, indem ein differenzierter Raumklang entsteht und man auch die Position von Gegnern „erhören“ kann.

Die Spiel-Engine sollte das Abspielen von Musik und 3D-Sounds vereinfachen.

Künstliche Intelligenz

Bei der künstlichen Intelligenz (KI) der computergesteuerten Mitspieler und Gegner wurden ebenfalls große Fortschritte erzielt. Mittlerweile verständigen sich Teams untereinander, suchen Deckung, kreisen Spielfiguren ein etc. Besonders knifflige KIs sind zudem lernfähig und passen sich an die Spielweise der Spieler an.

Ein klassischer Bestandteil von KI ist die Pfadsuche. Etwa bei Strategiespielen und auch bei Ego-Shootern müssen Figuren im Spiel selbstständig einen Weg von A nach B finden. In dem Computerspiel Die Siedler beispielsweise laufen zahlreiche Figuren selbstständig von ihrer Wohnstätte zur Arbeit und umlaufen dabei Hindernisse wie Berge oder andere Figuren.

Auch die Schachengines sind KIs, die sogar lernfähig sind.

Zustandsspeicherung

Um den aktuellen Spielstand abzuspeichern und wieder zu laden gibt es zwei Ansätze:

  • Serialisierung des Objektbaums: Alle Objekte, deren Zustände und Beziehungen werden mehr oder weniger automatisch komplett gespeichert. Die Zustände aller betroffenen Objekte der Spiel-Engine werden in eine Bytefolge (Stream) umgewandelt und können daraus auch wieder hergestellt werden. Dieses erzeugt typischerweise größere Dateien, es wird aber auch wirklich der gesamte Spielzustand gespeichert.
  • Nur bestimmte Daten werden gespeichert. Vorteil sind kleine Dateien, und die Spielzustände können etwa auch auf Speicher-Modulen von Konsolen gespeichert werden. Nachteil ist ein größerer Programmieraufwand, weil die Programmierer genau programmieren müssen, was abgespeichert wird. Aufgrund dieser Komplexität greifen Spiel-Engines daher oft auf einfachere Verfahren zurück, etwa, dass man den Spielzustand nur an bestimmten Stellen im Spiel abspeichern kann.

Steuerung

Die Steuerung ist nicht zu unterschätzen. Unpräzise Steuerung führt schnell zu Frustration. Haben die Entwickler früherer PC-Spiele noch auf die Pfeiltasten der Tastatur gesetzt, so gibt es heute für verschiedene Genres andere, besser geeignete Lösungen. In der Sparte Rennspielen ist dies das Lenkrad, eventuell mit Force-Feedback-Unterstützung. Bei Sportspielen, z.B. der FIFA-Reihe, greifen viele Spieler zum Gamepad. Für Flugsimulationen werden in der Regel Joysticks verwendet. Strategie- und Aufbauspiele werden normalerweise per Maus gesteuert. Bei Ego-Shootern hat sich eine Kombination aus Maus und Tastatur durchgesetzt.

Dazu beinhaltet eine gute Engine Werkzeuge zum Zugriff auf Eingabegeräte wie Tastatur, Maus und Joystick.

Netzwerk-Code

Der Netzwerk-Code bestimmt die Voraussetzungen für den Multiplayerteil eines Spiels, z. B. wieviele Spieler gleichzeitig am Spiel teilnehmen können oder ob ein 56k-Modem ausreichend ist oder ein Breitbandinternetanschluss wie xDSL oder TV-Kabel benötigt wird.

Datenmanagement

Zum Laden und Speichern von Spielständen, Benutzer- und Leveldaten sowie zur absturzsicheren Speicherverwaltung ist ein gutes Datenmanagement nötig. Deshalb verfügen viele Spiel-Engines über folgende Funktionen:

Skripting

Skriptsprachen dienen der Programmierung der Spielabläufe. Grundsätzlich sind Spielabläufe auch in der Entwicklungssprache programmierbar, dennoch bieten Skriptsprachen folgende Vorteile:

  • Skriptsprachen sind meistens robuster und verursachen weniger Abstürze. Änderungen am Spielablauf bedeuten daher weniger Risiko für den Entwicklungsprozess.
  • Spieledesigner, welche den Inhalt der Spiele bestimmen, sind nicht notwendigerweise professionelle Programmierer, Skriptsprachen sind jedoch auch für Nicht-Programmierer schnell zu erlernen.
  • Am Inhalt des Spiels werden meistens viele Änderungen vorgenommen. Skriptsprachen machen es einfach, die Programmierung zur Laufzeit interaktiv zu ändern, ohne das Spiel neu starten zu müssen.

Eine Scriptsprache ist meistens langsamer als andere Programmiersprachen wie etwa C++. Die Spiel-Engine selbst ist daher meistens nicht in einer Scriptsprache programmiert, sondern in aller Regel in C++. Die Spiel-Engine stellt aber meistens eine Scriptsprache zur Verfügung. Insbesondere für größere Spieleproduktionen hat sich daher eine Zwei-Schichten-Architektur etabliert: Das eigentliche Spiel wird in der Scriptsprache entwickelt, welche von der zugrundeliegenden Spiel-Engine zur Verfügung gestellt wird.

Manche Spiel-Engines greifen auf vorhandene Skriptsprachen zurück, etwa Lua. Aufgrund der besonderen Anforderungen besitzen viele Spiel-Engines eine eigene Skriptsprache, beispielsweise UnrealScript in der Unreal-Engine, C-Script bzw. Lite-C im 3D Gamestudio, oder Perch in der Shark 3D-Engine.

Unterschiede von Engines für Konsolen und PC

Spiel-Engines für Konsolen

Moderne Konsolen unterscheiden sich technisch von PCs vor allem in folgenden Aspekten:

  • Deutlich weniger Hauptspeicher
  • Spezialhardware, insbesondere zur Berechnung der 3D-Grafik
  • optische Medien CD/DVD/Blu-Ray als primäres Speichermedium

Je nach Konsole kann man die Hardware zwar ähnlich programmieren wie PC-Hardware; allerdings geht dieses dann auf Kosten der Qualität, da die Konsolen-Hardware dann nicht ausgeschöpft wird. Da die technischen Eckdaten von Konsolen aber typischerweise deutlich hinter aktuellen PCs zurückfallen, ist ein optimales Ausnutzen der Konsolenhardware wichtig für eine gute Spiel-Engine. Konsolen-Engines besitzen daher in aller Regel viel Code, welcher ausschließlich für eine spezielle Konsole entwickelt wird. Da CD, DVD oder Blu-Ray merklich langsamer sind als Festplatten, andererseits Ladezeiten bei Konsolen besonders kurz sein sollen, spielt die Organisation der Daten auf diesen Medien und die Ladetechnik eine wichtige Rolle.

Zertifizierungsprozess

Des Weiteren müssen Spiele, die für Konsolen veröffentlicht werden, einen strengen Zertifizierungsprozess des Konsolenherstellers durchlaufen. Um diesen zu bestehen müssen die Spiele eine umfangreiche Anforderungsliste erfüllen, welche beispielsweise bestimmte Anforderungen an die Ladezeiten von DVD fordert. Die meisten Anforderungen haben aber auch deutliche Konsequenzen für die darunterliegende Spiel-Engine. Auch aufgrund dieser Anforderungen besitzen Spiel-Engines für Konsolen typischerweise eine ganz andere Software-Architektur als PC-Engines.

Portierung von Konsole auf PC

Einfacher ist dagegen der Schritt von Konsolen zu PC: Eine Engine, die auf Konsolen läuft lässt sich in aller Regel problemlos auf den PC portieren, einfach weil dort die Anforderungen geringer sind. Allerdings beklagen Computerspieler bei derartigen Spielen dann öfters, dass das Spiel auf dem PC nicht die weitreichenderen Möglichkeiten aktueller PC-Hardware ausnutzt. Ein klassisches Beispiel sind Playstation-2-Spiele, welche auch auf den PC portiert worden sind, und welchen man oft ansieht, dass die Grafik für die technisch eher beschränkte Konsolen-Hardware entworfen worden ist. Ein anderer Aspekt ist, dass die Spiele-Entwickler bei Konsolen nur für eine feststehende Hardware entwickeln müssen, während ein PC-Spiel auf PCs mit verschiedenster Ausstattung laufen muss. Dieses hat weniger Einfluss auf die Software-Architektur, bedeutet aber für den Spieleentwickler, dass er die Engine umfangreich mit verschiedenen Hardware-Konfigurationen testen muss.

Entwicklungswerkzeuge

Entwicklungswerkzeuge spielen eine immer wichtigere Rolle bei der Entwicklung von Computerspielen. Viele professionelle Entwickler messen diesen inzwischen sogar eine größere Bedeutung zu als der eigentlichen Spiel-Engine. Grob kann man verschiedene Ansätze unterscheiden, die meistens auch in Kombination eingesetzt werden:

  • Plug-ins für existierende Programme. Beispielsweise ermöglichen derartige Plug-ins, Daten aus bekannten 3D-Modellierungsprogrammen in ein spezielles Format für die Spiel-Engine zu konvertieren.
  • Eigenständige Programme.
  • Die Spiel-Engine hat eingebaute Editierfunktionalität. Dieses ist bei Konsolen nur wenig praktikabel.
  • Dynamische Verbindungen: Änderungen, die man in eigenständigen Programmen oder Plug-ins vornimmt, werden von der Spiel-Engine direkt übernommen. Dieser Prozess etabliert sich insbesondere für professionelle Konsolenentwicklung.

Immer wichtiger werden die sogenannten Turn-Around-Zeiten: Je schneller ein Spieleentwickler das Ergebnis seiner Änderungen im Spiel sieht, desto produktiver kann er arbeiten. Da Spieleproduktionen immer aufwendiger werden, spielt dieser Aspekt eine immer wichtigere Rolle. Aus diesem Grund werden die Entwicklungswerkzeuge und die Spiel-Engines immer weiter verzahnt.

Engines zum Abspielen vorhandener Spieldaten

Da ältere Spiele (DOS) auf aktuellen Plattformen nicht mehr ohne weiteres laufen, haben engagierte Entwickler verschiedene Projekte gestartet, um neue Engines zur Interpretation von Spieldaten zu schreiben. In diesem Fall liefert das Projekt meistens nur die Engine, die Spieldaten muss der Nutzer bereitstellen (auf diese Weise werden von den Entwicklern die Urheberrechte der ursprünglichen Hersteller nicht verletzt). Beispiele hierfür sind ScummVM, ein auf modernen Plattformen lauffähiger Interpreter für die Scriptsprache SCUMM von LucasArts-Adventures und anderen oder Exult, eine nachprogrammierte Engine für Ultima VII und Ultima VII Teil 2.

Bekannte Engines

Kommerziell

Open Source

Game Engine Spiele Entwickler Geschrieben in
Nebula Device 3 Drakensang
Project Nomads
Far West
Railroad Pioneer
Tigris & Euphrates
Torres
Radon Labs
CDV
JoWooD

Dartmoor Softworks

C++
Build-Engine Duke Nukem 3D
Shadow Warrior
Blood
Redneck Rampage
3D Realms

Monolith Productions
Xatrix Entertainment
C/C++
Crystal Space Bonez Adventures
Crystal Core
PlaneShift


Atomic Blue
C++
Doom Engine Doom
Doom2
Heretic
HeXen: Beyond Heretic
id Software

Raven Software

C
C++
OGRE Ankh
Ankh: Herz des Osiris
Deck13

C++
MOGRE C#
Quake-Engine Call of Duty
Counter-Strike
Half Life
Heavy Metal: F.A.K.K.²
SiN
Jedi Knight: Jedi Academy
Medal of Honor: Allied Assault
Nexuiz
Quake-Serie
Star Trek Voyager: Elite Force
Soldier of Fortune
Tremulous
Wolfenstein: Enemy Territory
Infinity Ward, Inc.
Valve

Ritual Entertainment

LucasArts
Electronic Arts
Alientrap
id Software
Raven Software

Darklegion Development
Splash Damage & id Software
C++
Wolfenstein-3D-Engine Wolfenstein 3D
Rise of the Triad
id Software
3D Realms
C
Sauerbraten Game Engine Cube 2: Sauerbraten C++
SFML C++
Panda3D Toontown VR Studio C++
Python
jMonkeyEngine Java
Reality Factory
Genesis 3D C++
Irrlicht Engine H-Craft Championship irrgheist C
C++
C#
.NET
RealmForge .NET

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Game engine — A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers. The core functionality typically provided by a game engine… …   Wikipedia

  • Game Engine — Die Artikel Liste der Spiel Engines und Spiel Engine#Bekannte Engines überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte …   Deutsch Wikipedia

  • Game Engine — Moteur de jeux Un moteur de jeu est une application informatique (dite de type middleware) apportant les fonctionnalités principales au fonctionnement d un jeu vidéo, mais aussi une aide au développement ou à la portabilité du jeu. Les… …   Wikipédia en Français

  • Game engine — Moteur de jeux Un moteur de jeu est une application informatique (dite de type middleware) apportant les fonctionnalités principales au fonctionnement d un jeu vidéo, mais aussi une aide au développement ou à la portabilité du jeu. Les… …   Wikipédia en Français

  • Game engine recreation — Game engine recreations are engine interpreters for video games that replace the original engine binary that came with the original game. Game engine recreations are primarily made to allow support for the game on other operating systems. In many …   Wikipedia

  • game engine — noun A video games software engine, it executes the core functionality of the game. May also refer to the graphics engine of the game as well …   Wiktionary

  • Torque Game Engine — Infobox Software name = Torque Game Engine caption = Tribes 2 is one of the most noted commercial games to be made with the Torque Game Engine. developer = GarageGames latest release version = 1.5.2 latest release date = May 15 2007 latest… …   Wikipedia

  • Source (game engine) — Source engine …   Wikipedia

  • Snowblind Studios game engine — Dark Alliance Engine Developer(s) Snowblind Studios Operating system PlayStation 2, Xbox, GameCube, Windows, PlayStation Portable, PlayStation 3, Xbox 360 Type Ga …   Wikipedia

  • Diesel (game engine) — The Diesel engine is a game engine developed and used by GRIN. The engine was originally developed for their game Ballistics and has been used, albeit with modifications, in a number of other games since then. The first installment of the engine… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”