Pearl Boy

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

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.

Unity nun auch zur Miete

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

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.

melonJS ohne preload benutzen

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.

Hack & Slash RPG Tutorial für Unity

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

Wasteland 2

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