Trolley Folleys: A Bad Game about Trolley Problem Memes
What does it mean when games put their audience in a position where they have to make difficult ethical decisions? The onus of making those tough choices often falls onto the player, but is it possible to create a game where the artist/developer is able to be held accountable for proposing a difficult dilemma in the first place?
Trolley Folleys is a game where the player is absolved from the consequences of “killing” players through a series of forced misunderstandings. The game often (wrongly) assumes the intentions of the player, allowing the player to question the role of the developer.
For this game, I was interested in building a physical controller to help communicate the players' intentions. It was my ideal goal to design a physical "lever" that needed explicit intent to be activated. Upon research, several of the video game levers on the market were designed for helicopter use. For the span of the project, I decided to move forward with simple button controls, using the Arduino's keyboard library.
I spent a lot of my time building the game on Unity. Here are some of the art assets and concepts!
A playable build, with only the murder functions is available for play here: https://moawling.itch.io/trolley-folleys-test
(Use arrow keys to splat some guys sorry)
SORRY
Now that I had a build working, I wanted to set up a simple pushbutton setup to communicate with my Unity project!
I set up my board accordingly, with just the left arrow key in mind:
I referenced this example code from the Arduino website: https://www.arduino.cc/reference/en/lan
#include <Keyboard.h>
// use this option for OSX:
char ctrlKey = KEY_LEFT_GUI;
// use this option for Windows and Linux:
// char ctrlKey = KEY_LEFT_CTRL;
void setup() {
// make pin 2 an input and turn on the
// pullup resistor so it goes high unless
// connected to ground:
pinMode(2, INPUT_PULLUP);
// initialize control over the keyboard:
Keyboard.begin();
}
void loop() {
while (digitalRead(2) == HIGH) {
// do nothing until pin 2 goes low
delay(500);
}
delay(1000);
// new document:
Keyboard.press(ctrlKey);
Keyboard.press('n');
delay(100);
Keyboard.releaseAll();
// wait for new window to open:
delay(1000);
}
I switched the key to the left arrow key, and got rid of some of the delays. No delays in trolley murder game.
#include <Keyboard.h>
void setup() {
pinMode(2, INPUT);
// initialize control over the keyboard:
Keyboard.begin();
}
void loop() {
while (digitalRead(2) == LOW) {
// do nothing until pin 2 goes low
delay(100); // reduced delay
}
Keyboard.press(KEY_LEFT_ARROW);
delay(100);
Keyboard.releaseAll();
// https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardpress/
}
Initially the left arrow key kept continuously pressing, this was a faulty setup with my bread board! I forgot to check how the push button was set up. Once I fixed that, the controller was good to go!
Comments