Browserspielentwicklung: Teil 2b - Technisches Design
(18.01.2007, 21:22:00) 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 zweite Artikel aus dem Teilbereich Spieldesign stellt das Vorgehen bei der Ableitung der theoretischen Gedanken in ein Technisches Design vor. 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. Zunächst muss ein
Projekt gut geplant werden. In dieser ersten Phase, die der
Einleitungsartikel der Serie beschreibt,
werden die Weichen für die zukünftige Arbeit gestellt.
Ohne eine ansprechend verpackte, begeisternde Spielstruktur und ohne eine flüssig laufende technische
Umsetzung lockt man allerdings heutzutage keine Spieler mehr hinter dem Ofen hervor. Der
vorangegangene Artikel hat die Theorien des Spieldesigns am Beispiel von Spacetale erläutert.
Dieser Artikel beschäftigt sich mit der Überführung jener Grundgedanken in das Technische Design.
Die dritte Phase der Entwicklung – die Implementierung – beinhaltet die wesentlichen Schritte
zur Realisierung des in Phase 2 erstellten Designkonzepts. Wenn das Spiel fertiggestellt ist, muss
dafür gesorgt werden, dass es auch gespielt werden kann und dass die Spieler ihre aufgewendete Zeit
bestmöglich genießen. Die vierte und fünfte Phase beschreiben deshalb, worauf geachtet werden muss,
wenn ein Spiel schließlich online geht.
Teil 2b – Technisches Design
"Das Spiel ist das einzige, was Männer wirklich ernst nehmen. Deshalb sind Spielregeln
älter als alle Gesetze der Welt." (http://www.zitate.de)
Technisches Design – Bauplan für die Programmierer
Nachdem nun das Spieldesign feststeht, könnte man erneut der Versuchung verfallen, voreilig mit PHP
und MySQL loszulegen. Doch auch jetzt ist es sinnvoller, sich zunächst ein paar Gedanken über das
Wie zu machen.
Wie bei jeder Softwareentwicklung sollte die Arbeit am Papier und nicht am Rechner beginnen. Neben
der Wahl der zu verwendenden Technologien muss man sich überlegen wie man sein Spiel am besten
umsetzt. Grundsätzlich sollte das Technische Design-Dokument für alle Features aus dem Design-
Dokument ein Realisierungskonzept enthalten.
Anforderungen – Ein Browserspiel ist auch nur eine Software
Die Anforderungen an die Technologie eines Browserspiels sind grundsätzlich dieselben, die auch an
andere Softwareprodukte bzw. Webseiten gestellt werden.
Effizienz
Die Bearbeitung einer Aktion und das Ausliefern einer HTML-Seite muss natürlich schnell gehen.
Aus Kostengründen müssen außerdem soviele Spieler wie möglich auf einem Server spielen
können.
Skalierbarkeit
Mit steigender Spielerzahl muss das System nicht nur zurechtkommen, es muss auch gut damit
zurechtkommen, d.h. der Ressourcenbedarf sollte möglichst linear sein. Ein Browserspiel das
bei einer Verdopplung seiner Spielerzahl die vierfache Serverzahl benötigt wird nicht sehr weit
kommen.
Erweiterbarkeit
Da Browserspiele häufig eine Dauerbaustelle bleiben, sollte es wenig Aufwand machen neue
Features einzubauen.
Wartbarkeit
Änderungen müssen immer gemacht werden, sei es die Behebung eines Fehlers, die Veränderung
der Funktionalität oder das Hinzufügen eines neuen Features. Damit diese Änderungen nur
möglichst kleine Teile des Systems betreffen, sollte das Programm möglichst modular aufgebaut
sein. Die Kapselung von Daten und Funktionalität sollte man Kopieren & Einfügen eindeutig
vorziehen.
Internationalisierung
Mittlerweile werden viele Browserspiele in verschiedenen Sprachen und Ländern veröffentlicht.
Steckt man sich dieses Ziel, sollte man Internationalisierung und Lokalisierung von Anfang an
berücksichtigen.
Technologie – Mit MIPS programmiert man keine Browserspiele
Basierend auf den genannten Anforderungen, den eigenen Qualifikationen und den verfügbaren Ressourcen
muss man sich nun für die Technologien entscheiden, mit denen man sein Browserspiel zu
realisieren plant. Die meisten werden sicherlich HTML, PHP und MySQL verwenden. Diese Kombination
ermöglicht sehr schnelle Ergebnisse und der Einsatz ist auf praktisch jedem Webhosting-Paket
möglich.
Für die serverseitige Entwicklung stehen außer PHP eine große Anzahl
weiterer Technologien zur Verfügung. Neben den traditionellen
Web-Technologien Perl, JSP, Servlets, ASP und XML/XSL stehen
für die Anwendungslogik auch klassische Programmiersprachen, wie
beispielsweise C, C++ oder Java zur Verfügung.
Auch für die Clientseite, also den Browser, gibt es eine Vielzahl verfügbarer
Technologien. Neben (X)HTML und JavaScript stehen hier
vorzugsweise Flash, Java Applets und XML/XSL zur Auswahl. Bei der Wahl der clientseitigen Technologien
sind Browserkonformität und breite Verfügbarkeit besonders wichtig. Um möglichst wenige
Spieler auszuschließen, sollte die Anzahl an unterschiedlichen Technologien so gering wie möglich gehalten
werden.
Auch die Übertragung der Daten vom Server zum Client lässt Raum für Entscheidungen. Neben der
klassischen Kombination HTML/HTTP kann man auch Ajax verwenden oder eine Verbindung über
Flash oder Java Applets aufbauen.
Für die persistente Speicherung der Daten empfiehlt sich eine Datenbank. Für die meisten Browserspiele
ist dabei sicherlich MySQL die beste Alternative, aber es lohnt sich auch ein Blick auf die
Merkmale von PostgreSQL zu werfen.
Nun muss ein Server her. Ein stabiles Betriebssystem, regelmäßige Software-Updates und Daten-
Backups sowie ein Webserver sind dabei wichtig.
Entwurf – Von Mustern und Modellen
Nun geht es daran sich zu überlegen, wie man das Spiel technisch umsetzen kann. Wählt man den
objektorientierten oder doch lieber den prozeduralen Ansatz? Wir können für ein Softwareprojekt im
Umfang eines Browserspiels uneingeschränkt den objektorientierten Ansatz empfehlen.
Für objektorientierte Software gibt es eine Vielzahl von Entwurfsmustern [Gamma et al 1995]. Diese
bieten eine abstrakte Lösung für häufig vorkommende Probleme in der Softwareentwicklung. Es ist
sinnvoll, sich einen Überblick über diese Muster zu verschaffen, um bei einer entsprechenden Problemstellung
darauf zurückgreifen zu können.
Es hat sich bewährt, eine Softwarearchitektur zu wählen, die auf dem MVC-Prinzip beruht. MVC
steht nicht für die Mainzer Vereinigung der Carnevalisten, sondern für Model, View und Controller.
Nach diesem Prinzip sollte Software in drei voneinander getrennte Bereiche aufgeteilt werden: Das
Model ist die Repräsentation der Daten, View stellt die Daten aus dem Model dar und der Controller
beinhaltet die Anwendungslogik der Software.
Eine Visualisierung der abstrakten Softwarearchitektur bietet einen
leicht verständlichen Überblick und begünstigt das eigene Verständnis
der Software. Eine Grafik ist auch ideal dafür geeignet, anderen
Teammitgliedern die Funktionsweise der Software zu verdeutlichen.
Die Unified Modeling Language (UML) [Booch et al 1999] ist eine
genormte Darstellungsform von häufig vorkommenden Software-
Zusammenhängen. Von den Anwendungsfällen der Software über den
Klassenentwurf bis zum Ablauf eines Programms kann man mit UML
alles darstellen. UML ist in der Softwareentwicklung nicht mehr wegzudenken und sollte auch bei
einem Browserspiel eingesetzt werden.
Spiel-Engine – Das Herzstück des Spiels
Innerhalb eines Browserspiels gibt es Abläufe, die sich wiederholen und die unabhängig von den speziellen
Features des Spiels sind. Dazu gehören zum Beispiel das Ausliefern einer HTML-Seite, die
Bearbeitung einer Spieler-Aktion sowie der Zugriff auf statische und dynamische Daten.
Damit man das Rad nicht jedes Mal neu erfinden muss, empfiehlt es sich eine Spiel-Engine zu entwickeln,
die in der Lage ist diese Aufgaben zu übernehmen. Das hat den Vorteil, dass bei der Erweiterung
des Spiels mit neuen Features nur einige weitere Klassen, XML-Dateien oder Datenbank-Tabellen erstellt
werden müssen. Man muss sich keine Gedanken mehr über die grundlegenden Abläufe machen,
sondern kann sich auf die Implementierung des Features konzentrieren.
Die Entwicklung einer flexiblen Spiel-Engine macht zwar anfangs mehr Arbeit, die Erweiterbarkeit des
Spiels wird dadurch jedoch erheblich verbessert und Wartung wird einfacher, sodass sich der Aufwand
schon nach kurzer Zeit lohnt.
Spacetale – Der Bauplan des Cascadis-Sektors
Auch bei der Technik wollen wir euch natürlich nicht vorenthalten, welchen Weg wir bei der Entwicklung
von Spacetale gewählt haben.
Auf unserem Server läuft ein Debian Linux mit einem Apache HTTPServer
und einem Apache Tomcat. Bei der serverseitigen Entwicklung
arbeiten wir mit "normalem" Java sowie Java Servlets. Als Datenquelle
verwenden wir eine MySQL-Datenbank zur persistenten Speicherung
der dynamischen Daten und XML-Dateien für die statischen Daten.
Die Datenbank wird nur zur persistenten Speicherung verwendet, beim
Hochfahren werden die Daten aus der Datenbank mittels Apache OJB
in Java-Objekte geladen und beim Herunterfahren wieder gespeichert
– alle Änderungen werden direkt in den Java-Objekten durchgeführt.
Auf dem Client setzen wir XHTML und eine Menge JavaScript ein, das auch unter Verwendung von
Ajax die Darstellung im Browser automatisch aktualisiert. Dabei haben wir die negative Erfahrung
gemacht, dass bei so komplexen HTML-Seiten, wie sie bei Spacetale vorkommen, immer noch für die
verschiedenen Browser separat entwickelt werden muss.
Spacetale verwendet eine eventbasierte Physik, welche den Spielablauf in Echtzeit gestattet [Wolf
2006].
Wie entsteht aus dem Konzept ein fertiges Spiel? Der nächste Artikel beschäftigt sich
mit der Umsetzung der Designvorgaben in Programmcode, Grafiken,Webseiten und eine
Spielwelt.
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.
Massively Multiplayer Game Development I & II (Englisch)
Die beiden Bücher enthalten eine Sammlung von Artikeln zum Spieldesign, technischem Design,
Community-Management und Produktionstechniken. Die Autoren sind Entwickler großer
grafischer Online-Spiele und Berichten von ihren Erfahrungen bei der Produktion dieser Spiele.
Zieleinlauf mit Java
Dieser Artikel in der iX präsentiert die Ergebnisse eines Vergleichs der Geschwindigkeit von Perl,
PHP, C, JSP und Java Servlets bei der Erstellung von HTML-Seiten.
Design Patterns
Das Buch von Gamma, Helm, Johnson und Vlissides präsentiert 23 Entwurfsmuster als Elemente
wiederverwendbarer Objektorientierter Software.
The Unified Modeling Language User Guide (Englisch) Das Buch von Booch, Rumbaugh und Jacobson stellt die Unified Modeling Language ausführlich
vor. Verschiedene Modelle werden erklärt und mit Anwendungsfällen und Beispielen präsentiert.
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.
Übernimm die Rolle eines Weltraum-Abenteurers, der zwischen den Sternen sein Glück sucht, durch Warenhandel und der Annahme von Aufträgen Profit zieht und sein Schiff für die Gefahren des Weltraums rüstet.
Handel und Entdeckung gemischt mit Rollenspiel- Elementen stehen im Vordergrund, auch wenn von Zeit zu Zeit die kostbare Fracht des eigenen Raumschiffs bis auf den letzten Rest Schildenergie verteidigt werden muss.
Sonnensysteme mit unterschiedlichsten Welten, ein spannender Spielablauf und ein komplexes Wirtschaftssystem in einer Galaxie voller Abenteuer erwarten dich!
(07.04.2009, 01:57:58) Spacejacker aus dem Ereii-System haben Captain Bunny und ihrem heissen Schlitten übel mitgespielt ? nun treiben die schönen Eier herrenlos durchs All!
(05.03.2009, 15:39:23) Des einen Untergang ist des anderen Profit. So manchem hartgesottenen Prospektor werden genau diese Worte durch den Kopf gegangen sein.
(12.01.2009, 17:15:12) In der Raumschiffwerft Stratos im Sternsystem Jade werden drei neue Raumschifftypen für tollkühne Weltraumpiloten zum Kauf angeboten.
(18.03.2008, 21:46:13) Spacejacker aus dem Ereii-System haben Captain Bunny und ihrem heissen Schlitten übel mitgespielt ? nun treiben die schönen Eier herrenlos durchs All!
Ubisoft verschiebt Geschäftszahlen und setzt Aktienhandel aus
(14.11.2025, 08:56:03) Der französische Spielepublisher Ubisoft hat die Bekanntgabe der Halbjahreszahlen für April bis September 2025 kurzfristig verschoben. Dies führte zur Aussetzung des Handels von Ubisoft-Aktien, um mögliche Kursschwankungen zu vermeiden. Die Gründe bleiben unklar und die Aktie ist nicht handelbar.
(13.11.2025, 14:33:40) Die Embracer Group berichtet über ein herausforderndes drittes Quartal im Jahr 2025. Trotz Maßnahmen zur Kostensenkung und Investitionen in Kernmarken bleibt die Situation angespannt, insbesondere aufgrund schwacher Verkaufszahlen bei neuen Spielen.
Bayern schafft Strukturen für gemeinnützigen E-Sport
(10.11.2025, 15:41:59) Bayern setzt neue Initiativen um, um den E-Sport als Gemeinnützigkeit zu fördern. Diese Maßnahmen sollen insbesondere die digitale Jugendarbeit und Jugendkultur im ländlichen Raum stärken.
Führungswechsel bei InnoGames: Der Entwickler von Forge Of Empires und Die Stämme gibt bekannt, dass es einen Führungswechsel in der Chefetage geben wird. Wer die Firma verlässt, erfahrt ihr bei uns.