Samstag, 16. April 2011

Zusammenfassung von damals

9. Januar 2011 war mein letzter Eintrag zum Geschehen.
Einiges ist passiert. Wie bereits erwähnt, habe ich das fünfte Semester überstanden. Die Prüfungen sind alle gelaufen. Und nun bin ich im sechsten Semester und erledige mein Praktikum.


HAtaGo ist "fertig" geworden.
Auf diesen Teil der Prüfung hatte ich eine 1 bekommen. Die KI sollte sich eigentlich am Monte Carlo Verfahren orientieren, allerdings scheine ich da etwas nicht ganz richtig gemacht zu haben. Bei einer Überprüfung von 1000 kommt meist ein direkter Angriff heraus. Dafür braucht der PC aber ziemlich lange. Herunter gestellt auf 100 sieht es aus, wie ein zufälliger Zug. Da man selber als erstes dran ist, man sofort die KI Atari setzten kann, müsste eigentlich eine Verlängerung die Antwort sein. Dies tut er jedoch leider nicht.
Sehr merkwürdig ist auch, dass bei Kompilierung mit Mehrkernunterstützung, die KI um einiges mehr an Zeit verbraucht, als wenn sie nur auf einem Kern arbeiten würde.

An diesem Projekt werde ich sehr wahrscheinlich nicht weiter arbeiten. Der Code dafür befindet sich in meinem google-project System:
http://code.google.com/p/manuel-bellersen/source/browse/#hg%2FStudium%2FDeP_HAtaGo.
Wer will, darf sich gerne bedienen. Haskell ist eine Sprache, die mir nicht liegt. Einige nette Features habe ich dabei jedoch gelernt. U.a. ist das Lambda, welche nun auch in C++0x bzw. C++2011 enthalten ist.


Mein Vortrag im Fach Computeranimation zum Thema Blender lief nicht unbedingt sehr befriedigend für mich ab. Immer wieder hab ich hier und da kleine Fehler gemacht und etwas vergessen. Teilweise mochte mich aber auch der PC nicht, der einfach mal so Z und Y vertauscht hat.  Mal so, mal so. Mal so. Mal so. Als Endnote dafür habe ich trotzdem eine 1 bekommen. Ich werde schauen, wann ich das ordentlich zusammen bekomme. Dann kann ich das auch hier als kleines Tutorium rein stellen.
Und das Beste daran ist, dass ich nun halbwegs mit Blender umgehen kann. Hätte ich, wie die anderen, 3ds Max gemacht, wüsste ich zwar wahrscheinlich ein wenig darüber Bescheid, allerdings könnte ich dies nun nicht weiter nutzen, da ich mir dieses Programm nicht zulegen werde.
Ein Kumpane wollte sich zum üben die Studentenversion zulegen. Dies funktionierte jedoch nicht. Scheinbar war unsere Hochschule noch nicht im entsprechenden Studentenprogramm vertreten.
Ein weiterer Kumpane versucht sich derzeit an einer anderen Hochschule an Computeranimation. Dort wird ebenfalls 3ds Max eingesetzt. Die Studenten haben Zugriff auf die Studentenversion, welche Version 11 haben dürfte. Der Professor nutzt und erklärt jedoch mit Version 6.
Es fehlen einem die Worte...

Apropos Blender:
Blender hat es endlich geschafft, eine neue stabile Version heraus zu bringen. Diese ist, wie immer, direkt von der Hauptseite erhältlich:
http://www.blender.org/download/get-blender/


Der Vortrag mit den 2 Kollegen wurde nun doch nur ein Vortrag mit einem Kollegen, da der andere vorher abgesprungen ist. Wir haben uns auf BackTrack und Privatix beschränkt und dazu eine kleine Ausarbeitung angefertigt. Das entsprechende Dokument ist hier zu finden:
http://code.google.com/p/manuel-bellersen/downloads/detail?name=Ausarbeitung.pdf


Tja,
in Xonotic scheint sich kaum etwas getan zu haben. Leider.
Es sieht viel versprechend aus und kann es sicher noch zu einiges bringen.
Die Zeit wird es zeigen.


Seid letztem Jahr gibt es Ryzom als Open Source. Eine feine Sache. Ende letzten Jahres war es dann auch soweit, dass der Linux-Client das Licht der Welt erblickte. Vor ein paar Wochen bin ich auf einen interessanten Beitrag dazu bei Pro-Linux.de gestoßen:
http://www.pro-linux.de/artikel/2/1494/1,ryzom-geschichte-und-die-welt.html
Das Spiel klingt sehr interessant. Irgendwann habe ich es dann auch einfach ausprobiert. Der Linux-Client lieft nicht so sehr flüssig bei mir, weswegen ich mir einfach den Source Code von http://dev.ryzom.com/ besorgt und den Client selber erstellt habe. Nun läuft es ganz flüssig.
Ein Kumpane hat sich ebenfalls mit in das Spielgeschehen eingeklinkt  und so sind wir ab und an zu zweit unterwegs, sammeln Rohstoffe, erlegen Tiere und Pflanzen, buddeln im Dreck, rennen schreiend davon, wenn uns eine Herde wilder Tiere angreift, bewachen Ausgrabungen, helfen Spielern in Not, erstellen Schmuck, Kleidung, Waffen und machen eben das, was man so machen kann. Die Menschen, auf die wir bisher getroffen sind, waren ganz nett. Es herrscht nicht die Überfülltheit und Belastung durch Pubertierende. Wer mag, und etwas Hilfe braucht oder einfach nur Leute sucht, kann sich gerne an uns und natürlich auch an alle anderen in der Welt von Atys wenden und in eine Welt aus Wunder und Fantasie eintauchen.


Schon ein paar Tage bevor ich bei Ryzom angefangen habe, hatte ich mir dieses Spiel zugelegt: http://oilrush-game.com/
Dieser Mix aus Strategiespiel und Tower-Defence soll im Juni 2011 auf den Markt kommen. Wer allerdings jetzt schon sich per Pre-Order OilRush zulegt, erhält sofort Zugriff auf eine Entwicklerversion, die aller paar Wochen aktualisiert wird. Es erscheint voraussichtlich für Windows, Linux, Mac und PlayStation3. Die letzte Version, 0.61, lief schon recht gut. Mir waren kaum Bugs aufgefallen. Bei anderen ging es wiederum nicht so gut. Der Multiplayer scheint auch noch gehackt zu haben. Im Forum kann man gut Fehlerberichte hinterlassen, die dann direkt von den Entwicklern in Angriff genommen werden. Auch die Kommunikation mit den Entwicklern und weiteren freiwilligen Pre-Release-Testern ist sehr gut. Die Leute sind sehr nett und freundlich.


Seit 21.02.2011 mache ich Praktikum beim Nao-Team der HTWK-Leipzig. Das Projekt, was ich dort entwickle, steht auf dieser Seite: http://code.google.com/p/nao-sim/
Unter anderem habe ich auch schon Code von C# zu C++ (http://code.google.com/p/nao-sim/source/checkout?repo=fitting-ellipse) und auch Java zu C++ (Team-internes Stück Code, welches aus einem Bild die mögliche Position ermittelt) portiert. Des weiteren habe ich mich für das Projekt unter anderem mit SDL 1.3 (http://www.libsdl.org/), boost (http://www.boost.org/), TinyXML++ (http://code.google.com/p/ticpp/) und C++0x (http://en.wikipedia.org/wiki/C%2B%2B0x) beschäftigt. Dank der Verwendung von Linux und CMake als Erstellungswerkzeug, lassen sich relativ unkompliziert unter Linux mittels CrossCompile Binärdateien für Windows erstellen.
Derzeit schlage ich mich mit einem doch eigentlich recht einfachen Problem rum. Ein Objekt mit einer bestimmten Ausrichtung soll an eine bestimmte andere Stelle mit bestimmter Ausrichtung laufen. Dazu soll sich das Objekt, wenn es weit genug entfernt ist, erst zum Zielpunkt drehen und wenn er sich genug, aber nicht unbedingt schon vollständig gedreht hat, los laufen. Mein Problem hierbei ist, dass ich es einfach nicht anständig hin bekomme, den Winkel zu bestimmen, in dem sich das Objekt noch drehen muss, um zum Ziel zu blicken. Es ist sehr eigenartig, da ich schon Funktionen zur Berechnung von Winkeln und Berechnung von Vektoren aus Winkeln habe.
Teilweise finde ich es schon etwas peinlich an so etwas so lange zu sitzen.

Durch das Praktikum bin ich täglich circa 8 Stunden mit Programmierung ausgelastet. Meist bleibt dann kaum bis keine Lust mehr, noch mehr zu Programmieren. Oft gibt es dann auch noch Kumpanen, die kleine Probleme hier und da haben, die mich dann fragen und auch entsprechende Antworten erwarten und auch bekommen. Es ist angenehm, sein Wissen teilen zu können.
An "Jack Claw" lohnt es derzeit Code mäßig auch nicht direkt mit zu arbeiten, da dieser Code, der frei gegeben ist, nicht dem letzten Stand entspricht.
Im Prinzip bleibt also nur die Möglichkeit, an eigenen Projekten zu arbeiten, zu programmieren, oder zu Modellieren oder ganz andere Dinge zu machen, wie zum Beispiel Go zu spielen oder die Natur zu betrachten.

Meine Kugeln, die mit Physik laufen sollen, und die Eisenbahn aus meinem Vortrag sind nicht vergessen. Bei entsprechender Lust, Laune und Zwang werde ich diese fertig stellen.


Eine kleine Frage hätte ich zum Schluss noch:
Wie mache ich nach dem Studium weiter?
Ende August werde ich wahrscheinlich meine Bachelor Arbeit fertig haben, abgeben, verteidigen, Note drauf bekommen und somit auch meinen Abschluss erhalten. Aber was ist dann?
Ich würde gern in die Spiele-Industrie, dort aber zu den Indies. Frozenbyte, Unigine, Frictional Games, Introversion, Wolfire - dies scheinen prima Entwickler zu sein. Hier in Deutschland sieht es da einen Zacken schlechter aus. Was natürlich an sich für mich von Vorteil ist, da ich bzw. wir, wenn ich mich mit passenden Leuten selbständig machen würde, so nur wenig Konkurenz im eigenen Land haben.
Was mich dabei jedoch abschreckt, ist die Tatsache, dass ich bisher nicht die "krassen" Sachen gemacht habe, die andere bis dahin schon längst gemacht hatten. Viele entwickeln Haufen kleine Spiele, eins nach dem anderen, und ich habe bisher noch nicht wirklich ein anständiges fertig gebracht, auch wenn ich mehr als genug Ideen besitze.
Von großen Firmen, wie zum Beispiel EA, TakeTwo, Activision, ... hört man nicht unbedingt erfreuliches über deren Entwicklergruppen. Auch fehlt es dort an Innovation und ganz besonders an der Unterstützung von Linux und dem Support.
Oder sollte ich doch lieber einen Master machen?
Ein Kumpane macht dies derzeit in Berlin an der HTW Berlin und scheint dort gut Fortschritte zu machen. Seine praktischen Skills werden verbessert und letztendlich kann er nach Abschluss mehr vorweisen.

Also was meint ihr?
Weiter studieren?
Eine Anstellung bei großen Studios?
Versuchen bei kleinen No-Name Start-Ups rein zu kommen?
Selber irgendwie auf eigenen Füßen stehen? Und wie?
In einem anderen Informatik-Feld anfangen?
Auswandern?
Oder doch einen gänzlich anderen Beruf, wie zum Beispiel Kindergärtner, erlernen und das andere als Hobby betreiben?
Was gäbe es noch für Möglichkeiten?