Comment coder des jeux de sport pour Amazon Alexa, plus quelques jeux amusants que j'ai construits

Je suis à la fois un sportif et un ingénieur en logiciel. Je suis également reconnu comme un champion Alexa Alexa. Je continue à rechercher de nouveaux moyens d'étendre cette technologie.

Au cours des deux dernières années, j'ai gagné des hackathons sur la plate-forme Alexa.

Les compétences sont la partie du service vocal Alexa qui active ses capacités. Dans Alexa, la compétence est un terme utilisé pour les capacités qui rendent une expérience plus personnelle. Vous pouvez les activer ou les désactiver à votre guise. Et, avec le Alexa Skills Kit, vous pouvez les créer et les personnaliser.

Les jeux de sport constituent un marché énorme

Les jeux vidéo constituent un marché énorme, avec des revenus annuels prévus supérieurs à 100 milliards de dollars dans le monde. Les jeux de tir et d'action sont les plus populaires, suivis des jeux de sport.

Les plates-formes vocales se développent à un rythme fantastique. La plateforme populaire Amazon Alexa a été multipliée par 4 au cours de la dernière année. Il y a maintenant 20 000 compétences personnalisées sur la plateforme Alexa. Pourtant, aucun jeu de sport n'est plus complexe que d'appeler des anecdotes.

Voici un échantillon de mon nouveau jeu de football appelé End Zone Football. Cela montre comment un jeu avancé peut fonctionner sur la plateforme Alexa.

Commencez la conception du jeu avec Storyboards

La conception de la compétence nécessite l'écriture de storyboards pour scénariser l'action. Commencez par le début du jeu. Ensuite, écrivez le récit pour un gameplay de base.

Considérez-vous comme un dramaturge ou un réalisateur de film. Demandez-vous: que devrait dire la voix autochtone Alexa? Quels sons peuvent être joués qui font partie du jeu?

Voici ce que j’ai appris en publiant un jeu de baseball et de football sur Alexa. Ces astuces amélioreront la convivialité de votre jeu:

  • Maintenir l'interaction simple
    oui ou non et 1/2/3/4 réponses fonctionnent mieux
  • Identifiez les sons qui peuvent rendre le jeu plus excitant
    Acclamations de la foule, sifflements ou craquement d'une chauve-souris
  • Simplifier le jeu
    Les compétences de jeu de baseball devraient inclure des boules de faute
    Les compétences de football doivent simuler des pénalités
    Ceux-ci aident à garder l'utilisateur engagé
  • Ne comptez pas sur les visuels
    Une image d’arrière-plan pour le spectacle Echo est agréable, mais les images de l’application associée doivent être secondaires.
  • Limitez le jeu à 2–5 minutes
    Les utilisateurs peuvent jouer encore et encore s'ils ont le temps
  • Créer une fonction d'aide qui explique le jeu en détail
    Donner des exemples de phrases à utiliser pour jouer
  • Par-dessus tout
    Amuse-toi!

Apprendre à SSML à inclure des sons avec la voix

Le langage de synthèse de parole (SSML) intègre le son à la voix. Il est utilisé pour créer l'audio pour le périphérique Alexa.

Voici comment définir l'attribut de réponse principal pour appeler l'API Alexa. Après avoir épissé les chaînes en JavaScript, le code ressemble à ceci:

var speechOutput = “Bienvenue à End Zone Football. “+
  “

Voici quelques exemples d'utilisation de SSML dans ce contexte:

  • Pour créer une pause
  • Pour insérer un soundclip

Je recommande d'utiliser un compartiment S3 pour stocker les fichiers multimédias. C'est un moyen peu coûteux de stocker des données. Et ils peuvent être accessibles à Alexa.

La gestion de l'état suit l'avancement du jeu

Alexa a la possibilité de stocker l'état de jeu. Utilisez cette fonctionnalité pour simplifier le codage et le test de vos compétences.

Dans le SDK Node.js, un attribut de session est passé avec les attributs request et response. Vous pouvez utiliser l'attribut de session pour l'état de jeu. Stocker des informations de jeu critiques dans ce champ. Vous pouvez inclure n'importe quoi, comme le numéro de lecture ou le nombre de outs enregistrés.

Voici un exemple utilisé dans le jeu de football

// sauvegarde les attributs du jeu jusqu'au jeu suivant
if (session.attributes) {
  sessionAttributes = session.attributes;
}
...
// règles de jeu pour les passes
if (offensivePlaybook [i] .playType === “pass” &&
    offensivePlaybook [i] .playNumber.toString () ===
    intent.slots.playNumber.value) {
      console.log («Numéro de lecture correspondante»);
      // calcule la distance de passage en fonction du jeu sélectionné
      passDistance = Math.round (Math.random () *
        (offensivePlaybook [i] .maxYardage
           - livre de jeu offensif [i] .minYardage)
           + livre de jeu offensif [i] .minYardage);
      // veille à ce que la distance de jeu ne puisse être supérieure à
      // le champ restant
      if (passDistance> sessionAttributes.yardline) {
        passDistance = sessionAttributes.yardline;
      }
      playDesc = offensivePlaybook [i] .playDesc;
      speechOutput = speechOutput + playDesc + “. “;
      // en fonction du jeu sélectionné, détermine le relatif
      // taux d'achèvement
      passCompletion = offensivePlaybook [i] .completionRate;
)
...
// renvoie la réponse à Alexa et sauvegarde le contrat de jeu
callback (sessionAttributes,
    buildSpeechletResponse (cardTitle, speechOutput,
      cardOutput, repromptText, device, shouldEndSession));

Le stockage de ces données dans une table d'analyse est utile, mais n'est pas nécessaire dans une version initiale. Laissez la plate-forme Alexa faire ce travail pour vous.

Annoncez vos compétences sur les médias sociaux

Les gens ne réalisent pas encore tout ce qu’un Alexa peut faire. En faisant des démonstrations de ces compétences, je reçois régulièrement des réponses selon lesquelles «je ne pensais pas qu’Alexa pourrait le faire».

Toutes les compétences doivent être certifiées avant publication sur Amazon Store. Lorsque votre compétence a réussi le processus de certification, prenez le temps d'enregistrer une vidéo en action. C'est le meilleur moyen de prouver ce dont la plate-forme est capable.

Merci de votre lecture et appréciez ces jeux, ils sont gratuits!