I recently wrote a short article on my face detection and tracking endeavors on the Maemo platform for the blog HardWorkingBee.com. Basically, it’s a summary of my two previous two blog posts here (1, 2). As the blog is only available in German (currently), the article is also written in German.
Im Rahmen meiner Diplomarbeit “Face Detection und Tracking für Computerspiele auf mobilen Endgeräten” habe ich mich damit beschäftigt, Gesichter in Bildern zu detektieren. Das hört sich erst mal nicht spannend an, ermöglicht aber interessante Anwendungen.
Als Plattform kommt das Nokia N900 zum Einsatz. Eine wichtige Voraussetzung ist eine Kamera auf der Vorderseite des Geräts, welche das N900 besitzt. In den durch die Kamera aufgenommenen Bildern wird jeweils die Position des Gesichts des Benutzers bestimmt. So kann das Gerät die Position des Benutzers relativ zum Gerät herausfinden und diese Position kann als Eingabe benutzt werden.
Als erste Anwendung habe ich ein einfaches Spiel mit dem Namen BurgerFace entwickelt. Das Ziel des Spiels ist, bestimmte Objekte (Burger) einzusammeln und anderen auszuweichen (Messer). Um das zu erreichen, muss der Spieler seinen Kopf relativ zum N900 bewegen. Das kann durch Bewegen des Kopfes selbst oder durch Bewegen des Geräts umgesetzt werden. Trotz dieses einfachen Spielprinzips haben die meisten Spieler sehr viel Spaß gehabt. Da das Spiel mit den eigenen Bewegungen gesteuert wird, ist es sehr intuitiv. Es ist nicht nötig, dass man vorher irgendwelche Tastenbelegungen erlernt.
Die zweite Anwendung ist ein einfacher, aber sehr eindrucksvoller 3D-Effekt. Er erweckt beim Benutzer den Eindruck, dass der Bildschirm des Geräts eine gewissen Tiefe hat. Unter bestimmten Umständen können Gegenstände auch so erscheinen, als würden sie aus dem Bildschirm herausragen. Der Bildschirm wirkt wie ein Fenster in eine virtuelle Welt.
Das Prinzip ist, dass die Position der Kamera, durch die die 3D-Szene aufgenommen wird, und die Projektion entsprechend der Position des Betrachters relativ zum Gerät angepasst werden. Setzt man das richtig um, wird die Sicht auf die 3D-Szene immer gerade so angepasst, wie sich auch die Sicht durch ein echtes Fenster ändern würde.
Abgesehen von den beiden vorgestellten Demos gibt es noch viele andere spannende Anwendungen. Ich habe auch bereits einige interessante Vorschläge bekommen. Derzeit überlege ich, was ich als nächstes mache.
Building on the algorithms I’ve implemented as part of my Diplom Thesis, I’ve now implemented a demo of a 3D view on the Nokia N900. The idea is to adjust the camera through which the 3D scene is viewed to the user’s head position. The screen then appears to be a window into the virtual world.
The 3D scene is easily constructed on the N900 using OpenGL ES 2.0. A small box and a few foreground objects are sufficient. In order to determine the head position I use the face detection and tracking code I’ve recently implemented (and already used for a little tech demo). The two things are easily put together and the result is this:
The most difficult thing is to get the perspective right as there is a lot of conflicting information out there. Johnny Lee used the Direct3D function PerspectiveOffCenterLH, which is obviously not available in OpenGL. The best hint I found is here. There projection matrix M should look like this:
Where n is the distance to the near clipping plane, f the distance to the far clipping plane, t and b define the horizontal clipping planes, l and r define the vertical clipping planes.
I think the effect is pretty cool and I’m currently contemplating making a game with it.
Sorry, in German only as Weltensaga is currently also only available in German.
Seit ca. 1:20 ist der Weltensaga-Server nicht mehr erreichbar. Woran es liegt, kann ich noch nicht sagen. Da er überhaupt nicht mehr reagiert – auch nicht auf Ping-Versuche – ist entweder seine Internetverbindung unterbrochen oder der Server an sich ist komplett abgestürzt. Erste Rettungsversuche in Form eines Neustarts über das Webinterface waren weder mit der normalen Konfiguration noch mit einer Rettungskonfiguration möglich.
Zur Zeit kann ich nicht mehr machen. Heute früh/Vormittag müssen wir dann weiter schauen, wo das Problem liegt.
Update 2:15: Die Hotline von Strato ist um diese Uhrzeit (natürlich) nicht besetzt. Ich habe denen eine Mail geschickt.
Update 11:54: Jetzt war der Server ansprechbar und anscheinend in der Rettungskonfiguration gebootet. Ich versuche, ihn in der normalen Konfiguration noch einmal neuzustarten.
Update 12:08: Server scheint zu laufen. Werde jetzt überprüfen, ob es Schäden gibt und dann ggf. Weltensaga einfach wieterlaufen lassen.
Update 12:18: Weltensaga läuft wieder. Ich konnte keine Probleme feststellen. Wenn ihr was findet, sagt mir Bescheid. Viel Spaß!
I’m currently getting my feet wet in Maemo 5 development as I’ll soon be the proud owner of a Nokia N900 (maybe already tomorrow? Go, Amazon, go!). As an avid user of Arch Linux, I try to keep my installation current by running pacman -Syu every now and then. That sometimes leads to software that is too new…
I was trying to install ESbox, an Eclipse plugin for Maemo development, but it wouldn’t work as my Eclipse version 3.5.1 was too new. I then tried to install an older version of Eclipse, but that wouldn’t run because my version of XULRunner was too new then. The error you then find in workspace/.metadata/.log look like this:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
!ENTRY org.eclipse.osgi 4 0 2009-12-06 19:37:24.648
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: XPCOM error -2147467262
at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:1597)
at org.eclipse.swt.browser.Mozilla.setText(Mozilla.java:1820)
at org.eclipse.swt.browser.Browser.setText(Browser.java:737)
at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.generateContentForPage(BrowserIntroPartImplementation.java:252)
at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.dynamicStandbyStateChanged(BrowserIntroPartImplementation.java:451)
at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.doStandbyStateChanged(BrowserIntroPartImplementation.java:658)
at org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation.standbyStateChanged(AbstractIntroPartImplementation.java:249)
at org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation.standbyStateChanged(IntroPartPresentation.java:443)
at org.eclipse.ui.intro.config.CustomizableIntroPart.standbyStateChanged(CustomizableIntroPart.java:266)
at org.eclipse.ui.internal.ViewIntroAdapterPart$2.run(ViewIntroAdapterPart.java:74)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
[...]
By the way, grabbing the complete Eclipse install from the ESbox website doesn’t help when running a 64-bit system.
So here’s my way of getting it running anyway without harming the rest of my system:
Sorry, in German only as Weltensaga is currently also only available in German.
Vor kurzem bin auf einen Test von Weltensaga bei BrowserSpielWelt gestoßen. Auch wenn Weltensaga dort nicht in den höchsten Tönen gelobt wird, gefällt der Test mir sehr gut, da man merkt, dass der Autor sich tatsächlich mit dem Spiel beschäftigt hat. Außerdem werden viele gute Seiten von Weltensaga hervorgehoben.
Die Einleitung kommt recht negativ daher:
[es] wird einem ein Konglomerat an Zutaten geboten, die anfangs hoffnungslos überfordern
Im Fazit wird das dann aber relativiert:
Weltensaga ist etwas konfus angelegt, wenn auch spielbar, und kann das Ruder auf den höher gelegenen Ebenen – incl. den Flottenverbandskämpfen – noch herumreißen [...]
Welche Forschung sich auf das Bevölkerungswachstum und -verhalten oder den Gebäudetechtree auswirkt, kann anfangs nur erahnt werden.
Dabei hätte dieser wohl gerade am Anfang weitergeholfen. Zugegebenermaßen ist die Grafik etwas im Wiki versteckt.
Besonders gefällt mit der Absatz über das Flottensystem:
Die Flottenaussendung und -produktion ist mit einigen Voreinstellungen verbunden, zum Beispiel der Menge, die von einem Planeten gefördert und geladen wird, und kann stets über die detaillierte Ansicht aufgerufen und kontrolliert werden. Die Möglichkeiten der Befehlserteilung sind mit 15 Einstellungen äußerst vielfältig; vom “Rückzug” bis hin zum “Wurmloch erschaffen” oder der planetarischen “Invasion” sind einige interessante Ideen umgesetzt worden.
Dieses Update führt nur eine kleine Veränderung im Bezug auf die Verwarnungen im Spiel ein.
Es ist jetzt nicht mehr so, dass man aufgrund von drei Verwarnungen automatisch gesperrt wird. Man kann also beliebig viele Verwarnungen anhäufen. Dafür können die Helfer (und ich natürlich) aber an jede Verwarnung eine kurze Sperre von einigen Stunden anhängen. Die automatischen Multi-Verwarnungen beinhalten keine Sperre, werden aber von den Helfern je nach Sachlage in kurze Sperren umgewandelt.
In dem Sinne: Denkt ans Voten und viel Spaß weiterhin!
Dieses mal hat es wirklich lange gedauert, bis die neue Runde gestartet wurde. Deswegen könnt ihr es bestimmt genauso wenig abwarten wie ich, dass es endlich weiter geht.
Zum Start dieser Runde gibt es einige Neuerungen:
Level 1 ist stark verkürzt worden, indem die Forschungen und Sondergebäude weniger Zeit benötigen. Dadurch kommt man schneller in Level 2 (und zu den Schiffen) und muss sich nicht so lange in Level 1 langweilen.
Außerdem gibt es eine Grafik davon, wie die Abhängigkeiten in Level 1 aussehen. Ja, das ist ein Premiere, quasi der erste Techtree für WELTENSAGA. Die Grafik ist hier im Wiki zu finden. (Besonders schön ist der Tree vielleicht nicht. Wenn jemand einen schöneren davon macht, könnt er ihn mir gerne zukommen lassen.)
Die Regeln sind überarbeitet worden. Schaut sie euch hier an: Regeln. Die Regeln gelten für alle Spieler und sollten vor Anlegen eines Accounts gelesen worden sein.
Im Zusammenhang damit gibt es jetzt Arbeitsausnahmen, die wie normale Multi-Ausnahmen beantragt werden, aber nur im Zeitraum von 9 bis 17 Uhr aktiv sind.
Darstellungsfehler behoben: Die untere Werbung war immer nach links verrutscht.
Viele Schiffe wurden leicht verändert, vor allem aber die Jäger.
Die Schiffsmindestpreise sind verdoppelt worden.
Es gibt einen neuen Recycler. Wo der ist und was er kann, müsst ihr aber selbst herausfinden.
Alle Verteidigungsanlagen sind leicht angepasst worden.
Es sind einige neue Beschreibungen für Gebäude und Schiffe hinzugefügt worden, die in der letzten Runde im Forum gepostet worden waren.
Es gibt jetzt keine Allianzsteuern mehr, weil diese eigentlich nur gegen unsere Regeln gegen Allianzflotten oder Pushing verstoßen würden.
Bug behoben: Man konnte in Plünderungen noch einsteigen, wenn die Anfangsflotte bereits zerstört war. Es ist jetzt nur noch möglich, während der ersten Runde der Plünderung einzusteigen.
Bug behoben: Wurde ein Handel mit einer neuen Flotte angenommen, wurde der Hyperraumantrieb nicht beachtet.
Bug behoben: Beim automatischen Zurückkehren wurde der Hyperraumantrieb nicht beachtet.
Es gibt jetzt feste Mindestpreise für alle Ressourcen, die automatisch vom Handelssystem überwacht werden. Sie liegen bei: Erz 0,5 Credits, Polypropen 1 Credit, Legierung 3 Credits und alle restlichen Ressourcen bei 0,05 Credits. Bei allianzinternen Handelsangeboten/-nachfragen liegt der Mindestpreis um 20% niedriger.
Helfer können jetzt auch umbenennen. Ihr könnt euch mit solchen Anfragen also auch an sie wenden. Die Regelung, dass man sich nur umbenennen lassen sollte, wenn es wirklich nötig ist, bleibt aber bestehen.
Der Anfängerschutz ist überarbeitet worden. Ein Planet kann nur noch zwei mal in 24 Stunden geplündert werden und es kann innerhalb von 24 Stunden nur noch ein Invasionsversuch durchgeführt werden (egal, ob die Invasion klappt oder nicht).
Zusätzlich kann man nur noch maximal 2 Level nach unten plündern. Das heißt z. B.: Level 4 kann 2 (und höher) plündern, Level 5 ab 3 und Level 6 ab 4.
Der Anfängerschutz ist in gewissem Maße unabhängig vom Level des Spielers gemacht worden. Deshalb wird er jetzt auch im Profil der Spieler angezeigt (direkt unter dem Account-Typ). Es gibt folgende Schutzstufen: Unangreifbar, Schiffe im Orbit angreifbar, Plünderbar, Bombardierbar und Invasierbar. Diese Stufen entsprechen den früheren Leveln 1-5.
Die Übergänge zwischen diesen Schutzstufen sind erstmal gleich geblieben. Wenn man Level 2 erreicht, wechselt man in die Stufe "Schiffe im Orbit angreifbar", bei Level 3 in "Plünderbar" usw.
Neu ist, dass man in die Stufe "Plünderbar" wechselt, sobald man jemand anders plündert (und zu der Zeit in einer niedrigeren Stufe ist). Man kann als Level 2-Spieler als nicht höhere Level plündern, ohne selbst plünderbar zu werden. Analog verhält es sich mit der Stufe "Bombardierbar" und Bombardieren sowie Invasieren.
Außerdem kommt hinzu, dass man 31 Tage, nachdem man seinen Account erstellt hat, automatisch in die Stufe "Plünderbar" wechselt.
Zusätzlich gibt es ab sofort zwei neue Moderatoren für das Forum, die wir aus all den Bewerbern in der letzten Runde ausgesucht haben. Teilweise war es echt knapp, also seid nicht traurig, wenn ihr es nicht geworden seid. Die beiden neuen Moderatoren sind: Ares und Crom. Beide werden für Recht und Ordnung im Forum sorgen und euch, wenn es Fragen gibt, versuchen weiterzuhelfen.
Ich möchte noch einmal darauf hinweisen, dass ich mich ab jetzt erstmal für einige Zeit von der aktiven Entwicklung von WELTENSAGA zurückziehe. Der Grund ist, dass ich derzeit sehr viel mit der Arbeit und meinem Studium, das langsam auf sein Ende zugeht, zu tun habe. Ich werde also nur bei wirklich wichtigen Dingen etwas an WELTENSAGA machen. Die ausführlichere Ankündigung hierzu aus der letzten Runde habe ich hier in meinem Blog archiviert.
Heute morgen war es so weit: Swanheart hat den Bau der Superwaffe beenden können und hat dadurch Runde VI von WELTENSAGA gewonnen. Herzlichen Glückwunsch!
Diejenigen, die schon länger dabei sein, wissen schon, wie es jetzt weitergeht. Aber für die anderen nochmal der Fahrplan für die nächsten Tage/Wochen:
Nach dem Rundenende folgt der Chaos-Modus. Diesen werde ich im Laufe dieses Abends starten. Der Chaos-Modus ist anders als das normale WELTENSAGA:
4-fache Geschwindigkeit: Alles wird schneller gebaut, Schiffe fliegen schneller, Forschungslabore sind produktiver.
NAPs und Allianzzugehörigkeiten haben keine Bedeutung im Kampf. Jeder kann gegen jeden kämpfen.
Die Mindestforschungszeit fällt weg.
Update: Chaos ist gestartet.
Nach dem Chaos-Modus folgt Runde VII. Wann diese genau starten wird, kann ich noch nicht sagen. Das werde ich aber in den nächsten Tagen bekannt geben.
Außerdem suchen wir neue Moderatoren für die Foren von WELTENSAGA. Wenn du Lust, Zeit und Motivation hast, schreibe eine IGM an mich (jfk) und sage uns:
warum du Moderator bei WELTENSAGA werden möchtest,
warum du ein guter Moderator wärst und
wie viel Zeit du in das Moderieren investieren möchtest/kannst.
Entlohnung können wir leider keine anbieten. Aber dafür viel Spaß im WELTENSAGA-Team und vielleicht ja auch einen Helferposten. Unter den Bewerbungen suchen die Helfer und ich zusammen die besten raus und machen sie zu Moderatoren.
Ich möchte endlich offiziell machen, was sich die letzten Monate schon abgezeichnet hat. Die Weiterentwicklung von WELTENSAGA wird nach dem Start der nächsten Runde auf unbestimmte Zeit eingestellt.
Das bedeutet also, dass ich mich nach dem Start von Runde VII erstmal von WELTENSAGA zurückziehen werde. Ich werde zwar noch neue Runden starten, aber es wird weder Bugfixes, neue Features noch großartigen Support von mir geben. Der Grund dafür ist einfach, dass ich im Moment zu wenig Zeit habe und diese Zeit eher weniger als mehr werden wird im Verlauf des vor uns liegenden Jahres. Mein Praktikum ist jetzt erstmal in einen Arbeitsvertrag übergangen, was bedeutet, dass ich ganz normal arbeite. Nebenbei mache ich noch meine beiden letzten Prüfungen an der Uni und bereite meine Diplomarbeit vor. So bleibt wirklich keine Zeit mehr für WELTENSAGA übrig.
Außerdem ist meine Motivation derzeit etwas im Keller. Wie kürzlich in meinem Blog erwähnt beschäftigt mich WELTENSAGA schon seit sechs Jahren. Nach dieser langen Zeit brauche ich jetzt zumindest erstmal eine Pause. Es kann gut sein, dass es in einem Jahr – wenn ich mein Studium hinter mir habe – weiter geht mit der aktiven Entwicklung von WELTENSAGA, aber garantieren kann ich das nicht.
Ich habe diese Entscheidung lange überdacht. Ich habe mit den Helfern darüber gesprochen. Aber es gibt für mich tatsächlich keine andere Möglichkeit, als die Entwicklung von WELTENSAGA zu unterbrechen. Die Entwicklung jemand anderem zu überlassen, würde einfach nicht funktionieren. Die Entwicklung nicht zu unterbrechen, würde nur dazu führen, dass ich doch kaum etwas tun würde und das ganze nicht offiziell wäre. Das bedeutet, dass ich über diese Entscheidung nicht diskutieren möchte.
Um das ganze nochmal kurz zusammenzufassen: Zum Start der nächsten Runde wird es noch ein paar Veränderungen geben. Danach wird es erstmal keine Updates mehr geben, aber es werden noch neue Runden gestartet. Zusätzlich werde ich mich bemühen, wirklich böse Bugs zu beheben, sobald sie auftreten.
Ich kann es verstehen, wenn ihr mit dieser Entscheidung nicht glücklich seid. Ich bin es auch nicht wirklich, aber leider geht es nicht anders. Hoffentlich könnt ihr das verstehen und bleibt WELTENSAGA trotzdem treu.