top of page
Writer's picturemoawling

FaAST FUN: Trolley Folleys

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!


186 views0 comments

Recent Posts

See All

PIXEL PAL P-DEX

https://editor.p5js.org/mnk2970/sketches/c7j3UO0-Q WHEE

Comments


bottom of page