First steps in producing a music-themed voice game
In this second article on producing a music-themed #VoiceFirst game for the ‘One Game A Month’ challenge, we make some choices about the game’s concept, mechanics and user interface, and start writing both some content and the code.
In my last article, we made a background check on the great music-themed voice games that are already out there, and brainstormed some ideas. The one that resonated most with me was idea #4: A (kind of) business simulation game about raising a band from beginners to superstars.
You can skip the next paragraph, if that idea is still fresh in your mind.
Basically, your band gets more successful as you increase their stats (the original idea was to use wealth, talent and fame, also because it makes such a nice acronym, like Fallout’s SPECIAL stat system), which you do by 3 mechanisms: Daily single-choice questions, randomly dropping events, and ‘training’ between sessions.
After incubating and maturing this idea a bit, here are some of the choices I made for this game:
- It will have an icon!
- There’s only talent and fame.
There are two reasons I excluded wealth as a stat: First, it’s not too sexy for the game’s target audience. And second, it would greatly increase the complexity of the game! Talent and fame are supposed to rise more or less steadily, but wealth is a resource that the player would need to manage. And I intend the main resource for this game to actually be the player’s time. - It will be in German only
At least, for the time being. For a non-native, I think my English is pretty decent. But writing copy for games requires a grasp of a language’s subtleties and nuances that is currently beyond my English language competency. So I’ll stick with German for the time being.
On the positive site: The German Skill game market is not as matured and maybe even saturated as the English (US and UK) ones, so it’s quite thankful to develop for. - It will have a catchy name
I will call it simply ‘My Band’ (that’s ‘Meine Band’ in German), so that the invocation ‘Alexa, start/open my band’ makes sense.
- There will be ‘charts’.
David Karich, producer of the most successful music-themed Alexa Skill game in Germany, gave me a valuable hint on Twitter: To increase retention, I should enable direct comparison. I did plan to use an ‘anonymous’ leaderboard before (‘You are on position 78 of the charts — Yay!’), but I think I’ll experiment with being able to additionally ‘query’ the charts (‘Who’s on position 3?’, ‘On what position is Two Directions?’ ). - Rules for training
Training will be a key feature of the game, and hopefully a strong driver for retention. The basic idea is that at the end a session, the player can choose if they want their band to spend their time rehearsing, promoting or performing, and each of these increases a different combination of stats.
When they come back, the time between the session gets factored with a rate of training improvement, and this determines the increase of the according stat(s).
For example, your band had 50 points of talent, and you directed them to rehearse, and now after 4 hours you come back. With a rate of 2 talent points per hour for rehearsing, you gained 8 talent points and now have 58.
I suspect that this is already too detailed for you, esteemed reader, so here’s a very short summary of rules I figured out to limit this mechanic: There’s a penalty if either stat exceeds the other by 30%.
Great — Now we already have a good idea of what the game works like. What’s next? Should we start coding right away? Or do we sketch the interaction in a voice user interface (commonly abbreviated as VUI) tool before?
I guess everyone has their own approach according to their background, but here’s what I did: I already started writing as much of the content (i.e. everything Alexa says) as possible, to see if the dialog and the interactions ‘work’.
My understanding of a ‘working’ dialog is that there is a consistent flow in the Skill’s conversation. For a linear interaction, this is pretty straightforward, but in the case of this game, one (full) session can have each of the paths in the following diagram:
If you count, that’s 4 different paths, which doesn’t sound all that complex. But still, each stage (except for the introduction) will have dynamic content, which needs to blend in consistently.
Being mainly a developer myself, writing content is hard work, so by the time of writing this, I have the introduction and the challenge part mostly covered.
What I learned while writing the texts is the following:
- The intent scheme needs to be very flexible
I will only use the five basic intents (Help, Stop, Cancel, Yes and No), and one custom intent for everything else. Otherwise, the scheme would be too rigid: In training mode, there will be the options ‘rehearse’, ‘promote’ and ‘perform’, whereas in challenge mode, I there will always be a choice between two options. I could cover all of this with an ‘Option Intent’ with a slot for the numbers of the options, but this would make the interaction very computer-like (‘Say One for rehearsing, Two for promoting, …’), so instead I will go with natural language processing and fuzzy string matching (which I enjoy, by the way). - The most challenging part will be the challenges
On the content side,the challenge comes down to a miniature interactive story, where the user needs to make an interesting choice every now and then (about once a day). I’m neither an author nor a music business insider, so you can see why this is a challenge for me.
On the technical side, I will need to include the text and possible answers for the challenges in the Skill. I could hard-code them in the Skill’s source code, but this would require frequent re-deployments… The better option is to use a content management system (CMS). Fortunately, I have already worked out how to use a Google Spreadsheet as a CMS together with Jan König and Alexander Swetlow from Jovo, so this comes down to linking questions and answers, matching user utterances with the answers’ keywords, and keeping track of the player’s progress. Complex? Yes! Doable? Totally!
By now, our understanding of the internal workings of ‘my band’ is already detailed enough to get coding! In the next article of this series, we’ll cover the Skill’s structure and some solutions.
Did you enjoy reading this article? What was helpful to you? What would you have learned more about? I care about making this blog a valuable resource for #VoiceFirst game producers of every kind and level, so any feedback on how to improve is greatly appreciated. I look forward to your comments! :)