Nachdem ich im ersten Teil über die Grundzüge der Erstellung eines Browsergames geschrieben habe, möchte ich diesen zweiten Teil nun den grundlegenden Funktionen widmen. Die User erwarten heute viel von einem Browsergame: nicht nur die Grafik muss stimmen, der User muss auch sofort verstehen worum es geht und wie es funktioniert (Usability!). Zudem ist es wichtig, dass Spieler mit anderen Spielern interagieren können. Wie auch immer dein Browsergame aussehen mag, in fast jedem Browsergame findet man Allianzen, Handelsverträge oder Kriege. Ohne die Interaktion zwischen Usern wird kein Browsergame erfolgreich sein, denn Browsergames basieren per Definition auf dem Miteinander der Spieler.
Es ist wirklich wichtig, dass vor der Programmierung eines Browsergames ein gutes Konzept steht. Dieses Konzept solltet ihr unbedingt aufschreiben und mit euren Freunden oder Bekannten Besprechen. Nur so könnt ihr effektiv mit der Programmierung beginnen ohne ständig auf Probleme zu stoßen weil ihr vergessen habt das eine oder andere Feature, die eine oder andere Relation, abzubilden.
Durch das Gespräch mit Freunden werdet ihr auch sehr schnell merken ob euer Browsergame eine solide Basis hat oder nicht. Wackelt es bereits in den Grundzügen, fehlt es an Spielern so solltet ihr hier noch einmal euer Konzept überdenken.
Folgende Fragen müsst ihr euch unbedingt während der Konzeption stellen:
Wenn ihr auf alle diese Fragen eine Antwort habt, und erst dann kann es mit der Programmierung beginnen.
Die Wahl der Programmiersprache wurde ja bereits im ersten Teil angesprochen, ich beziehe mich in allen weiteren Angaben auf meine Programmiersprache der Wahl: PHP. Ihr solltet euch für die Programmierung unbedingt genauso ein Konzept machen wie für das Spiel an sich. Ansonsten kommt ihr wie angesprochen sehr schnell durcheinander und wisst am Ende nicht mehr wo ihr seid und sorgt eventuell für Redundanzen.
Wichtig ist heutzutage, dass Browsergames sehr flüssig laufen und viele Anfragen im Hintergrund gemacht werden (AJAX!). Das sorgt dafür, dass der Spieler sehr schnell seine Bewegungen, Aktionen oder ähnliches umsetzen kann und außerdem wird bei richtiger Anwendung sehr viel Serverlast gespart. Daher wird man um die Nutzung von sehr viel JavaScript leider nicht umherkommen.
Doch von Anfang an:
Am Anfang eines Browsergames steht immer der Login. Natürlich könnt ihr hier ein eigenes Loginscript schreiben, wer sich hier einiges an Arbeit sparen will kann aber auch gerne auf ein Framework zurückgreifen. Aus diesem kann man dann gegebenenfalls auch weitere Funktionen nutzen um in der Programmierung zwar weniger flexibel, dafür aber mitunter erheblich schneller zu sein. Als Beispiel sei hier das Zend Framework genannt.
Danach würde ich mit einer Klasse für den User beginnen. Was beinhaltet diese Klasse? Welche Attribute und Eigenschaften hat der User? Welche Methoden kann man auf einen User anwenden? Einloggen? Löschen? All diese Methoden solltet ihr nun in eurer ersten Klasse, eventuell auch mehreren verankern. Alle Werte sollten natürlich in einer perfomanten Datenbank, zum Beispiel MySQL gespeichert werden. MySQL ist hinreichend performant, flexibel und skalierbar und benötigt alle Funktionen um auch in riesigen Browsergames eingesetzt werden zu können. Zudem ist MySQL wohl der verbreiteste Datenbanktyp, sodass MySQL wohl alle Entwickler kennen werden.An dieser Stelle ist natürlich auch die Anmerkung wichtig, dass ihr euren Quelltext unbedingt nach gängigen Design-Richtlinien erstellen müsst und vor allem ausreichend viele Kommentare nutzt. Wer weiß schon was mit dem Browsergame in einem, zwei oder zehn Jahren passiert? Vielleicht sitzen dann schon 50 Entwickler an dem Projekt, es ist verkauft oder du selbst möchtest eine Änderung machen. In einem guten Quelltext welcher nach gängigen Guidelines erstellt worden ist fallen solche Änderungen wesentlich leichter als in einem Quelltext dem man am Anfang ja „nur für sich“ geschrieben hat.
Ich spreche hier aus (leidiger) Erfahrung, denn ich selbst konnte mit „meinem“ Stil bereits nach einigen Monaten nichts mehr Anfangen um habe dann eben, wie angesprochen, das ganze Projekt neu geschrieben.
Nach der Klasse für den User geht es weiter mit weiteren Klassen: Wie wäre es mit einer Klasse für diverse Sprachenfunktionen? Wenn ihr alle Textausgaben immer erst aus dieser Klasse holt, so wird euch eines Tages die Internationalisierung, das heißt die Übersetzung eures Browsergames in andere Sprachen viel leichter fallen. Und es geht noch weiter; jetzt könnten Klassen wie zum Beispiel eine Klasse für den Planeten, Gebäude, Errungenschaften, Quests oder ähnliches folgen.
Ihr seht also, die Programmierung eures eigenen Browsergames wird sehr viel Zeit in Anspruch nehmen. Doch lasst euch nicht entmutigen!. Eventuell müssen nicht alle Funktionen in der ersten Version implementiert werden? Vielleicht reichen für einen Betatest bereits die wichtigsten Grundfunktionen? Doch haltet euch immer vor Augen: Euer Browsergame muss unbedingt sehr gut wartbar und übersichtlich im Quelltext bleiben, sonst macht ihr euch es nur selber schwer.
Im nächsten Teil geht es weiter mit dem perfekten Design für euer Browsergame, der Vermarktung. Danach folgen weitere Teile um am Ende zum wichtigsten Teil zu kommen: der Monetarisierung eures Browsergames.
Kein Problem! Niemand muss ein solches Projekt alleine stemmen, auch wenn dies natürlich einige Vorteile bietet. Vielleicht hast du auch nur eine gute Idee und bist der perfekte Communitymanager? Dann frag doch mal in deinem Freundeskreis ob vielleicht ein guter Programmierer dabei ist. Erkläre ihm dein Konzept und was du ihm bieten könntest, dann könnt ihr vielleicht zu zweit die Entwicklung starten?
Jedenfalls um zu sehen, ob du das Zeug zur eigenen Community hast, ist vielleicht dein erstes eigenes Browsergame mit Meine-Mafia einen Versuch Wert! Hier kannst du dein eigenes Browsergame erstellen ohne auch nur eine Zeile programmieren zu müssen!
Einen Kommentar schreiben