seeseekey.net - Invictus Deus Ex Machina

Seitdem WebGL in unsere Browser eingezogen sind, gibt es auch die entsprechenden Techdemos für diese Technologie. Ein sehr schönes Techdemo ist dabei Pearl Boy welches auf der entsprechenden Webseite zu finden ist.

Das Boot auf dem Wasser

Man befindet sich mit einem Boot auf dem Wasser und steuert einen Jungen in diesem Boot. Mit Hilfe der WASD-Tasten kann man sich meditativ über das Wasser bewegen oder alternativ dieses verlassen und schwimmen. Technisch baut das ganze auf der Goo Engine auf, bei welcher es sich um eine Grafikengine für WebGL und HTML 5 handelt.

Die Unity Engine hat in den letzten Jahren enorm an Beliebtheit gewonnen. Das dürfte nicht zu letzte an den kostenlosen Grundversionen gelegen haben. Daneben gibt es auch die Pro Variante welche mit knapp 1200 € zu Buche schlägt.

Die Unity Subskriptionsseite

Wer sich das auf Schlag nicht leisten kann, hat nun die Möglichkeit Unity Pro für $ 75 respektive 57 € im Monat zu abonnieren. Auch die Pro-Versionen der Plugins für iOS, Android und Co. können dabei auch abonniert werden. Das ganze schlägt dann mit zusätzlichen $ 75 pro Plugin und Monat zu Buche. Zu finden ist die neue Subskriptionsseite unter https://store.unity3d.com/products/subscription. Die Mindestlaufzeit für ein Abo beträgt dabei 12 Monate.

Bei melonJS handelt es sich um eine Javascript Engine zur Spieleentwicklung im Browser mittels HTML5. Möchte man dort ein Level laden, so geschieht das in Form einer TMX Datei. In melonJS gibt es dabei zwei Methoden zum laden der entsprechenden Daten. Diese sind „me.loader.preload“ und „me.loader.load“. Alle Beispiele welche man im Netz so findet nutzen dabei immer die „preload“ Methode:

var g_resources= [
{ name: "desert1",          type: "image", src: "desert1.png" },
{ name: "desert",           type: "tmx",   src: "desert.tmx" },
{ name: "player_male_base", type: "image", src: "player_male_base.png" },
{ name: "fog",              type: "image", src: "fog.png" }
];

...

me.loader.preload(g_resources);

Das Problem ist das man bei größeren Spielen mit ein paar hundert MiB Spieldaten, das ganze schlecht komplett in den Speicher laden kann. Hierfür gibt es die „load“ Methode. Allerdings enthält diese einige Fehler welche das ganze erschweren. Die „preload“ Methode trägt jede TMX Datei in das Array „levels“ im „me.levelDirector“ ein. Bei der „load“ Methode passiert genau dies nicht. Deshalb muss man hier anders vorgehen (bis der Fehler behoben ist). Ein Minimalbeispiel zum laden eines Levels sieht damit so aus:

<!DOCTYPE html>
<html>
  <head>
    <title>melonJS minimal sample</title>
    <meta charset="utf-8" />
  </head>
  <body>
    <script type="text/javascript" src="melonJS.js"></script>

    <script type="text/javascript">
      var jsApp = {
        start: function() {
          if (!me.video.init('jsapp', 640, 480, false, '1', false))
          {
            alert("Sorry but your browser does not support html 5 canvas.");
            return;
          }

          me.loader.onload = this.loaded.bind(this);

          //lade manuell
          me.loader.load({name: "desert1",  type:"image",  src: "desert1.png"}, this.onload);
          me.loader.load({name: "desert",  type:"tmx",  src: "desert.tmx"}, this.onload);

          //zeige Ladebildschirm
          me.state.change(me.state.LOADING);
        },

        onload: function(data) {
          me.levelDirector.addTMXLevel("desert"); //Bugfix
          me.levelDirector.loadLevel("desert");
        },

        loaded: function() {
          me.state.set(me.state.PLAY, new PlayScreen());
          me.state.change(me.state.PLAY);
        }
      }

      var PlayScreen = me.ScreenObject.extend({
      });

      //starte wenn der Browser bereit ist
      window.onReady(function() {
        jsApp.start();
      });
    </script>
  </body>
</html>

Damit lädt man ein Level dynamisch, ohne auf die „preload“ Methode angewiesen zu sein. Möglich wird dies durch den kleinen Bugfix in der „onload“ Methode:

me.levelDirector.addTMXLevel("desert"); //Bugfix

Dieser sorgt dafür das der levelDirector über die entsprechende TMX Datei informiert wird und somit die Datei beim laden des Levels auch findet.

Für Unity (die Spielengine, nicht die Ubuntuoberfläche) gibt es eine Menge Dokumentation angefangen bei Tutorien bis zu Büchern (wobei deutsche Bücher an dieser Stelle Mangelware sind). Eines der ausführlicheren Tutorien ist „Hack & Slash RPG Tutorial“ welches mittlerweile aus 285 Teilen besteht. Zu finden ist dieses unter http://www.burgzergarcade.com/hack-slash-rpg-unity3d-game-engine-tutorial. In dem Tutorial wird dabei Stück für Stück ein Rollenspiel in Unity aufgebaut und stetig verbessert. Das ganze wird dabei in Form von Videos präsentiert, was bestimmte Erklärungen wesentlich vereinfacht.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Unity_3D

Gestern versuchte ich Fallout 3 auf einem Mac OS X und anschließend auf einem Linux System zu installieren. Das ganze sollte mittels Wine zum laufen gebracht werden, was grundsätzlich kein Problem darstellen sollte. Allerdings stellte sich das dank DRM aller SecuROM und DVD Überprüfung als ein Ding der Unmöglichkeit heraus, vor allem dann wenn man kein CD/DVD-ROM Laufwerk im entsprechenden Rechner hat. Nun gut wer nicht will, der hat schon.

Der Übertäter in Form von Fallout 3

Wenn Fallout schon nicht funktioniert, so kann man sich ja immerhin noch am geistigen Vater des Spieles bedienen: Wasteland. Allerdings muss man sich nicht mit dem Original von 1987 begnügen sondern kann ab Oktober 2013 mit deren Nachfolger Wasteland 2 vorlieb nehmen. Das ganze würde über Kickstarter mit einer Summe von $ 2.933.252 finanziert.

Das Spiel wird es in einer Linux, Windows und Mac OS X Version geben und auch als DRM freie Version angeboten. Neben der englischen Originalsprache soll das Spiel mindestens in die Sprachen Französisch, Italienisch, Deutsch und Spanisch übersetzt werden.

Technisch wird das ganze auf der Unity Engine aufsetzen, welche dafür um eine Linux Unterstützung erweitert wird. Den entsprechenden Entwicklerblog findet man unter http://wasteland.inxile-entertainment.com/blog/.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Wasteland

Bei der Spieleentwicklung auf iOS Geräten ist es von Vorteil eine Engine zu benutzen um sich einige „lästige“ Arbeit vom Hals zu schaffen. Unter http://maniacdev.com/2009/08/the-open-source-iphone-game-engine-comparison/ gibt es dazu eine schöne Liste von Open Source Engines für iOS. Dabei wurden nur Engines aufgelistet, welche auch darauf basierende Software im AppStore haben. Mir persönlich gefällt das Sparrow Framework ganz gut welches unter http://gamua.com/sparrow/ zu finden ist und sich für 2D Spiele eignet.

Rollenspiele in Javascript sind an sich eine schöne Sache. Man muss keine zusätzliche Software installieren und das Spiel als solches ist auch immer aktuell. Gezeigt hat dies neulich Mozilla mit dem MMORPG BrowserQuest welches komplett im Browser läuft. Möchte man RPGs selber schreiben so sollte man sich mal die Bibliothek RPG JS anschauen, welche unter http://rpgjs.com/ zu finden ist. Die Engine ist dabei unter MIT und GPL dual lizenziert.

Weitere Informationen gibt es unter:
http://www.guido-muehlwitz.de/2012/02/rollenspiele-in-html5/
http://www.golem.de/news/browserquest-mozilla-startet-browser-mmog-in-html5-1203–90802.html

Den Firefox 4 gibt es ja standardmäßig nicht für Ubuntu 10.10. Da aber die Javaskriptengine eine echte Beschleunigung erfahren hat, welche ich auch ausnutzen wollte musste ein PPA her. Dieses PPA ist ppa:mozillateam/firefox-stable welches auch auf der Konsole mittels

sudo add-apt-repository ppa:mozillateam/firefox-stable
sudo apt-get update && sudo apt-get dist-upgrade

hinzugefügt werden kann. Danach sollte man sich noch das deutsche Sprachpaket installieren, da die Firefoxversion sonst Englisch ist. Zu finden ist dieses Paket unter http://releases.mozilla.org/pub/mozilla.org/firefox/releases/4.0/linux-x86_64/xpi/de.xpi. Und schon ist Firefox 4 da :)

Weitere Informationen gibt es unter:
http://linuxundich.de/de/software/firefox-4–0-in-ubuntu-mozilla-team-ppa-installieren/

Natürlich ist dem nicht ganz so wie in der Überschrift versprochen ;) Aber einige Leute haben angefangen eine Engine zu schreiben welche ein Anno ähnliches Spiel bereitstellt, sprich es handelt sich um eine 2D Echtzeitstrategiesimulation welche auf den Namen Unknown Horizons hört. Das Spiel gibt es dabei für Linux und Windows.

Basierend auf der FIFE Game Engine wurde das Spiel immer weiter entwickelt bis zum jetzigen schon ganz ansehnlichen Stand. Das sollte natürlich nicht darüber hinweg täuschen das es sich bei dem Spiel noch um eine Alphaversion handelt. Die offizielle Seite des Spieles ist unter http://www.unknown-horizons.org zu finden.