Be Bernd: Unterschied zwischen den Versionen

Aus hyperdramatik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 7: Zeile 7:
Das Spiel wurde mehrfach überarbeitet und die Story dabei angepasst, da die Entscheidungen bei den Spieler*innen den Eindruck eines Gewinnens und Verlierens zu Anfang vermeiden sollten, diese sich aber trotzdem einstellte. Dies führte in den späteren Versionen des Spiels dazu, dass die Entscheidungsfindung stärker in ein Richtig/Falsch überführt wurde und Entscheidungen dadurch weniger willkürlich getroffen wurden.  
Das Spiel wurde mehrfach überarbeitet und die Story dabei angepasst, da die Entscheidungen bei den Spieler*innen den Eindruck eines Gewinnens und Verlierens zu Anfang vermeiden sollten, diese sich aber trotzdem einstellte. Dies führte in den späteren Versionen des Spiels dazu, dass die Entscheidungsfindung stärker in ein Richtig/Falsch überführt wurde und Entscheidungen dadurch weniger willkürlich getroffen wurden.  


[[Datei:Bernd.JPG|300px]]
[[Datei:Bernd.jpg|300px|thumb|left|Bild von Spieler*innen bei BeBernd]]





Version vom 15. April 2020, 13:18 Uhr

Be Bernd ist ein interaktives Medienspiel, das AR, VR, ein Arduino basiertes Radiospiel sowie ein Textconsolen-Game enthält. Das Spiel wurde bei den Festivals A.Maze, re:publica, der Brettspiel Convention Berlin, dem VR Ham und dem Next Level gezeigt. Narrativ ist es in einem Cli-Fi Szenario angesiedelt. Die Spieler*innen sollen dabei an verschiedenen Stellen des Spielorts Berlin Informationen sammeln und anschließend austauschen. Die Idee war, so eine Debatte über Wissensbestände, Klimakrise und Gruppenprozesse, in denen die Spieler*innen stecken, zu starten.

Story

Das Spiel ermöglichte die Auswahl zwischen vier verschiedenen Orten, an denen jeweils zwischen zwei unterschiedliche Entscheidungen getroffen werden können. Um eine Entscheidung zwischen diesen beiden Optionen treffen zu können, mussten die Spieler*innen getrennt voneinander Informationen auf den jeweiligen Devices sammeln und anschließend die gesammelten Informationen mtieinander diskutieren. Das Szenario war dabei eine durch die Klimakrise bedrohte Stadt, die vor der Überflutung gerettet werden muss. Die Orte in der Stadt dienten als Exempel für mögliche Szenarien.

Das Spiel wurde mehrfach überarbeitet und die Story dabei angepasst, da die Entscheidungen bei den Spieler*innen den Eindruck eines Gewinnens und Verlierens zu Anfang vermeiden sollten, diese sich aber trotzdem einstellte. Dies führte in den späteren Versionen des Spiels dazu, dass die Entscheidungsfindung stärker in ein Richtig/Falsch überführt wurde und Entscheidungen dadurch weniger willkürlich getroffen wurden.

Datei:Bernd.jpg
Bild von Spieler*innen bei BeBernd


Technischer Aufbau

OSC Kommunikation

Alle Teile des Spieles sind in einem voreingenstelltem Netzwerk. Die folgenden IP-Adressen wurden verwendet: (ACHTUNG: FIREWALL DEAKTIVIEREN) Brain (Sister Mary): 192.168.1.124 Tablet: .1430 Radio (Arduino): .134 Console (Grace Hopper): .133 Port: 1330 VR Brille: .109 / .126 als Option

Das Brain steuert alle anderen Devices, den Plotter und den Sound. Das Brain ist quasi das FOH des Spiels. Der Code für die ausgehenden OSC-Befehle liegen auf dem Brain im Unity-Projekt BRAIN unter OSC-Sent. OSC Controller ist das Game-Object für OSC Befehle. Das Script für Entscheidungen liegt auf der Console.

Code OSC Kommunikation

Als Beispiel ist die OSC-Kommunikation der VR-Brille mit der Console genannt. Die Brille reagiert jeweils auf OSC-Befehle, die es von der Console bekommt.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;

public class ReadOSC : MonoBehaviour
{
    public OSC oscReference;
   
    public TextMeshPro debug;

    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Starting OSR Read");
        //called for all messages
        oscReference.SetAllMessageHandler(OSCReceived);

        //called only if address is specific
        oscReference.SetAddressHandler("/viveFocus", ViveMessageReceived);
        oscReference.SetAddressHandler("/all", AllMessageReceived);
    }

    // Update is called once per frame
    void Update()
    {

    }

    void OSCReceived(OscMessage oscM)
    {
        Debug.Log(oscM);
        //incomeOscMessage.text = oscM.address;
        Debug.Log(oscM.values);

        //float myFloat = oscM.GetFloat(0);


    }


    void AllMessageReceived(OscMessage oscM)
    {
        Debug.Log("Message Received");
        Debug.Log(oscM.address);
        foreach (var v in oscM.values)
        {
            Debug.Log(v.ToString());
        }
        if (oscM.values.Contains("start"))
        {
            Debug.Log("starte Spielws...");
            debug.text = "start";
            //Wuerfel.GetComponent<MoveandTurn>().stopeverything();
        }

        if (oscM.values.Contains("startBerghain"))
        {
            SceneManager.LoadScene("Scenes/berghain");
            debug.text = "berghain";
        }

        if (oscM.values.Contains("startHBF"))
        {
            SceneManager.LoadScene("hbf_essen");
            debug.text = "hbf";
        }

        if (oscM.values.Contains("startTHF"))
        {
            SceneManager.LoadScene("Scenes/Tempelhof_essen");
            debug.text = "thf";
        }

        if (oscM.values.Contains("stopTHF"))
        {
            SceneManager.LoadScene("Scenes/Entry");
        }
        if (oscM.values.Contains("stopHBF"))
        {
            BackToStart();
        }
        if (oscM.values.Contains("stopBerghain"))
        {
            BackToStart();
        }

            if (oscM.values.Contains("stopTHF"))
            {
            BackToStart();
        }
            if (oscM.values.Contains("StopTutorial"))
            {
            BackToStart();
        }

            if (oscM.values.Contains("StartTutorial"))
            {
                SceneManager.LoadScene("Scenes/Tutorial");
            }
        }

    void BackToStart() {
        SceneManager.LoadScene("Scenes/Entry");
        SceneManager.UnloadSceneAsync("Scenes/berghain");
        SceneManager.UnloadSceneAsync("Scences/Tempelhof_essen");
        SceneManager.UnloadSceneAsync("hbf");
    }

        void ViveMessageReceived(OscMessage oscM)
        {
            Debug.Log("zis is chomink from ze vive focus");


        }
    }

Diverses Technisches

Zum Bewegen des Plotters:

S- Move to Start
A- Move to Alex
H- Move to HBF
F1- Startposition des Plotters
B- Berghain
T-Tempelhof

Die App des Tablets liegt hier. WETRANSFER!

Console: Sendet auch OSC-Befehle um Auswahl zurück zu geben. Radio läuft im Playmode.

Hardware_Liste für BeBernd

- 1 VR Brille
- 1 Tablet das Google AR-Core fähig ist
- 1 Arduino und zwei Rotaryencoder(Drehmomentgeber) und einen Abstandssensor(LIDAR)
- 1 Paar Kopfhörer
- 1 mal aktiv Boxen
- 2 Bildschirme
- 1 X/Y Plotter
- 2 Tastaturen
- 1 Maus
- 1 Router
- 3 Intel NUCs
- 1 kurzes HDMI
- 1 langes HDMI Kabel
- 1 3.5mm Klinkekabel zweimal Stecker
- 1 3.5mm Klinkekabel Verlängerung 1 Stecker/1 Buchse
- 1 USB Typ A auf TYP B Kable fürs Arduino
- 1 Usb Micro auf Typ A für Plotter
- 4 Mini LED Pars(Optional)