Bounci Madness

Top  Previous  Next

Torsten Simon, Autor von Bounci Madness, hat sich freundlicherweise die Zeit genommen, uns einige Fragen zu beantworten.

 

F: Ich muss zugeben, dass Bounci Madness ein beeindruckendes Projekt ist, was den Multiplayercode angeht. Wie lange hat es gedauert, das Spiel zu programmieren?

A: Das ganze Spiel hat etwa 5 Monate in Anspruch genommen, auch wenn ich nicht kontinuierlich daran gearbeitet habe. Manchmal hatte ich nicht genug Zeit oder keine Idee, wie cih wichtiges Problem gelöst werden kann oder keine Ideen, wie das Spiel noch um gute Features erweitert werden kann.

 

F: Welche Multiplayerfeatures sind enthalten?

A: Eines der besten Features ist die Online Server Liste. Jeder Server sendet seine Statusinformation zum "main" Server. Also können die Clients eine Liste von Servern aufrufen und einem Spiel beitreten, indem sie den entsprechenden Server einfach anklicken. Außerdem verwendet Bounci Madness sein eigenes Link Protokoll, wenn Sie also das Spiel installiert haben und im Browser einem Link folgen, der mit "bmadness://" beginnt, wird das Spiel gestartet und Sie treten automatisch dem Server bei, der dort verlinkt ist. Sie können Ihren Server also auch auf einer Website verlinken.

 

Natürlich können Sie auch im Spiel die Server wechseln, Chat Nachrichten schicken oder oft verwendeten Nachrichten Tastenkürzel zuweisen. Das Serversystem ist sehr komplex; Sie können im Menü oder einer speziellen Config-Datei alle möglichen globalen Werte wie Gravitation, Levelabfolge, maximale Spielerzahl, Adminpasswort und viele mehr einstellen. Mit Hilfe dieses Passwortes können Sie eine spezielle Konsole aufrufen und von dort aus solche Werte zur Laufzeit ändern.

 

Der Server selbst ist dedicated, kann also auf allen Windowssystemen (auch Serversystemen) gestartet werden. Die Konsole zeigt mögliche Probleme der Konfiguration, Informationen zur Performance und andere Infos zum Sevrer Status und erstellt eine Log-Datei. Bounci Madness kommt auch mit einem SDK (WED + Testanwendung) und etwas Open Source Code, um Ihre eigenen Level zu erstellen und zu testen. Sie können Ihre eigenen Level auch zum Levelzyklus des Servers hinzufügen, wenn sich das Level von einem http Server herunterladen lässt. So können Sie Ihre Karten auch online verwenden, wie bei anderen bekannten Multiplayerspielen.

 

F: Wieviele Spieler können gleichzeitig spielen ohne dass es zu Verzögerungen kommt?

A: Unser größter Test beinhaltete 10 Spieler auf einem DSL 6000 Server und die Verbindung war etwas langsam dafür (60 KB/s ist nicht allzu viel). Jeder Spieler braucht etwa 1KB/s um flüssig zu laufen, aber die Daten jedes Spielers müssen auch zu allen anderen geschickt werden. Für 10 Spieler sind also etwa 10x10 = 100KB/s nötig. Und natürlich muss der Server auch schnell genug für die Berechnungen sein, denn jeder Spieler ist ein Physikobjekt und es gibt viele komplexe Algorithmen, die in Echtzeit ausgeführt werden.

 

F: Was war das schwierigste Problem, das Ihnen bei der Programmierung untergekommen ist und wie haben Sie es gelöst?

A: Eines der größten Probleme war die geringe Stabilität des UDP Protokolls, das für die Datenübertragung genutzt wird. Manchmal wurde eine wirklich wichtige Information (aktuelles Level, Client-bezogene Info etc.) nicht gesendet und die Clients wussten nicht was zu tun war - manchmal wusste das nicht einmal der Server. Wenn die Verbindung sehr schlecht ist können solche Probleme immer noch auftreten, aber der Server hat sie nicht mehr und läuft sehr flüssig. Einige Server haben Bounci Madness schon eine Woche laufen lassen ohne dass die Anwendung erneut gestartet werden musste.

Ein weiteres Problem war es, eine geeignete und funktionierende Lösung für die Online Server Liste zu finden, weil so etwas soweit ich weiß noch nicht gemacht wurde. Ich habe das mit PHP realisiert. Es war auch recht schwierig zu erreichen, dass die Spieler ihren Objekten selbst Namen zuweisen können. Aber all dies läuft nun und die Spieler können auch aus 9 verschiedenen Farben wählen.

 

F: Welche anderen Tools haben Sie für die Entwicklung genutzt?

A: Ich verwende GSTNet-DLL für einige Funktionen der Server Liste. Ich habe auch die Big-DLL von Timo Stark genutzt, weil sie viele Funktionen enthält, die ich brauchte. Für die Partikeleffekte habe ich EasyParticle 3 verwendet und das gesamte Menü und grafische Interface ist in Paint Shop Pro (für Panels und Texte) und Vue 5 (für Hintergründe) entstanden.

 

F: Welche Multiplayer-relevanten Features wünschen Sie sich für die Zukunft?

A: Ich hätte gern eine einfachere Methode für die Client Ids, momentan ist es ziemlich kopmpliziert, einen Client eindeutig zu identifizieren. Ich bin auch etwas enttäuscht darüber, dass einige Multiplayer Bugs noch nicht behoben wurden. Der Server könnte auch eine Kommandozeile vertragen, mit der man direkt Befehle eingeben kann, ohne dass sich ein Client einwählen muss.

 

F: Wie sehen Ihre Pläne für Bounci Madness aus? Haben Sie sich nach einem Publisher umgesehen?

A: Bounci Madness wird ein Freeware Projekt bleiben und das aus drei Gründen: das Spiel ist noch etwas zu "kompliziert" für User, die nicht so oft spielen, es gibt nicht genug Spieler und server und ich möchte diesen meinen ersten Versuch eines Multiplayerspieles nicht verkaufen, sondern mir erst einen Namen machen. ;-)

 

F: Welchen Rat haben Sie für User, die sich der Multiplayerprogrammierung nähern wollen? Wie sollten Sie da herangehen?

A: Ein Multiplayerspiel zu programmieren unterscheidet sich grundlegend von der Programmierung eines Single Player Spiels. Wenn Sie ein "richtiges" Server-Client Multiplayerspiel möchten, müssen Sie den Code in zwei Teile aufteilen: einen Teil für die Clients (die Spieler) und einen für den Server. Es ist oft schwierig zu verstehen, was der Server warum tun muss und was Aufgabe des Clients ist. Ein kleiner Tipp: Beginnen Sie mit einem einfachen 2-Spieler-Spiel (Server und Client) und stellen Sie sich vor, dass die beiden Computer zwei Personen sind, die sich nicht kennen und doch kommunizieren müssen. Das mag sich für jemanden, der sich noch nicht mit Multiplayerspielen befasst hat jetzt blöd klingen, aber für den Anfang hilft es sehr.

 

Schauen Sie sich einen Bounci Madness Trailer an, indem Sie hier klicken.

 

Vielen Dank, TSGames.