Blog

, , , , ,

Unterrichtsprojekt Interaktive Fiktion

Für das Thema Datenbanken (SQL-Abfragen, ER-Diagramme, Normalisierung, Urheberrecht) habe ich ein praktikables Projekt gesucht, das
– am Ende des Unterrichtsthemas zum Wiederholen und Festigen des Lernstoffs auffordert, ohne zu langweilen,
– einen motivierenden, spielerischen Touch hat, ohne zu viel Unterrichtsstunden zu beanspruchen,
– Teamarbeit fördert und Präsentationsmöglichkeiten bietet, um Kompetenzen zu fördern und mich aus dem Fokus zu nehmen.

Entschieden habe ich mich für das Projekt Interaktive Fiktion, besser bekannt als Textadventures. In einem klassischen Textadventure werden üblicherweise Räume beschrieben, die miteinander verbunden sind, sowie Gegenstände und NPCs beinhalten. Man spielt seinen Charakter durch Eingabe von Befehlen wie Gehe Nord, Nimm Schwert oder Sprich mit Weisen. Es gibt unzählige Variationen dieser Textadventures, auch die Spielziele variieren entsprechend. Wer Lust und Zeit hat, verschiedenste Textadventures online zu spielen, dem empfehle ich diese Seite. Ich erinnere mich aus der eigenen Schulzeit an ein Textadventure, das man über telnet spielen konnte 😉

Für das Unterrichtsprojekt wählte ich ein Textadventure von Cole Brooke, das auf SQLite als Datenbankmanagementsystem und Python als Interpretersprache aufsetzt. Brookes Adventure ist auf GitHub verfügbar unter https://github.com/colebrooke/adventure.

Zwei Gründe zu meiner Entscheidung: Erstens ist SQLite unkompliziert einzurichten. Kein Server, der aufwändig installiert und eingerichtet werden muss. Einfach eine Datei und fertig! Zweitens wurde in meinem Informatikkurs noch nicht in Java programmiert. Brookes Adventure ist dank Python ohne große Vorkenntnisse relativ gut verständlich. Insgesamt sind die notwendigen Dateien sehr überschaubar (1x Python-Skript, 1x SQL-Dump) und die notwendigen Anwendungen (Python-Interpreter, DB-Tool) auch portabel verfügbar.

Der Zeitplan für das Unterrichtsprojekt Interaktive Fiktion wurde von mir folgendermaßen festgelegt:

1. Doppelstunde:

  • Recherche zum Begriff Interaktive Fiktion; Anspielen von Textadventures; Erste Eindrücke austauschen
  • Starten von Brookes Adventure (Python, DB-Admintool in portablen Versionen starten; Datenbank anlegen;  SQL-Import)

2. Doppelstunde:

  • Brookes Adventure spielen und parallel in der Datenbank vom Spiel ausgegebene Informationen erforschen
  • ER-Diagramm von Brookes Adventure erstellen; Attributnamen, Primär- und Fremdschlüssel nennen

3.-5. Doppelstunde:

  • Arbeiten in Gruppen; Erstellen eines Produkts, das an das Textadventure anknüpft

6. Doppelstunde:

  • Präsentation der Gruppenergebnisse als “Markt der Möglichkeiten”

Für den Einstieg in das Projekt empfehle ich die Spiele auf http://ifwizz.de/if-textadventures-online-spielen.html. Sie sind im Browser spielbar und laden zum Diskutieren und Vergleichen ein. Hier einige Zitate aus meinem Kurs:

  • Die Texte sind das einzige Kommunikationsmittel, deshalb sollten sie auch lustig/ironisch sein.
  • Textadventures im HTML-Format sind, wenn man den Quelltext betrachtet, wie eine Art großes Netz. Es existieren Knotenpunkte, die den Handlungsablauf bestimmen.
  • Die Texte müssen gar nicht lang sein, um zu wirken. Es reichen kurze Beschreibungen aus, um einen Raum zu erklären.
  • Ab einem bestimmten Zeitpunkt packt der Ehrgeiz, wenn man Dinge gesammelt hat, die man noch verwenden könnte.
  • Dinge im Inventar müssen in einer logischen Reihenfolge verwendet werden, um weiterzukommen.
  • Der Komplexitätsgrad ist entscheidend für den Erfolg eines Spiels.

Um das im Projekt verwendete Textadventure zum Laufen zu kriegen (Windows-Rechner mit eingeschränkten Benutzerrechten), haben wir folgende Software verwendet:

Die beiden Dateien kann man durch Herunterladen und Entpacken des gesamten Repos erhalten. Hierzu auf der GitHub-Seite rechts auf Clone or Download und dann auf Download ZIP klicken.

Nach dem “Installieren” beider Programme, WinPython und DB Browser, muss zunächst die Datenbank angelegt werden.

Leider funktionierte (bei uns) der SQL-Dump nicht auf Anhieb. Der Vollständigkeit halber gebe ich die durchzuführenden Änderungen an, vielleicht hilft es ja dem einen oder anderen Leser:

In der Datei game.sql müssen mit einem vernünftigen Texteditor, zum Beispiel Notepad++ (gibt es auch als portable Version), die Zeilen 2 und 379 gelöscht werden. Wenn man genau aufpasst, kann man auch im Windows Editor die Änderungen durchführen. Am Anfang der Datei ist BEGIN TRANSACTION; zu löschen, am Ende COMMIT; Die Semikolons nicht vergessen!

 

 

 

Zum Anlegen der Datenbank im DB Browser nutzt man hierzu im Menü Datei, Import die Funktion Datenbank aus SQL-Datei… und wählt im aufgehenden Fenster die  heruntergeladene und gegebenfalls angepasste Datei game.sql aus dem GitHub Repository aus. Es öffnet sich dann sofort ein neues Fenster, in dem diesmal der Ort und Name der zu erstellenden Datenbank angegeben wird. Standardmäßig muss sie game.db heißen und sich im gleichen Ordner wie die Datei adventure.py befinden, sonst muss der Name in der Datei adventure.py angepasst werden.

Nach dem erfolgreichen Import sind die angelegten Tabellen im DB Browser im Reiter Datenbankstruktur sichtbar.

Die Datensätze findet man im Reiter Daten durchsuchen. Hier ein Beispiel mit der ausgewählten Tabelle user:

Nun kann endlich im Order mit dem entpackten WinPython IDLEX (PYTHON GUI).exe gestartet werden. Es handelt sich dabei um einen vollwertigen Python3 Interpreter einschließlich Editorfunktion. Über File, Open… die Datei adventure.py öffnen:

Über Run, Run Module oder alternativ F5 kann das Adventure gespielt werden:

Ein Blick in die Tabelle users zeigt, dass es einen Benutzer names Amy gibt. Daher kann das Spiel zum Beispiel mit 1, <Enter>, Amy, <Enter> getestet werden. Es fallen Ausgaben wie [1;37m auf. Es handelt sich dabei um Formatierungsanweisungen (Farbausgabe), die IDLEX nicht darstellen kann. Einfach überlesen 😉

Für die Erstellung der ER-Diagramme gibt es eine Vielzahl an Werkzeugen. Ganz praktisch ist ERDPlus (https://erdplus.com/#/standalone). ER-Diagramme können dort ohne Anmeldung erstellt, heruntergeladen und als Bild exportiert werden.

Ein Beispiel:

Ausgehend vom Textadventure wurde nun in Gruppen an mehreren spannenden Teilprojekten gearbeitet:

  • Erweiterung des Spiels um neue Räume
  • Analyse des Kampfmechanismus inklusive Erstellung eines Struktogramms
  • Möglichkeiten der Internationalisierung
  • Cheaten in Spielen: Allgemeiner Überblick und konkrete Möglichkeiten im Textadventure
  • Das Textadventure als Brettspiel
  • Portierung des Adventures von Python nach Java

Die Ergebnisse der Gruppenarbeiten wurden abschließend im “Markt der Möglichkeiten” gegenseitig vorgestellt. Während einer im Team den “Stand” betreute, erkundeten die anderen Gruppenmitglieder die Projekte auf dem “Markt”. Es wurde selbstorganisiert gewechselt.

Ein paar Eindrücke:

Leave a Comment

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

*