Spiel-Engine
Eine Spiel-Engine an sich ist ein spezielles Framework, um Computerspiele zu entwickeln. Das Framework steuert dabei den Spielverlauf und ist für die visuellen Darstellungen des Spiels verantwortlich. Üblicherweise wird eine solche Engine auch als Entwicklungsumgebung genutzt.
Funktionalitäten
Eine Spiel-Engine muss viele verschieden Basisfunktionalitäten zur Verfügung stellen, damit ein vollwertiges Spiel programmiert werden kann.
Grafik-Engine
Einer der wichtigsten Vorteile einer Spiel-Engine ist die Grafik-Engine. Diese ist für die grafische Darstellung der Objekte verantwortlich, sie beinhaltet Funktionen zum Laden, Verwalten und Anzeigen von Texturen, 2D-Sprites und im Falle einer 3D-Engine auch von 3D-Modellen. Weiterhin gibt es Funktionen für Effekte wie Schnee, Nebel, Explosionen, Feuer etc. Zusätzlich ist bei 3D-Engines oft auch ein Shadder-System eingebaut. Mit diesem wird es möglich, eine realistische Darstellung der Wirkung von Licht und Schatten zu integrieren.
Physik-Engine
Ein weiterer wichtiger Vorteil bei der Spiel-Engine ist das Physiksystem. Sie wird zur Simulation von physikalischen Prozessen verwendet. Das Ziel einer solchen Physik-Engine ist unter anderem eine Vereinfachung der Programmierung. Physikalische Effekte werden komplett von der Engine übernommen, der Entwickler muss nur die Eigenschaften der Objekte festlegen. Des Weiteren soll damit eine realistische "Spielphysik" erzielt werden, indem Bewegungsabläufe in einer 3D-Ansicht sehr realistisch vermittelt werden. Da physikalische Prozesse sehr komplex sind, steht bei einer Physik-Engine nicht immer zwingend die physikalische Exaktheit sondern die Echtzeitfähigkeit der Engine im Vordergrund. Das bedeutet: Effizienz geht vor Exaktheit. Seit ca. 2005 gibt es speziell für Physik-Engines auch eine Hardwareunterstützung, sogenannte Physikbeschleuniger, welche die Berechnung der physikalischen Effekte, auf einer speziellen Physikkarte oder Grafikkarte, auslagern.
Soundsystem
Die meisten der heutigen Spiel-Engines unterstützen 5.1 oder 7.1 Surround Sound, entsprechende Hardware (Soundkarte) und Lautsprecher sind vorausgesetzt. Durch diese Technologie wird ein räumlicher Eindruck der Spielwelt verstärkt, indem ein differenzierter Raumklang entsteht. Klanglich können so auch verschiedene Räume simuliert werden, beispielsweise ein Badezimmer, eine Halle, Gänge usw.
Netzwerk-Code
Der Netzwerk-Code oder kurz Netzcode ist der Teil eines Computerprogrammes, der für die Kommunikation in Netzwerken zuständig ist. Der Netzcode bestimmt also somit die Voraussetzungen für den Mehrspielermodus eines Spiels, z.B. die Anzahl der Mitspieler oder welche Bandbreite vorhanden sein muss etc. Als Netzwerkprotokolle stehen dem Entwickler die beiden Protokolle UDP und TCP zur Verfügung. UDP ist das schnellere der beiden, jedoch kann es vorkommen, dass Pakete doppelt auftreten oder sogar verloren gehen. TCP ist in dieser Hinsicht sicherer, dass die Daten sicher und in korrekte Reihenfolge beim Client ankommen. Oft werden trotzdem beide Protokolle verwendet, bei sicheren Daten wie Anmeldungen wird TCP und bei flüchtigen Daten UDP verwendet.
Programmiersprachen
In Spiel-Engines sind meist beide - Entwicklungssprachen sowie Skriptsprachen - vorhanden. Grundsätzlich kann ein komplettes Spiel nur mit einer Entwicklungssprache wie z. B. C# geschrieben werden. Skriptsprachen bieten aber einige Vorteile, beispielsweise müssen Spieledesigner, die nicht unbedingt professionelle Programmierer sind, so nicht ganze Entwicklungssprachen sondern nur Skriptsprachen erlernen, was deutlich einfacher ist. Ein weiterer Vorteil ist, dass der Code bei Skriptsprachen oftmals während der Programmausführung geändert werden kann, was die Entwicklungszeit massiv verkürzen kann, da nicht immer eine Neukompilierung des gesamten Engine-Codes notwendig ist.
Unity
Unity ist die Spiel-Engine, welche wir für unser Projekt benutzen. Momentan ist die aktuelle Version Unity 5. Man unterscheidet zwischen Unity Personal und Unity Professional, die Personallizenz ist kostenlos, die Professional ist die Vollversion des Programmes. Die zusätzlichen Funktionen der Vollversion sind einerseits Erweiterungsmöglichkeiten durch C++-Module andererseits das Selbstgestalten des Startbildschirms. Für unser Projekt reicht die Personal-Version jedoch vollkommen aus. Die Entwicklungsumgebung (Unity Editor) ist gängigen 3D-Animationsprogrammen nachempfunden. Das Hauptfenster stellt die 3D-Szene dar, weitere Menüs und Fenster dienen zum Editieren von Kamera und Szene. Objekte können verschoben, gedreht und skaliert werden. Des Weiteren können jedem einzelnen Objekt physikalische Eigenschaften zugeordnet werden. Einige Formen (Würfel, Kugeln, Ebenen) können direkt im Editor erzeugt werden, komplexere Komponenten wie 3D-Modelle können in anderen Programmen erstellt und dann in Unity importiert werden. Neben Computerspielen können mit Unity auch Konsolenspiele und mobile Anwendungen entwickelt werden.
Unity-Editor |
Programmierung
Unity stellt als Entwicklungssprache C# und C++ sowie die beiden Skriptsprachen UnityScript (ähnlich wie JavaScript) und Boo (ähnlich wie Phyton) zur Verfügung. Als IDE wird MonoDevelop verwendet. Skripte und andere Objekte (wie z.B. 3D-Modelle) können in sogenannte "Prefabs" zusammengefasst und gespeichert werden. Diese können dann in andere Teile des Projekts oder auch in komplett andere Projekte importiert werden und anschliessend wie die eingebauten Elemente verwendet werden. Die Grafik-Engine von Unity kann durch selbst geschriebene Shader-Programme erweitert werden.
Es gibt eine Reihe von kostenlosen Tools, die als Plug-ins in den Unity Editor eingebunden werden und die Engine um weitere Funktionen erweitern.
Keine Kommentare:
Kommentar veröffentlichen