Spieleprogrammierung

Spieleprogrammierung
UnrealEd, Level-Editor des Unreal Development Kid

Spieleprogrammierung ist ein Teil der Spieleentwicklung und bezeichnet den Vorgang für die Programmierung eines Computerspiels. Computerspiele werden für die verschiedensten Plattformen entwickelt. Die bekanntesten sind PC, Playstation, Xbox und Wii. Die meist verwendete Programmiersprache ist dabei C bzw. C++, da bei der Entwicklung von Spielen vor allem die Geschwindigkeit im Vordergrund steht. Vor allem anspruchsvolle Spiele benötigen einen möglichst direkten und effizienten Zugriff auf die Hardware des Systems, dies gilt insbesondere für die Grafikhardware. Für den PC und mittlerweile auch andere Plattformen wurden spezielle APIs für diesen Zweck entwickelt. Die beiden bekanntesten für den Zugriff auf die Grafikhardware sind DirectX und OpenGL. Da sich diese APIs jedoch nur auf das Notwendigste beschränken, entstanden im Laufe der Zeit viele Programmbibliotheken, wie z. B. Allegro, SDL, SFML, die auf DirectX oder OpenGL aufbauen.

Inhaltsverzeichnis

Entwicklungsprozess

Für ein modernes kommerzielles Computerspiel schreiben oft bis zu 30 Programmierer schätzungsweise über eine Million Zeilen Quellcode. Dies erfordert eine gute Projektplanung sowie den Einsatz von Versionsverwaltungssoftware, Bugtrackern und automatisierten Erstellungsprozessen.

Planung

Eine professionelle Spieleprogrammierung richtet sich nach dem Game-Design-Dokument. Aufgrund diesem werden detailliertere Pläne für die Implementierung der Spielfunktionen erstellt. Die meisten Phasen der Entwicklung werden mehrmals durchlaufen, da sich in allen Phasen immer wieder Änderungen ergeben. Auf solche Änderungen schnell reagieren zu können ist von besonderer Wichtigkeit für das ganze Projekt.

Implementierung

Der Quellcode für ein Computerspiel ist im Normalfall nach einem Schichtenmodell aufgebaut:
Am unteren Ende stehen die Treiber, sie bieten den direkten Zugriff auf die Hardware. Darüber steht eine hardwarenahe API, wie z. B. DirectX oder OpenGL die vom wohl wichtigsten Element im ganzen Spielprojekt verwendet wird, der darüberliegenden Spiel-Engine, die sich hauptsächlich aus der Grafik-Engine, einer Sound-Engine, einer möglichen Physik-Engine und weiteren Systemen für Kollision, Animation, Steuerung, Netzwerk, usw. zusammensetzt und den Kern des Spiels bildet. Eine Spiel-Engine wird meist für mehrere Spiele verwendet und ist deshalb in begrenzten Rahmen universell verwendbar. Als über der Spiel-Engine liegenden Teil kann man das Scripting-System betrachten, das eine Scriptsprache zur Verfügung stellt und Teile der Spiel-Engine verwendet, aber die nur in speziellen Bereichen eingesetzt wird. Den Abschluss bildet dann der Quellcode für die Spiele-Logik, der individuell für das jeweilige Computerspiel geschrieben wird.

Zusätzlich werden noch verschiedene Tools programmiert, die vor allem für die Erstellung von grafischen Elementen vorgesehen sind, wie z. B. ein Level-Editor, mit dem Spielewelten erschaffen werden können.

Test

Eine erste spielbare Version des Computerspiels wird Alpha-Version genannt. Eine erste für den Release vorgeschlagene Version nennt sich Beta-Version, wobei die Definitionen dabei allerdings etwas auseinandergehen. Beide Versionen werden von professionellen Spiele-Tester auf Bugs hin geprüft, welche dann von den Programmierern ausgebessert werden, bis es letztendlich zur fertigen Release-Version (RTM-Version) kommt, auch "Going Gold" genannt.

Werkzeuge und Hilfsmittel

Der Quellcode für ein Computerspiel kann mit jedem beliebigen Texteditor geschrieben werden und anschließend mit einem Compiler kompiliert werden. Für einen professionellen und effektiven Arbeitsprozess ist eine integrierte Entwicklungsumgebung, wie MS Visual Studio, Eclipse, Netbeans, usw., die eine Vielzahl an Hilfsmittel für das Entwickeln von Software bieten, unverzichtbar.

Programmiersprachen

Die wichtigsten Entscheidungsfaktoren für die Wahl der zu verwendenten Programmiersprachen sind die Geschwindigkeit, der Arbeitsaufwand, die Ziel-Plattformen und die Sprachen in den verwendeten APIs und Programmbibliotheken.

Sprache Stärken Schwächen
Assembler schnell fehleranfällig, langsame Entwicklung, schwierig für Anfänger, nicht portierbar
C hoher Bekanntheitsgrad, zahlreiche Tools keine integrierte OO, problematisch für große Projekte oder mehrere Plattformen
C++ integrierte OO, meist verwendet, zahlreiche Tools keine integrierte GC, oder Schutz vor Speicherlecks
C# sehr OO, RAD-Sprache, einfach zu verwenden hoher Speicherverbrauch
Java sehr OO, einfach zu verwenden, portabel auf Spielkonsolen generell nicht verfügbar, disassemblierbar
Eiffel, Smalltalk, Ada, etc. selten verwendet, wenige Spieleentwicklungs-Tools
Scriptsprachen wie Lua, Python, etc. oft verwendet für Gameplay-Scripting, aber nicht für den Hauptteil des Spiel-Quellcodes
Shadersprachen wie Cg, HLSL, GLSL, etc. nahezu unverzichtbar für die moderne 3D-Spieleprogrammierung, wird aber nicht für den Hauptteil des Spiel-Quellcodes verwendet

APIs und Programmbibliotheken

Bei der Planung eines Computerspiels stellt sich die Frage, welche APIs und Programmbibliotheken man verwendet. Diese Entscheidung hängt u.a. davon ab, für welche Ziel-Platform man entwickelt und ob man ein 2D oder 3D-Spiel programmiert. Die für die 3D-Spieleprogrammierung wohl wichtigsten APIs für Windows sind OpenGL und Direct3D.

Spieleprogrammierung als Hobby

Die meist verwendeten Plattformen für die Hobby-Entwicklung sind Betriebssysteme für den PC, da Spielprojekte für Spielkonsolen oft schwieriger und teurer in ihrer Umsetzung sind. Eine Ausnahme bietet hier z. B. Microsofts Spieleentwicklungsplatform XNA, mit der Computerspiele sowohl für Windows als auch für die Xbox einfacher entwickelt werden können. Hobby-Spielprojekte sind gut geeignet um Erfahrungen im Bereich der Spieleprogrammierung zu sammeln.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

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

  • Basicdialekt — Aufgrund der seit Jahrzehnten bestehenden Popularität von BASIC existieren zahlreiche BASIC Implementierungen auf einer Vielzahl von Plattformen. Entsprechend den sehr unterschiedlichen Umgebungen und Einsatzzwecken wurde eine hohe Zahl von… …   Deutsch Wikipedia

  • Basicdialekte — Aufgrund der seit Jahrzehnten bestehenden Popularität von BASIC existieren zahlreiche BASIC Implementierungen auf einer Vielzahl von Plattformen. Entsprechend den sehr unterschiedlichen Umgebungen und Einsatzzwecken wurde eine hohe Zahl von… …   Deutsch Wikipedia

  • Liste der BASIC-Dialekte — Aufgrund der seit Jahrzehnten bestehenden Popularität der Computer Programmiersprache BASIC existieren zahlreiche BASIC Implementierungen auf einer Vielzahl von Plattformen. Entsprechend den sehr unterschiedlichen Umgebungen und Einsatzzwecken… …   Deutsch Wikipedia

  • Bewegung in Ego-Shootern — Isometrische Übersicht über ein Taktik Rollenspiel Horizontale Bewegung in einem Jump ’n’ Run …   Deutsch Wikipedia

  • Bewegung in Computerspielen — Isometrische Übersicht über ein Taktik Rollenspiel …   Deutsch Wikipedia

  • Allegro-Bibliothek — Allegro Aktuelle Version 5.0.5 (6. November 2011) Programmier­sprache C Lizenz zlib Lizenz …   Deutsch Wikipedia

  • AmiBlitz 2 — Blitz Basic ist eine Programmiersprache, die sich an dem Basic Syntax orientiert und sich vor allem zum Programmieren von PC Spielen eignet. Blitz Basic entstand auf dem Amiga. Nach dem Untergang der Homecomputer beschloss der Autor Mark Sibly,… …   Deutsch Wikipedia

  • Blitz3D — Blitz Basic ist eine Programmiersprache, die sich an dem Basic Syntax orientiert und sich vor allem zum Programmieren von PC Spielen eignet. Blitz Basic entstand auf dem Amiga. Nach dem Untergang der Homecomputer beschloss der Autor Mark Sibly,… …   Deutsch Wikipedia

  • BlitzBasic — Blitz Basic ist eine Programmiersprache, die sich an dem Basic Syntax orientiert und sich vor allem zum Programmieren von PC Spielen eignet. Blitz Basic entstand auf dem Amiga. Nach dem Untergang der Homecomputer beschloss der Autor Mark Sibly,… …   Deutsch Wikipedia

  • BlitzMAX — Blitz Basic ist eine Programmiersprache, die sich an dem Basic Syntax orientiert und sich vor allem zum Programmieren von PC Spielen eignet. Blitz Basic entstand auf dem Amiga. Nach dem Untergang der Homecomputer beschloss der Autor Mark Sibly,… …   Deutsch Wikipedia

Share the article and excerpts

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