© DrHitch/Shutterstock.com
Erfolgreiche Spieleentwicklung

1 OpenGL - Einführung in die Grafikprogrammierung


Der erste Teil dieses Shortcuts richtet sich speziell an Neulinge auf dem Gebiet der Grafikprogrammierung und soll grundlegende Einblicke in die Arbeit mit OpenGL 3 und 4 [1, 2] vermitteln. Damit einem erfolgreichen Einstieg in die Materie nichts im Wege steht, werden zunächst eine Reihe von Entwicklungswerkzeugen vorgestellt, die im Web zum kostenlosen Download unter www.entwickler-press.de/spieleentwickeln [14] bereitstehen.

Computerspiele sind in den letzten Jahren immer realistischer geworden und ein Ende dieser Entwicklung ist noch lange nicht absehbar, da mit jeder Generation die Hardware immer leistungsfähiger wird. Komplexe 3-D-Szenen und Physikeffekte lassen sich problemlos auf der GPU berechnen und dank moderner Multicore CPUs (Vierkernprozessoren, die bis zu acht Threads parallel verarbeiten, sind heutzutage keine Seltenheit mehr) wird auch die Spielephysik (zerstörbare Spielewelt, Bewegungsmodelle für Land-, Luft- und Wasserfahrzeuge etc.) und die Künstliche Intelligenz (KI) der Computergegner immer wirklichkeitsgetreuer. Kurzum, Computerspiele üben eine große Faszination aus und sind insbesondere für junge Menschen Anlass, sich mit der Spieleentwicklung im Speziellen und der Programmierung im Allgemeinen zu befassen [3]. Die Programmiersprache der Wahl ist für die überwiegende Zahl der Entwickler C/C++ und als Entwicklungsumgebung kommt nicht selten das Visual Studio von Microsoft zum Einsatz, das aktuell in der Version 2010 erhältlich ist. Seit der Version 2005 bietet Microsoft kostenlose Expresseditionen an, mit denen durchaus auch kommerzielle Produkte erstellt werden können. Zwar lassen sich mit diesen Editionen keine MFC-Anwendungen entwickeln, das ist jedoch zu verschmerzen, da die Microsoft Foundation Classes (MFC) für Spiele und Grafikdemos nicht benötigt werden. Weitere Informationen zu den aktuellen Expresseditionen und ein Link zur Downloadseite sind unter [4] zu finden.

Kleinere Grafikdemos können problemlos im Alleingang entwickelt werden, richtige Spiele – ob nun kommerzieller Natur oder Hobbyprojekte – lassen sich nur im Team realisieren. Für die gemeinsame Arbeit ist man jedoch auf Onlinewebspace angewiesen, um allen Teammitgliedern steten Zugriff auf die aktualisierten Projektdaten zu ermöglichen. Gleiches gilt auch für die spätere Veröffentlichung des fertigen Spiels. Kleinere Projekte bis zu einer Größe von 2 GB lassen sich beispielsweise via Dropbox [5] online speichern, synchronisieren und zum Download freigeben.

Selbstverständlich kommt kein Spiel ohne ansprechende 3-D-Modelle und Texturen aus. Auch hier finden sich neben den kostenpflichtigen Programmpaketen kostenlose Alternativen – allen voran Blender für das 3-D-Modelling [6] und GIMP für die Texturierung [7].

Auch wenn die Programmierung einer 3-D- oder einer Physik-Engine gleichsam anspruchsvoll wie faszinierend ist, so ist es vor allen Dingen eines – zeitaufwendig! Für ein Spieleprojekt kann das das Ende bedeuten. Nicht selten springen bei Hobbyprojekten die Grafik- und Sound Artists ab, wenn die Realisierung des eigentlichen Spiels oder des Spieleprototypen in weite Ferne rückt, und für kommerzielle Projekte kann es das Aus bedeuten, wenn sich die vom Geldgeber und Publisher vorgegebenen Fristen nicht einhalten lassen. Populäre und zugleich kostenlose Middleware-Lösungen sind im Bereich der 3-D-Programmierung Ogre3D [8] und im Bereich der Physiksimulation PhysX [9].

1.1 OpenGL – die neuen Spezifikationen 3.x und 4.x

Insbesondere zwei Faktoren waren dafür verantwortlich, dass OpenGL gegenüber DirectX Graphics heutzutage in der Spieleentwicklung kaum mehr eine Rolle spielt. Zum einen gerieten die früheren OpenGL-Spezifikationen (2.x) gegenüber DirectX, das zum damaligen Zeitpunkt in der Version 10 erhältlich war, technisch immer weiter ins Hintertreffen und zum anderen steht den OpenGL-Entwicklern kein SDK (Software Development Kit) ähnlich dem von DirectX zur Verfügung, wodurch der Einstieg in die Materie unnötig erschwert wird. Dank einer konsequenten Weiterentwicklung konnte OpenGL jedoch zur aktuellen DirectX-Version nahezu aufschließen und steht nun für DirectX-10-fähige Grafikkarten in der Spezifikation 3.3 und für DirectX-11-fähige Grafikkarten in der Spezifikation 4.1 zur Verfügung. Rückblickend betrachtet sind die Weiterentwicklungen leider etwas zu spät gekommen, denn sie hätten unmittelbar nach dem Release von Windows Vista und DirectX 10 erfolgen müssen. Da die DirectX-Versionen 10 und 11 auf Windows-XP-Rechnern nicht lauffähig sind, hätte ein fortschrittliches OpenGL 3.x gegenüber dem bereits in die Jahre gekommenen DirectX 9 wohl zumindest einige Spieleentwickler zum Wechsel des 3-D-Grafik-API bewegen können.

1.2 Wichtige Bibliotheken für die eigenen OpenGL-Anwendungen

Für die Implementierung einer neuen OpenGL-Spezifikationen sind die Grafikkartenhersteller verantwortlich. OpenGL lässt sich daher plattformunabhängig nutzen, sofern für das betreffende Betriebssystem aktualisierte Grafiktreiber zur Verfügung stehen. Als Schnittstelle zwischen einer OpenGL-Anwendung und dem Grafiktreiber kommt in vielen Fällen die GLEW Library (OpenGL Extension Wrangler Library) [10] in Verbindung mit der GLUT Library (OpenGL Utility Toolkit) [11] zum Einsatz. Zum Laden von Grafikdateien, die für das Erstellen von Texturen benötigt werden, bietet sich als weitere Bibliothek SDL_Image [12] an, eine Erweiterung vom SDL (Simple DirectMedia Layer) [13], der ursprünglich als eine plattformunabhängige Alternative zu DirectX entworfen wurde.

Auf dem Weg zum ersten OpenGL-Programm

1.3 Das Objekt...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang