

SuSanQiJie
Beijing Opera
SuSanQiJie is a chapter that selected from the story 'YuTangChun': one of the most famous and important stories of the Beijing Opera history.
SuSan, a girl who lost her parents when she's five and trafficked into a brothel as a prostitute, fallen in love with one of her guest: a young man who is on his way to the capital city for a national exam. He promissed to SuSan that when he got his position in high place, he will return and marry her.
But the story does not go as they expected. The young man did well in the exam but was forced to marry with another women from a prominent family. While Susan was sold to a rich merchant as concubine.
The rich merchant's wife cheated her husband and killed him. She shifted the blame on SuSan and the poor lady was sentensed to Death Penalty.
However....
I have never made any rhythm game before and I chose to transfer this beautiful story into my first rhythm game.
This project not only tested my skill on developing games that I never tried to make before but also allows me to share the part of culture I'm proud of.
Time Signature

The first challenge I met was how to deal with the time signature. Unlike most popular western music, the beijing opera does not have a unique beat that can be applied to the whole play. It changes with the flow of the emotion. When the character is unburden his/her heart, the beat tend to be fast while when things slowed down the beat drops as well.
To deal wit this challenge, I seperated the input key into two sets (as shown above), the four keys on the left represents the fast beats while the 3 keys on the right will take care of the slow beats
How to Create Long Notes (Hold)

In terms of the coding part, the greatest challenge I met was to make the long notes functional: players are required to hold a certain button until the note bar disappeared. A pop up text will let the player know whether they hit the note on time and the score will keep updating until the end of the hold.
My solution is create an empty object and put it at the begininig of the longe note. When the collider of the long note hit the collider of the activator and correct button was hit by the player, script will calcualte the distance between the empty object and the activator, and this distance will be used to determine whether it is a good hit or not.
Also, as long as the collider of the long note and the activator hits each other, players are allow to hold the button, which trigger a function that keep spawning particle effects and adding numbers to the total score.

Challenge for the Future
The most tedious job in making this game is to match the notes with the song/opera itself. Even the chapter I chose is only 3 mins long, it takes me couple days to match them accurately.
When there's a mistakes happend, I have to go over the entire song again to find out where's the problem. And this tedious process happend in the testing part as well, when I have to play the front part first in order to test the later part of the game.
Futrue fix could be making this process more modular and customizable. Developer is able to speed up or jump direct into certain part of the song. Also there should be a way to seperate the song into different sections so dev can work on it piece by piece.
