El primer videojuego para Alice, o asistente de voz como controlador de juegos.



En el trabajo, estoy creando habilidades útiles para Alice , y en mi tiempo libre traté de usar un asistente de voz para jugar con amigos en mi entorno familiar. Ya describí mi desarrollo de un juego de texto para uno o dos jugadores, pero esta vez comparto mi experiencia en la creación de un videojuego para toda una empresa.

Reglas del juego


No quería portar un juego existente a Alice, quería crear un juego original que utilizara la capacidad de Alice para reconocer el habla.

Aparecen muchas imágenes en círculos y cuadrados de diferentes colores en la pantalla. La tarea del jugador es detectar un par de objetos en el mismo fondo y crear una frase de la forma: adjetivo + sustantivo. Además, el adjetivo debe formarse a partir de un objeto en un círculo, y un sustantivo a partir de un objeto en un cuadrado. De ahí el nombre del juego - "Round Square".

El jugador que llamó la frase obtiene puntos. El ganador es el que obtuvo 10 puntos o la mayor cantidad de puntos durante la ronda (2 minutos). La jugabilidad se muestra en un video corto.


Hemos decidido las reglas: ve a la técnica.

Controladores


Para mostrar el campo de juego, uso un televisor grande, en el que abro el sitio web del juego. Si el televisor no tiene conexión a Internet, puede mostrar la imagen desde su computadora o reproducirla en el monitor.

La parte visual del juego está escrita en JavaScript. Todos los objetos: el campo de juego y el HUD son creados por los métodos de la API 2D de Canvas para dibujar rectángulos, texto e imágenes. Una vez cada 50 ms, la pantalla se actualiza. Todo el código se concentra en un solo archivo HTML, incluidas las imágenes codificadas en formato Base64.

Ahora necesita implementar una interfaz que acepte las frases de los jugadores. Afortunadamente, la tarea de reconocimiento de voz se resuelve con asistentes de voz. Yandex proporciona dicho servicio de forma gratuita para usuarios y desarrolladores de aplicaciones de voz de Alice (habilidades).

Agregue la habilidad de jugar un asistente de voz. Ahora cada jugador puede activar la aplicación de voz en su propio teléfono o en un altavoz inteligente y enviar réplicas al sitio a través de un micrófono.


Backend


Queda por asociar la réplica del usuario con una fiesta de juego específica. Para hacer esto, necesitamos un servidor: se genera un número para cada lote, una página HTML lo registra en el servidor y lo muestra al usuario. El usuario llama a este número al asistente de voz, y este último registra un nuevo jugador en el juego correspondiente a través del enlace web del servidor. Las réplicas de usuario posteriores se transfieren a su juego a través de WebSocket.

El código del cliente para crear un socket web y reconectarse cuando está desconectado se ve así:
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); 

Cuando se conecta al servidor, el cliente le envía el número del juego. A continuación se muestra el código del servidor que establece una conexión e inicia el control del juego con el número aceptado:

 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); } }); }); 

En este caso, el mismo servidor puede mostrar páginas en el navegador y responder a los enlaces web de Alice:

 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); 

Conclusión


El resultado fue un videojuego original para la compañía. Fue publicado en Alice el 28 de noviembre de 2018 y se convirtió en el primer videojuego que conozco para este asistente de voz.

Por cierto, incluso antes del advenimiento de Alice y el Asistente de Google, las personas se sentían fanáticas del control por voz en los juegos . Gracias a la ubicuidad de los dispositivos con micrófonos y parlantes, gracias al desarrollo de la tecnología del habla, los asistentes de voz se están convirtiendo en controladores de juegos disponibles que brindan una nueva experiencia de usuario.

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


All Articles