Inua is a first-person 3D single-player action puzzler in which players use ice and fire to manipulate their environment, utilize combative enemies in creative ways, and progress through an ancient, overgrown temple.
Personal Design Goals
Inua had many game mechanics for our five programmer team to handle. My focus was on interactions with water, lava, and ice blocks. Not only did I want to make sure each mechanic felt right, performance was a constant struggle throughout the entire production cycle. This required recognizing the limitations of the Unreal 4 engine and finding ways to optimize what mechanics were implemented in game.
One piece of advice professors gave every team in Guildhall was to 'play your game'. With programmers being the largest discipline on the team, I took that advice to heart as I started and ended my day with at least one play through of the entire game or what levels were available at the time. With no official QA team, I tried to fill that role. As a programmer, I could easily find where any mechanical bugs were in the Unreal Blueprint scripts while I also kept open communication with the producers and level designers about any other bugs involving the levels and puzzles themselves.
What I Worked On
What Went Well
- Consistent cross discipline communication.
- Large amounts of playtesting and feedback to iterate on.
- Several game mechanics were completed early, allowing for more focus on polish.
What Went Wrong
- The project was poorly scoped, leading to removal of several mechanics and loss of work hours.
- The team did not focus on performance till near the end of the production cycle, leaving the game with poor frame rate.
- Lack of experience with puzzle games led to needing much more time to properly realize levels.
What Was Learned
- Constant testing with new people helps spot bugs and issues with design that developers may not notice.
- Developers should playthrough their own game to better understand where the game is and where it is going.
- Performance problems, such as low frame rate, can negatively impact a player's experience.
- It is better to cut and scope down a project early so hours are not wasted on tasks that will end up cut anyway.
Sample Blueprint (Inua_Water)
If a fireball hits water, create a steam cloud.
If there is an ice block in the water, make it flow with the current.
If a ice projectile hits the water, check the hit location and give it some deviation.
Begin for loop to create multiple ice hexagons. Each loop checks a new location. If there is an ice block in that location, do no spawn a hexagon.
If there is no ice block, check if there are already too many hexagons in the area. If there is not, create an ice hexagon. Continue the loop until finished then play the ice creation sound.