Final Project Essay
James Chou & Jannie Zhou
Our purpose is to create a two-player game which is engaging and entertaining, and more importantly, interactive.
At first, we want to create a game which could make the two players interact with each other thus achieving the purpose of bringing people together. But then our ideas shift a little to create a two-player game that is engaging because we came up with a better idea of a competing two-player game. Our targeted audience is for all.
Our inspiration first came from an art exhibition by a Japanese artist Godai Sahara titled A Gift From Someone Who Wishes to Cry but Hardly Ever Does. When I was standing in the space the artist created I can feel how lonely and desperate he is. So I want to create a game to make the users interact with each other to “cure loneliness”.
(“A Gift From Someone Who Wishes to Cry but Hardly Ever Does”, Godai Sahara)
After discussing with my partner, we came to the idea of creating an engaging and entertaining two-player game. Then we thought of the game called 1-2 switch. We found the idea interesting so we used a similar concept: only obey the instructions on the screen when the background is green, but do the opposite when the background is red. Because the brain can be fooled by the instincts sometimes, we think the concept would be entertaining and engaging.
(Game “1-2 Switch”)
We discussed the plan first. We thought it would be good to keep the physical part simple and clear. So we thought of using buttons. Originally we wanted to use the buttons in the studio. We tried them out:
But then we found that these buttons are too small to make a good game. So we bought some arcade buttons from Taobao and applied them to our project.
The Arduino part is very simple. It’s just reading the digital inputs from the buttons and send them to processing. So my Arduino code looks like this:
When we were connecting the buttons to the circuit, we learned that we need to connect resistors to the buttons to make them work correctly. We did a pull-up button so that the default value is 1. And when you press it the value becomes 0.
And originally our buttons could light up. Though the lights are very fancy, Leon says it’s too distractive. We wanted to do something with the lights at first, like doing a demo using these lights or use the lights to trick people. But unfortunately, during soldering, we broke 2 of the lights. So we decided to cut all the lights.
I started my processing with creating the start page and the basic pages. I learned how to use the Font function and how to use the PImage function. I insert an array of the text and import the array of values from Arduino.
And I set the background and text random.
During user testing, we got some feedback. Like add some instant feedbacks when pressing the buttons, and subtract the scores when pressing the wrong button. And make the ranking at the last page.
Then I started to improve our project.
First is with the sounds. I add the sounds when pressing the buttons. The sounds are actually from another game that my mom used to be obsessed with. I remember myself thinking how cute the sounds are, so I found them online and put them to our project. And following my partner’s suggestion, I add the kahoot music as the background music. It will speed up after a few seconds to make people feel stressed.
When playing the sound in processing I actually met some problem. I learned that processing cannot play mp3 music and I learned how to use SoundFile function.
Then I did the scoring system. This is where I encountered the biggest problem. I wrote the code that is logically right. But when running it it didn’t turn out the way it should be. I asked Leon and Nick and other students for help. They all couldn’t figure out where went wrong. After multiple attempts and trying various ways to debug, I asked Dave for help. Then we found out the error is where to put the color changing function. I learned that the logic of your code is very important. Although when writing it, you make every endeavor to make it valid. However, when actually running it, you are very likely to run into problems. When encountered with errors, you need to be patient and start to debug part by part. Comment out the rest which you are not focusing on right now and examine closely the part you are focusing on. Remember to obey the logic of processing.
This is what Leon told me to make my code with structure:
And I add the last page with the ranking. I set the time limit as well. I used the frameCount to set the time.
Also, I learned how to use boolean. It is very memorable because when I learned boolean in the class I actually have no idea what this is. Not to mention how to use it. But in the code, I did use 4 or 5 booleans. So I really learned a lot by doing this project.
After finishing the major part of my project, I invited some people to test our game:
In this user testing, I got feedback saying that we should add some animations on the screen to show who got the scores. I found the feedback very valueable but I didn’t get enough time to try this out. If I have more time in the future I will definitely do so.
In this user testing I adjusted the time period of our project. Not too long for people to feel boring or too short to make people don’t even know what is going on.
After this user testing, I changed the starting page. I add one more page before the game begins to make the instructions clearer.
And this is the final user testing which I am very satisfied with:
They are very engaged in this game and found the game interesting. (YASSSSSSSSSS!!!)
The fabrication part was mostly done by my partner. We used laser cutting to create a box to store the circuit. We design some arrow patterns to represent our game.
And the final box looks like this:
Future Development if Possible:
Firstly, as I mentioned above, I want to add more animations to create more visual effects. I think this is very easy to do with all these knowledge we have learned during class. It’s just I didn’t have enough time to do this.
Then I want to use the lights on the buttons. I want to use them to trick the users to make the game more engaging and difficult. Because when seeing lights on the buttons, people will subconsciously want to press them.
And I want to make the instructions clearer, maybe by creating a demo video or use the lights for instructions.
I put a lot of time and energy into making this final project and I learned a lot. I really cherish the process of making it. From not knowing what to do to having a rough idea. From knowing the idea to making prototypes. From drafts to the final project. We have come through a long way. And I am extremely grateful for this experience. Working with my partner, learning to code by myself online, discussing the problems with the fellows and instructors, adapting ideas from other users, and improving the project little by little.