Das Invertika Update im März

Und wieder ist ein Monat vergangen, so das es wieder Zeit ist für das Invertika Update. Bei Invertika handelt es sich um ein freies 2D-MMORPG für Linux, Windows und Mac OS. Auch im März gibt es wieder vieles neues zu berichten. So gibt es in diesem Update zwei neue Quests, einer befindet sich in Selphi Timlet, während der andere sich um die Zwillingshäuser dreht. Auch das Nex sollte beim nächsten Besuch genauer untersucht werden. Hier könnte man eine interessante Gruppe entdecken.

An vielen Maps wurden kleinere und größere Fehler wie zum Beispiel fehlende oder falsch gesetzte Kollisionslayer behoben. Auch das Problem mit dem Fringelayer, welches sich z.B. in Palmen äußerte welche unter dem Spieler gezeichnet wurden, wurde gelöst. Ist der Wüste gibt es nun einer verhexte Höhle welche man erkunden kann.

An manchen Orten wurde die Monsterspawnbereiche angepasst und ausbalanciert. Auch die Verkaufspreise einiger Items wurden angepasst. Allgemein hat sich einiges bei Items getan von denen es nun ein paar mehr für die Spieler gibt. Auf der graphischen Seite wurden viele Tilesets verbessert und erweitert.

Auch skripttechnisch hat sich wieder einiges getan. So wurde in diesem Monat intensiv an der Implementation für „Invertika Poker“ gearbeitet, so das wir hoffen das dieses in das Aprilupdate einfließen kann. Daneben wurde viele Fehler in den Skripten behoben, welche für den einen oder anderen Bug verantwortlich waren. Desweiteren gibt es einige neue Bibliotheken wie zum Beispiel für das Postsystem oder sogenannte Screen Shake Effekte. Desweiteren wurde viele Rechtsschreibfehler behoben. Auch der Entwicklertisch sollte wiedermal besucht werden, da sich dort einiges getan hat.

Der Invertika Editor (unserer All In One Tool) hat einige neue Prüffunktionen spendiert bekommen. Wer jetzt neugierig geworden ist, der kann Invertika unter http://invertika.org besuchen und ausprobieren :)

Weitere Informationen gibt es unter:
http://wiki.invertika.org
http://weltkarte.invertika.org

Mana Mobile (Qt) für Android kompilieren

Da auf Android Anwendungen in Java geschrieben werden, ist das kompilieren von Mana Mobile für Android etwas komplizierter. Schließlich handelt es sich um eine in Qt (und C++) geschriebene Anwendung. Diese Anleitung bezieht sich dabei auf einen Kubuntu 10.10 Rechner. Zuerst muss das entsprechende Qt SDK für Android unter http://sourceforge.net/projects/necessitas/files/ heruntergeladen werden.

Nach dem Download muss der Installer mittels:

chmod +x necessitas-0.1.1-Linux-x86-Install

ausführbar gemacht werden. Dann kann der Installer gestartet werden. Installiert werden sollte das ganze in den Ordner /opt/necessitas/ da dieser vom Entwicklerteam von Necessitas intensiv getestet wurde.

Nun müssen noch das Android SDK sowie das Android NDK installiert werden. Das SDK kann dabei unter http://developer.android.com/sdk/index.html bezogen werden. Nach dem Download des selben wird das SDK entpackt und an eine gewünschte Stelle gelegt. Anschließend geht man dort in den Ordner tools und führt im Terminal

./android update sdk

aus. Dadurch wird das SDK geupdatet. Nun muss nur noch das NDK (zu finden unter http://developer.android.com/sdk/ndk/index.html) herunter geladen werden und an gewünschter Stelle entpackt werden. Bei beiden Developer Kits ist dabei zu achten die jeweils richtige Version (in diesem Fall die Linux Version) herunterzuladen.

Nun kann der Qt Creator for Android gestartet werden. Der Installer hat dazu im Desktop Ordner (im Home Verzeichnis) ein Shortcut angelegt. Nach dem Start der IDE öffnet man die Optionen (Tools -> Options) und geht dort auf den Qt4 Tab. Dort wird bei der Android für QT Version der Pfad für qmake eingetragen (/opt/necessitas/Android/“qtversion“/bin/qmake). Dieser QT Version muss dann noch ein Name zugewiesen werden z.B. android-lighthouse-4.8.0.

Als nächstes wechselt man zu dem Android Tab. Dort wird dann der Pfad zum Android SDK (Minimum android-sdk_r09) und zum Android NDK (Minimum android-ndk_r5) gesetzt. Nun muss der korrekte Toolchain gesetzt werden, in diesem Fall arm-linux-androideabi-4.4.3. Als letztes muss der Pfad für ant gesetzt werden welcher meist /usr/bin/ant sein sollte.

Nun geht man nochmal auf den Qt4 Tab und klickt dort auf Build all, damit alle wichtigen Tools gebaut werden. Anschließend kann der Dialog mit einem Klick auf Apply & OK verlassen werden.

Nun kann es an die Einrichtung von Mana Mobile gehen. Im ersten Schritt sollte das Projekt aus den SVN ausgecheckt werden. Dies funktioniert mittels:

svn checkout https://invertika.googlecode.com/svn/trunk/client-mobile/ invertika

In diesem Projekt befindet sich eine .pro Datei welche mit dem Qt Creator geöffnet werden kann. Beim öffnen fragt der Qt Creator welche Buildziele man compieren möchte. Hier wählt man die Androidvarianten mit an und bestätigt das ganze mit dem Finish Button. Dann kann man das ganze testweise mit dem Build All Button kompilieren. Dabei dürfte es an zwei Stellen zu Problemen kommen. Die erste Stelle ist die Funktion setOrientation (in der Datei qmlapplicationviewer.cpp):

    case ScreenOrientationLockPortrait:
        //attribute = Qt::WA_LockPortraitOrientation;
        break;
    case ScreenOrientationLockLandscape:
        //attribute = Qt::WA_LockLandscapeOrientation;
        break;
    default:
    case ScreenOrientationAuto:
        //attribute = Qt::WA_AutoOrientation;
        break;

Dort müssen die Zuweisungen des Attributes auskommentiert werden. Anschließend dürfte ein Fehler in der Bibliothek enet (enet_address_get_host in der Datei unix.c) auftreten:

    #if defined(linux) || defined(__linux) || defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
        //gethostbyaddr_r ((char *) & in, sizeof (struct in_addr), AF_INET, & hostData, buffer, sizeof (buffer), & hostEntry, & errnum);
    #else
        hostEntry = gethostbyaddr_r ((char *) & in, sizeof (struct in_addr), AF_INET, & hostData, buffer, sizeof (buffer), & errnum);
    #endif
    #else
        in.s_addr = address -> host;

        hostEntry = gethostbyaddr ((char *) & in, sizeof (struct in_addr), AF_INET);
    #endif

Hier wird dann der Funktionsaufruf gethostbyaddr auskommentiert. Danach sollte das ganz kompilieren. Wenn man dann auf den Run Button drückt liefert ant noch eine Fehlermeldung:

BUILD FAILED
/home//android-sdk-linux_x86/tools/ant/main_rules.xml:306: null returned: 1

Total time: 0 seconds
Packaging Error: Command ‚/usr/bin/ant debug‘ failed.Exit code: 1
Error while building project manamobile (target: Android)
When executing build step ‚Packaging for Android‘

Hier hilft es die minimale SDK Version von android-3 auf android-4 anzuheben. Dazu geht man auf den Tab Projects und dort auf die Run Konfiguration des Androidprojektes. Dort kann man diese Einstellungen dann vornehmen.

Da die OpenGL Bindings für die Android Qt Version noch nicht lauffähig sind muss in der Manamobile.pro die Zeile contains(QT_CONFIG, opengl): QT += opengl auskommentiert werden:

    QT += network
    #contains(QT_CONFIG, opengl): QT += opengl

In der main.cpp müssen folgende Zeilen auskommentiert werden:

    #ifndef QT_NO_OPENGL
    //#include 
    #endif
 
    #ifndef QT_NO_OPENGL
       //viewer.setViewport(new QGLWidget);
    #endif

Außerdem muss noch die Zeile:

    viewer.setMainQmlFile(QLatin1String("qml/main/mobile.qml"));

in

    viewer.setMainQmlFile(QLatin1String("/sdcard/qml/main/mobile.qml"));

abgeändert werden. Der qml Ordner sollte dem entsprechend dann auch auf der SD Karte liegen. Eventuell kann es zu Problemen kommen, wenn bei der Anwendung die falschen bzw. ungenügende Rechte im Manifest gesetzt sind. Normalerweise werden für Mana Mobile folgende Rechte benötigt:

– android.permission.INTERNET
– android.permission.WRITE_EXTERNAL_STORAGE

Ein anderes Problem könnte auftreten wenn nicht alle benötigten Qt Bibliotheken in den Projekteinstellungen aktiviert sind. Dazu geht man in die Projekteigenschaften unter Android -> Run -> Package Configuration -> Libraries und klickt dort auf den Button Read informations from application. Nun muss aus dem Market nur noch Ministro (stellt die OpenGL Bindings unter Android bereit) heruntergeladen werden. Danach sollte Manamobile auf einem Androidgerät laufen. Dabei kommt es im Moment noch zu Einschränkungen, so werden Touchevents noch nicht richtig verarbeitet.

Das Invertika Update im Februar

Entsprechend der Updatephilosophie von Invertika gibt es heute das nächste Update, wie an jedem letzten Sonntag des Monats. Bei Invertika handelt es sich um ein freies Open Source 2D-MMORPG welches unter Linux, Windows und Mac OS X läuft. In diesem Update gibt es einige neue Dinge. So sind nun alle Außenweltkarten mit Musik ausgestattet. Weiterhin wurden viele Karten verbessert und erweitert, so wurde z.B. mit der Stadt Alexia angefangen und auch die ersten Steine des Lambert Institutes wurden gemappt.

Auch gibt es wieder einige neue Quests, wie z.B. der zweite Zwillingsquest oder der Waffenschmied in Roststock. In der Welt gibt es auch wieder ein paar neue NPCs die an den verschiedensten Orten zu finden sind. So gibt es nun endlich auch an anderen Orten als in Selphi Timlet, Banker. Damit kann man nun auch außerhalb von Selphi Timlet sein Geld verwalten.

Neue Items sind ebenso zu finden wie einige einige Erweiterungen der den Maps zu Grunde liegenden Tilesets. Daneben wurden in diesem Update eine Menge Rechtschreibfehler behoben. Auch ein paar neue Musikstück haben den Weg in das Invertika Projekt gefunden. Nun gibt rund um Selphi Timlet mehr Gelegenheiten sich mit Monstern zu messen da diese nun zahlreicher vorkommen sollten, so auch Orten die bisher durch die Abwesenheit solcher Monster glänzten. Die Monster wurde in diesem Update außerdem ausbalanciert, so das sie nun realistischer wirken.

Unter Haube wurden einige neue Lua Bibliotheken geschrieben welche in Zukunft sicherlich Anwendung finden werden. Der Invertika Editor erzeugt nun auch eine Lua Dokumentation für die Wiki. Außerdem wurden einige Fehler im Wikiparser des Invertika Editors behoben so, das die betreffenden Werte nun korrekt im Wiki stehen.

Wer jetzt neugierig geworden ist und Invertika ausprobieren möchte der sollte unsere Webseite unter http://invertika.org besuchen. Für Arch Linux, Ubuntu und Windows sind dabei auch fertige Pakete verfügbar. Viel Spaß beim ausprobieren :)

Das Invertika Update für den Januar

Nach einem Monat (was nun in etwa einem Update Rhythmus entspricht) gibt es das nächste Update für Invertika. In diesem Update gibt es einige neue Quests, welche vor allem im Zusammenhang mit der Arena in Selphi Timlet interessant sind. Daneben sind auch einige neue NPCs hinzugekommen wie z.B. der Frisör in Selphi Timlet. Auch bei den Items hat sich einiges getan. So ist es nun möglich sich Hosen und Shirts in verschiedenen Farben zu kaufen, was beim Kleidungsstil etwas mehr Auswahl lässt.

Auch außerhalb der Stadt Selphi Timlet gibt es nun einen Quest. In der Wüste wartet einer der Zwillinge auf den Spieler. Zuwachs gab es in diesem Monat auch. So ist Ablu zum Invertika Team gestoßen welcher eine Menge Quests in das Spiel gebracht hat.

Wer Invertika nicht kennt, dabei handelt es sich um ein freies Open Source MMORPG. Zu finden ist das offizielle Projekt dabei unter http://invertika.org. Viel Spaß beim ausprobieren :)

Tiled 0.6 erschienen

Heute ist die neue Version 0.6 von Tiled erschienen. Dabei handelt es sich um einen Open Source Mapeditor welcher auf Basis von Tilesets arbeitet. Dieser Mapeditor wird für viele Projekte benutzt wie z.B. Invertika.

Es sind in der neuen Version eine Menge Features hinzugekommen, wie z.B. das Öffnen von mehreren Karten in einer Instanz von Tiled. Ein sehr interessantes Feature ist das sogenannte Automapping. Dabei wird eine Regeldatei erstellt und mit dieser kann Tiled anhand eines vorgegebenen Umrisses Maps erstellen z.B. eine Höhle. Dies sollte eine Menge Arbeit sparen, da man sich nun auf die wichtigen Dinge konzentrieren kann.

Weitere Features sind die OpenGL beschleunigte Anzeige, sowie einige neue Werkzeuge. Bezogen werden kann der Editor unter http://www.mapeditor.org/.

Weitere Informationen gibt es unter:
http://wiki.themanaworld.org/index.php/User:Argul/automapping
http://sourceforge.net/apps/mediawiki/tiled/index.php?title=Main_Page