seeseekey.net - Invictus Deus Ex Machina

Wenn man Spiele für den Browser mittels Javascript entwickelt, so kann es je nach Spiel passieren, das man Funktionen für das sogenannte Path Finding benötigt. Gemeint sind dabei Algorithmen welche einen Weg von A nach B auf einem Spielfeld finden. Mittels der PathFinding.js Bibliothek, kann man solche Funktionalität einfach in seinen Projekten nutzen.

Die Testapplikation für PathFinding.js

Lizenziert ist PathFinding.js unter der MIT-Lizenz und damit freie Software. Der Quelltext ist auf GitHub zu finden. Eine Demo um die Bibliothek mittels eines grafischen Frontends zu testen, gibt es auf den Seiten des Autors.

Mit den in den letzten Jahren zunehmenden Fähigkeiten der Browser, tauchten vermehrt Engines auf, mit denen einfach 2D und 3D Anwendungen und Spiele programmiert werden konnten. Eine dieser Engine ist dabei Babylon.js. Dabei handelt es sich um eine auf HTML5 und WebGL basierende 3D-Engine, welche in Javascript implementiert ist. Sie enthält unter anderem einen kompletten Szenengraph mit Entitäten wie Licht, Kameras, Materialien und Meshes. Daneben deckt die Funktionalität der Engine Themengebiete wie Kollision, Physik, Animation, Partikel und vieles mehr ab.

Ein einfaches Beispiel

Ausprobiert werden kann die Engine auf dem Babylon.js Playground. Lizenziert ist Babylon.js unter der Apache License in der Version 2.0 und damit freie Software. Der dazugehörige Quelltext ist auf GitHub zu finden. Daneben kann die Engine auch über die offizielle Seite unter babylonjs.com bezogen werden.

In den ersten Jahren nach seiner Erfindung war Javascript nicht mehr als ein Spielzeug. Mittlerweile hat sich die Sprache allerdings emanzipiert. Dinge welche früher unmöglich erschienen sind nun problemlos möglich. Ein eindrucksvolles Beispiel für diese Aussage ist Javascript PC Emulator von Fabrice Bellard.

Der Emulator bootet ein Linux

Der Emulator simuliert einen x86-PC komplett im Browser. Im einzelnen simuliert er dabei unter anderem eine 32-Bit CPU, einen Interrupt Controller und Timer sowie ein IDE Interface mit einer entsprechenden Festplatte. Der Autor führt die technischen Details auf seiner Webseite weiter aus. Der Emulator selbst ist unter bellard.org/jslinux/ zu finden.

Das erste Command & Conquer hat mittlerweile knapp 20 Jahre auf dem Buckel. Damit war es Zeit das ganze für den Browser umzusetzen. Aditya Ravi Shankar machte sich an die Arbeit und schuf eine solche Umsetzung, welche mittlerweile in der Version 0.8.3 vorliegt. Aus dieser Umsetzung heraus ist auch das Buch Pro HTML5 Games entstanden.

Command & Conquer im Browser

Ausprobieren kann man das ganze auf der entsprechenden Seite des Autors. Dabei wird nicht nur der Single-Player Modus sondern auch der Multi-Player Modus unterstützt. Auch die Missionsbesprechungen und Zwischensequenzen sind enthalten.

Normalerweise sind Favicons statische Gebilde. Allerdings wurde schon Tetris für das Favicon umgesetzt. Wer also etwas Bewegung in sein Favicon bringen möchte, sollte sich die Javascript Bibliothek favico.js anschauen. Mit der Bibliothek ist es möglich sein Favicon zu animieren oder gleich komplette Videos in diesem abzuspielen. Auch der Zugriff auf die Webcam und die anschließende Darstellung im Favicon sind möglich.

lab.ejci.net/favico.js/

Der Quelltext der Bibliothek ist auf GitHub zu finden. Lizenziert ist das ganze unter der MIT-Lizenz und der GPL und damit freie Software.

Mit Javascript und Co. ist mittlerweile eine ganze Menge möglich. Das sieht man auch immer wieder an den unterschiedlichsten Experimenten, welche aus dem Hause Google kommen. In diese Fall ist es buildwithchrome.com.

Lego im Browser

Auf der Seite kann man dabei virtuell mit Legosteinen spielen. Leider sind nur rote Steine vorhanden und auch die Steinauswahl ist begrenzt — trotzdem kann man beachtliche Bauwerk erschaffen. Alles in allem ist es ein schönes Beispiel was man mittlerweile im Browser bewerkstelligen kann.

Wer Entity-Relationship-Modelle bzw. die entsprechenden Diagramme (ERD) erstellen möchte, der kann hierfür Software wie die freie MySQLWorkbench nutzen. Für das plattformübergreifende Erzeugen solcher Diagramme kann man allerdings auch die freie Webapplikation wwwsqldesigner nutzen.

Der ERD-Designer in Aktion

Auf der Webseite des Autors gibt es eine Demo zum Ausprobieren. Die in PHP und Javascript geschriebene Software steht dabei unter einer BSD-Lizenz und ist somit freie Software. Bei der Installation muss das entsprechende Archiv nur auf dem Webserver entpackt werden und kann sofort genutzt werden. Nur wer die Möglichkeiten der serverseitigen Speicherung nutzen möchte, muss einige Parameter konfigurieren.

Wer schon immer das tiefe und unerklärliche Bedürfnis hatte, Windows in der ersten Version auszuprobieren, der kann dies nun tun. Möglich wird dies mit der Webseite jsmachines.net. Das ganze basiert dabei auf dem unter GPL stehenden PCjs. Dabei handelt es sich um einen IBM PC Emulator, welcher in Javascript geschrieben ist. Der Quelltext soll später auf GitHub zur Verfügung stehen.

Der Windows 1 Emulator in Aktion

Die Windows-Emulation ist neben einigen anderen Emulationen (unter anderem Zork I und DONKEY.BAS) auf der Webseite zu finden.

In den neueren Firefox Versionen hat man das Problem das sich im Optionsmenü keinerlei Möglichkeit mehr findet, Javascript komplett abzuschalten. Der Grund für diese Entscheidung seitens Mozilla liegt darin, dass „das Web ohne Javascript einfach kaputt ist“. Abhilfe schaffen hier Plugins wie NoScript. Allerdings gibt es auch im Firefox direkt noch die Möglichkeit Javascript zu deaktivieren. Dazu gibt man in der Adressleiste „about:config“ ein und sucht nach der Zeichenkette:

javascript.enabled

Der Wert kann dann entweder auf „true“ oder auf „false“ gesetzt werden, und somit die Javascripteinbindung konfiguriert werden.

Das schöne an zentralen Sammlungen ist das man sie relativ einfach auswerten kann. In diesem Fall geht es um die Auswertung der GitHub Repositories. Wie der Name „Popular Convention“ andeutet geht es darum aus den Quelltexten bestimmte Informationen über bevorzugte Konventionen wie z.B. Leerzeichen vs. Tabs zu extrahieren.

Popular Convention und Scala

Das Ergebnis kann man sich auf der Webseite http://sideeffect.kr/popularconvention/ für die Sprachen Javascript, Java, Python und Scala anschauen. Die Software zur Auswertung ist dabei freie Software und steht unter der MIT Lizenz und kann unter https://github.com/outsideris/popularconvention bezogen werden.