Multiplayer Lernprojekt: Supercars!

Nachdem wir zu „Soccercraft“ viel positives Feedback erhalten haben, haben wir uns entschlossen, das Spiel erst einmal weiter zu entwickeln. Der nächste große Schritt heißt hier: Multiplayer. Später soll man auch gegen Bots spielen können, aber den größten Spaß machen Strategiespiele immer noch gegen menschliche Mitspieler. Da wir bis auf ein paar Tutorials zu Photon Networking noch überhaupt keine Erfahrung auf dem Gebiet der Netzwerkerei vorweisen konnten, haben wir uns entschlossen, erst einmal ein Lernprojekt hierfür zu starten, bei dem der Fokus allein auf den Multiplayermöglichkeiten liegen sollte. Da Unity mit UNET eine recht neue, eigene Multiplayer-Komponente an Bord hat, haben wir uns zunächst einmal auf diese konzentriert.

Wir sind dabei zunächst dem Handbuch und dem Tutorial auf der Unity-Webseite gefolgt und haben alles zu einem simplen 2D-Autorennen umgestrickt: Supercars!

Supercars!

Wir wollen nicht verhehlen, dass es sich hierbei um ein Teilremake des alten Amiga-Klassikers handelt und wir momentan auch noch die Original-Assets benutzen. Da wir uns aber auf den Multiplayer-Part konzentrieren wollten, schien es uns unnötig, mit originärem Gameplay an den Start zu gehen, um die Zeit anderweitig besser nutzen zu können. Nachdem die erste lauffähige Version fertig war, haben wir nun eine schöne Testumgebung, um neue Features auszuprobieren. Wir haben das Originaltutorial z.B. um eine komplette Gameloop erweitert (warten auf Spieler, Rennen fahren, Zielzeiten anzeigen, …), die auf allen verbundenen Clients synchron läuft, wir haben einen Chat eingebaut und ein paar Bots, die solange mitfahren, bis sich ein weiterer Spieler verbindet und dann einen Bot übernimmt. Es macht schon ziemlich Spaß im Multiplayerbereich zu programmieren, jedoch läuft man ein ums andere Mal vor die Wand und muss sich genau überlegen, wie alle Komponenten zusammenhängen: Client, Server, lokaler Spieler, Funktionen auf dem Server (commands), Funktionen auf dem Client (RpcClient)…

Wir werden das Projekt nun noch einmal überprüfen und ggf. Fehler oder unglücklich gelöste Problemstellungen, die aus anfänglicher Unerfahrenheit her rühren mögen, zu bereinigen. Anschließend möchten wir das Projekt dann als Lernbeispiel anderen Entwicklern zur Verfügung stellen, da UNET noch relativ neu ist und wenig auf Erfahrung beruhende Beispiele zu finden sind. Wir hoffen dabei auch, dass unsere Fehler gnadenlos aufgedeckt werden ;).