Le premier jeu vidéo pour Alice, ou assistant vocal en tant que contrôleur de jeu



Au travail, je crée des compétences utiles pour Alice et pendant mon temps libre, j'ai essayé d'utiliser un assistant vocal pour jouer avec des amis dans mon environnement familial. J'ai déjà décrit mon développement d'un jeu de texte pour un ou deux joueurs, mais cette fois je partage mon expérience dans la création d'un jeu vidéo pour toute une entreprise.

Règles du jeu


Je ne voulais pas porter un jeu existant sur Alice, je voulais proposer un jeu original qui utilise la capacité d'Alice à reconnaître la parole.

De nombreuses images apparaissent sur des cercles et des carrés de différentes couleurs à l'écran. La tâche du joueur est de détecter une paire d'objets sur le même fond et de créer une phrase de la forme: adjectif + nom. De plus, l'adjectif doit être formé d'un objet dans un cercle, et d'un nom d'un objet dans un carré. D'où le nom du jeu - «Round Square».

Le joueur qui a appelé la phrase obtient des points. Le gagnant est celui qui a marqué 10 points ou le plus de points pendant la manche (2 minutes). Le gameplay est présenté dans une courte vidéo.


Nous avons décidé des règles - allez à la technique.

Contrôleurs


Pour afficher le terrain de jeu, j'utilise un grand téléviseur sur lequel j'ouvre le site Web du jeu. Si le téléviseur n'a pas de connexion Internet, vous pouvez afficher l'image de l'ordinateur dessus ou la lire sur le moniteur.

La partie visuelle du jeu est écrite en JavaScript. Tous les objets: terrain de jeu et HUD - sont créés par les méthodes de l'API Canvas 2D pour dessiner des rectangles, du texte et des images. Toutes les 50 ms, l'écran est mis à jour. Tout le code est concentré dans un seul fichier HTML, y compris les images encodées au format Base64.

Vous devez maintenant implémenter une interface qui accepte les phrases des joueurs. Heureusement, la tâche de reconnaissance vocale est résolue par les assistants vocaux. Yandex fournit gratuitement un tel service aux utilisateurs et aux développeurs des applications vocales d'Alice (compétences).

Ajoutez l'habileté de jouer un assistant vocal. Désormais, chaque joueur peut activer l'application vocale sur son propre téléphone ou dans un haut-parleur intelligent et envoyer des répliques au site via un microphone.


Backend


Il reste à associer la réplique de l'utilisateur à une partie de jeu spécifique. Pour ce faire, nous avons besoin d'un serveur: un numéro est généré pour chaque lot, une page HTML l'enregistre sur le serveur et l'affiche à l'utilisateur. L'utilisateur appelle ce numéro à l'assistant vocal, et ce dernier enregistre un nouveau joueur dans le jeu correspondant via le hook Web du serveur. Les répliques d'utilisateur suivantes sont transférées vers son jeu via WebSocket.

Le code client pour créer un socket Web et se reconnecter lorsqu'il est déconnecté ressemble à ceci:
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); 

Une fois connecté au serveur, le client lui envoie le numéro de jeu. Ci-dessous se trouve le code du serveur qui établit une connexion et initie le contrôle du jeu avec le numéro accepté:

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

Dans ce cas, le même serveur peut restituer des pages au navigateur et répondre aux hooks Web d'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); 

Conclusion


Le résultat est un jeu vidéo original pour l'entreprise. Il a été publié dans Alice le 28 novembre 2018 et est devenu le premier jeu vidéo que je connaisse pour cet assistant vocal.

À propos, même avant l'avènement d'Alice et de Google Assistant, les gens se sentaient fan de la commande vocale dans les jeux . Grâce à l'omniprésence des appareils avec microphones et haut-parleurs, grâce au développement de la technologie vocale, les assistants vocaux deviennent des contrôleurs de jeu disponibles qui offrent une nouvelle expérience utilisateur.

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


All Articles