Tron Videospiel
Kurzinfo
Themenbereich
Softwareentwicklung, game development
Lernender
Gian Ott
Lehrbetrieb
Komax AG
Betreuer
Urs Nussbaumer
Projekt-Website
Aufgabenstellung
Im Internet gibt es bereits einige Tronspiele. Jedoch erlauben nur wenige davon das Spielen gegen andere Menschen und ihr Aufbau ist sehr unübersichtlich. Beispiel
Ziel meines Projektes sollte es dadurch sein, ein Spiel zu programmieren, welches leicht zu bedienen ist und im Online, Lokalen und Computerspielmodus gespielt werden kann.
Dafür hatten wir vom 28.11.2016 bis am 09.01.2017 Zeit.
Ergebnisse
Die Webseite hat drei verschidene Spielmodi. Im Onlinemodus kann man gegen jemanden Spielen, der an einem anderen Computer sitzt.
Wenn bereits zwei Spieler am Spielen sind, wird man Zuschauer, man sieht was passiert, kann es aber nicht beeinflussen. Im Computer- oder Einzelspielermodus spielt man gegen einen Computergegner.
Der dritte Spielmodus ist der Lokale, bei dem zwei Spieler von derselben Tastatur aus gegeneinander spielen. Gesteuert wird mit den WASD-Tasten, und im lokalen Modus zusätzlich mit IJKL.
Lösungskonzept
Spielprinzip
Man startet von einem festgelegten Punkt in eine Richtung aus. Bewegen kann man sich nach oben, unten, links und rechts.Jedes Befahrene Feld übernimmt dabei die Farbe deines Spielers und bleibt solange bestehen, bis eine neue Runde beginnt.
Man scheidet aus dem Spiel aus, indem man entweder in seine eigene Spur oder die des Gegners fährt oder indem man ausserhalb des Spielfeldes kommt.
Ist einer der Spieler nun ausgeschieden wird ein Punkt an den eigenen Spieler oder den Gegner gegeben und das Spiel startet von neu.
Aufgetretene Probleme
Mit JavaScript hatte ich kaum Probleme, da wir einen umfangreichen Einführungskurs in die Programmiersprache hatten.
Dadurch kam ich auch gut mit der Arbeit am lokalen Spielmodus voran. Als ich den fertig hatte, wollte ich mit dem Multiplayer weiter machen, und wenn noch Zeit übrig wäre den Bot abschliessen.
Die Arbeit am Multiplayer war aber sehr schwer für mich, da ich noch nie mit Node.js und Websockets gearbeitet habe. Ich verbrachte darum fast zwei Tage damit, mich in dieses Thema einzuarbeiten.
Schlussendlich war aber auch diese Hürde abgeschlossen. Einige Probleme hatte mein Programm aber, wie:
- Der Bereich zwischen den Spielern füllte sich mit Linien, da nach jedem Zug das Zeichnen gestoppt werden muss.
- Die befahrenen Felder werden nicht richtig erkannt, da der Spieler immer mehrere Pixel auf einmal überfuhr.
- Die Punkte im Multiplayer stimmten nicht, da diese Clientseitig berechnet wurden.
- Der Bot fährt an Ecken über die Linie, da er dort die befahrenen Felder nicht richtig erkennt.
Ausblick
Ziel meines Projektes sollte es sein, Benutzer von verschiedenen Computern aus gegeneinander Spielen zu lassen.
Dieses Ziel habe ich erreicht, und zusätzlich konnte ich einen Computergegner und Lokalenspielmodus einfügen, was anfangs gar nicht geplant war.
Ich habe dank diesem Projekt meine JavaScript Fähigkeiten verbessern können und zudem viel über Websockets und game development gelernt.