Eddie
Baixing Chen



Interested in game design. Focusing on interactive design in Parsons School of Design. Exploring different kinds of gameplay through installation differ from traditional gameplay in both Unity and Processing.



︎Contact: @cbx.shing@gmail.com 

︎︎︎About me

︎@edc.chan

︎Eddie





Games & Experiments---------

︎︎︎ Go Tangible!

︎︎︎ La Maison des Tulipes

︎︎︎ Take Me Back

︎︎︎ BetMe



Art Work & Installation-----

︎︎︎ Reconciliation

︎︎︎ Storage

︎︎︎ Lifeverything

︎︎︎ Drawing Tin-Can

︎︎︎ “Role”


P5JS-----------------------

︎︎︎ EÈÉÊËĒĖĘddieèéêëēėę



Product--------------------

︎︎︎ Braille Music Chart



UI/UX-----------------------

︎︎︎ Petchat





Eddie
Baixing Chen



Hi, I am Eddie Baixing Chen. Focusing on interactive installation in Parsons. Researches lies on emotion
and immersive experience. Also have some experience on Unity game design.


︎Contact: @cbx.shing@gmail.com

︎︎︎About me

︎@edc.chan









Go Tangible! (Group project)
05/02/2021

Group members: Yuqing Liang(Lia), Yibo Fu(Bob), Baixing Chen(Eddie)

Hey ya! It's the harvest season for fruits again! Have fun collecting whatever falls on the ground but keep in mind that your goal is to collect as many seeds as you can in 1 minute~

Control the balance board to move the hole left, right, forward and backward. Be aware that some fruit might not have as many seeds as the others, so definitely needs some strategy to manage your time. 

⚠️ Safety warning: we recommend you practice with the balance board first and then move your attention to the game itself after you're familiar with the board.





Install instructions
To play the game, you need to DIY a tangible control.

1. Download the Arduino code from the files

2. Check you Arduino port name, it's usually at the bottom right corner of your Arduino window



3. Change line31 in the unity script "SerialController" into your Arduino port name



4. connect your Arduino board with open jumper tilt module(OJ- CG316)



5. stick the sensor onto the edge of your balance board.

6. Stretch your body before you begin to avoid cramping.







Concept
We wanted to explore outside the screen, and try to create new ways for the player to engage with the game. So we didn’t go very deep into the concept of the game but experimented more with technical possibilities.



Tangible control 
Balance board --control the hole’s direction, Spin board---Time counter/pick the hole’s shape to fit only the right shape’s falling objects, pressure sensor.

Fully use Physics: Gravity, No




Experimental coding part (Arudino + Unity + communicating the two)
  1. Our first attempt was testing with four buttons on arduino to control unity player movement. The hardware worked well in Arduino and the player movement is smooth in unity with the keyboard controller. However when we combine the two parts, the movement became a bit glitchy. It might be something wrong with the unity receiving process but we couldn’t be so sure. In the end we managed to minimize the glitch but still couldn’t get it as smooth as using the keyboard directly.
  2. Then we replaced the buttons with a tilt sensor, which can detect 5 directions including initial horizontal position, left, right, backward and forward. We tried with many different codes, sometimes the player moves too fast that it was gone immediately, sometimes the player could only move in one direction in unity though Arduino could detect all 5 positions, and sometimes the player does not respond to the sensor at all. Our suspicion was that the sensor is not working well, so we replaced it with some other sensors for testing, including a sound detect sensor (not sensitive enough to move smoothly and only have 2 status) and a 2 directional tilt sensor (we tried to use two 2-directional tilt sensor but one of them always overwrites the other one), in the end we got back to the 5-directional tilt sensor, and found out that it wasn’t the hardware part’s problem but the communication method between Arduino and Unity.
  3. For the communication part, we tried most of the tutorials we could find from youtube and other Arduino websites. Firstly we use digitalWrite(), serialWrite() and serialPrint(), for the buttons and the sound detector, it all worked out well. But for the tilt sensor it couldn’t work smoothly. After all kinds of methods we found that the return method can also be delivered to Unity, and it’s overwriting serialWrite(), also, it could only read numbers instead of strings. At first we had the Arduino part serialWrite(“go Left”) as it’s easier to console, but later found that was disturbing other process and we end up using only return + a number for each direction (0 for left, 1 for right, 2 for forward, 3 for back and 4 for staying horizontal).
  4. We thought the balance board has enough tilt degree for the sensor to detect but found out that it just wasn’t enough. However adding extra height to the balance board could be dangerous to the player, so we decided to use this one as a demo first and refine it with a proper balance board in the future (takes several days for a new balance board to arrive).








Visual part & Unity code (Arranging assets and game scripts)
  1. Sound has always been the most tricky part of all and we don’t know why :( Fortunately it worked in the end.
  2. We tried to develop a simple and clear visual appearance in order to let the players focus more on the game’s important elements especially when they can be unbalanced while seeing the screen, so a cartoonish shader is what we wanted. Also bright color for the fruits and a little bit unsaturated background would make the falling process much clearer.
  3. Coding process is a step-by-step process. First we tried to make the fruit collide with a lower surface in order to detect whether the fruit got into the hole or not. However, it seems to have some conflict with the physic engine and at last we manage to use the OnTriggerEnter function by adding one more mesh collider for each fruit. Then we write the code to let them fall randomly by time with the Invoke() & Random.Range (,) function. Then we add the timer to the main game scene and I used Time.timeSinceLevelLoad to count the time starting from loading the scene rather than the game.
  4. For the UI part, we tried to use big letters and bright colors. Also we made the timer RED when there’s only 10 second left.





Future development 
  1. Try a sound volume sensor and air pressure sensor with other levels. (the harder you blow it, the higher the balloon flies; the higher the air pressure, the larger the balloon becomes);
  2. Add shadows to the fruits’ shader to better indicate the falling;
  3. Make a final big boss stage where you have to use all the sensors together to control a multi-tasking game!🤪(This require more studies into solving the conflict between different sensors on one same arduino)
  4. Design an instruction stage for the users to get used to the sensors before getting too hard.
  5. Arrange more user testing and recording their reactions in order to make the game more fun and less frustrating.



Eddie Baixing Chen
©edcbaix