Wöchentliches Lernspiel oder englischer Zeitkillerversuch

Laut Steam-Statistiken habe ich Hunderte von Stunden in Spielen verbracht, und Tausende, wenn Sie auf allen Plattformen zählen. Was mich jedoch beeindruckte, war in einigen Fällen das Zeitverhältnis. Ich habe 8,5 Stunden gebraucht, um den großartigen Bioshock Infinite fertigzustellen, aber Sacura Clicker hat noch 12 Minuten gebraucht. Clicker Heroes hat über vierzig Stunden, fast das gleiche wie Torchlight 2. Der Trick ist, dass ich mich erinnerte und eine gute Vorstellung von der Zeit hatte, die ich für große Spiele aufgewendet habe. Aber die kleinen Spielsachen erinnerten sich nicht vollständig, sie stahlen mir unbemerkt meine Zeit und nahmen mir Wochen und Monate lang fünf bis zehn Minuten Zeit.

Als ich das merkte, dachte ich, es wäre schön, eine Turbine an diese Ballerina zu schrauben. Das heißt, um einen nützlichen Zeitkiller zu machen - ein einfaches Spiel, das nicht stiehlt, sondern meine Zeit für fünf bis zehn Minuten investiert. Zum Beispiel im englischen Wortschatz.



Einmal kaufte ich ein paar Karten mit englischen Wörtern und las sie auf dem Weg ins Büro in einem Kleinbus. Dann verließ er das Büro und die Gewohnheit verschwand, ich vergaß die Karten. Er musste seinen Rucksack schütteln, und als mit einem Ventilator verschiedene Wörter aus der oberen Seitentasche fielen, wurde mir klar - das ist Match 2! Ein Spiel, in dem Sie Paare bilden müssen (im Gegensatz zu Match 3, bei dem drei oder mehr benötigt werden).

Zeitkiller mit dem Prinzip „mach ein Paar“ sind seit langem bekannt - zum Beispiel das Computerspiel Mahjong Solitaire (nicht zu verwechseln mit dem klassischen chinesischen Glücksspiel, das Sammo Hung in Hongkong-Actionfilmen gespielt hat).


KDE-Spiele Mahjong

Mahjong Solitaire hat eine vereinfachte Variante von Mahjong Connect, bei der die Chips in einem einfachen Layout ohne lockige Pyramiden angeordnet sind. Auf Wikipedia können Sie lesen, dass es Shisen-Sho heißt, aber wenn Sie Beispiele googeln möchten, ist der Vorname besser geeignet.

Ich vermute, dass die erste Version von einem Programmierer wie mir erstellt wurde, der keine Erfahrung in der Programmierung eines vollwertigen Mahjong mit einem komplizierten Layout hatte - aber das Spiel wurde plötzlich populär und brachte einen eigenen Zweig von Klonen hervor.


KDE Games Shiseen-sho oder Mahjong Connect im Volksmund

Schauen Sie sich die Wortkarten und den Mahjong Connect an - sie passen perfekt zusammen - und es gibt Paare. Es bleibt nur, jede Karte in ein Paar Chips zu verwandeln.

Chips und Gameplay-Design


Fünf neue Wörter in jeder Sitzung und ein paar weitere sich wiederholende Wörter aus den vorherigen - das ist die Idee, von der ich ausgegangen bin. Dies bedeutete, dass mindestens etwa 20 Chips in das Spiel einbezogen werden sollten.

Auf jedem Chip musste mindestens ein Wort mit guter Lesbarkeit platziert werden. Mit Papierkarten können Sie ziemlich viel Text platzieren, aber Chips mit solchen Proportionen wären zu groß. Außerdem wollte ich unbedingt das Gefühl von „als ob Mahjong“ beibehalten, und dies bedeutete, dass ein Gaming-Chip in Form und Text sehr kompakt sein sollte. Wenn Sie den Knöchel von Mahjong um 90 Grad drehen, erhalten Sie genügend Platz für den Text.

Nachdem ich ein Spiellayout mit solchen Fingerknöcheln in einem grafischen Editor modelliert hatte (Fireworks 2003, wenn Sie neugierig sind), sah ich, dass das Spiel ziemlich langweilig aussieht. Nachdem ich mir die Screenshots mit Mahjongs noch einmal angesehen hatte, versuchte ich, verschiedene grafische Elemente hinzuzufügen, um das Bild zu beleben. Und dann dämmerte es mir - Sie können jedem Paar einfach einen Edelstein hinzufügen. Dann wird es nicht nur als animierendes Element wirken und zumindest äußerlich Ähnlichkeit mit Casual Toys haben, sondern auch als Hinweis.


Entwurfsversion des Spielfeldes mit verschiedenen Optionen für Chips

Die endgültige Version stellte sich so heraus - drei Edelsteine ​​für 10-11 Wortpaare. Dies ergab einen Hinweis mit einer Wahrscheinlichkeit eines zufälligen Zusammentreffens von etwa 25%. Wenn Sie das Wort vergessen, können Sie die Chips mit denselben Wörtern anzeigen.

Ein zusätzliches Gestaltungselement, das die Orientierung beschleunigt, ist eine graue Flagge, die alle Wörter in einer (russischen) Sprache kennzeichnet. Die ursprüngliche Idee war, ein Element aus einem Paar zu kennzeichnen, kein nationales Zeichen, also habe ich keine Trikolore oder ähnliches gemacht.



Es sieht fast nach Betrug aus, aber ich wollte keine Prüfung oder einen vollständigen Wissenstest machen. Die Prüfung ist stressig und ich brauchte das einfachste und unterhaltsamste Gameplay, damit während des Spiels ein Gefühl des Sieges und des Selbstbewusstseins entsteht. Ich denke, dies ist eine der wichtigsten Eigenschaften von Kult-Zeitkillern wie Bejeweled oder Zuma. Der Spieler geht die optimale Grenze zwischen seinen Fähigkeiten und seiner Unfähigkeit, hat Spaß und kehrt immer wieder zum Spiel zurück.

Was ist mit den Regeln? Ich habe einen weiteren Schritt zur Vereinfachung von Mahjong Connect unternommen und mir erlaubt, Paare von passenden Chips zu erstellen, und nicht nur diejenigen, die freigeschaltet wurden. Dafür gibt es zwei Gründe. Das erste ist, dass ich keinen vorgefertigten Mahjong-Code zur Hand hatte und nur das Pairing getestet habe. Das zweite ist, dass ich festgestellt habe, dass Chips mit Wörtern in verschiedenen Sprachen das Gameplay erschweren und das Pairing bereits das Gefühl eines Spiels erzeugt.

Mit Blick auf die Zukunft - Wenn Sie eine vollwertige Verbindung und Mahjong mit denselben Chips herstellen, wird das Spielen tatsächlich viel einfacher. Tatsache ist, dass zusätzliche Einschränkungen für die Chips die Auswahl einschränken und der Spieler nur alle Chips überprüfen kann, die für Edelsteine ​​geeignet sind, die für Edelsteine ​​frei sind - und dies erhöht die Wahrscheinlichkeit eines Zusammentreffens je nach Layout stark von 25% auf 50 oder sogar hundert.

Egal wie einfach es ist zu spielen oder zu betrügen, das Hauptziel in einem solchen Spiel wird immer noch erreicht - das Gehirn des Spielers wird ständig mit ein paar Wörtern in seiner Mutter- und Fremdsprache übereinstimmen. Wenn es jemandem gelingt, einen solchen Zeitkiller zu machen, werden Dutzende von Stunden darin zu einem Vorteil für die Spieler, egal wie sie betrügen. Obwohl bewusstes Lernen sicherlich immer besser ist.

Programmierung


Für dieses Projekt habe ich reguläres JavaScript und die Phaser.io 2.10.2-Game-Engine verwendet. Warum HTML5-Spiele gut sind - Sie können schnell Zugriff zum Testen und Ausführen von Prototypen bereitstellen. Ich habe es bereits bei anderen Projekten geschafft, sicherzustellen, dass HTML5 als Mittel zum Erstellen eines plattformübergreifenden Spiels nicht sehr gut ist (ein spürbarer Nachteil von FPS auf schwachen Telefonen, Probleme mit der Cross-Browser-Kompatibilität, die Notwendigkeit, in einigen Fällen über Brücken zur nativen API nachzudenken). Aber als Werkzeug zum Erstellen von Webprototypen und Webspielzeug ist es eine gute Wahl.

Wie im Fall der postnuklearen Karawane begann ich mit der Entwicklung, indem ich ein Modell des Spielzustands zusammenstellte - also eine Datenklasse mit Feldern, die einfach den aktuellen Fortschritt des Spielers widerspiegeln.

function GameState() { this.pairKey = "ru-en"; // Key   ,    this.pairJsonUrl = "somePath/ru-en.json"; //        this.matched = 0; //       this.gold = 0; // .   ,      this.errors = 0; //   //    //  =   //  Phaser.ArrayUtils.numberArray   - ,    this.portions = Phaser.ArrayUtils.numberArray(Balance.PORTION_AMOUNT-1) .map(function (portion, index) { return new PortionSaveData(); }); this.portion = 0; //   //  this.options = { tutorial: true, //     } } 

Um den Spielstatus im browserbasierten JS zu speichern und zu laden, reicht es aus, dieses Modell beim Schreiben und Lesen in den lokalen Speicher einfach zu serialisieren und zu deserialisieren. So wird der Fortschritt auf dem Computer des Benutzers in nur wenigen Zeilen gespeichert.

Das Platzieren von Chips auf dem Feld, das Verarbeiten von Mausklicks und ein Touchscreen in Phaser sind ganz einfach zu implementieren. Es verfügt über die Group-Klasse, mit der Sie alle hinzugefügten visuellen Objekte automatisch nach einem bestimmten Raster ausrichten können.

Auf diese Weise können jedoch nur reguläre Rechtecke (oder Gitter, wenn Sie einen großen Schritt festlegen) ausgeführt werden, was ziemlich primitiv aussieht. Deshalb habe ich meine Layoutfunktion geschrieben, bei der jede zweite Zeile um die Hälfte der Chips verschoben wird - es stellt sich das Layout der "Bausteine" heraus.

 //    -        function layAsBricks(group, offsetBase) { offsetBase = offsetBase || Math.floor(AppConfig.CHIP_WIDTH / 2); var N = group.length; var i = 0, row, col, COLS = getColAmount(N), ROWS = N / COLS; var offsetX, min = Math.floor(offsetBase / 2), max = offsetBase + min; var lastWidth = 0, lastX = 0; var nextChip; for (row = 0; row < ROWS; row++) { if (row % 2 > 0) offsetX = offsetBase; else offsetX = 0; lastWidth = 0; lastX = 0; for (col = 0; col < COLS; col++) { nextChip = group.children[i]; if (nextChip === undefined) break; group.children[i].y = row * AppConfig.CHIP_HEIGHT; group.children[i].x = lastX + lastWidth; lastX = group.children[i].x; lastWidth = group.children[i].width; group.children[i].x += offsetX; i++; } } } 

Aber ich musste die Hauptprobleme mit dem Wörterbuch lösen.

Wörterbuch- und Schriftartenspiele


Das erste, was alle auffällt, wenn sie noch nicht gehetzt sind - die Länge der Chips reicht nicht aus, um alle Wörter im Wörterbuch angemessen anzuzeigen. Sie können dies lösen, indem Sie die Schriftgröße je nach Länge des Wortes beliebig ändern.


Unterschiedliche Schriftgröße für unterschiedliche Längen - meiner Meinung nach sieht es ein bisschen verrückt aus

Aber diese Option schien mir zu schade, deshalb habe ich beschlossen, nur das Wörterbuch zu filtern und in beiden Fällen nur Wörter mit nicht mehr als 9 Zeichen (Russisch und Englisch) zu belassen. In meinem Fall war dies zulässig, da ich das Frequenzwörterbuch als Grundlage genommen habe - das heißt, die darin enthaltenen Wörter wurden nach Verwendungshäufigkeit sortiert. In den ersten tausend Wörtern, die länger als 9 Zeichen waren, gab es nur sehr wenige, und in den Top Ten, dh am häufigsten, gab es überhaupt keine.

Ein Limit von 9 Zeichen ist geeignet, um das Konzept auf die häufigsten Wörter zu überprüfen. Wenn Sie jedoch einen Prototyp entwickeln, müssen Sie früher oder später etwas dagegen tun. Ändern Sie höchstwahrscheinlich die Proportionen der Chips oder erhöhen Sie deren Größe. Für die deutsche Sprache muss dies sogar im Rahmen der ersten populärsten Hunderte von Wörtern geschehen - und ich möchte auch Deutsch testen, erinnere mich an die Schuljahre.

Der zweite Punkt ist das visuelle Zusammentreffen von Buchstaben in Englisch und Russisch. Russisch "nicht" und Englisch er in Großbuchstaben fallen oft nur auf das Pixel zusammen. Ein Frequenzwörterbuch verstärkt diesen Effekt, da diese kurzen Wörter fast ganz am Anfang in einer Lektion enden.


Russisch NICHT und Englisch HE in Großbuchstaben sehen gleich aus

Die graue Fahne half schwach, die Worte waren verwirrt. Nach den ersten Beschwerden der Tester habe ich den Fall der Inschriften in den üblichen Kleinbuchstaben geändert. Und dann sah ich den nächsten Fehler - die Buchstaben begannen zu tanzen, in einigen Worten schwebten sie vertikal um ein ganzes Pixel davon.



Der Grund war, dass ich eine einzelne Raster-Schriftart für die Ausgabe verwendet habe (gebildet als eine Reihe von Buchstabenbildern in derselben Größe) und sie nach Bedarf skaliert habe. In den meisten Fällen läuft dies reibungslos, aber runde Buchstaben erscheinen in kleinen Buchstaben - manchmal wird ein Pixel gegessen, was den Effekt des Tanzens ergibt.
Moral: Eine Rasterschrift für kleine Texte sollte sofort in der richtigen Größe erstellt werden
Nachdem alle eine separate Schriftart vorbereitet hatten, hörten sie auf zu tanzen und standen streng entlang der Grundlinie.



Wenn Sie in Ihren Projekten Phaser oder eine andere HTML5-Engine verwenden, ist hier ein weiterer Tipp: Zeigen Sie die Rasterschrift sofort in der Farbe an, die im Spiel verwendet wird. Andernfalls wird der Prozessor zusätzlich belastet, was in Spielen mit einer Reihe von Aktionen und Effekten zu einem starken Absinken der FPS führen kann. Selbst im neuesten mobilen Chrome auf einigen Android-Tablets wird die von der Bitmap-Schriftart programmgesteuert festgelegte „nicht native“ Farbe möglicherweise überhaupt nicht angezeigt - die Ausgabe ist standardmäßig.

Und natürlich lässt sich das Wörterbuch für ein solches Spiel am besten als separat herunterladbare Datei verbinden. Auf diese Weise kann es aktualisiert werden, wenn Tippfehler oder zweifelhafte Optionen festgestellt werden.

Zum Beispiel scheint meine Version des Wörterbuchs aus Arrays übersetzter Texte zusammengestellt worden zu sein, wobei der Kontext berücksichtigt wurde, sodass das „Was“ in den ersten Lektionen dort als „das“ übersetzt wurde. Es ist klar, dass dieses Teilchen in diesem Sinne viel häufiger als die Frage verwendet wird, aber für das Lernen ohne Kontext ist es nicht geeignet.

Mein Hauptvokabular ist, dass Partikel und andere Wörter, die sehr kontextsensitiv sind, nicht zum Lernen in solch reinen Paaren geeignet sind. Die Lösungsoptionen, die ich sehe, bestehen darin, ein separates Spielzeug in Partikeln herzustellen oder Chips mit längeren Texten zu erstellen. Die zweite Option sieht logischer aus, da Sie nicht nur mit einem Wort lesen und schreiben können und die Sprache zumindest mit Hilfe kleiner Ausdrücke vollständig im Kontext lernen müssen. Und das heißt - es liegt noch viel Experimentieren vor uns!

Tutorial


Zuerst habe ich ein Spiel getestet, in dem Chips einfach ausgelegt wurden - und es war interessant, weil das Gameplay darauf reduziert wurde, bereits bekannte Ausdrücke freudig wiederzugeben, und dies das Gefühl eines leichten Sieges gab, der erforderlich war. Aber dann wurde mir klar, dass dies mit einer völlig unbekannten Sprache nicht funktionieren würde. Daher musste ich die Lernoption hinzufügen - vor Beginn der Lektion zeigt das Spiel die Chips in den richtigen Paaren und mischt sie dann.



Technisch wird dies wie folgt implementiert - die Ebene wird zunächst wie gewohnt, dh in zufälliger Reihenfolge, angelegt. Wenn dann die Tutorial-Option aktiviert ist, wird eine Funktion gestartet, die sich die Anfangskoordinaten der Chips merkt, ihnen Fluganimationen und Layouts in Arbeitspaaren hinzufügt, und dann kehrt alles an seinen Platz zurück. Da die Berechnung und Vorbereitung des Tutorials vor dem Start des ersten Aktualisierungszyklus (Neuzeichnen des Bildschirms) erfolgt, scheint es dem Benutzer, dass das Spiel die Chips zuerst in der richtigen Reihenfolge anzeigt und sie dann zufällig mischt.

In der Phaser-Engine verfügt Group über eine Shuffle-Methode, die wie das Mischen eines regulären Arrays funktioniert, gleichzeitig aber den Z-Index aktualisiert. Dies ist eine sehr praktische Funktion, die sich sicherlich für die Implementierung von vollwertigem Mahjong und anderen Spielen als nützlich erweisen wird, bei denen es mindestens eine bedingte dritte Dimension gibt und die Elemente sich überlappen.

Der Algorithmus zu Beginn des Spiels sieht einfach aus - wir nehmen N Paare aus dem Wörterbuch der Paare für eine bestimmte Lektion, bilden daraus visuelle Chipelemente, mischen sie und bauen sie in ein Raster ein - wir erhalten ein pseudozufälliges Layout.

Der umgekehrte Vorgang findet im Tutorial statt - die Sortierfunktion wird auf dem Chip-Array aufgerufen, wobei der id-Parameter des Wörterbuchpaars ein wesentlicher Parameter ist - auf diese Weise werden die Chips paarweise nacheinander angeordnet, danach müssen sie in zwei Spalten platziert werden.

Fortschritt


Um den Fortschritt zu überwachen, habe ich dem Startmenü kleine Indikatoren und ein Sternchen hinzugefügt, das angezeigt werden sollte, wenn alle Ebenen in hundert Wörtern abgeschlossen sind. Der Screenshot zeigt eine künstliche Situation mit einem Teststern.



Ich habe den Sultan mit Cartmans Gesicht auf Craftpix.net aufgenommen - er ging im gleichen kostenlosen Kit wie Diamanten. Nur um den Bildschirmschoner aufzupeppen. Wenn Sie die Sultane oder Cartman nicht mögen, gebe ich zu, dass der Umzug nicht besonders erfolgreich ist.

Schlussfolgerungen und Perspektiven


Ich bin sicher, dass der Trainingszeitkiller ein echter Zeitkiller ist und nicht dieser Prototyp, den ich gemacht habe, ist möglich. Und wenn sie in großer Zahl erscheinen, kann sich die Welt zum Besseren verändern. Zumindest werden Millionen von Menschen nicht Hunderte von Stunden verschwenden.

Wenn Sie einen Code für ein reguläres Spiel in Kombination und ein paar freie Tage zur Hand haben, versuchen Sie, zumindest mit ein paar Worten zu experimentieren. Sie können die fertige JSON-Datei hier aufnehmen . Es hat mehr als tausend Paare, die ich mit einem Rand gebildet habe.

Alle Match3- und Match2-Spiele - mit Bällen, Diamanten, Mahjong-Chips, Fischen und Jungen, mit einem fraktalen dynamischen Layout wie Zuma oder einem statischen Feld, wie in den meisten Spielen - ist im Wesentlichen eine Aufgabe, Kombinationen zu bilden und Gruppen nach bestimmten Kriterien auszuwählen .

In aktuellen Spielen trägt dieses Schild keine Nutzlast, die Leute kombinieren einfach rote und grüne Kugeln, durchscheinende gestreifte Gelee-Bonbons und klebrige Marmeladenbabys. Aber was ist, wenn diese Jungen mit gesunden Vitaminen gesättigt sind? Ich erinnere mich, dass ich eine Reihe von englischen Wörtern von Fallout und Heroes Might and Magic gelernt habe, was bedeutet, dass solche Vitamine existieren.

Mein Prototyp des Spiels kann hier getestet werden . Es gibt eine Auswahl von verschiedenen Hunderten und Ebenen, Bewahrung, Fortschritt und tausend der gebräuchlichsten englischen Wörter. Das Layout ist für Desktop-Monitore oder Tablets konzipiert. Jede Ebene ist für mehrere Minuten ausgelegt, enthält 5 neue Wörter und 6 wiederholte Wörter aus den vorherigen (gemäß der Zufallsstichprobenformel 3, 2, 1).

Aktualisiert am 13.06.18 : Übergänge zwischen Hunderten von Wörtern und Begrüßungen wurden hinzugefügt, wenn das letzte Level von jeweils hundert bestanden wurde. Aus dem Wörterbuch wurden auch einige Kontextpaare entfernt, die in einzelnen Übersetzungen keinen Sinn ergeben. Optimierte Arbeit mit Speicher.

Source: https://habr.com/ru/post/de413391/


All Articles