INTERACTION LAB FINAL PROJECT——Rujun Zhang(Marcela)

  • Cave Adventure – Rujun Zhang – Marcela

(AT USER TEST)

  • CONCEPTION AND DESIGN:

My project is game which tells a story about an explorer using a torch to explore a dark cave. The explorer needs to find three diamonds, avoid touching monsters and then find the exit. Because the cave is totally dark, so the explorer only can see the area which has light from the torch. Users need to use a torch in real world to control this game: the direction of torch in physical world should be exactly the same as the direction of torch in the game. In my assumption, when users change the direction of torch and on the screen, they can only see the area with lights, they should feel they are exploring in the map and they are a part of this game. And when playing my game, the users are supposed to be tense and stay excited because they will never know the situations around in dark. In a shot conclusion, when users interact with my project, firstly they should feel they are a part of game because both physical and virtual world use the torch. Then due to uncertainty, they should feel very excited about the game. Based on the feedback of users, I think my project achieved the goals. Many users told me they felt very well because the torch connected them and the character in the game. Besides, many of them screamed and yelled during playing games and most of them played the game for several times. I used laser cut to build a simple box and brought two torches. I think they were the best choices because torch was necessary as I have mentioned. I used a simple box due to it could provide a good working area for light sensors. As light sensors were very unstable, the box can avoid some external lights. But some one felt uncomfortable to control the torch inside a small box. Thus, maybe in the future I should use a bigger box.

  • FABRICATION AND PRODUCTION:

In this section, describe and assess the most significant steps in your production process, both in terms of failures and successes. What happened during the User Testing Session? How did your user testing process influence some of your following production decisions? What kind of adaptations did you make? Were they effective? In short, keeping in mind your project goals, how do you account for and justify the various production choices you made for your project? Include sketches and drawings.

The coding part is really hard this time. I wrote about 1500 lines code and 5 classes in total. The reason why the code was so difficult was because I had a lot of things to consider. I made some general functions and classes for monster, diamonds, reward and so on. And in the setup and main page, I built a much bigger state machine compared to the midterm project. There were a lot of situations in game, so I needed to write a state for each situation. I had two big problems in writing code, the first one was how to restart the game and how to make users can choosing the difficulty by the direction of lights. I met a lot of strange bugs such as the game could restart but the users could not choose the difficulty of game. Another one is I did not know how to make the music continually play. I tried a lot of time and I also found some resources online, but I still failed. In the user test, many users really liked my project, but I also received a lot of opinions. For example, the image for victory was not match the style of the whole projects. And A professor felt disappointed that he needed to use keyboards to choose difficulty of game. Some users also pointed out that there should be more feedback during play games. I followed these advices to make some adjustments. I changed the image and changed the code to allow players can use torch to choose the difficulty of games. In addition, I added more sounds and images for monsters in the game. Every time the explorer saw monsters, or he got a diamond, the game would give a special sound as a feedback. Therefore, my project contained more interactions between users and the torch and the game can provide more experience to users.

  • CONCLUSIONS:

 Interaction is the message exchange between two actors, and I think the higher similarity between the two actors, the better experience the interaction will be. My goal of making this game is to combine the real world to the virtual world by a same thing – the torch. In my project, users can find a strong similarity between their actions and feelings with the character in game. Expected the torch we talked about, when the character saw monsters, user is able to hear the sounds of monsters and heartbeat of the character, which create an exciting environment to users. From the feedback of users, most of users really like this game and told me the playability of my project was very high. But some of them told me this game was a little bit difficult to win. In fact, I think if this game was easy to win, then it would not be exciting anymore. But maybe in the future, I should provide more difficulty level to users.

If I have more time, I will try to get rid of using keyboards at all. Right now, users still need use 3 keys to interact with the game. This is because coding part is really difficult, and I did not have to time to add more sensors. Besides, some of users only knew this was a game but did not understand the story of this game. If possible, I should add a storyline into this game. As I have mentioned, the box I used was relatively small, so some users felt uncomfortable to use the torch. But I added no decorations to the box, so it was very ugly. If I added a small human-shape top and made the box look like a cave, the project would make more sense to new users. From this project, I learned about how to add the sense of participation to my projects and more experience about writing codes. I gain more knowledge about how to use programming to realize my ideas to the game. In addition, I also understand when I design a something in the future, I should not only think about how it works, but also what the experiences that the users may have.

I think my project can be an exploration of new types of game, which has high similarity between real and virtual world. Compared to ordinary game, the users may have more sense of participation to play with these kinds of game. People should pay attention to this process, since in the future, the interaction between real world and virtual world will be more and more, not only in game but also in other purpose.

Recitation 10—— Rujun Zhang (Marcela)

In this recitation, I tried to use tilt switch sensor to control the image I inputed in processing.  My idea was inspired by the reading “Computer Vision for Artists Designers“, since it mentioned about using some sensor to catch up actions from people. Therefore, I wonder whether can I use gradient to reflect the rotation of pictures. I also used potentiometer as another case to be the contract. 

At the beginning, I inputed a gif into processing and I tried my best to make it played in processing. However, I found there was no libraries for gif and even I download some sources from Github, it still had some problem. I had to give up this idea to use image as my target. I draw a lot pictures on the screen and then I used rotate function. The output of sensors will be the parameters of this function. 

I learned how to use tilt switch sensor but I met a problem I could not solve. The output of tilt switch sensor was very very unstable. Sometimes it provided a value of 1023 and a slight change will make the value becomes 0. The results were very strange. Although at last, the interactions on the  screen were not different from using potentiometer, the moving of graphs was not smooth. So in the future, if I want to use this tilt switch, I should figure out how to adjust its output.

The video below is using tilt switch sensor:

The video below is using potentiometer as sensor:

The code is below, I saved it as PDF

Ardunio

processing

Final Project Proposal(Light sensor game) —- Rujun Zhang (Marcela)

I decide to make a game in the final project. The game is similar to Mario and players need to control a character to move toward a destination. If this character touch something or fall on the ground, then the player will lose. The key point of my project is using light sensor to control this character. The player need to control the distance between the light source and light sensor. The output of the light sensor will be the parameters of how the character move forwards.

To do this project, I need to prepare two light sensors to put in two individual box. From the experience of the midterm project, I realized that the output of the light sensor is very unstable since it will be easily influenced by the surroundings. Thus, this time, I will use two almost all enclosed box to put light sensor inside to make sure the light source we provide is the only input that the light sensor can receive.

About coding put, I think it will be difficult because we need to set many conditions. There are many ways that a player can lose but there is a only one way that he can win. Therefore, I need to set a lot of conditions to test whether the players lose the game. To find the parameters of location of character is easy but to test whether the character tough the dangerous line will be difficult and this is also the part I need to pay attention to.

The purpose of this project is finding to game of making future games. As we all know, 3D game and 4D game is very popular these days. And I think if we add some light special effects on real game will be interesting. We can use light and mirror to play games on computer instead of only use gamepads. So this may be a new way to play games in the future.

Recitation 8: Serial Communication——Rujun Zhang(Marcela)

This time, two projects were relatively difficult to me since I could not understand the example codes at once. I spent a lot of time understanding the code that wrote in example documentation. Thus, I did not finish both of them in recitation. With the help of Malika, I finished them after class.

In the project “Make a Processing Etch A Sketch”, first I did not know how to use parameters from Arduino to change the position of the ellipse. I found that the parameters were always out of range. After struggling, I realized that I can use map function to solve this question.

After recitation, I finished exercise 2. From the experience of the exercise 1, I understood how processing communicate with Arduino. One of the keys of exercise 2 was understand how to use tune function and I found the introduction on the official website. Another key point was that we needed use Space key to control the status of the buzzer. This was I did not know before. With the help of Malika, I knew how to code this.

The code in the PDF below

ellipseAPA ellipseAPP BuzzerPAP buzzerPAA

Recitation7 ——Rujun Zhang (Marcela)

I tried use the image I drew last time and I wanted to make a small a simple game. If this image moved across two lines (one of them is on the top; another is at the bottom), then there will be some warning. And people need to move the image from one side to another side. I learned triangle function online and to define the parameters of this function is very difficult, so I tried to adjust several triangles many times. Another function I used is mouse. I used mouseX and mouseY to be very important parameters and then people can use keyboard to control the image. Other functions I used were very normal, but I still thought random is a very interesting function because it will add uncertainty to my project. The exclamation mark will randomly appear in my project to warn player he is out of range.