Invertika – ein Open-Source-MMORPG

Dieser von mir geschriebene Artikel erschien zuerst in der Dezemberausgabe von freiesMagazin. Wer ihn dort lesen möchte besuche die Seite unter http://www.freiesmagazin.de/freiesMagazin-2010-12.


Die Open-Source-Community hat eine Menge auf die Beine gestellt; so ist mittlerweile auch die Vielfalt der angebotenen Spiele sehr beachtlich. Aber speziell im Bereich MMORPG hat man das Gefühl, dass sich dort eine Lücke auftut. In diese Lücke möchte Invertika vorstoßen. Es handelt sich dabei um ein deutschsprachiges MMORPG, welches auf Linux, Windows und Mac OS X läuft, wobei die Unterstützung für letzteres im Moment, mangels Maintainer, ein wenig schleift.

Geschichte

Gegründet im Jahr 2008, haben sich mittlerweile einige Entwickler und Helfer rund um das Projekt versammelt, welche Skripte, Maps oder Grafiken erstellen, Fehler suchen und vieles mehr. Das Spiel selbst baut dabei auf der von Manasource entwickelten Technik auf. Früher war dieses Projekt ein Teil von The Mana World. Das Projekt wurde später aber ausgegliedert und sich auf die Entwicklung eines flexiblen Frameworks für MMORPGs konzentriert. Da nun nicht mehr für einen offiziellen Server gearbeitet wurde, ist das ganze Projekt auch sehr flexibel geworden.

Während im ersten Jahr hauptsächlich die Welt sowie einige grundsätzliche Dinge entwickelt und gebaut wurden, wird in letzter Zeit vermehrt auf die Entwicklung der Skripte geachtet, um dem Spieler mehr Quests und somit Interaktion im Spiel zu bieten.

Zu Besuch in Roststock

Die Welt, welche früher doch stark von einer gewissen Rechteckigkeit gekennzeichnet war, besteht nun aus runden und organisch gewachsenen Teilen. Im Gegensatz zu anderen auf Manasource basierenden Spielen ist die Welt bei Invertika riesig, was sich in den Dimensionen bemerkbar macht. Bedingt dadurch dauerte es natürlich etwas, bis diese Welt von den Projektmitgliedern ausgefüllt wurde.

Nachdem die erste Zeit der offizielle Spielserver ein vServer war (bei dem die Performance natürlich zu wünschen übrig ließ), läuft der Server seit einiger Zeit auf einem von der Firma Manitu (deren Inhaber sicherlich vielen als Hostblogger bekannt ist) gesponserten Server. (Den Manitu kann man im übrigen auch im Spiel finden.)

Erste Schritte im Spiel

Während es für Windows, Ubuntu und Arch Linux zum Spiel Invertika ähnlich lautende Installationspakete gibt – einen Überblick stellt das Invertika-Wiki bereit – muss der Client für andere Systeme kompiliert werden. Wie das funktioniert, steht im entsprechenden Wiki-Eintrag.

Nach der Installation des Clients kann man sich auf dem offiziellen Invertika-Server (server.invertika.org) registrieren und anmelden, um sich dann einen Charakter zu erstellen. Dies geschieht alles direkt im Client. Natürlich ist das Spielen von Invertika völlig kostenfrei und wird es auch immer bleiben.

Wie üblich in einem MMORPG, ist das Ziel des Spieles bzw. des Spielers nicht definiert. Der Spieler kann die Quests lösen, welche das Spiel für ihn bereithält oder einfach mit anderen Spielern sozial interagieren. Ein Haupthandlungsstrang, der sich wie ein roter Faden durch das Spiel zieht, ist momentan nicht vorhanden. Im großen und ganzen geht es um die Abenteuer in der Welt von Invertika.

Nachdem man sich dann mit seinem neuen Charakter angemeldet hat, ist das erste, was man im Spiel sieht, das sogenannte Vacare, bei welchem es sich um eine Tutorial-Insel handelt, auf der der Spieler einiges zum Spiel erklärt bekommt. Wenn man das Vacare bewältigt hat, geht das eigentliche Spiel los: Man trifft in einer der größten Städte in Amoneus ein. In dieser Stadt, welche den Namen Selphi Timlet trägt, gibt es die ersten Aufgaben und NPCs für den Spieler.

So kann man zum Beispiel erste Quests lösen, Monster bekämpfen, handeln oder die Bank besuchen, auf der man sein Geld anlegen kann. Für das Geld, welches auf der Bank liegt, bekommt der Spieler Zinsen. Die Bank hat dabei auch einen ganz praktischen Zweck. So verliert man bei jedem Tod einen größeren Teil seines Bargeldes. Geld, welches auf der Bank liegt, bleibt aber von diesem Schicksal verschont.

Wenn man gestorben ist, taucht man im Reich des Toten, dem Nex, wieder auf. Dort kann man einige Zeit verbringen und anschließend wieder in das Reich der Lebenden wechseln. Dabei taucht man an der letzten Netheksäule auf, bei der man einen Segen empfangen hat.

Technik

Natürlich sind MMORPGs ein bisschen anders zu betrachten, als andere Open-Source-Software. So muss nicht nur ein Projektserver bereitgestellt werden, auf welchem die Kompilate und Dokumentation zum Download bereitliegen, sondern sich auch um die Infrastruktur für das Spiel gekümmert werden, sonst läuft bei einem MMORPG natürlich nichts. Ein Single-Player-Modus ist ja per se nicht vorgesehen.

Während Spiele wie The Mana World oder The Alternate World noch auf veraltete Systeme wie Ragnarok Serveremulatoren (eAthena) aufsetzen, benutzt Invertika seit der Gründung den modernen und in der Entwicklung befindlichen manaserv-Server vom Manasource-Projekt. Damit dürfte Invertika der größte manaserv-Server im Beta-/Produktivbetrieb sein.

Mit der Entwicklung des Spiels hat sich auch die Technik (mana, manaserv) weiterentwickelt, sodass zum Beispiel häufige Serverabstürze mittlerweile der Vergangenheit angehören. Ab und an reicht auch das Invertika-Team ein paar Patches und Bugreports zum Manasource-Projekt ein und beteiligt sich so auch an der Entwicklung.

Im Laufe der Zeit wurden auch viele Dinge speziell für Invertika entwickelt wie zum Beispiel die AJAX-Weltkarte oder der Invertika-Editor, bei dem es sich um ein multifunktionales Werkzeug für die Entwicklung von Invertika handelt.

Besonderheiten

Im Gegensatz zu einigen anderen MMORPGs gibt es bei Invertika einige Besonderheiten. So gibt es in Invertika keine Regeln, was die Spieler zu tun oder zu lassen haben. Es gibt zwar ein paar Empfehlungen, allerdings sind diese nicht bindend. Bedingt dadurch gibt es auch keine Gamemaster (wenn man mal von einem Standardgamemaster absieht), welche Regeln durchsetzen.

Natürlich wäre es nervig, ständig von jemandem verfolgt oder zugespamt zu werden. Aber auch für dieses Problem gibt es eine Lösung. Auf den Invertika-Servern ist Player-versus-Player (PvP) grundsätzlich aktiviert. Davon gibt es auch nur zwei Ausnahmen, nämlich auf der Tutorial-Insel (Vacare) und im Reich des Toten (Nex). So können die Spieler Recht und Ordnung in die eigene Hand nehmen.

Projekt und Entwicklung

Im Laufe der Jahre kann einem das Projekt ziemlich ans Herz wachsen. So ist es immer wieder erfreulich zu sehen, wenn neue Mitstreiter dazustoßen und dem Projekt bei seiner Verwirklichung helfen wollen. Was leider bei einem Open-Source-Projekt nicht ausbleibt, ist die hohe Personalfluktuation. Vom einen auf den anderen Moment hat man plötzlich einen Mitarbeiter weniger, was sicherlich dem Wesen von Open-Source-Projekten geschuldet ist.

Und so freut sich das Invertika-Projekt über jeden neuen Entwickler, Mapper, Grafiker, Musiker et cetera. Wer jetzt neugierig geworden ist, der kann im IRC-Channel des Projektes im Freenode-Netzwerk unter #invertika oder im Forum vorbeischauen.

Was man bei Invertika nicht vergessen darf, ist, dass das gesamte Spiel sich in der Entwicklung befindet und sicherlich noch einiges an Feinschliff benötigt. So gibt es hier und dort immer wieder Fehler und Probleme. Aber natürlich versuchen die Projekt-Mitglieder, Invertika kontinuierlich zu verbessern.

Die Invertika-Webseite bietet neben dem Download und einigen anderen Dingen auch ein Forum, einen Bugtracker sowie ein Wiki mit allen Informationen rund um das Spiel und die Welt an. Aktuelle Informationen rund um Invertika und deren Welt findet man dabei im Invertika-Planet. Viel Spaß beim Ausprobieren!

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/MMORPG
http://invertika.org/
http://manasource.org/
http://themanaworld.org/
http://manitu.de/
http://hostblogger.de/

Invertika im Magazin freiesMagazin

Heute kam die neue Ausgabe des Magazins freiesMagazin heraus. In diesem gibt es auch einen Artikel über Invertika. Bei Invertika handelt es sich um ein freies MMORPG welches auf verschiedenen Plattformen (Linux, Windows, Mac OS) läuft.

Wer nur den Artikel lesen möchte kann diesen hier herunterladen. Das ganze Magazin gibt es unter http://www.freiesmagazin.de/freiesMagazin-2010-12. Viel Spaß beim lesen :)

Weitere Informationen gibt es unter:
http://invertika.org
http://www.freiesmagazin.de

Diaspora Pod unter Ubuntu aufsetzen

Bei Diaspora handelt es sich um ein dezentrales soziales Netzwerk welches in sogenannten Pods organisiert ist. Jeder kann einen solchen Pod aufsetzen. In diesem Artikel soll es darum gehen einen solchen Pod auf einem Ubuntu 10.04 LTS (minimal) Server aufzusetzen. Wichtig an dem Polgenen Skript ist, das die universe Quellen für Ubuntu freigeschaltet sind. Dazu muss es in der /etc/apt/sources.list so aussehen:

deb http://archive.ubuntu.com/ubuntu lucid main
deb http://security.ubuntu.com/ubuntu lucid-security main

deb http://archive.ubuntu.com/ubuntu lucid universe
deb http://security.ubuntu.com/ubuntu lucid-security universe

Anschließend werden die Quellen mittels apt-get update aktualisiert. Das Skript stammt von der Seite http://www.h3manth.com/content/setup-diaspora-ubuntu und war auch schon in den offiziellen Quellen von Diaspora. Dort ist es allerdings nicht mehr zu finden:

#!/bin/bash
# Author :
# Site : www.h3manth.com
# This script helps to setup diaspora.

# Set extented globbing
shopt -s extglob

# Check if the user has sudo privilages
sudo -v >/dev/null 2>&1 ||
{ echo $(whoami) has no sudo privileges ; exit 1; }

# Check if universal repository is enabled
grep -i universe /etc/apt/sources.list > /dev/null ||
{ echo „Please enable universe repository“ ; exit 1 ; }

# Install build tools
echo „Installing build tools..“
sudo apt-get -y –no-install-recommends install \
build-essential libxslt1.1 libxslt1-dev libxml2
echo „..Done installing build tools“

# Install Ruby 1.8.7
echo „Installing ruby-full Ruby 1.8.7..“
sudo apt-get -y –no-install-recommends install ruby-full
echo „..Done installing Ruby“

# Install Rake
echo „Installing rake..“
sudo apt-get -y –no-install-recommends install rake
echo „..Done installing rake“

# Get the current release and install mongodb
lsb=$(lsb_release -rs)
ver=${lsb//.+(0)/.}
repo=“deb http://downloads.mongodb.org/distros/ubuntu ${ver} 10gen“
echo „Setting up MongoDB..“
echo „.“
echo ${repo} | sudo tee -a /etc/apt/sources.list
echo „.“
echo „Fetching keys..“
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv 7F0CEB10
echo „.“
sudo apt-get update
echo „.“
sudo apt-get -y –no-install-recommends install mongodb-stable
echo „Done installing monngodb-stable..“

# Install imagemagick
echo „Installing imagemagick..“
sudo apt-get -y –no-install-recommends install imagemagick libmagick9-dev
echo „Installed imagemagick..“

# Install git-core
echo „Installing git-core..“
sudo apt-get -y –no-install-recommends install git-core
echo „Installed git-core..“

# Setting up ruby gems
echo „Fetching and installing ruby gems..“
(
echo „.“
cd /tmp
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
echo „.“
tar -xf rubygems-1.3.7.tgz
echo „.“
cd rubygems-1.3.7
echo „.“
sudo ruby setup.rb
echo „.“
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
echo „.“
)
echo „Done installing the gems..“

# Install blunder
echo „Installing blunder..“
sudo gem install bundler
echo „Installed blunder..“

# Take a clone of Diaspora
(
echo „Clone diaspora source..“
git clone http://github.com/diaspora/diaspora.git
echo „Cloned the source..“
# Install extra gems
cd diaspora
echo „Installing more gems..“
sudo bundle install
echo „Installed.“

# Install DB setup
echo „Seting up DB..“
rake db:seed:tom
echo „DB ready. Login -> tom and password -> evankorth.\
More details ./diaspora/db/seeds/tom.rb.“

# Run appserver
echo „Starting server“
bundle exec thin start
)

Nun kann man sich einen Account registrieren und Diaspora testen. Zu finden ist Diaspora dabei unter Port 3000 z.B. http://example.com:3000. Hierbei sollte man beachten das es sich wirklich nur um eine Testumgebung handelt, welche nicht für den Produktiveinsatz gedacht ist.

Weitere Informationen gibt es unter:
http://diasporatest.com/index.php/Diaspora_on_Ubuntu
http://www.h3manth.com/content/setup-diaspora-ubuntu
https://github.com/diaspora/diaspora/wiki/Installing-and-Running-Diaspora
http://t3n.de/howto/social-network-software-diaspora-unter-ubuntu-installieren
http://www.circlingthesun.co.za/2010/09/18/installing-diaspora-preview-on-ubuntu-10-04/

SD Karte mittels ROM Manager partionieren

Mit CyanogenMod (die älteren Versionen < 6, für die neueren wird dies nicht mehr unterstützt) ist es möglich zur Speichererweiterung Teile des Systemes auf die SD karte zu packen. Dazu muss eine ext Partion vorhanden sein. Diese kann man leicht mittels der App ROM Manager erstellen. Dazu installiert man diesen (wobei er bei CyanogenMod bereits vorhanden ist) und geht im Menü auf den Punkt SD Karte partionieren. Dort wählt man 512 MB für die Partion aus sowie eine Swapgröße von 0 MB.

Nach einer Sicherheitsabfrage startet der ROM Manager in das ClockwordMod Recovery um die Partionierung vorzunehmen. Sollte dort folgende Meldung stehen:

ClockworkMod Recovery v2.5.0.7
Finding update package
Finding update package
update package…
E:failed to seek in /cache/update.zip (Invalid argument)
I:verify_file returned 1
E:signature verification failed
Installation aborted.

so hilft es unter Advanced den Punkt Reboot Recovery auszuwählen. Danach partioniert er die Karte beim Neustart des Recoveries. Anschließend kann das App2SD Feature im CyanogenMod aktiviert werden.

Weitere Informationen gibt es unter:
http://wiki.cyanogenmod.com/index.php?title=Apps2SD

@secuflag im HTC Desire (GSM) abschalten (S-OFF)

In neueren HTC Geräten gibt es ein Flag (@secuflag) welches festlegt ob die NAND Partion (auf welcher das System gespeichert ist) nur lesbar ist. Eine Methode dies zu deaktivieren ist es Unrevoked Forever (zu finden unter http://unrevoked.com/) zu benutzen welcher aber leider nicht mit den GSM Modellen des HTC Desire zusammenarbeitet.

Und genau hier kommt AlphaRev (http://alpharev.nl/) ins Spiel. Damit ist es möglich das ganze rückgängig zu machen. Möglich wird dies indem ein neues HBOOT Image geflasht wird welches dieses Flag einfach ignoriert.

Bei diesem Vorgang sollte man allerdings beachten, das wenn etwas schief geht, das Gerät unweigerlich gebrickt ist und nur noch als modischer Türstopper dienen kann. Sollte es während des Vorganges Probleme geben so sollte man alles so lassen wie es ist und den Channel #alpharev im Freenode IRC besuchen und dort auf Hilfe hoffen ;)

Im ersten Schritt muss von der Seite http://alpharev.nl/ das AlphaRev 1.5 HBOOT reflash utility heruntergeladen werden. Anschließend brennt man die ISO auf eine CD und bootet von dieser CD.

Nach dem gebootet wurde, wird man noch einmal informiert was AlphaRev mit dem Gerät anstellt. Danach drückt man eine Taste, aktiviert auf dem Gerät USB Debugging und schließt das Gerät an. Es ist im übrigen wichtig das das Gerät gerootet ist. Danach startet der Prozess der einige Minuten dauertet. Hierbei sollte man nicht eingreifen sondern einfach abwarten. Nach dem Prozess wird der @secuflag ignoriert. Glückwunsch :)

AlphaRev flasht auch das Splashimage beim Start. Möchte man dieses wieder zurückflashen lädt man sich das Original HTC Bild von der AlphaRev Seite herunter und flasht es.

Dazu wird das Gerät im Fastboot Modus (Back+Power) gestartet. Danach sollte das Gerät per USB mit dem Rechner verbunden werden. Nun öffnet man ein Terminal und gibt dort ein:

sudo ./fastboot flash splash1 desire_stock_splash1.img

Damit werden die Splashscreens geflasht und (fast) alles ist wieder beim alten.

Weitere Informationen gibt es unter:
http://forum.xda-developers.com/showthread.php?t=794314
http://www.hiphip-array.de/android/howto-htc-desire-gsm-s-off/
http://www.brutzelstube.de/2010/s-off-fur-das-htc-desire-ubersetzung-des-guides/