Project 2

Player test

group member: Persia, Chengbo Xing

After the first round of feedback from the class, I listed the following questions to be modified through the iteration:
1.  What should users do during the experience?
2. How to keep users playing for longer time?
The things I have:

Iteration 1.0

Targeted pain points:
The planets are fixed and have limited attraction for users to explore. Also it’s easy to get lost in the galaxy when all the views are out of sight because the spaceship couldn’t rotate the perpective due to my tech limits.
Before the group discussion, I iterate the former experimental version by adding the orbit for the planets and the panel revealing the position of user.

Iteration 2.0

After the first discussion with Chengbo, he brought up his original idea of controlling a character in the scene by using the physical stuff and attach some game logics. Then we stroke an idea as follows:

Game Description
The joystick controls your spaceship as main character of first perspective and the score starts from 100 representing our fuel, so when the score declines as time goes by, your spaceship will slow down. When your spaceship catch (approach) the randomly moving character in the scene, the adding score acts as the fuel to speed up our spaceship. But when our spaceship was caught (approached) by the evil character chasing after you, the score will be substracted and our speed will slow down. When the score runs out, your spaceship can no longer move and the game is over.

User Interface Description
The joystick controls the moving forward, backward, left and right of your spaceship.
The 2D panel at the right bottom illustrates the positions of your spaceship, the character for bonus and the evil character chasing after you.
The 3D environment gives you the immersive sight.

Task Allocation
Chengbo is in charge of the 2D game logic in p5.js with arduino.
I’m in charger of the immersive 3D environment in Touchdesigner with arduino and modify the game logic in TD python grammer.
Catching and Chasing logic test in Touchdesigner
The point ball requires two random values as its tx,tz position in 3D environment. The lag CHOP slows down the transition between neighboring random position so the point ball can move smoothly.
The chasing ball should be hauting behing the spaceship so the lag CHOP can adjust its strength of chasing.
The distance between the spaceship and the balls has to be calculated and compared to the trigger value I set in the count CHOP.
The score is the value of win point substracted by lose points, when the score reaches 0 it can never be changed anymore, and the scene will reveal the result of the game.
Reset Button
I add the button in arduino to read the press movement in Touchdesigner. When the button is pressed, the value of reset CHOP turn to 1 at once and the counting of points will be reset and the scene of score and game environment can be reset.
I also set game over when the score reaches 0 ahead of time in chopexecute of score, so the final result will block the game scene. If the user didn’t reach 0 ahead of time, the time limit is 2minuts, and the final result will still block the game scene. The reset button will reset all the data and also reset the time counting.
Sound effect logic
The logic CHOP can detect the value change event of point adding and losing, I attach the on and off logic value to the reload statue of soundeffect for gaining point and losing point.
The squid game sound track’s volumn turns louder when the red ball gets closer to the spaceship, so the volumn value is attached with the danger constant CHOP’s loseDistance value.
Score system and User feedback experience
The green bar represents the score(fuel) the spaceship gets, the length of the bar is attached with the value of point. Also the math for the timer CHOP let score declines automatically as time goes by so the time of game will be limited.
The velocity value is also attached with the score which means that the lower score you have, the slower the spaceship will get.
The Iteration 2.0 Video

Lab: Two-Way (Duplex) Serial Communication Using An Arduino and P5.js

The lab introduces me the way to separate the different values sent from arduino to p5.js.