MMP Bern Spiel – Prototyp in JavaScript

Ich arbeite an einem 2D 16-Bit Spiel, welches den MMP Standort Bern als «RPG» verkörpern soll. Die Idee ist es, für verschiedene Module einzelne Minispiele zu programmieren, welche im Standort gefunden werden und gespielt werden können.

Das Gesamte Spiel wird 100% in JavaScript nativ programmiert, ohne irgendwelche Game Engines oder Frameworks. Das Spiel läuft bisher nur auf Desktop Geräten. Im Moment ist das Spiel in der Entwicklung und kann hier getestet werden:
LINK ZUM SPIEL

Und, hast du das Jump and Run Spiel gefunden und gelöst?

Der momentane Stand des Codes kann auf GitHub betrachtet werden:
https://github.com/TobiasFriedly/mmp_bern_game

(mst)

Idee des Spiels
Seit ich im 2. Semester mal zum Spass mit JavaScript ein Trollspiel entwickelt hatte, packte mich die Inspiration dies weiter zu verfolgen. Ich wollte unbedingt eigene Spiele mit meinen JavaScript kenntnissen umsetzen. Zu dem Zeitpunkt kam mir die Idee, den Berner MMP Standort als Spielwelt zu nehmen und aus jedem Modul ein eigenes Minispiel zu erschaffen.

Vorgehen
Vielleicht habe ich es mir wirklich zu schwer gemacht… Es gibt nicht grundlos Game Engines und Frameworks. Doch ich wollte unbedingt den ganzen Code selbst entwickeln und mich nicht auf etwas anderem „Abstützen“.  Somit fing ich an, mich durch YT Tutorials und Beispiele auf W3Schools und anderen Seiten in JavaScript Gameloop() funktionen und Canvas einzulesen. Ich habe so eine grosse Menge an Sachen gefunden doch es wurde viel komplizierter als ich dachte. Meine Erfolgserlebnisse waren aber auch immer wieder toll und inspirierend. Vor allem hatte ich mir Jahre gedanken darüber gemacht, wie ich ohne einen Level Editor eine Spielemap programmieren und gestalten könnte. Und vor allem wie ich das Scrolling in dieser implementieren könne. Doch all dies stellte sich als weniger schwierig raus als ich die ganze Zeit dachte. Es machte regelrecht Spass, den Hintergrund in die Welt reinzuladen und dann die Blöcke in einem JS Objekt nach und nach zu definieren und platzieren. Die kleineren Details waren es dann aber, die sich teilweise als total kompliziert entpuppten. Zwar hatte ich schnell eine Textur auf dem Charakter, aber die laufanimation allein zu programmieren hat mir soooooo viele Kopfschmerzen bereitet.

Am Anfang hatte ich noch kein Grid Movement und es fühlte sich nicht richtig an. Nicht so wie die Spiele aus meiner Kindheit. Der Charakter war fast zu frei. Die meisten Tutorials ignorierten diesen Aspekt auch und es brauchte eine weile, bis ich das Grid movement entwickelt hatte. Aber dann musste ich die ganze Map umdenken, in Photoshop und Procreate das Grid einblenden und alle Blöcke umplatzieren. Und das alles war noch voll am Anfang des Prozesses.

Erfahrung
Ich habe die Zeit und den Aufwand krass unterschätzt. Eigentlich wollte ich schon längst mit dem Game fertig sein, aber das hat nicht mal knapp gereicht. Für so viele Minispiele habe ich Ideen, welche ich noch umsetzen möchte und nicht einmal beim Jump und Run bin ich richtig fertig. Auch habe ich die Gestalterische Arbeit der Assets so stark unterschätzt. Nachdem ich schon die ganze Untere Etage des H8 in Bern fertig gezeichnet hatte und an Photoshop von der Vorzeichnung übergeben hatte, brauchte ich einen ganzen Zusätzlichen Tag um nur die Karte schön auszuarbeiten… Und danach war erst die Bilddatei fertig. An den Pixelobjeten und Charakteren war ich auch lange beschäftigt. Ich wollte aber unbedingt schon die Teleportation vom Player in die oberen Etagen vom H8 testen und daher baute ich mit einer unfertigen Karte den nächsten Stock ein.

Trotzdem hat mir die Arbeit bis jetzt schon unglaublich Spass gemacht und ich freue mich drauf, alles weiterzuentwickeln. Denn wenn etwas mal funktioniert, sind die Erfolgserlebnisse unglaublich.

Ausblick
Die Liste der Dinge, die ich zu dem Spiel hinzufügen möchte, ist lang.
Zu allererst mal möchte ich den ganzen Standort fertig gestallten. Dann möchte ich ein besseres NPC system entwickeln (Momentan benutze ich noch eine Notlösung, da ich soooo viele Probleme bei der Objektbasierten hinzufügung von NPCs hatte und dies noch nicht lösen konnte). Dann eine Punkteanzeige mit ECTs Punkten oder etwas vergleichbaren, wo man mit Abschliessen von Minispielen welche dazu verdient und neue bereiche freischalten kann. Dann natürlich die ganzen neuen Minispiele für die einzelnen Module. Auch möchte ich ein Minispiel im H8 einbauen, wo mit der jetzigen Umgebung funktioniert und vielleicht der Spieler in einer Zeitbegrenzung Objekte, welche verteckt sind, finden muss.
Auch möchte ich Touchcontrolls für Mobile Geräte hinzufügen.
Natürlich auch alles Responsive machen und ein Menü hinzufügen.
Spielmusik komponieren und einfügen steht auch auf der Liste. Und eine PHP einbindung für Datenbanken, wo man die Highscore bei verschiedenen Minispielen anschauen kann.
Auch möchte ich noch eine Sprinttextur und Animation hinzufügen, wenn der Spieler mit Shift schneller läuft. Und zu guter letzt die Option, dass man am Anfang vom Spiel sein Aussehen wählen kann. Hier habe ich auch schon an verschiedenen Assets gearbeitet, welche noch nicht integriert sind.