Background
If the spirits are to keep watching over us, we have to help them! The spirits of Air, Earth, Water, and Fire are our guardians, but to keep them alive, we need to give them our prayers. Every year, a chosen maiden must traverse the realms of each spirit to give them a crystal containing our sacred prayers. It is not an easy journey, as each realm is filled with puzzles and obstacles for the fair maiden to overcome! The facets of the different spirits make each realm a unique challenge, so only the bravest and smartest of the maidens are chosen for this most sacred adventure!
My Work
In this project, I was responsible for programming the mechanics of the air and fire levels.
I started off by working on the main mechanic of the air level. The team and I discussed that we wanted the air level to have both gliding and air lifts that the player could use only while gliding.
Initially I started by creating an impulse whenever the player presses the action key on an air lift.
This wasn't the desired result we wanted for the mechanic because we wanted the player to gradually go up the air lift rather than just be able to jump indefinitely in the air lift. I then changed this by having the player slowly descend in the air by pressing the action key. The player slowly ascends only when in the collision of air updrafts.
I later created the air updraft particle system so that players would be able to easily identify where they need to go in the level.
Fire Level
For the Fire level we wanted the player to be able to push boxes to block lava geysers that would kill the player on impact.
I implemented a basic push/pull mechanic for boxes in this area. Pressing 'E' will have the player push the object and if the player presses a movement key ('A' or 'D') opposite to the current direction, the player will pull. The debug spheres were just for testing and visual factors during creation. Animations for these actions have not yet been created. I also implemented a respawn system so it would be ready for when I make the lava geysers.
The next thing I did was create a particle effect for the lava eruptions. I also modified the eruption hitbox to shorten when an object is placed above. It detects this by using a line trace. I created two types of geysers, one that erupts for a duration before settling, and another that erupts permanently. The only way to progress past the permanent geyser is to cover it using the boxes places on the level.
The Challenges + What I learned
One of the biggest issues I had with the Fire level was that when I tried to increase the box size, the player would not accommodate but would be attached within the box instead. This was just due to the way I programmed the pushing and I had to readjust the values of the traces to make it so that the player would not phase through. This forced me to understand that I need to be mindful of possible changes we could make before programming something hard set. I also learned an interesting amount about particle systems. I had to create the air updrafts and the lava geyser systems. The geysers that were not permanent were not used in the final product of the game which made me realize that not everything I create will have a permanent use within the game. The gameplay can change as do the mechanics.