Hoedown! is a cowboy-themed roleplaying game invented by the co-founders of Savage Internet—Valkyrie Savage and Evan Savage—and realized with Kinoma Create. Based on how much it was enjoyed by SXSW attendees on the expo floor, we think it’s a great example of Kinoma Create’s ability to help develop experiences as well as devices.
About the Creators
Valkyrie is a PhD student in Computer Science at UC Berkeley with extensive hardware experience. Evan has deep experience with software and is drawn to interesting technologies and projects. Together, they were an ideal team to explore what’s possible with Kinoma Create.
As a software developer, Evan felt Kinoma Create was more welcoming and productive than starting with bare development boards, and liked that he could wirelessly upload and debug his code. Valkyrie was impressed with the interactivity possible with the device. She called its built-in screen “a total luxury” for being able to easily display feedback from her sensors.
The game in three parts
The Hoedown! game is played in three stages:
- Testing — In less than 5 minutes, players’ “cowboy skills” were assessed with the help of Kinoma Create connected to various sensors (see Technical details for more)
- Branding — Based on testing, players were “branded” as one of seven character types
- Playing — Players could meet and play with other characters in the game to win prizes
Hoedown! uses four different sensors and the Kinoma Create touchscreen to determine ability scores:
- A temperature sensor was used to measure the player’s hand temperature (Charisma)
- Blood Alcohol Content sensors tested whether players had ingested alcohol recently (Constitution)
- A stretch sensor measured the size of the player’s head (Intelligence)
- A flex sensor tallied how rapidly a player was able to squeeze a hand strength trainer (Strength)
- The touchscreen allowed players to solve a maze (Dexterity) and to sketch the user’s vision of an idealized beard (Wisdom)
The temperature sensor uses Kinoma Create’s I2C pins, while the other three sensors use analog inputs.
Here is the code for the I2C-based temperature sensor:
//Initialize the I2C pins & set the I2C slave address i2c.init( 27, 29 ); i2c.setSlave( 0x5A ); // Read the temperature data from the sensor tempData = i2c.readWordDataSMB( 0x07 );
And that’s it! There was some minor work to do to convert the sensor’s output format into a temperature in a common unit of measurement, but this is all that was needed for reading the value from the sensor.
Next, let’s take a look at the code for the analog-based stretch sensor:
// Initialize the analog-to-digital pin a2d.init( [ 47 ] ); // Read the analog value (0-1) of the stretch sensor var VOut = a2d.read( [ 47 ] )[ 47 ];
Again, there was some math still to do to convert the number output by the sensor into a meaningful head circumference. But reading the sensor value itself is essentially trivial.
Focus on the fun stuff
The Savages’ unique, crowd-pleasing project is a good example of how Kinoma Create shines at making the “plumbing” of your project easy so you can focus on the creative part.