Browserspielentwicklung: Teil 3 - Implementierung
Um das Interesse der Community an neuen Konzepten und Einblicken in die Realisierung von Browserspielen zu stillen, möchte das Spacetale-Entwicklerteam in fünf Erfahrungsberichten das Vorgehen von der ersten Idee bis zum fertigen Spiel vorstellen. Der vorliegende dritte Artikel befasst sich mit der Umsetzung des Designkonzepts in Programmcode, Grafiken und Texte. Einen weiteren Einblick in die Entwicklung von Spacetale gewährte die Präsentation "Echtzeit in Browserspielen". Die Besucher der Browsergame Conference 2006 wählten diese zum besten Vortrag der Veranstaltung.
Unten stehende Tabelle stellt Struktur und Inhalt dieser Serie im Überblick dar. Die beiden vorangegangenen Artikel gingen auf Planung, Spielstruktur und technisches Design ein.
Dieser Artikel befasst sich mit der dritten Phase der Entwicklung, der Implementierung und beinhaltet die wesentlichen Schritte zur Realisierung des in Phase 2 erstellten Designkonzepts. Die kommenden Artikel beschreiben worauf geachtet werden muss, wenn ein Spiel schließlich online geht.
Teil 3 – Implementierung
"Programmieren ist wie küssen: Man kann darüber reden, man kann es beschreiben, aber man weiß erst, was es bedeutet, wenn man es getan hat." (http://www.zitate.de)
Programmierung – Hacker und Programmiersklaven
Die sicherlich wichtigste, aber am wenigsten gewürdigte Aufgabe bei der Entwicklung eines Browserspiels ist das Programmieren. Lob für die Programmierer gibt es praktisch nie, dafür aber jede Menge Beschwerden über die Bugs im Spiel.
Der erste Schritt beim Programmieren besteht zumeist aus der Entwicklung eines Prototyps für die aktuelle Programmieraufgabe. Es ist hilfreich relativ schnell eine lauffähige Version fertigzustellen um erste Ergebnisse des Programmstücks zu erhalten. Dadurch ist man frühzeitig in der Lage Schwierigkeiten bei der Integration in das bestehende Softwaresystem zu entdecken und zu beheben.
Das frühzeitige und kontinuierliche Testen unter Zuhilfenahme des Prototyps ist sehr wichtig, da es recht unwahrscheinlich ist, daß man bei einem komplexen Programmstück auf Anhieb fehlerfrei arbeitet. Fehler zur Compile-Zeit können mit Hilfe des Compilers oder der Entwicklungsumgebung relativ leicht lokalisiert werden. Laufzeitfehler bzw. Fehler bei interpretierten oder typfreien Sprachen, wie beispielsweise PHP, können jedoch häufig nur durch intensives Testen gefunden und behoben werden.
Gerade bei Browserspielen, bei denen in der Regel viele Spieler – und damit viele parallel laufende Threads – gleichzeitig aktiv sind, kann es manchmal sehr schwer sein Fehler zu entdecken bzw. zu reproduzieren.
Einer der schwierigsten und komplexesten Fehler in der Entwicklung von Spacetale war ein Deadlock-Problem, daß nur auftrat, wenn zwei Spieler sich zur exakt gleichen Zeit gegenseitig gescannt haben.
Um sich die komplexe Aufgabe des Programmierens etwas einfacher zu gestalten, sollte man nicht einfach mit einem beliebigen Texteditor loslegen, sondern eine fortgeschrittene Entwicklungsumgebung verwenden. Syntax-Highlighting, Code-Formatierung, Fehleranzeige und Automatische Code Generierung – beispielsweise Getter/Setter Methoden für Variablen – sind sehr hilfreiche Features, die das Programmieren deutlich vereinfachen.
Webdesign – Schönheit für Alle
Nachdem in der vorherigen Phase das Spielkonzept bereits festgelegt wurde, muß man sich jetzt Gedanken machen, wie man den Spielern die verschiedenen Spielfeatures am besten präsentiert.
Aus der Anforderungsdefinition an die Präsentation und das Interface müssen verschiedene "Bildschirm-Seiten" bzw. Spielansichten entwickelt werden, die die jeweiligen Inhalte darstellen.
Damit die verschiedenen Seiten auch zusammenpassen muß ein allgemeines Gestaltungskonzept erstellt werden. Darin werden grundlegende Gestaltungsrichtlinien festgelegt. Beispielsweise, daß klickbare Buttons eine Größe von 32x32 Pixeln und einen blauen Hintergrund mit einem weißen Motiv haben, der Hover-Effekt durch das Aufleuchten des Hintergrundes realisiert wird und die nicht-klickbare Variante ausgegraut ist.
Danach müssen die einzelnen Seiten unter Berücksichtigung der Anforderungen individuell gestaltet werden. Dabei sollten die Seiten übersichtlich sein und ein stimmiges, konsistentes Erscheinungsbild haben. Nicht zuletzt sollen sie natürlich auch noch gut aussehen.
Nachdem nun die Seiten gestaltet sind und feststeht welche Texte und Grafiken dafür benötigt werden, kann mit der Umsetzung der Seiten in HTML, CSS, JavaScript usw. begonnen werden. Dabei muß man leider auch heute noch die verschiedenen Browservarianten berücksichtigen.
Grafik – Vorstellungskraft und Pixelschubsen
Im Einklang mit dem allgemeinen Gestaltungskonzept muß zuerst die Stilrichtung der Grafiken festgelegt werden. Sollen die Grafiken 2D oder 3D sein? Soll die Welt düster und dreckig oder lieber sauber und steril wirken? Oder sollen die Grafiken im Stil von Comic- oder Skizzen-Zeichnungen präsentiert werden.
Die eigentliche Erstellung einer Grafik beginnt mit der Wahl des Motivs, der Szenerie und dem Blickwinkel. Nahrungsmittel in Spacetale könnten beispielsweise durch ein Brathähnchen oder eine Tube Slurp repräsentiert werden. Die Tube Slurp könnte auf der anderen Seite komplett ohne Hintergrund oder in der Hand einer Slurp-konsumierenden Person dargestellt werden. Hat man sich für Motiv und Szenerie entschieden – dabei sind Konzeptskizzen ungemein hilfreich – kann mit der Erstellung der Grafik losgelegt werden.
Für 3D-Grafiken müssen dabei beispielsweise 3D-Objekte modelliert, Texturen erstellt und auf die Oberflächen der Objekte gemappt sowie Lichtquellen und Beleuchtung eingebaut werden.
Neben den "richtigen" Grafiken müssen noch eine Vielzahl von kleineren grafischen Elementen wie beispielsweise Buttons, Rahmen und Icons für die Oberfläche erstellt werden.
Weltdesign und Texte – Wortartisten und Spielweltgötter
Je nach Spiel kann die Welt eine Zufallsverteilung von Planeten in einem Koordinatensystem oder eine ausgeschmückte und beschriebene Welt voller individueller Orte sein. In Spacetale haben wir den zweiten Weg gewählt und eine Welt mit individuellen Sonnensystemen, Raumstationen, politischen Fraktionen und Hintergrundgeschichte erschaffen.
Neben der Welt im engeren Sinne müssen auch verschiedene Objekte innerhalb der Spielwelt erschaffen werden, die im Spieldesign bisher nur konzeptionell behandelt wurden. Darunter fallen beispielsweise die detaillierte Ausgestaltung von verschiedenen Raumschifftypen, speziellen Orten in der Spielwelt und interessanten Missionen und Charakteren.
Für all diese Elemente der Spielwelt müssen Texte geschrieben werden. Je nach Spiel können diese Texte zwischen wenigen Schlagworten und detaillierten Beschreibungen variieren. Aber nicht nur die Welt, Hintergrundgeschichte und Spieleraktionen erfordern Texte, sondern auch die Portalseite mit der Beschreibung des Spiels und der Features, die Newsletter und Browserspielmagazin-News, das Regelwerk sowie Tooltips und Fehlermeldungen.
Tools II – Der Weg vom Kopf ins Spiel
Neben dem eigentlichen Spiel gibt es bei einem Browserspiel noch viele weitere Teilbereiche, die entwickelt werden müssen. Bei einem größeren Projekt sind dies neben Portalseite, Forum, Chat, Regelwerk, Tutorial und einem Bezahlsystem vor allem Tools.
Tools sind nicht zwingend nötig, insbesondere kleine Spiele kommen auch ohne selbstentwickelte Tools bestens zurecht. Doch gerade bei großen Spielen mit unterschiedlich qualifizierten Teammitgliedern helfen Tools eindeutig. Anstatt Änderungen und Erweiterungen in XML-Dateien oder gar in einer Datenbank vorzunehmen, bietet ein Tool eine Administrationsoberfläche, die auch Nicht-Technikern gestattet diese Arbeiten effizient und bequem durchzuführen.
Prinzipiell gibt es zwei Arten von Tools die zum Einsatz kommen können:
-
Administration
Das Tool wird dazu verwendet Änderungen an den aktuellen dynamischen Daten des Spiels vorzunehmen. Accountänderungen, Sperrungen oder Änderungen an Spielparametern sind beispielsweise Anwendungsgebiete eines solchen Tools.
-
Spielinhalt
Das Tool wird dazu verwendet statische Daten des Spiels bzw. Inhalte des Spiels zu modifizieren. Insbesondere das Hinzufügen, Editieren oder Löschen von Objekten im Spiel wie zum Beispiel Raumschiffe, Planeten, Geländetypen, Nicht-Spieler-Charaktere, Waffen, Einheiten oder Missionen gehört zu den Aufaben dieses Tools.
Die Entwicklung solcher Tools kann durchaus sehr aufwendig sein und lohnt sich sicherlich nur bei einem größeren Browserspielprojekt mit einem entsprechend großen Team.
Welche Aufgaben bleiben nach der Fertigstellung des Spiels? Der nächste Artikel beschäftigt sich mit dem Start des Spiels und dem Kontakt mit den ersten Spielern.
Literaturempfehlungen
Als (Browser-)Spieleentwickler ist es sinnvoll, auf die Kenntnisse anderer Entwickler zurückzugreifen und von deren Erfahrungen zu profitieren. Auch wir von Spacetale haben diesen Rat beherzigt und einige Bücher undWebseiten zur Hilfe genommen. Die wichtigsten davon – sowie die zitierten Quellen – stellen wir euch hier kurz vor:
-
Browserspielmagazine
Browserspielmagazine wie zum Beispiel Galaxy-News, bieten neben einer Browserspielübersicht auch Foren, in denen wir nützliche Informationen zur Browserspielentwicklung gefunden haben.
-
Gamasutra (Englisch)
Gamasutra hält eine umfassende Sammlung von Artikeln zur Spieleentwicklung bereit. Die Web- seite richtet sich aber nicht ausschließlich an Browserspielentwickler, sondern vielmehr an Computerspieleentwickler im weiteren Sinn. Grundlegende Informationen zum Thema Design sind jedoch auch für Browserspiele relevant und interessant.
-
Echtzeit in Browserspielen
In diesem Vortrag beschäftigt sich Michael Wolf, Projektleiter von Spacetale, mit der technischen Umsetzung von Echtzeit in Browserspielen. Die Präsentation wurde auf der Browsergame Conference 2006 zum besten Vortrag der Veranstaltung gewählt.
-
Browsergame Developers Forum
Das Forum der Browsergame Developer Conference wurde im September 2005 gestartet. Diese Plattform bedient speziell den Informationsbedarf von Browserspielentwicklern. Seit geraumer Zeit ist dieses Forum sehr ruhig, es gibt allerdings durchaus noch einige lesenswerte Themen im Archiv.