Dienstag, 3. Mai 2011

Kapitel II - Von Betriebssystemen und USB-Sticks

Über .NET

Wenn man sich unter den Tools, die es für's Rollenspiel gibt umschaut, dann läuft einem immer wieder ein Begriff über den Weg: .NET - Ziel dieses Blogposts soll es zunächst sein zu erklären, was das ist und warum es alle benutzen - nur wir nicht.


So mancher wird von .NET schon gehört haben. Oftmals muss man es auf dem eigenen Computer installieren, um irgendein Programm benutzen zu können. Für all jene, die sich schon immer gefragt haben was das ist, hier eine vereinfachte Erklärung in drei Sätzen: Microsoft .NET  bietet eine Sammlung von nützlichen Funktionen, derer sich der Programmierer bedienen kann und sie deshalb nicht selbst erstellen muss. Das Programm läuft dann im sogenannten .NET-Framework, welches wiederum auf dem Betriebssystem ausgeführt wird. Damit ist das Programm prinzipiell von dem Betriebssystem darunter unabhängig, Hauptsache das Framework ist vorhanden.

Der aufmerksame Leser mag das zentrale Wort des letzten Satzes bemerkt haben: Prinzipiell. Und damit sind wir schon mitten im Thema dieses Blogposts angelangt, nämlich bei der Plattformunabhängigkeit. Microsoft .NET gibt's - wer hätte das gedacht - nur für Windows. Zwar gibt es mal mehr, mal weniger ambitionierte Projekte .NET auf andere Betriebssysteme zu übertragen, aber diese fallen leider zu großen Teilen in den Bereich der provisorischen Lösungen. Warum ist .NET dann trotzdem so beliebt? Wie oben schon erwähnt, macht .NET das Programmiererleben schöner. Etwas handfester ausgedrückt muss man wohl sagen, dass .NET mit den zugehörigen Programmiersprachen derzeit das wahrscheinlich beste Werkzeug ist, das ein Programmierer für sein Handwerk kriegen kann.

Es ist also ein Abwägen zwischen Komfort (und damit auch schnellerer Entwicklung) und Plattformunabhängigkeit. Die Abstimmung hier im Blog hat gezeigt, warum die Plattformunabhängigkeit dabei oft den Kürzeren zieht: 74% der Leser dieses Blogs, die am Spieltisch einen Computer benutzen, benutzen Windows. Das ist die deutliche Mehrheit. Da ist die Benutzung von .NET eine sehr wirtschaftliche Entscheidung.

Wir sehen das Ganze allerdings etwas differenzierter, denn man kann das Ergebnis der Umfrage auch anders interpretieren: Ein Viertel der Computernutzer am Spieltisch verwendet eben kein Windows! Auch in den Foren und FAQs bestehender Tools findet sich häufig die Frage, ob es auch eine Version des Tools für Linux oder Mac geben wird. Das sind also eine Menge Leute, die man durch eine Einschränkung auf Windows von vornherein ausschließen würde. Das sorgt dafür, dass wir .NET nicht verwenden wollen und werden.


Über Einsatzorte von smartSound

smartSound soll da eingesetzt werden, wo geleitet wird. Da kann man grob drei verschiedene Arten von Orten unterscheiden:
  1. Beim Spielleiter zuhause
  2. Bei einem Bekannten
  3. An einem Ort, den man vorher nicht kennt - wie etwa auf einer Convention
Der Reihe nach nimmt dabei die Kenntnis der und der Einfluss auf die örtlichen Begebenheiten ab. Während der Spielleiter in den eigenen vier Wänden noch genau weiß, was er vorfindet und was nicht, kann er bei einem Bekannten (etwa mangels Laptop) möglicherweise schon nicht mehr den eigenen Computer benutzen. Bei einer Convention ist vielleicht noch nicht einmal klar, welche Regelbücher man einpacken sollte und welche nicht. Wer möchte schon Bücher mitnehmen, die man dann nicht gebrauchen kann? Wer möchte schon Musik vorbereiten, die man dann nicht abspielen kann?
Der Kern der Aussage ist damit, dass smartSound immer funkionieren muss - wenn's nur einen Computer mit Lautsprechern gibt.

Uns interessiert natürlich brennend, in welchen Situationen smartSound zum Einsatz kommen könnte. Deswegen könnt ihr uns in unserer neuen Umfrage mitteilen, an welchen Orten und unter welchen Bedingungen ihr eurem Spielleiterdasein fröhnt. Wenn wir in den Optionen etwas vergessen haben sollten, oder ihr einfach unter ungewöhnlichen Bedingungen eure Runden leitet, teilt es uns mit: Über einen Kommentar zu diesem Post, via Twitter oder ganz altmodisch per Mail.

Über USB-Sticks

Dass man smartSound überall mit hinnehmen können soll, bringt natürlich noch eine Anzahl zusätzlicher Anforderungen mit sich. Denn damit smartSound einfach vom USB-Stick funktioniert, müssen einige Voraussetzungen erfüllt sein:
  • Es darf keine Installation notwendig sein.
  • Den Ordner, in dem smartSound liegt, zu kopieren darf nicht zu Problemen führen.
  • Die Musikstücke, die mitgenommen werden können sollen, müssen im smartSound-Ordner gespeichert werden (damit man sie auch dabei hat).
Die ersten zwei Punkte sind keine sonderlichen Hindernisse, müssen aber im Hinterkopf behalten werden. Der dritte Punkt führt uns zu der Notwendigkeit einer aus smartSound heraus verwalteten Musik- und Soundbibliothek. Das ist zwar durchaus mit Arbeit verbunden, wird uns - und natürlich euch - aber auch unglaublich viele Möglichkeiten eröffnen. Mehr Details zur Soundbibliothek gibt's in den nächsten zwei Blogposts.


Über Java und das schlimmste, was man damit machen kann

All die Anforderungen, die oben aufgelistet sind, führen zu einer Entscheidung für eine Programmiersprache: Java. Deutlich weniger komfortabel als .NET und sicherlich nicht mehr "State of the Art" ist Java dennoch nach wie vor die beste Möglichkeit plattformunabhängig zu programmieren. Unabhängig vom Betriebssystem kann der Benutzer die gleiche Datei zum Starten vewenden und das Programm besitzt die gleiche Oberfläche, wie sie vom eigenen Computer bekannt ist. Der einzige Nachteil: Wie auch bei .NET muss auf dem Computer ein Framework installiert sein (in diesem Fall das Java Runtime Environment). Das ist aber nicht sonderlich tragisch, denn anders als .NET gibt es Java für so ziemlich jedes Betriebssystem und auf den meisten Computern ist es sowieso installiert. Also alles super und alle Probleme beseitigt?

Nein, leider nicht. Denn wie es der Zufall will, ist die Funktion, die wir in smartSound am meisten benötigen, sehr plattformspezifisch: Das Abspielen von Sounds. Für viele von euch reicht wahrscheinlich das Wissen, dass das für uns ein schwieriger Punkt wird. Für die kleinen und großen Programmierer unter unseren Lesern gibt's aber trotzdem einen Absatz zur Erklärung, was uns da eigentlich erwartet:

Es steht noch nicht abschließend fest, aber vermutlich müssen wir in einer Sprache wie C oder C++ geschriebene, betriebssystemspezifische Programmteile erstellen (DLLs für Windows und entsprechende Shared Libraries bei Unix-Systemen). Diese Programmteile bilden im Wesentlichen eine Ummantelung um eine externe Bibliothek zum Abspielen von Sounds (für die Interessierten: derzeitiger Favorit ist die irrKlang-Engine). Wenn smartSound dann gestartet wird, muss der für das Betriebssystem passende Programmteil in den Java-Teil von smartSound eingebunden werden. Klingt kompliziert? Ist es auch! Deshalb werden wir uns, bevor die Entscheidung endgültig gefällt wird, noch ein wenig nach Alternativen umschauen. Anregungen sind uns natürlich auch immer willkommen.


Das war unser etwas verspäteter, dafür umso ausführlicherer Beitrag zu den Technologien die bei smartSound zum Einsatz kommen sollen. Dankeschön an alle, die es bis hier hin geschafft haben ;-). Der nächste Blogpost "Von Technik und Atmosphäre am Spieltisch" behandelt allgemein das Problem von zu viel Ablenkung beim Rollenspiel - und was smartSound bieten muss, damit man es möglichst "nebenbei" verwenden kann. Das betrifft natürlich insbesondere die Benutzeroberfläche, deswegen wird es davon dann auch schon ein paar Skizzen geben, über die ihr euch dann auslassen könnt.

Bis dahin: Vergesst das Abstimmen nicht! Darüber hinaus freuen wir uns wie immer über alle Anregungen, Diskussionen und Kommentare.

Kommentare:

  1. Vielen Dank für den langen und aufschlussreichen Blogpost!

    Ich möchte noch zu bedenken geben, dass es da noch ein garnicht so unwahrscheinliches Szenario gibt: Java Runtime Environment ist nicht auf dem Zielcomputer installiert und es steht keine Internetverbindung zur Verfügung! Das kann passieren, weil man im Keller beim Kumpel oder auf einer Con spielt. Die "Offline-Nutzung" wäre aber eines der wichtigsten Features...

    Du schreibst, dass die Musikstücke in einem SmartSound-Ordner liegen - dies fände ich aber recht unkomfortabel. Ich habe eine gut sotierte RSP-Musiksammlung, auf die ich gerne direkt mit SmartSound zugreifen würde. Die passt auch unmöglich auf einen USB-Stick. ;-)

    Ach, mir fällt da noch was ein, was Smartsound bieten könnte, um Ablenkung beim Rollenspiel zu vermeiden: Eine Android/iPhone-App. :D

    Bin sehr gespannt auf euer Projekt!

    Just my 2 cents
    Thamor

    AntwortenLöschen
  2. Das mit der JRE ist ein relativ geringes Problem, denn es lässt sich lösen: Wer diesen hohen Grad an Portabilität möchte, der kann ganz einfach sich die JREs für die unterschiedlichen Betriebssysteme herunterladen und mit auf den Stick packen. Von der Größe her ist das auch annehmbar. Wir werden also dann wahrscheinlich eine Anleitung erstellen, die beschreibt, wie man sich das am besten zusammenstellt.

    Gruß,
    André

    AntwortenLöschen