GameGridP

In den letzten Wochen hat meine 2D-Spiele-Enginge GameGridP große Fortschritte gemacht. All meine Kurse (Q4, Q2, E2) mussten mehrere Stunden mit der Umgebung programmieren, so dass für einige Wochen der Hauptteil meiner Informatik-Vorbereitung neben der Weiterentwicklung meines Python-Online-Kurses hauptsächlich daraus bestand, die Entwicklungsumgebung beständig weiter zu entwickeln.

So findet sich hier z.B. eine umfangreiche Dokumentation. Github zeigt mir an, dass ich inzwischen 60 Commits durchgeführt habe. Die Hauptdateien mit dem GameGrid, seinen Subklassen DataBaseGrid, GUIGrid, CellGrid und PixelGrid sowie der Actor-Klasse umfassen inzwischen über 2100 Zeilen Code, dazu kommen inzwischen verschniedene Snippets, die mir dabei helfen den Code zu testen und für alle anderen Inspiration und Umsetzungshilfe sein können.

Die nächsten Wochen wird sich daher auch wenig an der API ändern. Über die Sommerferien habe ich dann nochmal die ein oder andere Idee, wie sich die Perfomance verbessern lässt und wie ich die Klassen etwas übersichtlicher designen kann. Solange die Schüler an ihren Projekten arbeiten möchte ich den grundsätzlichen Aufbau möglichst nicht mehr anstasten.

Was habe ich in der Zwischenzeit gelernt?

Wenn man vorher mit Java programmiert hat, dann ist Python eine geniale Programmiersprache. Gefühlt bin ich um den Faktor 2-10 produktiver und ich kann mir kaum vorstellen die gleiche Funktionalität in Java in annähernd der gleichen Zeit zu programmieren.Immer wieder entdecke ich Aspekte der Sprache, bei denen ich mich über die Schönheit und Kürze des entstandenen Codes freue – Glücksmomente die ich in Java selten hatte.

Mein Entschluss dafür zu werben, Python an Schulen zu verbreiten (und dafür auch im Abitur einzufordern) hat damit neuen Nährboden bekommen. Warum sollen sich die Schüler mit einer Programmiersprache quälen, wenn es auch so viel einfacher geht? Denn auch die Schüler sind mit Python produktiver und kommen viel schneller zu guten Ergebnissen. Als Informatiklehrer möchte ich für die Schönheit und Vielfältigkeit meines Faches werben. Die Programmiersprache ist Mittel zum Zweck um möglichst viele Anwendungsgebiete (Algorithmen, Spiele, Bildverarbeitung, Computergrafik, künstliche Intelligenz, eingebettete Systeme….) dieses Faches zeigen zu können. Je produktiver die Schüler mit der Programmiersprache programmieren können, umso mehr Räume eröffnen sich für mich als Lehrer andere Ziele zu erreichen.

Mir ist in den letzten Wochen und Monaten auf jeden Fall klar geworden, dass die Wahl der Programmiersprache entscheidenen Einfluss auf das Erreichen meiner Unterrichtsziele hat.

Für mich habe ich darüber hinaus gelernt, wo meine persönlichen Belastungsgrenze liegt… Zwar ergaben sich durch die Nutzung in 3 Kursen Synergien. Trotzdem war es enorm aufwändig ein solches Projekt neben dem Abitur und neben dem regulären Unterricht voranzutreiben. Viele Nächte habe ich nebenbei durchprogrammiert, korrigiert oder Entwürfe erstellt. Für die Schüler ergaben sich dadurch in den ersten Wochen noch einige Probleme (leider dauerte es etwas, bis die Schnittstellen tatsächlich stabil waren und in der vorherigen Woche programmierter Code sorgte in der nächsten Woche möglicherweise für Fehler). Allerdings haben sich einige Aspekte der API auch erst durch die Ziele und Wünsche der Schüler ergeben. Ich freue mich aber auf jeden Fall schon im nächsten Schuljahr in der Q2 ein Programmierprojekt mit GameGrid durchzuführen und hoffentlich in einer E02 das Projekt “Python als erste Programmiersprache” fortsetzen zu können und dann in beiden Fällen auf eine stabile 2D-Engine zurückgreifen zu können.

 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.