Nach der Javascript-Adaption von Super Mario tüftelte Jacob Seidelin an seiner nächsten Spieleumsetzung. Diesmal übertrug er den Egoshooterklassiker Wolfenstein 3D aus dem Hause id Software in die Browserwelt.
Die Demo, die die Originalgrafiken und – sounds aus dem Spiel von John Carmack nutzt, verwendet zur Darstellung der virtuellen 3D-Welt nur Canvas und Javascript. Canvas ist ein Element der zukünftigen HTML5-Spezifikation, womit man 2D-Grafiken mittels Javascript erstellen kann.
In Bezug auf Browser ist die Javascriptimplementierung sehr wählerisch. So läuft das Minispiel am besten unter Opera, in Firefox zumindest in Version 2.0.0.14 flüssig und mit Abstrichen auch im Safari 3.1.1 – Microsofts Internet Explorer wird wegen mangelnder Cansas-Unterstützung, die bisher auch nicht geplant ist, nicht unterstützt.
Folgende Einschränkungen und fehlende Features existieren:
- keine geheimen Türen
- Wachen sind die einzigen Gegner – es gibt keine Hunde
- Wachen schießen nicht zurück
- keine künstliche Intelligenz – die Wachen stehen nur dumm herum
- Pistole als einzige Waffe – es gibt kein Messer
- mangelhafte Kollisionsabfrage
- es ist möglich durch Wände zu schießen
- unter Umständen kann man in Türen steckenbleiben
- der Level kann nicht beendet werden
Die Steuerung der Spielfigur geschieht wie folgt:
- Bewegen – traditionelle WASD-Steuerung
- Umsehen – linke Maustaste gedrückt halten und Maus bewegen
- Tür öffnen – x-Taste
- Schießen – c-Taste
Wer möchte kann die Wolfenstein-Adaption hier direkt anspielen.
Kürzlich wurde die Version 0.1.0 des Javascript-Rollenspiels ProtoRPG veröffentlicht.
Auf den ersten Blick erinnert diese Spieledemo stark an die Anfänge des Rollenspielgenres auf den Konsolen. Auch die Steuerung ist sehr einfach gehalten. Mittels Pfeiltasten bewegt man sich in der virtuellen Umgebung. Durch Drücken einer Aktionstaste und anschließend einer Pfeiltaste werden besondere Events ausgelöst, die da wären:
- U + Richtungstaste : Benutzen (Tür öffnen, Schalter betätigen, usw.)
- T + Richtungstaste : Sprechen (Gespräch beginnen)
- L + Richtungstaste : Durchstöbern (Truheninhalt ansehen)
- P + Richtungstaste : Schieben (Objekt verschieben)
- A + Richtungstaste : Angriff
- G + Richtungstaste : Item einsammeln
Das gesamte RBG läuft im Browser und ist nur in Javascript geschrieben. Dabei wird auf die Bibliotheken Prototype und Script.aculo.us zurückgegriffen.
ProtoRPG kann leicht verändert und durch eigene Dialoge und Grafiken angepasst werden, da nur gewöhnliche Bildformate und Klartextdateien verwendet werden.
Der Entwickler plant für die kommenden Versionen folgende Erweiterungen:
- Anlegen und Laden von Speicherständen (mittels AJAX und / oder durch das Verwenden der neuen „Local Storage API“, die in den Browsern der nächsten Generation Einzug halten wird)
- Töne (über den neuen <sound>-Tag, der in HTML 5.0 angekündigt wurde)
- Magiesystem mit Zaubern und der Herstellung von Tränken
- Weitere Befehle zum Aufrufen von Events im Spielverlauf
- Zwischensequenzen
Ich gehe davon aus, dass uns in naher Zukunft noch weitere, viel aufwendigere JS-Spiele von pfiffigen Entwicklern erreichen werden und unser bisherigen Verständnis von Browsergames verändern werden.
Auf der dänischen Javascript-Website Nihilogic wurde vor wenigen Tagen eine Canvas-Adaption des Spieleklassikers Super Mario vorgestellt.
Das gesamte „Spiel“ kommt ohne Grafikdateien aus. Die dargestellten Elemente werden über Canvas, einem HTML5-Element zum Darstellen von Grafiken im Webbrowser, erzeugt. Da der Internet Explorer, einschließlich Version 8 – wie wir berichten – Canvas nicht unterstürzt, wurde ein DIV-Fallbackmodus eingerichtet.
Auch an die Hintergrundmusik wurde gedacht. Diese stammt von einer MIDI-Datei, die mittels base64-Kodierung direkt in den Javascript-Code eingebunden wurden.
Die Ausführgeschwindigkeit der JS-Spielerei kann zwar zwischen den einzelnen Browern variieren, läuft aber sowohl mit Firefox, Opera, Safari als auch mit dem erwähnten IE.
Ich halte die Umsetzung für eine gelunge Demonstration, was in Zukunft alles möglich ist im Web, wenn sich gewisse (neuere) Standards durchsetzen. Es handelt sich hierbei um keinen komplettem Level!