Final Project – Werewolf

For this final project, many aspects changed over its development. Initially, I started work on a voting sort of game. I wanted everyone experiencing to have an app loaded to their mobile device written in ReactNative, then proceed to each have an interface to participate in the game. Essentially I would find through research that I wanted to create what is known as a Crowd Game.

Further reading: http://stalhandske.dk/Crowd_Game_Design.pdf

Through much of my development time, I worked with the concept of a voting game and how to get people to form coalitions. Ultimately, I found it difficult to design something around this concept, because it was difficult to evoke strong emotions without serious content or without just having the experience revolve around collecting points. Shortly before the final few days of development, I had the idea to completely change and base the experience on the party game known as Mafia or Werewolf (Rules example: https://www.playwerewolf.co/rules/). This change better reflected my original desire to have a Crowd Game, but with added intimacy and interaction between the players themselves, as opposed to with the technology. If people are together to play a game, it should leverage the fact that the people are together.

Client / Mobile App
    –  Written in React.js (JavaScript) using the ReactNative and Expo Frameworks. Excellent choice for development, written in a common web language for Android and iOS, able to access system camera, vibration, etc. https://facebook.github.io/react-native/ https://expo.io/
    –  Unique client ID. Game Client would scan and display QR codes so players can select players to kill automatically from distance with consensus. Also randomly assigns all rolls to players.
    –  Expo allowed me to upload code to their site and load it to any device. A website serving HTML/JS would be easier to use if one did not intend to use all the phone functions.
    –  This part of development went smoothly and was fairly predictable with regard to time sink. Would recommend for use.
Isadora
    –  Isadora patch ran in the Motion Lab. Easy to setup after learning software in class.
    –  Night/Day cycle for the game with 3 projectors.
LAN Wi-Fi Router
    –  Ran from laptop connected to Server over ethernet. Ideal for setups with need for high speed/traffic.
Game Server
    –  Written in Java, by far the most taxing part of the project.
    –  Contains game logic, handling rounds, players, etc.
    –  Connects to clients via WebSockets with the Jetty library. I could get individual connections up and running, but it became a roadblock to using the system during a performance because I could not fix the one-to-many server out-messages.
    –  This had a very high learning curve for me, and I would recommend that someone use a ready system like Colyseus for short-term projects like this final. http://colyseus.io/ https://github.com/gamestdio/colyseus

During the final performance, I only used the game rules and Isadora system setup in the Motion Lab, but I feel as though people really enjoyed playing. Certainly more effective than the first game iteration I had, even with the technology fully working. My greatest takeaway and advice I would give to anyone starting a project like this, would be to just get your hands dirty. The sooner you fully immerse yourself in the process, the sooner you can begin to see all it could be.


Cycle I – Voting Game


PP3 – Puzzle Game

For Pressure Project 3, I decided to create a game reminiscent of games like The Talos Principle and The Stanley Parable. These games are unique in that they explore themes of determinism and freewill, and the ending you receive is based on how you perform in light of the choices you make in the game. Certain choices made following the instruction of the narrator/narration will lead you to a somewhat lesser ending than one of disobedience and self-determination. The links below highlight the endings of the games where these themes are evident.

Talos Principle: https://www.youtube.com/watch?v=g5FloMq9Lck
https://www.youtube.com/watch?v=-mNa2csiD8E
Stanley Parable: https://www.youtube.com/watch?v=w3UxRa_-9UU

Given the time constraint, I decided to make a game with the puzzle goal of unlocking when the user successfully correlates actions, but only executes their own commands.

User Inputs would include a gamepad controller and a Kinect interface, and users would input a corresponding button on the controller or move in a corresponding way in space.
🡸 🡺 🡹 🡻 A (Jump) B (Crouch)

Participants would move in a grid space made up in Isadora with data from the Kinect to complete the physical inputs. In the first phase, only the game pad would be used. In the second, only physical movement. In the final phase, both would be used. Thematically, there would be psychology/philosophy quotes about choice between phases, some which would suggest a means of escape/winning. In the final phase, you would unlock the real ending if you made valid unprompted choices.

The game wasn’t completed because I lost the save at one point when I was trying to get the Kinect stream working. SAVE EARLY, SAVE OFTEN. At time of performance, game included the first phase only. It also broke.

Here’s a user actor example on how to make a non-repeating random number string generator. Change length or modulo number for different results. This was used to generate the pattern of inputs that the user had to input.

 


PP2 – Fortune Teller


My project was to make a fortune telling interface, styled as the Greek/Roman Oracle of Delphi. In its operation it was to detect the input of the user through text or audio, determine what what said, and meaningfully respond to the contextual and emotional charge of the user dialog. I was very much unable to finish, and I think this is as a result of trying too many foreign concepts in this project combined with a 9 hour time limit.

Did start a good discussion in class regarding AI/machine generated response. Due to the nature of the application, it leads to an ethical discussion on how or in what ways we should be (or not at all be) manipulating the experience/emotional states of the participant.

Although, I am familiar with all of the technology and techniques in my plan for the project, I have never directly implemented a few like: language processing, Audio binary, TCP/IP requests (I recommend NEVER doing this by hand, use a wrapper class), Google Cloud, etc. Led me to think about the ways in which I consider what skills I do and do not have a mastery of, and how to construct this knowledge of each into a full project. For instance, I would definitely consider some of the aspects of this project to be outside my comfort zone now. Ideally for a new project, I should be using skills I already have, save for 1 or 2 new concepts only.

Google CPS: https://cloud.google.com/docs/overview/cloud-platform-services
Chatbot Applications: https://www.wordstream.com/blog/ws/2017/10/04/chatbots
Historical Inspiration for Styling: https://www.coastal.edu/intranet/ashes2art/delphi2/misc-essays/oracle_of_delphi.html


PP1

Information about methodology, intent, and reflection below.

Read the rest of this entry »