Next week is GDC and about half our team will be making the trek to San Francisco for the conference. Since our game is also being made for mobile devices, we have the opportunity to show off or portable version of the game. That task fell to me to create a stable version of the mobile to be ready to show off. The version that we are showing off is a fight between Omega and Theta. The player will control Omega and fight Theta to the song “16” by chromodadata. The scene also includes the most recent updates we have to the art and animation. The environment is alive with flowers that dance to the beat of the music and pinwheels that spin on the upbeat. When a player is hit, the flowers explode and release their petals to the wind.
We also had a new idea for a character who had a special ripple that would follow them around the arena. Quickly implementing a special action that achieved this showed us that our implementation for expanding the ripples only worked if the ripple wasn’t moving. If we tried to move the ripples, they would glitch out and then disappear. After figuring out what was going wrong it wasn’t too hard to figure out a way to implement that solved our issue.
When you create an object in vectrosity, you’ll have access to the individual points in the object that you can adjust as needed. So with our original algorithm. We found the direction we wanted to expand by taking the point on the ripple and subtracting the center of the ripple. Since we are expanding outward from the center, this vector returned from point-center normalized would give us the direction that we needed to expand in. We then multiplied the direction vector by the current radius of the circle and add it to the center. This new point then replaces the old point on the ripple. We loop through the rest of the points and apply the same algorithm.
The problem occurs when we move the center of the ripple. The center moves fine, but the points in the array that we adjust don’t move update when we change the ripples center. That causes the directions to get messed up when we calculate them for the new positions.
Solution: We store the directions for each point when we first create the ripples. This way, we always have the right direction vector we need when we move the ripples. With this new algorithm implemented we can then test out a new character.