Seit Jahren (jetzt dann Jahrzenten) programmiere ich schon mit größter Begeisterung. Mein größtes Problem: So viele tolle Projektideen und so wenig Zeit dafür. Ich erinnere mit noch an die Zeit zurück, in der ich gerade begann, mein erstes Programm zu progammieren. Hierbei handelte es sich um einen Fußball-Manager bzw. Simulator geschrieben in Batch (!). Man konnte sogar eigene Mannschaften erstellen, diese aufstellen und trainieren. Diese Mannschaften konnte man dann gegeneinander spielen lassen. Dabei wurde das Spiel via Textausgabe kommentiert. Leider ist dieses Stück Software inzwischen verschollen, aber der Gedanke ist immernoch da und genauso die Begeisterung für solche Projekte.
Ich möchte hier ein paar Projekte vorstellen, auf die ich besonders stolz bin. Es gibt natürlich noch tausende weitere Projekte, die ich in den letzten 15 Jahren gecoded habe, die aber nicht ganz so spannend waren, oder einfach nie fertig geworden sind. Auch hat die Zeit sehr viel wieder zerstört. So habe ich mir mal eine Software geschrieben, die die Stadionzeitung für meinen Verein automatisiert erstellt hat. Leider sind inzwischen die Daten (wie bspw. Ergebnisse) nicht mehr frei auslesbar, was die größten Funktionen der Software leider obsolet machte.
Eine Suite (d.h. eine Software), die auf allen Betriebssystemen (Linux, Windows, MacOS) läuft und bei der jeder einfach Erweiterungen (sog. Plugins) entwickeln kann. Das ist das Ziel dieses Projekt, was mit einigen Schülern der Eckert Schulen gestartet wurde. Vor allem Programmieranfänger soll es leicht gemacht werden, in die Programmierung einzusteigen und grundlegende Prinzipien zu verstehen.
Wir wählten als Programmiersprache C#. Die grafische Oberfläche designten wir mit der Open-Source-Lösung Avalonia.
Ich bilde seit Jahren als Dozent Schüler im Bereich C# aus. Programmieren ist wie eine Sprache: Man muss es ständig 'sprechen', damit man durch diese Übung die Sprache auch lernt. Dafür habe ich eine Plattform erschafften, in welcher man meine Vorlesungen bzw. meinen Unterricht noch mal jeweils als Video und als PDF zusammengefasst einsehen kann.
Außerdem werden dort eine große Anzahl an Übungsaufgaben angeboten, welche direkt überprüft werden können. Somit bekommt man sofort ein Feedback, ob die Aufgabe richtig gelöst wurde.
Auf dem Server läuft eine C#-Software, die für das Verarbeiten der Anfragen durch den Client zuständig ist. Der Server gibt also die Lektionen und die Übungsaufgaben zurück.
Der Client ist in die Javascript geschrieben (Ausnahme ist hier der Login, dieser wird über PHP realisisert).
Client und Server kommunizieren über Websockets, um Daten auszutauschen.
Und hier ist eines meiner größten Träume, die ich je hatte: Einen Fußball Manager zu programmieren. Grund hierfür war, dass es einfach keinen guten Fußball Manager gibt. Ich habe jahrelang Goalunited gespielt, was mich aber nie wirklich überzeugte. Große Hoffnungen hatte ich damals in den Fußballmanager von Sega gesetzt, welche aber in meinen Augen ein riesen Flop war. Wenn ich heute noch lust habe, einen FM zu spielen, dann setzte ich mich an den FM 2003 von EA.
Um dieser Enttäuschung endlich ein Ende zu machen, fing ich im Laufe der Zeit ständig an, eine FM zu programmieren. Nun bin ich aber endlich so weit, dass ich das umsetzen kann und möchte. Ich habe mich jetzt für einen FM im Browser entschieden, da dann die Zugreifbarkeit für jeden Mitspieler einfach besser ist. Außerdem wird bei mir nicht schwammig mit irgendwelcehn 0815-Wahrscheinlichkeiten irgendwelche Ergebnisse berechnet, sondern jede Person im Spiel (Spieler, Fan, Trainer usw.) trifft seine eigenen Entscheidungen. Egal ob im Spiel oder außerhalb.
Die Faszination, ein Glücksspiel zu beherrschen, ist glaube ich schon so alt wie die Menschheit selbst. Da auch in jedem Informatiker ein Mathematiker steckt, bin ich auch massiv fasziniert von dieser Vorstellung. Aus diesem Grund habe ich eine Software geschrieben, die Speedroulette analysiert und automatisch setzt.
Ausgelegt wurde das Ganze auf Speed-Roulette bei Bwin. Leider ist das in Deutschland jetzt komplett verschwunden, was leider dazu führte, dass auch meine Software, stand jetzt, nicht funktioniert.
Dafür habe in C# eine Software geschrieben, in der ein Browser (WebView2) mit integriert war. Über diesen Browser rief ich Bwin auf, ließ mich automatisch einloggen und auf das Speedroulette navigieren. Nun hat die Software automatisiert die letzten 500 Zahlen ausgelesen und auch analysiert.
Bis zu 25 Verfahren des setzens habe ich mit in die Software mit einprogrammiert. Diese hat die Software mit durchsimuliert und grafisch in einem Chart ausgegeben. Natürlich wurde hierbei immer ein Graph mit zufälligen Setzen mit angegeben, damit man eine Referenz für die anderen Algrithmen hatte.
Nun konnte man ein Setzverfahren auswählen, nach welchem die Software automatisch setzen sollte. Das tat sie dann, streng nach den Vorgaben.
Spieleentwicklung ist ein Ding für sich. Aber es macht Spaß, eigene kleine Spiele zu programmieren. So habe ich mich an etwas Jump'n'Run a la Super Mario versucht. Der Spaß hierbei war, eine Engine zu entwickeln, die eine Schwerkraft erzeugte, damit Springen überhaupt möglich ist.
Aber auch ein Spiel, in welchem es nach einer Sprengung Elemente regnete, die man dann via Klick im Fallen einsammeln musste, habe ich programmiert. Das alles stärkt das Denken in einer GUI und natürlich den allgemeinen Programmierskill.