Die Idee, Tabellenkalkulationen als Umgebung für die Entwicklung von Spielzeug zu verwenden, ist
nicht neu . In diesem Artikel werde ich meine Erfahrungen mit der Erstellung von Engines für Live-Action-Rollenspiele und Teambuilding teilen, die das Leben von Spielpraktikern erheblich erleichtern können.
Warum ist es notwendig?
Angenommen, Sie spielen ein Spiel, an dem 50-60 Personen gleichzeitig teilnehmen. Jeder Spieler hat eine Reihe persönlicher Parameter (z. B. Erfahrung, Geld, Gesundheit, Ansehen), die je nach den von ihm durchgeführten Aktionen variieren. Es gibt auch eine Reihe allgemeiner Spielindikatoren (z. B. Ökologie, Budget des Landes oder Regierungsbewertung), die ebenfalls entsprechend den Aktionen und Entscheidungen der Spieler schwanken. Und es gibt Spielereignisse, die mit einer bestimmten Kombination externer Faktoren auftreten.
Im Allgemeinen ist dies ein ziemlich dichter Informationsstrom, der schnell und genau berechnet werden muss. In einem klassischen Rollenspiel wird diese Funktion normalerweise vom Spielleiter ausgeführt. Aber der Meister ist nicht vor Fehlern sicher und wird immer noch nicht viele Informationen verarbeiten - weder in seinem Kopf noch mit einem Stück Papier.
Mit einer elektronischen Engine kann eine Person einen Informationsstrom eines beliebigen Volumens verarbeiten. Gleichzeitig können Spielstatistiken auf dem Projektor angezeigt werden, sodass die Teilnehmer in Echtzeit beobachten können, wie sich ihre Aktionen auf die Spiellayouts auswirken. Sie können beispielsweise jedem Spieler, der auf ein Smartphone abzielt, geheime Daten anzeigen. Und vor allem - Sie können diesen Motor kostenlos nutzen!
Vor ungefähr einem Jahr von den Spielpraktiken mitgerissen, gelang es mir, 7 Engines für verschiedene Teambuilding-Spiele zu schreiben. Die meisten dieser Spiele haben kommerziellen Erfolg und eines wurde sogar als Franchise im Ausland verkauft.
Cashflow
Alles begann mit dem
Cash Flow- Spiel. Freunde haben mich eingeladen, Robert Kiyosakis berühmten Tisch zu spielen, und sie hat mich wirklich begeistert. Das einzige, was das Spiel störte, war die Notwendigkeit, ständig Berechnungen in einer Spalte durchzuführen, die veralteten Daten mit dem Radierer zu löschen und neue hinzuzufügen. Aufgrund der Tatsache, dass sich alle Teilnehmer aus Angst vor einem Fehler ständig auf ihre eigenen Berechnungen konzentrierten, verlor das Spiel einen großen Teil seiner Dynamik und verzögerte sich um viele Stunden.
Ich habe beschlossen, das Gameplay zu optimieren, indem ich alle Kosten in eine Google-Tabelle übersetzt habe.

Um diesen "Taschenrechner" zu testen, habe ich mehrere Spiele für Freunde ausgegeben. Der Effekt war unglaublich! Anstatt über die Berechnungen nachzudenken, waren die Spieler aktiv am Gameplay beteiligt, verhandelten und entwickelten komplexe Finanzpläne und Betrugsfälle. Die Geschwindigkeit des Spiels selbst hat sich fast verdoppelt. Wir haben es zuerst geschafft, es zu beenden, als alle Spieler die Rattenrennstrecke verließen und ihre Ziele erreichten. Zum Vergleich: In der „manuellen“ Version hatten die Teilnehmer kaum die Geduld, das Spiel zu beenden, bis es zumindest jemandem allein gelang, einen großen Kreis zu erreichen.
„Um verrückt zu werden! - rief mein Freund Ruben während eines der Spiele aus. - Acht erwachsene Männer versammelten sich, um den ganzen Abend mit einem Google-Tablet auf den Bildschirm zu starren. Aber es ist wirklich interessanter als jeder Film! "
Mein Teller für Berechnungen im Spiel "Cash Flow" kann hier heruntergeladen
werden . Wenn nicht ganz klar ist, wie man es benutzt, schreibe mir und ich werde detaillierte Anweisungen senden.
Zombies, Präsidenten und Assassinen
Wenig später stieß ich auf das Drehbuch für das Kabinetts-Rollenspiel "
All The President's Zombies " des amerikanischen Spieledesigners Mike Young. Laut der Verschwörung findet im Land eine Zombie-Apokalypse statt, und eine Gruppe hochrangiger Beamter versammelt sich im Büro des Präsidenten, um einen Plan zur Lösung dieses Problems auszuarbeiten.

Ich mochte das Konzept und entschied mich, mein eigenes Spiel zu erstellen, um die Erstellung von Young zu lokalisieren. Das Ergebnis war das Spiel "
Emergency Meeting ", das weit genug vom Original entfernt ist. Es basiert auf einem grünen Baum von Ereignissen, die in Echtzeit auftreten, abhängig von bestimmten Entscheidungen, die die Spieler während des Meetings getroffen haben. Anstatt die Meister des Spiels sorgfältig zu unterrichten, habe ich eine Google-Tabelle erstellt, in der die Konsequenzen der einzelnen Aktionen der Spieler automatisch berechnet wurden. Der Moderator musste nur den Bildschirm ankreuzen und Karten aus dem Stapel ziehen, deren Nummern in der Tabelle angezeigt wurden.

Eine gewisse Schwierigkeit wurde durch die Notwendigkeit verursacht, die Dynamik der Spielparameter zu verfolgen. Wenn sich ein Zellenwert ändert, werden in der Tabelle sofort alle damit verbundenen Formeln aufgeführt, ohne dass der alte Wert irgendwo gespeichert wird. Ich habe herausgefunden, wie ich diese Komplexität umgehen kann, aber ich werde weiter unten darauf eingehen.
Nachdem ich ein paar Dutzend „Notfalltreffen“ für Freunde und Bekannte verbracht hatte, wurde mir klar, dass dies ein vielversprechendes Format für alle Arten von Teambuildings und Unternehmensgeschichten ist. Nur die Beschränkung der maximalen Teilnehmerzahl bei 12 Personen störte. Und ich fing an, neue Spiele zu entwickeln, die von einem großen Team gespielt werden konnten. Gleichzeitig sollte ein führender Anbieter das Gaming-Ökosystem verwalten. So gab es die Spiele „
Freaky Venice “, die auf dem Assassin's Creed-Franchise basieren, „World Domination“ über die Konfrontation von Supermächten auf der Weltbühne, „Election Day“ über ehrliche und nicht sehr politische Technologien und einige weitere Spiele, die bestimmte Aufgaben bestimmter Kunden lösen.
Bei der Entwicklung jedes dieser Spiele bin ich auf bestimmte Schwierigkeiten gestoßen, und jetzt werde ich einige der interessantesten Beispiele analysieren.
Problem - Lösung
Die Grundlage jeder Spiel-Engine ist die folgende Abfolge von Aktionen: 1) Sammeln von Informationen über Entscheidungen von Spielern, 2) Eingeben dieser Informationen in das System, 3) Überprüfen der Bedingungen und Berechnen neuer Daten durch das System, 4) Ausgeben neuer Daten an Spieler. Abhängig von der Handlung des Spiels kann dieser Zyklus von eins bis zu einer bedingt unendlichen Anzahl von Malen wiederholt werden. Gleichzeitig bleibt die gesamte Kommunikation der Spieler vor der endgültigen Entscheidung „hinter den Kulissen“, und das Spielsystem wird in keiner Weise berücksichtigt. Im Allgemeinen erzeugt der Prozess also nicht die Sensation eines Computerspiels und lässt Raum für lebhafte emotionale Interaktion.
Loop-EmulationDie Hauptschwierigkeit bei der Entwicklung der Engine in der Google-Tabelle ist das Fehlen einer den Programmierern als Variable, Schleife, Interrupt, Prozedur vertrauten Prozedur.
Angenommen, fehlende Schaltflächen können durch eine Zelle mit dem Wert "Kontrollkästchen" ersetzt werden. In einer separaten Zelle gibt es dann eine Formel, die den Status des Kontrollkästchens überprüft und den Wert der Zielzelle abhängig davon berechnet. Aber was ist mit der Tatsache, dass die gesamte Tabelle zeitlich statisch ist und wenn Sie den Wert einer variablen Zelle ändern, sind die Werte aller anderen Zellen, die in der Formel darauf verweisen, sofort und „ohne Anforderung“? Ich habe mir nichts Besseres ausgedacht, als den Mangel an Routinen und Schleifen mithilfe von Registerkarten zu kompensieren. Sie erstellen einfach so viele Registerkarten in der Tabelle, wie es Zyklen im Spiel gibt und wie oft pro Spiel theoretisch eine Variable ihren Wert ändern kann. Dann erbt beispielsweise eine Zelle in Tab-2 den Wert derselben Zelle in Tab-1, nimmt einige Änderungen vor und überträgt ihren Wert von Tab-3 auf dieselbe Zelle. Schauen Sie sich zum Beispiel die Registerkarten für Zyklen im Spiel World Domination an.

Laut Handlung endet das Spiel immer nach 6 Jahren, so dass es 6 Registerkarten mit Spielfeldern in der Tabelle gibt.
Und hier ist zum Beispiel eine Formel, die das Budget des Landes im dritten Jahr des Spiels berechnet und das anfängliche Budget des zweiten Jahres und die Summe des Budgetwachstums des zweiten Jahres zusammenfasst:

Hier ist E41 der Betrag im Budget zu Beginn des Jahres, X44 ist der Betrag der Änderungen im Budget während des Jahres.
Oder hier ist eine Formel, die Daten zum wirtschaftlichen Zustand der Stadt in einer Zelle auf dem Tablet des Spielers anzeigt, je nachdem, in welchem Jahr sie sich auf dem Hof befindet. Abhängig vom Wert der "Jahreszähler" -Zelle $ F $ 1 werden die Werte derselben E36-Zelle angezeigt, jedoch auf verschiedenen Registerkarten, die einem bestimmten Jahr entsprechen.

Eine solche Lösung ermöglicht es leider, nur rundenbasierte Spiele zu entwickeln, die aus bestimmten Zyklen bestehen (Tag, Tag-Nacht, Monat, Jahr usw.). Darüber hinaus sollte die Anzahl der Zyklen sichtbar sein, da das Schreiben des Codes sonst ewig dauert. Wenn es jedoch keine Aufgabe gibt, die Spieler über die Zwischenwerte der Spielparameter zu informieren und deren Dynamik zu verfolgen, können Sie sich mit den Tab-Zyklen überhaupt nicht darum kümmern.
RollenverteilungManchmal möchte ich vor Spielbeginn die Rollen mit Bedacht verteilen, damit beispielsweise die aktivsten Charaktere an die geselligeren Spieler und die Double-Bottom-Rollen an die Teilnehmer gehen, die Emotionen bluffen und zurückhalten können. Im Spiel "Emergency Meeting" wird diese Aufgabe ebenfalls automatisiert. Vor Spielbeginn erhalten die Teilnehmer einen Link zu einem Fragebogen im Google Forms-Format, in dem sie verschiedene Fragen zu ihren Spielpräferenzen beantworten.

Diese Daten fallen in die Tabelle, in der der darauf basierende Algorithmus die Rollen zwischen den Spielern verteilt.
SpielerdatenerfassungWie organisiere ich die Datenerfassung von Spielern, wenn es 80 davon gibt? Zunächst schien es eine gute Idee zu sein, Boten für diesen Zweck einzusetzen. Jeder Spieler (oder jeder Mannschaftskapitän) hat einen direkten Chatraum mit einem Gastgeber, in dem er seine Teams und Befehle senden und über getroffene Entscheidungen informieren kann. Testspiele haben jedoch gezeigt, dass Messenger eine schlechte Idee sind. Die Spieler beginnen zu fluten, stellen eine Reihe von Fragen, machen Fehler und stornieren zuvor gesendete Bestellungen. Infolgedessen nimmt die Verarbeitungsgeschwindigkeit ab, der Abfragestapel wächst und die Spieler müssen einige Minuten warten, bis ihre Bestellung wirksam wird. Darüber hinaus verbringen die Teilnehmer den größten Teil des Spiels auf ihrem Smartphone, was nicht zu einer lebendigen Kommunikation und Teambildung beiträgt.
Eine gute Entscheidung war, Daten von Spielern mithilfe von Fragebögen und Karten zu sammeln. Zum Beispiel übergeben die Spieler in „Pest von Venedig“ während des Spiels dem Gastgeber die ausgefüllten Karten mit Formulierungen wie „Paolo Alighieri schickte Mörder nach Giacomo Sforza“ oder „Leonardo Bertolucci verführte Lucretia Medici“, und der Gastgeber muss nur den Tisch an der Kreuzung der entsprechenden Namen und überprüfen Nachnamen.

Und im Spiel „Wahltag“ reichen die Teams älterer Schüler nach jedem Spielzyklus ausgefüllte Fragebögen dieses Formats ein.

Die Daten in einem solchen Fragebogen werden so weit wie möglich optimiert, und der Host benötigt nicht mehr als 5 Sekunden, um sie in die Tabelle aufzunehmen.
Balance-EinstellungBei Rollenspielen ist die Spielbalance wichtig: Ressourcen sollten immer knapp sein, und verschiedene Tools zur Erreichung von Zielen sind ungefähr gleich effektiv. Balance kann nur manuell und nur empirisch aufgebaut werden, indem eine Reihe von Testspielen durchgeführt wird. Um nicht verrückt zu werden und die Parameter in jeder Formel und in jeder Zelle hin und her zu ändern, ist eine separate Referenzregisterkarte, auf der alle benutzerdefinierten Parameter angezeigt werden und auf die sich die Formeln der restlichen Tabelle beziehen, eine sehr bequeme Lösung. Über das Verzeichnis können Sie beispielsweise auch die Sprache des Spiels mit einem Schalter des Kontrollkästchens ändern. Eine solche Funktion ist im Spiel "World Domination" implementiert.
Daten in das System eingebenUm ein Durchhängen des Spiels zu verhindern, sollte der Host in der Lage sein, Daten so schnell und ergonomisch wie möglich in die Tabelle einzugeben. In Google-Tabellen können Sie das Dateneingabeformat konfigurieren (Dada-Validierung). Das schnellste und bequemste Format ist das Kontrollkästchen. Richtig, nicht alle Formeln können mit TRUE- und FALSE-Werten arbeiten. Daher ist es besser, die Werte des Kontrollkästchens in einer benachbarten technischen Zelle sofort in Null oder Eins zu übersetzen und dann mit diesen Nullen und Eins zu tun, was Sie wollen.
Eine Dropdown-Liste ist auch ein sehr praktisches Eingabeformat, wenn in einer Zelle mehr als zwei Werte angenommen werden. Das Vorhandensein vorgefertigter Optionen in der Liste schützt den Präsentator vor Tippfehlern, die im Spiel eine wichtige Rolle spielen können.
Hier ist ein Beispiel für Dateneingabefelder in World Domination.
EreignisanzeigeFür den Moderator ist es wichtig, Spielereignisse rechtzeitig zu bemerken und darauf zu reagieren. In der "Notfallbesprechung" müssen Sie also die Änderungen in den Zellen mit der Anzahl der Karten beachten, die rechtzeitig an die Spieler ausgegeben werden müssen. Und in der "Weltherrschaft" müssen Sie die Spieler rechtzeitig darüber informieren, dass die Stadt einen Atomschlag erlebt hat. Damit der Präsentator nichts übersieht, können Sie die Eigenschaft der bedingten Formatierung der Zelle (bedingte Formatierung) verwenden. Mithilfe dieser Funktion können Sie beispielsweise festlegen, dass die Zelle selbst rot angezeigt wird, wenn der Text "Stadt zerstört" angezeigt wird. Im Sichtfeld des Präsentators befindet sich ein leuchtend roter Fleck, der nicht zu übersehen ist.
Individuelle InformationenEs kann Situationen im Spiel geben, in denen einige Daten einem Team bekannt sind und das andere nicht. Beispielsweise werden im Spiel World Domination Informationen über das Vorhandensein von Atomwaffen in einem bestimmten Land klassifiziert. In diesem Fall ist es zweckmäßig, für jeden Befehl separate Ausgabegeräte zu verwenden und nur öffentlich verfügbare Informationen auf dem Hauptbildschirm anzuzeigen. Technisch wird dies als eine Gruppe separater Tabellen (eine Datei für jedes Team) gelöst, in die mit der Funktion IMPORTRANGE nur die erforderlichen Informationen aus der Mastertabelle abgerufen werden.
Übrigens
bietet Google Sheets die Möglichkeit, Daten von einer Tabelle in die Weboberfläche zu exportieren. Wenn Sie also anstelle einer trockenen Tabelle Daten auf Tablets in Form einer übersichtlichen und animierten Infografik anzeigen möchten.
Ordentliche GrafikIm Spiel möchten Sie manchmal anstelle von Zahlen ein Diagramm anzeigen, aber Standarddiagramme stören Sie an ihrer Redundanz. Und auch, weil sie nicht wissen, wie sie an den Zellen haften sollen und immer sehr unordentlich aussehen. Glücklicherweise haben Google-Tabellen eine SPARKLINE-Funktion. Diese Funktion zeigt ein Mini-Diagramm in der Zelle an. Es verfügt über bestimmte Einstellungen und kann zur lakonischen Visualisierung einiger Daten verwendet werden.
Gaming NewsManchmal ist es notwendig, nicht nur die Nummer in der Zelle anzuzeigen, sondern die Idee auch in Form eines kompetent erstellten Vorschlags zu formulieren (z. B. im Abschnitt "Neueste Nachrichten"). In diesem Fall hilft die Funktion CONCATENATE, mit der Textstücke mit digitalen Werten aus verschiedenen Zellen verklebt werden können. So sieht die Formel mit dieser Funktion aus.
ZusammenfassungIn „World Domination“ und „Plague of Venice“ werden im Finale des Spiels nicht nur der Hauptsieger, sondern auch die Teams bekannt gegeben, die sich in verschiedenen Nominierungen ausgezeichnet haben. Zusammenfassend ist es sehr praktisch, die MAX-Funktion zu verwenden, mit der die maximale Anzahl im Bereich berechnet wird. Der Gastgeber muss nichts extra tun - lesen Sie einfach die Namen der Gewinnerteams auf dem Bildschirm.
