The inspiration for this kind of game was the fact that unlike for mobile devices, there are almost no multiplayer games available for Alexa so far. Why? Voice controlled platforms have its own challenges for such games due to the lack of screen - or the fact that many people mainly use voice even if the device has a screen - and the way such devices are used in a quick request/response manner. I was wondering for a while now how would it need to be designed in order to be as engaging and competitive as multiplayer games for devices with screens. Introducing ISP to Alexa provided the final bit of motivation to try out some ideas as it allows to factor in premium content, which is of course attractive for developers but has to be used in a balanced way in order to not spoil the game, which was a challenge.
What it does
The game starts with you being the owner of a new battle robot called Alpha. It has statistics such as attack, defense and health which you can modify by upgrading it. Upgrades cost credits and time. Once you add some basic upgrades, you can put your robot in the Arena to let it fight against other players' robots. The winner gets experience and credits. This allows to further upgrade the robot and work your way up the leader board. You use the credits to pay for upgrades, but you can also use them to shorten the upgrade time and buy other things. The mechanics is fairly typical for competitive multiplayer games, but adapted to the Alexa voice platform.
Using ISP you can purchase credits, which is the in-game currency. You can also subscribe to several resource bundles, as well as make other one-off purchases such as additional robots.
How I built it
It's implemented using a framework I built in Python for state-machine based design of Alexa skills. Bits and pieces are also implemented in Node.js. It all works within the framework of AWS services with DynamoDB used as permanent storage and S3 used for storing some of the required resources.
Challenges I ran into
- Finding a balance between the complexity of such type of game and restrictions imposed by using only a voice interface, which does not allow to keep track of too many things at once. Although using Alexa's screen can make it easier, the game still has to work on and be fair for players not using a screen.
- Not being too intrusive with ISP suggestions which can spoil the game play if used too much.
- Implementing a fast and scalable back-end for the multiplayer game.
Accomplishments that I'm proud of
I'm proud that I managed to pull it off in the evenings in the first place :-) I also like how it works smoothly for all ISP types and multiple things you can purchase.
What I learned
Although the main concepts used in multiplayer games can be used on voice platforms, they need significant adjustments to remain playable and engaging. One big issue is complexity and the number of details, statistics, actions and options that has to be limited to what someone can process "in their mind" without relying heavily on having most of it laid out on the screen. Factoring in ISPs also took a few goes - not that much the mechanics of it, but rather trying to find a way to make it not too intrusive. The main and most valuable resource on Alexa is user's time, which they spend listening to what the skill has to say, and using too much of it for suggesting purchases can quickly put people off. I see this as a kind of experiment on which I (and hopefully others) can further learn further.
What's next for Battle Robots
There are many enhancements I have in mind, such as using APL to add value to devices with a screen, including additional less intrusive purchasing suggestions and purchasing controls, adding more items to purchase, account linking for users to see some of the game information online, factoring in location to align Arenas with geographical areas, adding the concept of guilds, etc.