Das erste Videospiel für Alice oder Sprachassistent als Gamecontroller



Bei der Arbeit schaffe ich nützliche Fähigkeiten für Alice und in meiner Freizeit habe ich versucht, mit einem Sprachassistenten mit Freunden in meiner häuslichen Umgebung zu spielen. Ich habe bereits meine Entwicklung eines Textspiels für einen oder zwei Spieler beschrieben, aber diesmal teile ich meine Erfahrungen bei der Erstellung eines Videospiels für ein ganzes Unternehmen.

Spielregel


Ich wollte kein vorhandenes Spiel auf Alice portieren, sondern ein originelles Spiel entwickeln, das die Fähigkeit von Alice nutzt, Sprache zu erkennen.

Viele Bilder erscheinen in Kreisen und Quadraten in verschiedenen Farben auf dem Bildschirm. Die Aufgabe des Spielers besteht darin, ein Objektpaar auf demselben Hintergrund zu erkennen und eine Phrase der Form zu bilden: Adjektiv + Substantiv. Darüber hinaus muss das Adjektiv aus einem Objekt in einem Kreis und ein Substantiv aus einem Objekt in einem Quadrat gebildet werden. Daher der Name des Spiels - "Round Square".

Der Spieler, der die Phrase aufgerufen hat, erhält Punkte. Der Gewinner ist derjenige, der in der Runde (2 Minuten) 10 Punkte oder die meisten Punkte erzielt hat. Das Gameplay wird in einem kurzen Video gezeigt.


Wir haben uns für die Regeln entschieden - gehen Sie zur Technik.

Controller


Um das Spielfeld anzuzeigen, benutze ich einen großen Fernseher, auf dem ich die Website des Spiels öffne. Wenn das Fernsehgerät keine Internetverbindung hat, können Sie das Bild vom Computer darauf anzeigen oder auf dem Monitor abspielen.

Der visuelle Teil des Spiels ist in JavaScript geschrieben. Alle Objekte: Spielfeld und HUD - werden mit den Canvas 2D-API-Methoden zum Zeichnen von Rechtecken, Text und Bildern erstellt. Einmal alle 50 ms wird der Bildschirm aktualisiert. Der gesamte Code ist in einer einzigen HTML-Datei konzentriert, einschließlich der im Base64-Format codierten Bilder.

Jetzt müssen Sie eine Schnittstelle implementieren, die die Phrasen der Spieler akzeptiert. Glücklicherweise wird die Aufgabe der Spracherkennung von Sprachassistenten gelöst. Yandex bietet einen solchen Service kostenlos für Benutzer und Entwickler von Alices Sprachanwendungen (Fähigkeiten) an.

Fügen Sie die Fähigkeit hinzu, einen Sprachassistenten zu spielen. Jetzt kann jeder Spieler die Sprachanwendung auf seinem eigenen Telefon oder in einem intelligenten Lautsprecher aktivieren und Repliken über ein Mikrofon an die Site senden.


Backend


Es bleibt, die Replik des Benutzers einer bestimmten Spielpartei zuzuordnen. Dazu benötigen wir einen Server: Für jeden Stapel wird eine Nummer generiert, eine HTML-Seite registriert sie auf dem Server und zeigt sie dem Benutzer an. Der Benutzer ruft diese Nummer beim Sprachassistenten an und dieser registriert über den Web-Hook des Servers einen neuen Spieler im entsprechenden Spiel. Nachfolgende Benutzerrepliken werden über WebSocket auf sein Spiel übertragen.

Der Client-Code zum Erstellen eines Web-Sockets und zum erneuten Verbinden beim Trennen der Verbindung sieht folgendermaßen aus:
function start(websocketServerLocation){ ws = new WebSocket(websocketServerLocation); ws.onopen = function(){ gameN = game.id; }; ws.onclose = function(){ gameN = "--"; start(HOST); }; wsSend({"gameId": game.id}); } start(HOST); 

Bei Verbindung mit dem Server sendet ihm der Client die Spielnummer. Unten finden Sie den Servercode, der eine Verbindung herstellt und die Kontrolle über das Spiel mit der akzeptierten Nummer initiiert:

 const wss = new SocketServer({ server }); wss.on('connection', (ws) => { ws.on('close', () => { remConn(ws.gameId); }); ws.on('message', msg => { const data = JSON.parse(msg); if (data.gameId) { ws.gameId = data.gameId.toString(); addGame(ws); } }); }); 

In diesem Fall kann derselbe Server Seiten für den Browser rendern und auf Alices Web-Hooks reagieren:

 var server = express().use(bodyParser.json()).use('*', (req, res) => { if (req.body && req.body.request) { //   toAnswer  - res.json({ version: req.body.version, session: req.body.session, response: toAnswer, }); } else { // -   res.sendFile(INDEX); } }).listen(PORT); 

Fazit


Das Ergebnis war ein originelles Videospiel für das Unternehmen. Es wurde am 28. November 2018 in Alice veröffentlicht und war das erste Videospiel, das ich für diesen Sprachassistenten kenne.

Übrigens, schon vor dem Aufkommen von Alice und Google Assistant fühlten sich die Leute ein Fan der Sprachsteuerung in Spielen . Dank der Allgegenwart von Geräten mit Mikrofonen und Lautsprechern und der Entwicklung der Sprachtechnologie werden Sprachassistenten zu verfügbaren Gamecontrollern, die eine neue Benutzererfahrung bieten.

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


All Articles