Kinder in die Natur jagen

Ich bin ja Fan von Pokémon Go, weil ich damit die Kinder immer wieder rausgescheucht kriege und weil es schön ist, ihnen dabei zuzusehen, wie sie immer noch Spaß daran haben.

Neulich wollte ich mit den Kindern zu meiner Mutter aufs Land (nach #Rhade) fahren, viel Natur wenig Spielekonsole (nur der öde Fernseher und DVDs, was das elektronische Unterhaltungsprogramm angeht) – sie wollten nicht mit oder zumindest ihre Wii-U mitnehmen.

Ich habe ihnen mein altes Taschenmesser gegeben und ihnen gesagt: „In Rhade könnt Ihr Zelda in Echt nachspielen. Schneidet Euch ein paar Zweige und Stecken aus dem Gebüsch und erkundet die Wildnis am Bach!“ – Erstaunlicherweise hat das ohne Umschweife sofort gewirkt. In Rhade angekommen, sind sie wirklich gleich mit dem Taschenmesser verschwunden.

Und hier ist der Grund für diesen Blogpost: Mit Calliope bin ich gerade dabei eine Art Selfmade-Pokémon Go basierend auf Zelda für Rhade zu schnitzen, und das soll so gehen:

  • wir nehmen eine Calliope als Shiekah-Stein, die die Kinder in der Hand halten
  • wir nehmen mehrere andere Calliopes als verschiedene Charaktere aus Zelda und verteilen sie in der Botanik im Rhade, zum Beispiel einen Bogblin oder einen Schrein oder sonstwas (hier ist dann die Expertise der Kinder nochmal gefragt).
  • Die Charakter-Calliopes werden mit einer für jeden Charakter individuellen Konfiguration bestückt, bestehend aus
    • Name (String)
    • Gesinnung („b“ für „böse“ oder alles andere für „nicht böse“)
    • Interaktionspunkte 1 (zufälliger Wert zwischen 0 und 99)
    • Interaktionspunkte 2 (zufälliger Wert zwischen 0 und 99)
    • Interaktionspunkte 3 (zufälliger Wert zwischen 0 und 99)
    • Text
  • Die Charakter Calliopes senden ihre Konfoguration permanent via Bluetooth in die Welt.
  • Wenn die Kinder mit der Shiekah-Calliope in die Reichweite einer Charakter-Calliope kommen, empfängt die Shiekah die Konfiguration und reagiert darauf.
    • Es wird immer der Name auf der Shiekah angezeigt
    • Es wird angezeigt, ob die Charakter-Calliope böse oder nicht böse ist
      • wenn sie böse ist, müssen die Kinder die Shiekah schütteln und damit einen Wert erschütteln, der höher ist als die Interaktionspunkte 1 der bösen Calliope. Das ganze drei mal. Die Auswertung soll „Best-of-Three“ erfolgen, aber da bin ich noch nicht…
      • wenn die Charakter-Calliope nicht böse ist, kann sie ihre Interaktionspunkte an die Shiekah-Calliope übertragen, so dass die Kinder mit der Shiekah dardurch stärker werden (aber da bin ich auch noch nicht).
    • Ziel ist, dass wir schnell und ohne große Aufwände viele Charakter-Calliopes programmieren können (z. B. auch interessant für Schulklassen, die gerade einen unserer Klassensätze erhalten haben).
    • Diese zahlreichen Charakter-Calliopes kann man an lauen Sommertagen in Parks, in der Wildnis oder in der Stadt verstecken und die Kinder dann mit der Shiekah-Calliope ins Abenteuer schicken.

Ich habe heute Abend mal damit angefangen, wie so ein Bogblin wohl aussehen könnte und eine erste rudimentäre Shiekah programmiert, hier ist der Zwischenstand meiner Codes:

Shiekah-Code:

let text = ""
let bw03 = 0
let bw02 = 0
let bw01 = 0
let parserCount = 0
let gesFound = ""
let nameFound = ""
let length = 0
radio.onDataPacketReceived(({receivedString}) => {
 music.playTone(Note.C, music.beat(BeatFraction.Whole))
 length = receivedString.length
 for (let index = 0; index <= length; index++) {
 if (receivedString.charAt(index).compare(",") == 0) {
 parserStops[parserCount] = index
 parserCount += 1
 }
 }
 nameFound = receivedString.substr(0, parserStops[0])
 gesFound = receivedString.substr(parserStops[0] + 1, parserStops[1] - (parserStops[0] + 1))
 bw01 = parseInt(receivedString.substr(parserStops[1] + 1, parserStops[2] - (parserStops[1] + 1)))
 bw02 = parseInt(receivedString.substr(parserStops[2] + 1, parserStops[3] - (parserStops[2] + 1)))
 bw03 = parseInt(receivedString.substr(parserStops[3] + 1, parserStops[4] - (parserStops[3] + 1)))
 text = receivedString.substr(parserStops[4] + 1, length - (parserStops[4] + 1))
 basic.showString(text)
 basic.showString("!")
 basic.showString("In der Nähe ist ein ")
 basic.showString(nameFound)
 if (gesFound.compare("b") == 0) {
 basic.showString("Er ist mies drauf!")
 } else {
 basic.showString("Er ist ganz freundlich.")
 }
})
let parserStops: number[] =[]
radio.setGroup(1)

Und hier der Bogblin-Code:

let trenner = ""
let auffindbarkeit = 0
let Text = ""
let Wert03 = 0
let Wert02 = 0
let Wert01 = 0
let sendString = ""
let Gesinnung = ""
let Name = ""
basic.forever(() => {
 radio.sendString(sendString)
 basic.showNumber(sendString.length)
 basic.showString(Name)
})
Name = "Bogblin"
Gesinnung = "b"
Wert01 = Math.random(100)
Wert02 = Math.random(100)
Wert03 = Math.random(100)
Text = "UAH!"
auffindbarkeit = 4
radio.setGroup(1)
radio.setTransmitPower(auffindbarkeit)
trenner = ","
sendString = "" + Name + trenner + Gesinnung + trenner + Wert01 + trenner + Wert02 + trenner + Wert03 + trenner + Text

Das ist alles noch ganz rudimentär und aus Entwickler*innen-Sicht sicher sehr stümperhaft, wer Bock hat, möge die Codes nehmen, verbessern und vor allem gemäß dessen, was ich nach obiger Beschreibung noch zu erreichen gedenke, zu erweitern!

Ich dachte, ich schreib’s schonmal eben auf, wenn’s irgendwann mal cool genug ist, mach ich ein Hackster-Projekt daraus.

Von Maxim Loick

Folgt mir auf Twitter: @Pausanias oder bei Google+: Maxim Loick

Ein Kommentar

  1. Schöne Idee. Man könnte es auch so modifizieren, dass nur zwei Calliope nötig sind. Eine Begleitperson hat unauffällig sein Calliope in der Tasche und kann durch Tastendruck einen zufälligen Charakter erzeugen. Vielleicht durch „A“ einen guten und „B“ einen bösen? Dann kann man beim Spaziergang durch den Wald je nach Stimmung die nächste Aktion auslösen. Zur Erweiterung lassen sich natürlich auch Figuren jeglicher Art als „fassbare“ Charaktere im Wald „verstecken“.

Schreibe einen Kommentar

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