About me

Ursprünglich stand an dieser Stelle eine vollkommen uninspirierte Liste vermeintlicher Fähigkeiten. Das könnte vielleicht für einen Headhunter interessant sein; für die Allgemeinheit war der Artikel allerdings nahezu wertlos. Nichts anderes als ein großer Schwanzvergleich - was ausschließlich daran lag, dass mir nichts besseres einfiel. Mittlerweile ist ein Jahr ins Land gegangen und mir kam eine bessere Idee. Ich erzähle eine Geschichte. Meine Geschichte.

Veröffentlicht am 18.11.2015, aktualisiert am 18.11.2015

Meine Geschichte beginnt Anfang 1991, als sich ein kleines Bübele dazu entschließt, in einer Kleinstadt in Brandenburg das Licht des Lebens erblicken zu wollen. Als Kleinkind zog ich es wohl - den Überlieferungen zufolge - vor, den ganzen Tag zu schlafen, war wohl ein relativ pflegeleichtes Baby. Wie lange dieser Zustand anhielt, weiß ich nicht; irgendwann wachte ich jedenfalls aus meinem Baby-Delirium auf - und ein Kind mit blühender Fantasie erwachte, das schon früh darauf bestand, dass doch eigentlich tatsächlich nichts unmöglich ist - schließlich sagt das ja auch die Werbung in den 90ern auf sehr kreative und einprägsame Weise.

Als Kind bereitete mir das Spielen - das sollte nicht verwunderlich sein - unheimlich viel Spaß. Egal ob das Bauen mit Lego, dem Spielen mit Sand oder die Faszination Videospiele, überall ergaben sich Möglichkeiten, zu lernen. Zu lernen, wie man Probleme löst, wie die Physik funktioniert und was es da draußen noch so alles gibt. Aber Videospiele übten dann doch noch einmal eine besonderen Reiz aus, es war wie Magie für mich als Kind, wie die ersten Kontakte mit Super Nintendo Entertainment System und Sony Playstation Anfang der 90er zeigten.

Mindestens ebensosehr Magie, wie die blinkenden Lichter, die mein Vater auf seinem Schreibtisch hatte - der verbrachte seine Wochenenden mit dem Aufbauen von Schaltungen und dem Programmieren von Microcontrollern, was ich ebenfalls staunend beobachtete. Und da geschah dann auch etwas sehr prägendes; auf die Äußerung meines Wunsches, das auch können zu wollen, meinte mein Vater, ich solle ersteinmal lesen und schreiben lernen. Und so begann ich, autodidaktisch mir das Leben und Schreiben beizubringen, prägte mir die Geschichten, die mir vorgelesen wurden, ein und versuchte dann, anhand der Symbole in den Büchern das Ergebnis zu reproduzieren.

So kam es dann auch, dass ich in der ersten Klasse schon fließend lesen konnte, obwohl ich nicht einmal das Alphabet beherrschte (die Kenntnis der Reihenfolge von 26 Buchstaben empfand ich als stupide Auswendiglernerei, die zum Lesen selbst nicht erforderlich ist). Auch das Rechnen bereitete mir viel Spaß und ich verbrachte in meiner Freizeit die eine oder andere Stunde vor dem Taschenrechner, um zu gucken, wie dieser reagiert - und mir dann zu erschließen, warum eine Operation so funktioniert.

Das brachte mir allerdings in der Schulmathematik viel Ärger ein, denn schon früh gab es für mich kein "Nicht lösbar" - und in der Grundschule hält man es nicht für notwendig / für verwirrend, den geltenden Zahlenraum konkret einzugrenzen. Für mich gab es daher - aufgrund der Lösungen, die von den Erwartungen abwichen - schlechte Noten und ich verlor an der Schule die Lust, da mir dies allmählich wie eine Bespaßungsmaßnahme mit blanker Auswendiglernerei ohne Verstehen vorkam.

Stattdessen konzentrierte ich meine Aufmerksamkeit dann darauf, das Programmieren zu lernen - schließlich hat es mir mein Vater ja versprochen. Und so schrieb ich in der zweiten Klasse, mit 7/8 Jahren bereits erste Programme in QBasic, die vorrangig Imitationen waren. Dass mein Interesse an der Schule daran litt und die Leistungen einbrachen, führte allerdings immer wieder dazu, dass meine Eltern mir mein Selbststudium vorrübergehend verboten, denn ein guter Schulabschluss ist wichtig.

Trotz allem dauerte es nicht lange, bis ich meinen Vater schließlich bei der Entwicklung von Tools für seine Microcontroller-Lösungen auf 80C51-Basis unterstützen konnte - und schnell eigene Träume entwickelte und eine weitere Scriptsprache - Profan - lernte, die mir insbesondere einen Einblick in die grafische Programmierung ermöglichte.

Während ich anfangs noch auf dem PC meines Vaters (Intel Pentium, 100 MHz, 64 MB PS/2 RAM, 1.2 GB HDD, Cirrus Logic 5430-Grafik, Microsoft Windows 95) vor mich hin entwickelte und schon damals den Traum hegte, eines Tages eigene Spiele zu entwickeln, erhielt ich um 2000 die Möglichkeit eines eigenen Laptops (Siemens Nixdorf PCD-3Nsl, Intel 80386, 4 MB RAM, 120 MB HDD, EGA-Grafik auf 4-Graustufen-Display, Microsoft Windows for Workgroups 3.11), welchen mein Vater vom Schrotthandel günstig erwerben konnte und die vormals defekte Hintergrundbeleuchtung mit den Teilen eines anderen, an anderer Stelle defekten Laptops reparieren konnte.

So konnte ich dem Programmier-Hobby viel mehr Zeit widmen und erste Spiel-Versuche entstanden, darunter ein Pokemon-Clone, in dem man mit aus vorgegeben Teilen gebauten Robotern gegeneinander kämpfen konnte.

Schnell reichte der Laptop allerdings nicht mehr aus, zumal der Arbeitsspeicher korrupt war - ist das Gerät zu warm geworden, so vermeldete das Gerät einen Parity Check Error - und alles, was nicht gespeichert war, war futsch, da das Gerät anschließend nur per Kaltstart zurück ins Reich der Lebenenden geholt werden konnte.
So kam es auch zu einem Ausflug ins Commodore-Amiga-Land, ein Amiga 500 mit Speicher-Erweiterung und original Farbmonitor brachte mich Amiga Basic näher, doch auf diesem Gerät zog ich es vor, Spiele zu spielen - Lemmings, The Adventures of Quik and Silva, DragonScape, Das Boot und Wings waren hier meine Favoriten.
Nicht lange danach folgte ein Intel 80486 mit 60/66 MHz (inkl. Turbo-Schalter), 8 MB RAM, 240 und 220 MB Festplatte, Cirrus Logic 5430-Grafik und Microsoft Windows 95 meine Bestrebungen unterstützen sollte, allerdings war das RAM-Angebot für Windows 95 eindeutig zu knapp bemessen - nicht einmal Microsoft Paint war sinnvoll verwendbar.
Und so folgte wieder kurz darauf ein Hardware-Wechsel - auf einen Acer i1, der mit Intel Pentium 100 MHz, 32 MB RAM, 500 MB Festplatte, Cirrus Logic 5430-Grafik und Microsoft Windows 95 ganz gut ausgestattet war. Auch wenn diese Hardware natürlich im Jahr 2001 vollkommen obsolet war, so lehrte es mich allerdings, einigermaßen effizient zu programmieren.

Auch war die Hardware nun potent genug, um auch mal einen Webbrowser, wie den Internet Explorer 4.0 (ohne Active Desktop) oder später auch den Internet Explorer 5.5 auszuführen - der Opera-Browser verweigerte zu dieser Zeit leider viel zu gern auf meinem System die Arbeit und vom Netscape-Monster, welches nur zu gerne fast die gesamte Rest-Festplattenkapazität einnehmen wollte, rede ich garnicht erst; in dieser Zeit war es, dass ich meine ersten HTML 4.01-Kenntnisse erwarb und schon damals bevorzugt strict entwickelte, da alles andere in meinen Augen keinen Sinn ergab.

Zu dieser Zeit sammelte ich danna uch die ersten Erfahrungen mit anderen Betriebssystemen - nicht nur fand sich auf einer Ausgabe des c't-Magazins eine Shareware, die eine MacOS-Umgebung simuliert, in den PC-Zeitschriften fanden sich auch mal BeOS 5 PE und viele Linux-Distributionen, wie Suse Linux 6.2, mit wahlweise KDE 2 oder FVWM - doch waren diese Systeme für mich damals wenig praxistauglich, da mir häufig die geeignete Konfiguration oder Hardware-Treiber fehlten. Zudem überlebten die häufig ext2-Basierten Linux-Installationen bei mir selten den ersten Boot, da ich nicht wusste, wie ich ein Linux-System von der Konsole herunterfahren kann - was kurz darauf in Dateisystemfehler mündete.

2002 erhielt ich zum Geburstag einen neuen PC - einen Fujitsu Siemens Scaleo 600, mit AMD Athlon XP 2400, 256 MB DDR-RAM, 72 GB Festplatte, GeForce 4 MX 440 und Microsoft Windows XP, was ein regelrechter Quantensprung für mich war. Auf diesem Gerät war auf einmal so viel mehr möglich, als ich mir überhaupt vorstellen konnte - auch wenn es zu dieser Zeit auch schon eher Low-End darstellte. So vertiefte ich meine Profan-Kenntnisse, und während bis dahin für mich Profan 4.5, was von einer CD-Info-CD-ROM stammte, die Möglichkeiten nach oben einschränkte, erwarben wir in diesem Jahr auch eine Lizenz für XProfan 8.0 - und ich konnte, durch dem Wechsel auf eine Gesamtschule mit Ganztagsbetrieb und Computer-AG, nun regelmäßig Gebrauch vom Internet machen. Vom Besuch des Gymnasiums rieten mir Schulleiter umfassend ab - da ich nicht den nötigen Fleiß, nicht das nötige Interesse zeigte, mir selbstständig Kenntnisse anzueignen, zumindest dachte man das von mir.

Meine Internet-Recherche brachte mich aber deutlich vorran, ich eignete mir viele Grundlagenkenntnisse selbst bei und aufgrund des geringeren Leistungsniveaus konnte ich in der Gesamtschule auch ohne großen Fleiß mit guten Noten glänzen. Ich stellte aber so allmählich fest, dass ich mit (X)Profan nicht das erreichen kann, was ich möchte; zwar gelang es mir, Spieleklassiker wie Pong mit akzeptablen Bildraten umzusetzen und entwickelte auch Anwendungen, so zum Beispiel im Rahmen der Facharbeit der 9. Klasse im Informatik-Unterricht zusammen mit meinem Vater eine Roboter-Steuerung auf 80C51-Basis, die mit einer selbst entwickelten, visuellen Programmiersprache steuern ließ - gefordert war eigentlich nur, einen Fishertechnik-Bausatz mit QBasic zu programmieren.

Aber das Spiele-Ziel war nicht erreicht und so stieß ich im Rahmen meiner Recherchen 2005 schließlich auf die ProSpeed.dll von Frank Abbing, welche es einfach erlaubte, Grafikoperationen durchzuführen.
So gelangten dann auch nie geahnte geistige Höhenflüge in meinen Kopf, plötzlich war alles in greifbarere Nähe gerückt - sehr zum Ärger der (X)Profan-Community, in der ich anschließend als größenwahnsinniges Kiddie auftrat, das seine Fähigkeiten weit überschätzte. Die typische Teenager-Krankheit eben 😁

Und was damals nicht alles für Wünsche und Träume in meinem Kopf spukten - ich wollte der Voxel-Technik auf dem PC einen Platz verschaffen, wollte Spiele auf den PC portieren, wollte mein eigenes Betriebssystem entwickeln - und wusste zwar, was Sprites sind, wusste aber nicht, wie Tile-Basiertes Scrolling beispielsweise genau funktioniert. So erntete ich in der Community viel Hohn und Spott - zu Recht - und wurde vor die Aufgabe gestellt, Pac Man vom Atari VCS 2600 auf den PC zu portieren. Ein einfaches Spiel, ohne Scrolling - und ich scheiterte an der Kollisionserkennung.

Bei der Aufgabe handeltete es sich aber um eine Wette - und da ich sie verlor, löste ich meinen Teil ein und verließ die XProfan-Community. Um wie ein Phoenix aus der Asche kurz darauf in der xprofan-Community von David 'iF' Strutz weiter herumzuspuken und mein Unwesen zu treiben. Ich fühlte mich damals als schlauer Fuchs für diesen Schachzug, doch half mir dies nicht, meine Kenntnisse zu erweitern.

Mein Traum war immer noch, ein Betriebssystem zu schreiben; inspiriert von Großrechner-Systemen und dem Internet, war hier mein Traum, auf Basis von RS232 einen Terminal-Betrieb zu simulieren / emulieren. Aber ich war von diesem Ziel auf jeden Fall noch Lichtjahre entfernt.

In dieser Zeit war es aber, dass ich über den Emu8086 stolperte und damit dann Assembler für den 8086 lernte, mit einer sehr schönen (simplen) Entwicklungsumgebung und einem schönen Debugger, der einem sehr beim Lernen hilft - und einige Beispiele, darunter sogar der ein kleiner Bootloader und ein kleiner DOS-Like Kommando-Prompt, jedoch nichts, was man ansatzweise "Betriebssystem" nennen könnte.

Das hielt mich allerdings nicht davon ab, mich anschließend in der LowLevel-Community aufzuhalten und meine Betriebssystem-Pläne, die bis dahin weiter gereift waren, weiter zu verfolgen. Zu der Zeit war es allerdings auch, dass ich über FreeBasic stolperte, mich in der QBasic-Community einbrachte und mich immer mehr mit Netzwerk-Programmierung und Sockets beschäftigte, deren Basics ich mir über die Socket-Tipps und das Socket-Buch vom Felix "Zotteljedi" Opatz. Daraus gingen dann auch Projekte wie die PNE-Bibliothek hervor, aus der wiederum die in der FreeBasic-Community geschätzte TSNE von ThePuppetMaster zur bequemen Datenübertragung via Sockets hervorging.

Ich stieß jedoch - zu Zeiten von FreeBasic 0.16 - schnell an die Grenzen der Sprache, da es mir erschreckend oft gelang, Compiler-Fehler zu triggern; zu der Zeit arbeitete ich bereits viel mit eigenen Datenstrukturen auf dem Heap-Speicher und band viele (System-) Bibliotheken ein - und sammelte auch meine ersten Erfahrungen mit OpenGL. Mich störte allerdings zusätzlich, dass die Sprache sich seinerzeit nicht auf einfachem Wege für mich in zB eine Debian-Installation einbinden ließ - da ich mich zu dieser Zeit immer wieder einmal an Linux herantastete.

Linux begegnete mir zudem auch auf Webservern - denn um 2006 baute ich meine Web-Entwicklungs-Skills aus und vermittelte mir autodidaktisch (wie immer) serverseitiges Scripting mit PHP. Anfangs erkannte ich hier noch nicht den Nutzen von Datenbanken und objektorientierter Programmierung, setzte lieber auf dynamisch generierten Code zur Datenspeicherung (da ich auch serverseitige Daten-Serialisierung in Dateien verteufelte) und mein erstes Projekt war so ein interaktives Quiz im Stile von Wer wird Millionär. Anschließend verteufelte ich zudem Content-Management-Systeme für ihre Langsamkeit. Da meine Hardware nie State-of-the-Art war und PHP nicht gerade für seine hohe Performance bekannt ist, erlernte ich schnell Kniffe, um PHP-Scripts massiv zu beschleunigen. Schließlich lernte ich auch mit PHP den Nutzen von objektorientierter Programmierung und JavaScript - und schuf mit einem Nachbau von the-fight-online.de von David "DaGeRe" Georg Reichelt auch mein erstes kleines Browserspiel, welches allerdings nur eine Machbarkeits-Studie war, um eigene Entwicklungen in diese Richtungen zu unterstützen, zu denen es aber nie kam.

Ausserdem entdeckte ich zu dieser Zeit meine Liebe zu virtuellen Realitäten, insbesondere Second Life tat es mir sehr an, auch wenn ich aufgrund der damaligen Preise für Sim-Einheiten zusammen mit meinen Freunden dazu genötigt war, unzureichend gesicherte Sims für eigene Basteleien zu missbrauchen. So erinnere ich mich gerne an die Zeit mit Geyeda Bechir und Unreal Smit zurück, in der wir fröhlich in LSL vor uns hinscripteten und die wildesten Dinge bauten - bis hin zu meinen Raumstationen mit Selbstzerstörungs-Funktion, die die Havok-Basierte Physik der Sims immer wieder in die Knie zwang.
Schließlich versuchten wir sogar, auf Basis von OpenSimulator einen eigenen Sim ins OpenGrid zu integrieren, damit der Raubbau ein Ende hat und wir auch einmal eigene Assets ins System hochladen konnten, ohne dafür zahlen zu müssen. Mein Fujitsu Siemens Scaleo 600 auf Ubuntu-Basis mit Administration durch Geyeda Bechir entpuppte sich allerdings nicht unbedingt als der geeigneteste Server - was sich spätestens an der DSL-Anbindung bemerkbar war, auch wenn die mit 16 MBit/s durchaus üppig war.

Schließlich passierte - nach einigen Umrüstungen meines PCs - das desaströse Unglück - ein Haar-Riss im Bereich der Speicherbänke machte das Mainboard meines Fujitsu Siemens Scaleo 600-PC unbrauchbar - und ich musste einiges ändern. Und so musste ich auf einen Pentium 2 mit 333 MHz und 64 MB SD-RAM wechseln, der mir im Rahmen meiner PC-Assistenz bei Freunden und Bekannten zur Verfügung gestellt werden konnte. Meine intakte 500 GB-Festplatte war hier nur mit den ersten 32 GB im System integrierbar, meine bis dahin beschaffte MSI GeForce FX 5200 konnte ebenfalls nicht voll ausgereizt werden. Und zu allem Überfluss war mir auch kein legaler Betrieb von Windows möglich, da meine Windows-XP-Lizenz an das defekte Mainboard gebunden war, zumal Windows XP für diese Maschine auch wieder überdimensioniert gewesen wäre.

So ergab es sich 2007 also, dass ich auf GNU/Debian umstieg und so noch das meiste aus der Hardware herausholen konnte. Ich gewöhnte mich an den Opera-Webbrowser, nutzte zur Software-Entwicklung den Lesstif-Basierten Nedit-Editor, verwendete xfe als leichtgewichtigen Dateimanager im Windows-Explorer-Stil und als Windows-Manager nutzte ich den leichtgewichtigen IceWM. Auch andere Umgebungen, wie WindowMaker oder MaxxDesktop, probierte ich zu dieser Zeit aus.

Ebenfalls in meinem Hardware-Fundus befand sich ein Mini-ITX-Thinclient von Gigabyte, ein C7V7, auf Via C7-Basis mit 1.0 GHz und 1 GB DDR2-RAM und einem 2 GB IDE-Flash-Modul, das sich als Flaschenhals erwies. Auch die Variante, das Root-Dateisystem von externer USB-Platte einzubinden, machte mich nicht glücklich, denn schlussendlich war auch die integrierte Via-Unichrome-Pro-Grafik aufgrund veralteter Treiber nicht wirklich gut geeignet.

Meine Träume, ein eigenes Betriebssystem in x86-Assembler zu entwickeln, fanden zudem einen abrupten Dämpfer, als ich feststellte, dass Emu8086 auf beiden Systemen in Wine nur sehr langsam funktionierte. Und so musste ich auch meinen Entwicklungsprozess ändern, zumal ich auch realisierte, dass die Entwicklung in Assembler mühselig ist. Und so lernte ich endlich, nachdem ich zuvor viele erfolglose Versuche unternahm und mich über fehlerhafte Beispiele und Compilerversionen ärgerte, C und verwendete zum Testen dann Bochs - womit es mir gelang, ein System zu schaffen, das schon einmal entfernt den Namen Betriebssystem tragen hätte können.

Die Fähigkeit, nun in C zu programmieren, erlaubte mir allerdings auch, auf einen gigantischen Fundus von öffentlichen Quelltexten zuzugreifen, diese zu verstehen und auch eine Vielzahl von Software-Bibliotheken zu nutzen. Schließlich begann ich auch, den Aufbau eines Linux-Systems erheblich besser zu verstehen und wurde begeisterter Nutzer von ArchLinux. Erst mit der Einführung von systemd wurde mir der Lernaufwand schlicht zu hoch und ich wechselte fortan zwischen Debian und Ubuntu hin und her - und machte auch einen kurzen Ausflug ins CentOS-Universum.

Die mir zur Verfügung stehenden PC-Systeme wechselten anschließend deutlich schneller - 2008 erst ein Intel Celeron mit 1.6 GHz (auf Pentium IV-Basis), 1 GB RAM, 500 GB HDD und GeForce FX 5500, 2009 dann ein AMD Athlon64 mit 2.2 GHz, 2 GB RAM, 1 TB HD und GeForce 9500 GT, bis 2011 dann Core2Duo und schließlich Core2Quad-basierte System Einzug hielten, die mit 4 bzw 8 GByte RAM ausgestattet waren, auf 2 Terabyte Festplattenkapazität zugreifen können und schlussendlich von einer GeForce GTX 960 grafisch unterstützt werden.
Zudem fanden auch mehrere Laptops anschließend den Weg zu mir - mal Asus EeePCs auf AMD-APU-Basis, mal HP Pavillons auf AMD Turion64 X2-Basis und zuletzt 2016 ein Dell Vostro-Notebook auf Core i3-Basis.

Zudem unternahm ich 2016 auch einen Ausflug zurück in die Windows-Welt, als ich mir eine Windows 10 Pro-Lizenz genehmigte, da ich mal wissen wollte, was sich dort inzwischen alles getan hat. Ich musste allerdings feststellen auch wenn Windows inzwischen Annehmlichkeiten vorweisen kann, wie zum Beispiel die werkseitig ermöglichte Taskbar auf mehreren Bildschirmen, oder ein Hibernate-basierter beschleunigter Bootvorgang, dass sich mit meiner Hardware leider kein sinnvoller Produktivbetrieb ergeben konnte. Ausserdem musste ich feststellen, viel zu viele Windows-Eigenheiten verdrängt zu haben - ein Linux ist für mich inzwischen weitaus intuitiver und einfacher zu bedienen und erlaubt es mir als Entwickler auch einen deutlich vereinfachten Arbeitsprozess.

Meine C-Kenntnisse erweiterte ich um 2011 schließlich mittels Qt auch noch um C++-Kenntnisse und arbeitete mich via DevkitARM und DevkitPPC in die Entwicklung von Homebrew-Software für die Nintendo Wii und den Nintendo DS ein. Diese Kenntnisse erweiterte ich um 2012 schließlich mit einer der ersten für Ninjhax verfügbaren Spiele-Homebrews - Super Block Attack.

Im Jahre 2016 ergab sich für mich die Möglichkeit, meine Spiele-Entwicklungs-Kenntnisse weiter auszubauen -- als lizensierter Teilnehmer des neuen Nintendo Developer Portals.
Ich hoffe, dass das Jahr 2017 hier noch weitere, neue aufregende Möglichkeiten für mich schafft.

Kommentare

Kommentar hinzufügen

Dein Kommentar wird möglicherweise nicht sofort dargestellt werden. Kommentare werden aus Spamschutzgründen moderiert.