Im vergangenen Jahr 2018 wurde in Estland eine Theaterproduktionsserie namens Tale of the Century gestartet. Während des ganzen Jahres präsentierten 22 lokale Theater dem Publikum ihre Interpretationen der letzten hundert Jahre estnischer Geschichte. In der Auslosung wurde dem russischen Theater das Thema der Zukunft Estlands zugewiesen.
Jeder von uns hat seine eigenen Vorstellungen davon, wie die Zukunft aussehen könnte - wovor wir Angst haben und wovon wir träumen. Wir wollten jedoch kein Stück schaffen, das dem Publikum nur sagt, wie der enge Personenkreis im Theater die Zukunft sieht. Deshalb haben wir diese Frage den Menschen gestellt, die in Zukunft tatsächlich leben werden - also den Kindern und Jugendlichen Estlands im Alter von 3 bis 19 Jahren. Wir erhielten Antworten sowohl auf Russisch als auch auf Estnisch von Städten und Dörfern in allen Ecken des Landes. Es gab Hunderte von ihnen und wir sind ihnen allen sehr dankbar.

Jede Antwort, die wir erhielten, war einzigartig, aber als wir die gesammelten Materialien durchgingen, bemerkten wir einige klare Tendenzen und Muster. Eine immense Anzahl möglicher zukünftiger Welten, sowohl attraktiv als auch schrecklich, nahm aus den Antworten der Kinder Gestalt an. Es gibt jedoch etwas, das diese Welten verbindet.

Die Geschichte führt uns ins Jahr 2118. Estland steht unter einer Schutzkuppel. Wir haben viel gelernt, einschließlich der Verlängerung der menschlichen Lebensspanne. Die Hauptfiguren sind ein älteres Ehepaar namens Linda und Timo. Vor hundert Jahren hatten sie als Kinder Fantasien über die Zukunft, in der sie jetzt leben. Tatsächlich sind sie genau die Kinder, die dieses Stück mitgestaltet haben. Während des Stücks werden diese Charaktere im Jahr 2118 in verschiedene Versionen Estlands fallen gelassen, je nachdem, wie das Publikum abstimmt.

Natürlich beginnt die Aufführung nicht, wenn der Vorhang aufgeht, sondern viel früher. Nachdem wir alle Antworten verarbeitet hatten, identifizierten wir die wichtigsten möglichen Wege für die Zukunft für die Kinder - vom info-technologischen bis zum ökologischen Zustand. Da die Zukunft nicht vordefiniert ist, sondern von den Entscheidungen abhängt, die wir alle treffen, wurden die möglichen Wege für die Zukunft in Kurzgeschichten unterteilt, die durch die übergreifende Geschichte der Hauptfiguren und ihrer Familie verbunden waren.

Das Bühnenbild ähnelt einem Konstruktionsspielzeug, das jede Form annehmen und jede Funktion in den Händen von Kindern ausführen kann. Es ist auch wie ein Graph geformt - ein spezielles abstraktes mathematisches Objekt, mit dem wir viele Phänomene der realen Welt beschreiben und modellieren können, wie Straßennetze, Organisationsmodelle von Unternehmen, das Internet oder die Vielfalt der Entscheidungen, die Menschen treffen - Entscheidungen, die sie treffen können in verschiedene Handlungsstränge verwandelt werden.

In einem Diagramm dargestellt, bilden die möglichen Diagrammentwicklungen eine komplexe und vielfach verzweigte Struktur.
Utopie führt oft zu Dystopie und der Weg zur Hölle ist mit guten Absichten gepflastert. Die Szenen sind durch die Logik der Dramaturgie miteinander verbunden. Unter Berücksichtigung aller möglichen Optionen für die Zukunft, die von den Fantasien der Kinder inspiriert waren, hatten wir viele Geschichten. Es war sehr wichtig, keinen von ihnen während einer Aufführung zu wiederholen. Wenn das Publikum beispielsweise für eine Utopie stimmt, führt dies zu einer Dystopie, oder wenn das Publikum die Utopie ablehnt, muss es eine andere Wahl treffen. Wir hatten Situationen, in denen die Stimmen fast gleich verteilt waren und die endgültige Entscheidung von 2-3 Stimmen abhing.

Neben der dramaturgischen Aufgabe gab es mehrere andere technische Herausforderungen: die ausgeklügelten Steuerungssysteme, die Hunderte von LEDs auf der Bühne steuern, die kunstvoll gestalteten Kostüme für jede Version der Zukunft von einer der besten estnischen Theaterdesignerinnen, Rosita Raud (dies ist eine Herausforderung) hauptsächlich für die Schauspieler, die sich nach Beendigung der Abstimmung schnell umziehen müssen) und natürlich für das Abstimmungssystem, das die Handlung bestimmt und auf einem Grafikmodell basiert. Darüber möchte ich Ihnen ausführlicher erzählen.
Alle Musik wurde live von
MODULSHTEIN gespielt
Um das Verständnis zu erleichtern, geben wir eine Performance ein
Wir sind in der multikulturellen Geschichte. Alle Sprachen und Geschlechter sind gemischt. Alles wird akzeptiert. Das Performance-Segment beginnt mit einem News Bulletin, das dem Publikum den Kontext der folgenden Szene in einem 5-Sprachen-Mix erklärt.
Ironischerweise ist Jelena Solomina eine echte Moderatorin im nationalen Fernsehen und eine bekannte Persönlichkeit des öffentlichen Lebens.
In der multikulturellen Zukunft macht alles Spaß. Semenova jr. organisiert ein Treffen mit ihren Eltern, bei dem sie ihren Freund vorstellt, der eine Mischung aus arabischer und Ballettkleidung trägt. Nach der Einführung gehen alle auf eine Party


Am Ende der Szene wird die Abstimmung eröffnet. Die Hauptfrage ist, ob Estland diesen Weg gehen wird oder nicht. Und wenn ja ...
Die Utopie wird zu einer Dystopie. Alle Freiheiten werden eingeschränkt und neue Beschränkungen eingeführt. Plötzlich schlossen Spezialeinheiten die Partei und sortierten Menschen in Gruppen. Einige Menschen werden begrüßt und gehen nach rechts in die glänzende Zukunft, während andere sich ausziehen und nach links in die Hinrichtungsmaschine gehen müssen.

Die technische Lösung
Hier sind die Anforderungen, die wir an unser System stellen:
- Das System sollte Stimmen sammeln, die Ergebnisse in Echtzeit anzeigen und bis dahin Entscheidungen treffen.
- Das System sollte abhängig von den Abstimmungsergebnissen Handlungsstränge auswählen, neue Stimmen öffnen und zwischen Handlungssträngen wechseln.
- Das System sollte mit dem Publikum in natürlicher Sprache kommunizieren.
- Das System sollte vom stellvertretenden Direktor hinter den Kulissen verwaltet werden, mit vollständigen Statistiken über aktuelle Zustände und Abstimmungen.
Tatsächlich war dies ein weiterer Schauspieler namens EMA („Mutter“ auf Estnisch), eine künstliche Intelligenz, die in Zukunft Realität geworden ist. EMA führt das Publikum durch die Handlung und manifestiert sich in den verschiedenen Versionen der Zukunft. Außerdem wird die Abstimmung gestartet, die Ergebnisse gezählt und präsentiert, und das Spiel wird basierend auf den Abstimmungsergebnissen entlang der Handlungsstränge verschoben. Die gesamte EMA wurde in den 1,5 Monaten vor der Premiere von Grund auf neu geschrieben. Da sich die Handlungsstränge, verschiedenen Anpassungen und Grafikübergänge ständig weiterentwickelten, als das Stück gemäß den Entscheidungen des Teams der Drehbuchautoren und des Regisseurs Gestalt annahm, war es nicht möglich, früher mit der Entwicklung zu beginnen.
Das Auditorium bot Platz für 600 Personen, daher mussten die Teilnehmer über ihre Telefone abstimmen können, und wir mussten in der Lage sein, alle diese Stimmen innerhalb von weniger als einer Minute zu erhalten und zu verarbeiten. Die Option zum Entwickeln einer mobilen App wurde sofort verworfen, da das Herunterladen und Installieren einer Anwendung zusätzlichen Aufwand erfordert. Niemand wird Ihre App herunterladen, wenn Sie nicht Facebook oder Google sind. Darüber hinaus hätte die Unterstützung verschiedener Telefontypen und -modelle eine separate Entwicklung erforderlich gemacht, was unrealistisch war, da wir nur 1,5 Monate und einen Entwickler hatten. Außerdem hätte der mobile Client in zwei Sprachen sein müssen - Estnisch und Russisch. Daher brauchten wir eine Webanwendung, die für Mobiltelefone optimiert wurde.

Eine andere Webanwendung wurde als administratives Backend für die Steuerung des Systems benötigt: Starten / Stoppen, Aktivieren von Abstimmungsrunden, Überwachen des Status der laufenden Abstimmung usw.

Und drittens und vor allem mussten wir die Interaktion von EMA mit dem Publikum koordinieren.
Hier ist es notwendig, das Konzept des „Super“ einzuführen - etwas, das für mich neu war. Das „Super“ ist der vordere Vorhang, der heruntergeht und die Bühne verbirgt. Es ist reflektierend und ermöglicht es Ihnen, verschiedene Projektionen anzuzeigen, z. B. Pressemitteilungen (auf die wir später zurückkommen) oder den EMA-Bildschirm, auf dem Informationen zu den Abstimmungsergebnissen und den vom Publikum getroffenen Entscheidungen angezeigt werden.

Wir haben also ein komplexes Diagramm, ein Abstimmungssystem und drei Frontend-Systeme, die mit den Zuschauern und dem Administrator interagieren müssen (Svetlana Shushina, eine unglaubliche Regieassistentin).
Grafik
Beginnen wir mit der Grafik. Die Datenstruktur - in diesem Fall verschiedene Versionen der Zukunft Estlands und die möglichen Übergänge zwischen den Szenen in Abhängigkeit von den Abstimmungsergebnissen - musste irgendwo gespeichert werden. Relationale Standarddatenbanken eignen sich aus mehreren Gründen nicht zum Speichern von Diagrammdaten. Für uns waren die grundlegenden Anforderungen die flexible Datenspeicherung, die Speicherung von Statusübergängen, die Verknüpfung mit Audiodateien je nach aktuellem Status usw.
Die offensichtliche Wahl fiel auf Neo4j, die weltweit führende Software zur Verwaltung von Graphendatenbanken. Sieben der zehn weltweit führenden Technologieunternehmen setzen es ein. Es bietet ausgereifte Technologie, Geschwindigkeit, Komfort und eine exzellente Community, die für diese Art von Lösungen keine andere Wahl lässt.
Wir haben die von den Drehbuchautoren erstellten Szenarien als Grafik in Neo4j modelliert. Hier ist ein Beispiel dafür, wie die Drehungen und Wendungen der Handlung in Neo4j aussehen.
Als natives System zur Darstellung von Graphen bietet Neo4j Flexibilität und das Fehlen einer festen Struktur. Dies machte es einfach, Handlungsstränge zu ändern und zu verbinden und neue Audioversionen hinzuzufügen.

Backend
Bei der Auswahl der Technologie für die Serverseite haben wir zwischen Python und Java gezögert. Schließlich haben wir uns für Java entschieden, weil es schnell und zuverlässig ist und klare Anforderungen hat, und auch wegen Spring Boot, das Neo4j sofort unterstützt.

Die Serverseite wurde in Spring Boot implementiert. Der Server sammelt Stimmen, wechselt nach Beendigung der Abstimmung vom „Super“ in den folgenden Status, akzeptiert Befehle vom Administrator, stellt Statistiken bereit und so weiter. Es verwaltet auch die Benutzerregistrierung und sendet Abstimmungsdaten (das Öffnen oder Schließen einer Abstimmung und die verfügbaren Optionen) an die Frontend-Kunden.

Dann kamen wir zum bemerkenswertesten Teil der Aufgabe. Die allgemeine Idee war, dass die Komponente, die auf der „Super“ - EMA - angezeigt wird, in der Lage sein muss, mit dem Publikum zu sprechen. Es musste das Publikum auf die Abstimmung vorbereiten, die Abstimmungsoptionen bekannt geben, die Abstimmung starten und beenden, die Ergebnisse bekannt geben und je nach Wahl des Publikums die Optionen für die nächste Abstimmung vorschlagen oder eine Einführung für die nächste Szene geben. Dies bedeutete, dass das Audio dynamisch sein und im laufenden Betrieb vorbereitet werden musste. Angesichts der Tatsache, dass die Anzahl der Optionen enorm ist, die Dauer jeder Audiodatei unterschiedlich ist und die Synchronisation wichtig ist (z. B. sollte die Abstimmung erst nach der Ankündigung „Abstimmung ist offen!“ Öffnen), war dies überhaupt keine triviale Aufgabe.
Das System hatte also zwei Kontrollzentren.
Der erste ist der Server - er speichert den aktuellen Status des Plots, liefert Statistiken, verwaltet die Benutzerregistrierung, sammelt Stimmen und stellt sicher, dass jede Person nur eine Stimme abgeben kann.
Das zweite ist das „Super“ , das die Abstimmung beginnt und beendet, den Fortschritt und die Ergebnisse der Abstimmung zeigt und so weiter.
Frontend
Das "Super" wurde in Vue.js implementiert. Ursprünglich war geplant, das Audio mithilfe der Google Speech-API dynamisch zu erstellen. Wir konnten jedoch nicht garantieren, dass keine Netzwerklatenz auftritt. Aus diesem Grund wurde eine andere Option ausgewählt, und wir haben die Audiodateien einzeln mit Google Speech aufgenommen.
Insgesamt hatten wir 55 Audioclips. Die Daten darüber, welche Audiodateien in welchem Zustand abgespielt werden sollen, wurden zusammen mit den Zuständen im Diagramm gespeichert. Da es sich um JavaScript handelte, haben wir die Audiodateien und Befehlsaufrufe wie Trauben übereinander gelegt. Wir waren also nicht darauf angewiesen, dass die Audiodateien unterschiedlich lang waren und eine ziemlich universelle Lösung ergaben.
Ursprünglich war die Website für mobile Clients in VueJS geschrieben, aber beim Testen stellten wir fest, dass es ein Inkompatibilitätsproblem gab, das einige Mobiltelefonmodelle betraf. Wir haben versucht, das Problem mit Babel-Transpilern zu lösen, aber als mehrere Einstellungen hinzugefügt wurden, wuchs das Volumen der Seite, und obwohl die Web-App auf einigen Handys zu funktionieren begann, brach sie auf anderen. Schließlich wurde der mobile Client in Vanilla JS neu geschrieben. Als Ergebnis haben wir ein verteiltes System erhalten.
Das endgültige Volumen des Systems (die JAR-Datei) betrug 146 Megabyte. Das Telekommunikationsunternehmen Telia hat uns einen virtuellen Server zum symbolischen Preis von 1 Euro pro Monat zur Verfügung gestellt, für den wir sehr dankbar sind, und eine erstaunliche Servicequalität.
Der erste Live-Lauftest fand im Playtech-Büro statt, was sich als ziemlich lustig herausstellte.

Das Arbeitstempo beschleunigte sich vor der Premiere. Die Erwartungen wurden noch höher durch die Tatsache, dass der Präsident von Estland an der Premiere teilnehmen würde. Ein letzter Fehler wurde eine halbe Stunde vor der Premiere entdeckt, und es war keine Zeit zum Testen des Fixes vorhanden. Während der ersten Aufführungen wurde das Systemverhalten bei allen möglichen zukünftigen Plotlines parallel auf dem lokalen Computer des Entwicklers hinter dem getestet Szenen, so dass es möglich wäre, im Voraus einen Aktionsplan zu erstellen, falls Probleme auftreten sollten.

Es gibt eine interessante Tatsache, die ich hervorheben möchte. Wir haben die Namen der Personen, die in Echtzeit abgestimmt haben, auf dem Abstimmungsbildschirm am vorderen Vorhang angezeigt. Wir haben dafür die Animationsvorlage von Vue verwendet, und während der allerersten Aufführung hat jemand im Publikum bei der Registrierung ein „Killersymbol“ als seinen Namen eingegeben, wodurch die Animation und Anzeige der Vue-Vorlagen unterbrochen wurde. Anschließend haben wir diese Lösung (mit Namen in animierten Übergängen) aufgegeben und auf gute alte jQuery umgestellt. VueJS wird nur für "Super" zum Vorlagen-, Audio-Management- und Switching-Status verwendet.
Die Leistung erhielt viele positive Kritiken in der Presse. Einige von ihnen:
Estnisch:
https://kultuur.postimees.ee/6402024/millised-me-eestlased-olemehttps://www.ohtuleht.ee/893816/mari-lill-uks-asi-on-raakida-vene-keelt-tanaval-hoopis-teine-asi-teha-seda-teatrilaval-Russisch:
https://rus.postimees.ee/6147704/nashe-zavtra-v-zerkalah-utopii-i-antiutopiihttps://rus.postimees.ee/6141942/budet-ne-budet-net-nichego-opasnee-budushchegohttps://rus.err.ee/859086/russkij-teatr-pokazhet-spektakl-budet-ne-budet-na-festivale-draama-v-tartuhttps://m.ee.sputniknews.ru/culture/20180826/12340797/otkrytije-sezon-russkij-teatr-teatraljnoje-sobytije-god.html?mobile_return=noBeim Drama Festival in Tartu dauerten die Standing Ovations fast 5 Minuten.
Es war ein unglaubliches Abenteuer aufgrund der verrückten Energie und des Engagements der an dem Projekt beteiligten Personen. Ich nehme allen Leuten den Hut ab, die an der Entstehung dieses Stücks beteiligt waren.
Regisseur - Artjom Gareev
Komponist, Produzent - Aleksandr Zedeljov
Visual - Aljona Movko
Kostüme - Rosita Raud
Lichter - Anton Andrejuk
Choreografie - Olga Privis
Dramatikerin: Karin Lamson, Mari-Liis Lill, Jelena Chicherina, Laura Kalle
Video - Nikolay Alhazov
Programmier- und IT-Lösung - Aleksandr Tavgen, Anna Agafonova
LED-Leuchten - Aleksander Sprohgis
Animationen - Martin Yakush
Musik - Modulshtein
Marten Altrov - Klarinette, Bassklarinette
Aleksej Semenihhin - Samples, Soundeffekte
Aleksandr Zedeljov - Gitarre, Synthesizer, Ableton
Vocals - Anna Dydyna
Regieassistentin Svetlana Shushina
Schauspieler:
Natalja Dymchenko, Aleksandr Zhilenko, Daniil Zandberg, Dmitrij Kordas, Ekaterina Kordas, Aleksandr Kuchmezov, Viktor Marvin, Natalja Murina, Jelena Tarassenko, Eduard Tee
Sergej Furmanjuk, Leonid Shevcov, Jelena Jakovleva
Russisches Theaterstudio: Deniss Volkov, Polina Grinjova, Nina Zagvozdkina, Anastassija Koleda, Natascha Kristensen, Anastassija Masalova, Sandra Minosjan, Sofia Mihaljova, Katrin Mägi, Mihhail Pashuk, Katrin Seljugina, Kristina Sorokgt, Sofia
Tech Writer - Sigrid Maasen