Artikel

Hier finden sie Artikel zum Thema Spieleentwicklung.


JavaScript Datum: 12.5.2010 Autor: Christoph P. Schwierigkeitsgrad: Einfach
Einführung in die Spieleentwicklung Datum: 12.5.2010 Autor: Christoph P. Schwierigkeitsgrad: Einfach

Einführung in die Spieleentwicklung

Übersicht

Wer mit Spieleentwicklung anfangen möchte, sollte sich zuerst einmal die Frage stellen, ob er mehr grafisches, räumliches, logisches oder aber auch musikalisches Talent hat. Die Spieleentwicklung läßt sich sehr grob in 5 Bereiche unterteilen:

  • Game Design:
  • Entwurf eines Spiels und "Regieführung"
  • Grafik:
  • Erstellen von Texturen und Modellieren von Spielewelten, Figuren und anderer Objekte
  • Level Design:
  • Entwerfen und Erstellen von Spielewelten inklusive Atmosphäre
  • Programmierung:
  • Implementierung des Spiels mithilfe einer Game Engine, um der Spielewelt Leben einzuhauchen
  • Sound:
  • Komposition und Sound-Design um Stimmungen zu erzeugen

    Auf dieser Website stehen vor allem Grafik und Programmierung im Mittelpunkt, deswegen werde ich im Artikel auch nur auf diese Bereiche näher eingehen.

    Allgemein

    Was als erstes erwähnt werden sollte, ist, wer als Hobby eigene Spiele erstellen möchte, kommt schwer darum herum Programmieren zu lernen. Denn die Basis für jedes Spiel ist der Programmcode. Nur wer jemanden hat, der den Programmcode für ihn schreibt, oder eine spezielle Software wie zb. Game Maker hat, kann dies umgehen. Die Ergebnisse die mit so einer Software erzielt werden, halten sich meist aber in Grenzen. Für alle, die jetzt noch weiterlesen und nach wie vor interessiert sind, sollten sich zunächst ein Grundwissen zu dieser Thematik aneignen. Die als erstes zu erwähnende Quelle für Informationen aller Art, ist natürlich das Internet. Wer suchet, der findet, zB. Links wie diese:
    Game Development Wikigamedev - game development categoriesRiemers.net XNA Tutorialsdownload-book.net
    Allerdings würde ich auf jeden Fall dazu raten sich Bücher zu kaufen oder sich Bücher auszuleihen. Bibliotheken von Technischen Universitäten sind zum Thema Informatik gut ausgerüstet. Und auch gekaufte Bücher haben sehr oft CD's mit Software und Übungsbeispielen beiliegend, die teilweise sehr nützlich sind. Das nächste, Unumgängliche, ist selbstverständlich die richtige Software. Ob kostenlos oder 600.000 Dollar (Unreal Engine), es gibt unglaublich viel davon im weltweiten Netz. Gute Software, das ist eine anderes Thema, davon gibt es um einiges weniger. Nun aber zu den, vor allem für Hobby-Entwickler, Hauptbereichen der Spieleentwicklung.

    Grafik

    Wie schon erwähnt geht es hierbei hauptsächlich um das Erstellen von Texturen und Modellieren von Spielewelten. Die Hauptarbeit besteht darin Drahtgittermodelle aus Polygonen (Vielecke) anzufertigen, Texturen darauf zu "kleben" (Texture Mapping) und für die richtige Beleuchtung zu sorgen. Die wichtigsten Modelle, die dafür erstellt werden müssen, sind, in erster Linie natürlich die Spielewelten selbst, Spielfiguren und bewegliche Objekte, wie zb. Kisten, die dann später physikalisch korrekt animiert werden müssen und natürlich Ausrüstungsgegenstände wie Waffen, Medi-Packs, usw.. Für die Oberflächen der Modelle müssen dann, wie schon gesagt, Texturen erstellt werden. Dabei muß man allerdings zwischen gewöhnlichen Texturen, Texturen für Sprites und Texturen für Oberflächeneffekte unterscheiden. Sprites sind Bilder, zB. für Spezialeffekte wie Feuer oder Explosionen, die als 2D-Animationen dargestellt werden. Für Oberflächeneffekte, zB. Licht-Reflexionen oder dreidimensional wirkende Oberflächen, werden sogenannte Bumpmaps, Reflectionmaps, Specularmaps, Luminositymaps, usw. eingesetzt, auf die ich jetzt aber nicht weiter eingehen möchte. Um als Hobbyentwickler an Texturen zu kommen, kann man sie von Sites wie cgtextures.com oder mayang.com herunter laden, oder wenn man gut mit Photoshop umgehen kann, erstellt man sie selbst. Hier ein Beispiel dazu, in der das Erstellen einer Holz-Textur erklärt wird.
    Zum Abschluss dieses Kapitels noch ein paar Links zum Thema:

    Bücher:

    Lighting and Rendering empfehlenswertes Buch, für jede 3D-Software geeignet

    kostenlose Software:

    Truespace professionelle 3D Software
    Blender Alleskönner mit immens vielen Funktionen
    GMax kostenlose Variante von 3dsMax mit Einschränkungen

    proprietäre Software:

    Milkshape3D wahrscheinlich einer der besten Programme für Anfänger (rund 30 Euro)
    3dsMax wichtigste Software in diesem Bereich
    Maya zweit-wichtigste Software in diesem Bereich

    Programmierung

    Viele Leute glauben Programmieren wäre langweilig und es wäre hauptsächlich mathematischer Natur. Doch Programmieren ist in erster Linie kreatives Schaffen und alles andere als langweilig. Ich vergleiche Programmieren gerne mit einem unglaublich riesigen Lego-Baukasten mit Milliarden von Möglichkeiten, die Bausteine zusammen zu setzen. Programmieren ist einer der wenigen Tätigkeiten, für die man sowohl kreatives als auch logisches Talent einsetzen kann, also beide Gehirnhälften gleichermaßen beschäftigt. Für die Basis des Programmierens, das einen großen Teil, auch professionellen Programmcodes (Quellcode) ausmacht, reicht es, ob ihr es glaubt oder nicht, die Grundrechnungsarten zu können und zwei Wochen für ein gutes Buch zu investieren, um die bevorzugte Sprache zu lernen. Was man aber definitiv mitbringen sollte, ist die Liebe logische Probleme zu lösen und Geduld. Um wirklich auf höchster Ebene zu arbeiten, 3D Physik-Engines wären ein Beispiel dafür, braucht es selbstverständlich etwas mehr.

    Spieleprogrammierung ist noch um einiges aufregender als die gewöhnliche Programmierung, denn grafische Ergebnisse zu sehen, nach dem man selbst ein Programm geschrieben hat, motiviert einen immer tiefer in das Thema einzutauchen.
    Die Sprachen die eingesetzt werden, sind in erster Linie das gute alte C und C++, Assembler, verschiedene Scriptsprachen wie Python oder Lua und immer häufiger werden auch Projekte mit C# und Java realisiert. Bei der Spieleprogrammierung geht es vor allem um Geschwindigkeit. Es gilt die vorhandenen Ressourcen so gut wie möglich zu verwenden, denn moderne Spiele nutzen die verfügbare Hardware bis zum Anschlag und darüber hinaus. Die Anforderungen an Prozessor und Grafikkarte sind dadurch, so wie für die eingesetze Sprache, sehr hoch. Da C++ dem gerecht wird, außerdem aber noch objektorientiertes Programmieren (übersichtliche Strukturierung von Quellcode) ermöglicht, ist diese Sprache ideal für die Spieleprogrammierung. Zusätzlich werden noch Shader-Sprachen verwendet, mit denen man tolle Oberflächeneffekte, wie zB. Bumpmapping oder Geometrietransformationen realisieren kann, die rein von der Grafikkarte verarbeitet werden und dadurch sehr schnell berechnet werden können.

    Nun zu den wichtigsten Aufgabenbereichen eines Spieleprogrammierers. Für die folgenden Bereiche werden in professionellen Projekten Spezialisten eingesetzt:  Animation, Physik, Kollisionserkennung, Geometrie, Grafik, Shaderprogrammierung, Beleuchtung, Spezialeffekte, Scripting und Sound. Vor allem die Bereiche Animation, Physik, Grafik, Scripting und Sound werden differenziert. All diese Bereiche müssen hervorragend zusammen arbeiten können, denn sie sind voneinander abhängig und nur das Ganze bildet letztendlich ein gutes Spiel.
    Zum Schluß noch ein paar Ressourcen zum Thema:

    Bücher für Einsteiger:

    3D SP. mit DirectX in C/C++ nichts für absolute Anfänger, aber sehr empfehlenswert
    Spieleprogrammierung wer mit Rollenspiele kein Problem hat, der kann hier zuschlagen
    XNA Game Studio Express wer gerne mit C# programmiert, bekommt hier eine gut Einführung

    Bücher für Fortgeschrittene:

    Game Programming Gems 8 das Standardwerk für Spieleprogrammierer
    ShaderX 7 wahrscheinlich das Standardwerk für Shaderprogrammierer

    kostenlose Software:

    Eclipse Open Source - Entwicklungsumgebung für zahlreiche Programmiersprachen
    Netbeans Open Source - Entwicklungsumgebung für zahlreiche Programmiersprachen
    Visual Studio Express kostenlose Version von Visual Studio
    XNA Game Studio Toolset, um Spiele mit C# zu programmieren
    Unreal UDK 3D Engine mit Editoren für nicht-kommerzielle Zwecke frei nutzbar

    Weitere empfehlenswerte Ressourcen könnt ihr meiner Linksammlung zum Thema 3D & Grafik, zum Thema Spieleprogrammierung und zum Thema Programmierung Allg. , entnehmen.

    Schlußwort

    Ich hätte hier natürlich noch einiges zu erzählen, aber ich überlasse es nun euch herauszufinden ob die Spieleentwicklung geeignet für euch ist. Was man jedoch nicht verschweigen sollte, für all diejenigen die professionell Spiele entwickeln wollen, ist, daß der Beruf auch oft sehr anstrengend sein kann und man oft bis in die Nacht hinein am Computer sitzt. Aber ich denke alle, die diese Arbeit lieben, werden diese Hürden mit Leichtigkeit nehmen. Ich hoffe, ich konnte, euch mit diesem Artikel ein wenig Einblick in dieses Thema geben,

    Christoph


    Nach oben

    Copyright 2010-2019 (c) by Christoph P.
    Impressum    AGB