Assignment: Alternative Controller

You have two choices:
A-Pick an existing keyboard-controlled game or program (up to six buttons) and reimagine its control system.
B-Create a new game or program along with the controller. It can be done in either p5 or Unity.

-Team up in groups of two
-Come up with a non-literal  relationship between software and hardware. Don’t just go with: I touch a banana a monkey on screen moves.
-Familiarize with the possibilities and limitations of MakeyMakey
-Don’t only think about a ready-made object but also how conductive elements can be integrated in an object.
– Imagine a context for you piece, it doesn’t have to be a lab, studio, or gallery piece.

Thursday 29: bring at least two ideas, illustrate them adequately

Tuesday 4: bring to class all the physical materials you need

Thursday 6: final due date

MAKEY MAKEY

Most fruits and vegetables work great.
Lots of other foods work too. We’ve tried marshmallows, gummy candies, macaroni and cheese, cupcakes, shrimp, and lots of other things.
Plants can work too. Try some leaves or flowers, but nothing too dry.
Play-Doh, Model Magic and other clays work very well as long as they stay moist.
People are conductive! Connect one person to ground, and another to an input, and you can trigger sounds when they high-five.
Graphite from a pencil can work. Make thick, dark lines, and be sure to draw on a smooth surface.
Foil and other metal objects will work. Try out coins, magnets, nuts and bolts, forks and knives, or pots and pans.

https://labz.makeymakey.com/remixes

CHOOSING AN EXISTING GAME

If you are choosing an existing game anything keyboard-controlled should work. Online games (flash or html5) are fine; you may not be able to install games from Steam on the lab computers so you are recommended to bring a laptop if you have it.
Check out itch.io for smaller, cheaper and more experimental games.
Consider you can access older games through emulation. Emulators are free but ROMs (the game software) are in a legal gray area and available on somewhat sketchy websites. Alternatively, you can rely on online emulation.

BEYOND GAMES

If you don’t want to make a game you can look for other inspirations in the fields of tangible interaction and new media art

https://tangible.media.mit.edu/projects/

https://www.creativeapplications.net/tag/interface/

REMAPPING INPUT

Not all the games and apps use makeymakey default controls, luckily you can remap the keystrokes.

Follow the tutorial here:

https://makeymakey.com/pages/remap

It doesn’t work very well but you can control the mouse too on mac using the mouse keys option: system preferences > accessibility > mouse

MAKING YOUR OWN SOFTWARE

Makey makey behaves like a keyboard so what you learned about p5 is easily applicable:

/*
p5 keyCode constants
BACKSPACE, DELETE, ENTER, RETURN, TAB, ESCAPE,
SHIFT, CONTROL, OPTION, ALT,
UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW.
To find a specific code check this
http://keycode.info/
*/
var fillCol;
var counter = 0;
var otherCounter = 0;

function setup() {
createCanvas(600, 600);
noStroke();
textSize(30);
textAlign(CENTER);
fillCol = color(0, 255, 255);
}

function draw() {
if (keyCode == LEFT_ARROW && keyIsPressed) {
background(0);
fillCol = color(0, 0, 255);
} else if (keyCode == UP_ARROW && keyIsPressed) {
otherCounter += 0.5;
} else {
background(255);
otherCounter--;
if (otherCounter < 0)
otherCounter = 0;
}

//bar
rectMode(CORNER);
fill(100);
var bar = map(otherCounter, 0, 100, 0, width);
rect(0, 0, bar, height);

//center rectangle
rectMode(CENTER);
fill(fillCol);
rect(300, 300, 300, 300);
fill(255);
text("space pressed: " + counter, 300, 300);
text("last key code: " + keyCode, 300, 300 + 30);
}

function keyPressed() {
if (keyCode == UP_ARROW) {
fillCol = color(255, 0, 255);

} else if (keyCode == 32) {
//another way to detect space
//http://keycode.info/
counter++;
}
return false; // prevent default
}

Here’s a Unity example that uses keyboard input: download