INDIVIDUAL REFLECTION for final project
Finally, the whole interactive section have done. So happy this days with my great professor immi and the other classmates. And also express sincere thanks to the assistants, who always be interrupted by me. 😂
My last project with my partner is about protect the marine animals from the plastic pollution. This is a two roles game, one its act just as a human while the other in the role of a fish, which try to show that only the human being and the animals sincerely cooperate with each other that we can save our both home-the earth. So we separate the screen into two parts but the plastic will all from the human art to the fish part to connect them. This game is facing to the people from all walks and all ages, but try to especially attract the attention from the young generation. We hope these game can let more people to pay attention to the plastic pollution and encourage them to use less plastic product and keep them away from the ocean or even participate in cleaning them from ocean.
PROJECT TITLE – YOUR NAME – YOUR INSTRUCTOR’S NAME:
Save me from plastic-Xinran Fan(Azena)-Inmi lee
CONCEPTION AND DESIGN:
My major idea is to make it immersive, because only an immersive experience that can totally bring the user into the role and , especially in the fish part, in other to let the user experience how difficult the lives of the marine animals if we keep on ignore the plastic pollution.
So at the first, we need a smooth control system. At the beginning we think that maybe we can use the handle to control. I’m so surprised to find the handle in the equipment room but , sadly, it is not working. Then after enjoining an example project ‘rain of the letter’ on class, we are suddenly hit on that we can make a ‘rain of the plastic’ to let the user catch it to avoid it from falling ton the ocean. We use a real-time image captured by camera as the background to give the user a more vivid experience. We choose the dark color to locate the motion of player, and we will offer dark glove to the users who play the human part. Once the user touch the plastic pieces and be discovered by the color function, the plastic pieces will disappear as the user pick up the trash and avoid them fall into the marine. By then , the human player can always move and have a more exciting experience. The whole body exercise will give the game more attractive power.
Second, the game should be smooth and exciting. At the first there is no extra trash in the ocean there the speed of the plastic piece is much slower than the final project. But during the user texting, we find out that if the human player can play int fluently that it is nothing the ‘fish’ can do. So we add the extra plastic to give more pleasure to the ‘fish’ and, of course, speed up the falling plastic pieces. This can make two players all focus on the game at the beginning. And we use the buttons to control the fish movements, that also increase the difficulties of the game.(live is never easy~~~)
Third, though this is a due game but the game still should be a whole. Instead of the competitive relationship often shows in the other due game, this game will emphasize the cooperate relationship. So although we separate the screen, but those plastic bottom are still keep on its track until drop into the deep part of water.
We reject two ideas for technology, and I have to say I still feel so pity about them. The first its a candy box, in our plan we firstly decide to make a Moto-drawer. It is nearly finished, the wooden box, the pull-push equipment and the code are are ready, however, at the last night we find it is impossible to fix the motor on the box, so we have to give it up.Another its a water quality changing system, if there is too much trash fell into the water, the quality of the water will go down and influence the moving speed of the fish. It is really a good idea for control the time of the game, however, this code must including the color of the water, the change of the speed and other more function, which is quite impossible for us to finish it in this limited of time.
FABRICATION AND PRODUCTION:
I can’t decide the most important step, for coding, structure are all very important part in one project. But accounting to my memory, the most nervous and exciting part is to keep the value of all the eight button at the 3a.m. at the night before the presentation. I rebuilt all the button in a really negative motion. But this small details really show me that even a small button have to be really steady if you want to build a game which truly can offer fun.
In the user texting, I receive many good advice. Like using MAC to operate the game to improve the fluency, and taking down the black and white filter. Theses are all good advice which we have followed. We also receive the advice that ask us to choose a not so common color, but after discussion. we still choose the black but a more deep color. This is truly a mistakes because is too easy to have a user in deep black.That will be easy for hime to ‘catch’ the plastic pieces by clothes. And we also be advised that put a video instead a picture as the background, We followed it but it turns out that too colorful which confuse the user.
CONCLUSIONS:
In my opinion, the interaction is the communication between two side, they can sense the input, progress, and give reaction. Like in this project, the players movement and the ‘plastic pieces’ in the computer has an immediately reaction. And whose more, I think a good interactive project can give the user an immersive feeling. Like in this game , player can get feedback from sound, light and even have to exercise the whole body. The last, I believe the real great interactive can even improve the communication of two living being, can be the human and human and also can the human and animal, not only a man-computer reaction.
Part of the code:
for (int k=0; k<plasticList.size(); k++) {
Plastic temp=plasticList.get(k);
temp.display();
temp.move();
}
if (fishY<=height/2+10) {
fishY=height/2+10;
}
if (fishY>=height-40) {
fishY=height-40;
}
if (fishX<=30) {
fishX=30;
}
if (fishX>=width-30) {
fishX=width-30;
}
if(sensorValues[0]==1){
fishY-=fishSpeed;
}
if(sensorValues[1]==1){
fishY+= fishSpeed;
}
if(sensorValues[2]==1){
fishX-= fishSpeed;
}
if(sensorValues[3]==1){
fishX+= fishSpeed;
}
image (img1, fishX, fishY, 100, 100);
}
for (int j=0; j<plasticList.size(); j++)//When fish touches plastic, it dies
{
Plastic nmsl=plasticList.get(j);
float dis = sqrt((fishX-nmsl.x)*(fishX-nmsl.x)+(fishY-nmsl.y)*(fishY-nmsl.y))-nmsl.size*0.4;
if (dis<=0) {
ok = false;
}
}
if (ok==false ) {//if a fish dies, game over, users lose the game
image(img6, width/2, height/2, width, height);
// println(“show game over”);
}
if (key == ‘c’ && ok == false ) {//see the facts page
image(img8, width/2, height/2, width, height);
// println(“show facts”);
}
if ( key==’s’ && ok==false ) {//restart after losing the game
ok=true;
win = 0;
start = 0;
int l = plasticList.size();
for (int i = l-1; i>=0; i–) {
plasticList.remove(i);
}
int r = fallingplastics.size();
for (int s = r-1; s>=0; s–) {
fallingplastics.remove(s);
}
}
if (win == 1 ) {//this means when users win, the fish is alive whatsoever
//myPort.write(‘1’);
ok = true;
fill(255, 34, 899);
rect(0, 0, width, height);
textSize(40);
fill(376, 678, 222);
text(“You Won!!Press ‘s’ to restart”, width/3, height*2/3);
textSize(45);
fill(255);
text(“You won the game.”, width/2,height/5);
textSize(30);
text(“But there are countless fish that survive by chance like this”, width/2, height/4);
text(“We play a crucial role in deciding their lives and deaths”,width/2,height/3);
text(“Less Plastic, less disaster”, width/2, height/2);
}
if (fallingplastics.size()>=fallingplasticsWinning && ok==true) {//After a certain amount of time, users win
win = 1;
fill(255, 34, 899);
rect(0, 0, width, height);
textSize(40);
fill(376, 678, 222);
text(“You Won!!Press ‘s’ to restart”, width/3, height/2);
fill(255);
text(“Save our ocean!”, width/2, height/4);
text(“Less Plastic, less disaster”, width/2, height/3);
}
if (keyPressed && key==’s’ && win==1) {//restart the game after winning
ok = true;
win = 0;
start = 0;
int l = plasticList.size();
for (int i = l-1; i>=0; i–) {
plasticList.remove(i);
}
int r = raindrops.size();
for (int s = r-1; s>=0; s–) {
raindrops.remove(s);
}
}
}
}
class Plastic {
float x,y;
float size;
float speedX;
float speedY;
Plastic(float startingX, float startingY){
x=startingX;
y=startingY;
size=random(50,150);
speedX=random(-10,10);
speedY=random(1,15);
}
void display(){
image(img2,x,y,size,size);
}
void move(){
x+=speedX;
y+=speedY;
if(x<=0||x>=width){
speedX=-speedX;
}
if(y<=height/2||y>=height){
speedY=-speedY;
}
}
}