For my second semester of Game Development, the prompt was to create any game using any engine of my choice. I wanted this project to demonstrate skills that I'm proud of, so I decided to stick with Unity and C# while I focused on learning to use Unreal in another module. I brainstormed a few different ideas, but I went into the project knowing that I wanted to do something in a 3D space, and eventually narrowed my options down to what would become Oritsune.
I wanted to put more time into the concept and planning stage to ensure I knew what I was trying to acomplish over that semester, so I came up with the basic control scheme and made a priority list for a few different mechanic ideas. The original idea was for the player character, a kitsune, to earn its nine tails by completing levels in the game. Each tail would grant a new ability, with the character's starting tail being the card based combat system. While I was initially looking at deck-builders such as Slay the Spire and tabletop deck-builders, I ended up taking more inspiration from Kingdom Hearts: Chain of Memories, opting for a simpler card system in a 3D arena similar to Okami.
A brief run of the first half of the tutorial area.
I designed the basic concept for the main character pretty early, using a retextured fox model I purchased from Synty as the main character, which I would later create a few extra animations for by manipulating joints within Unity's animator. Where I needed any complex animations, such as attacking, I used the spirit orb around its neck to simplify the work. I ended up creating only two scenes, one tutorial area and one hub world, which I built up using a combination of Synty assets and Unity's terrain painter. With more time to spend on the project, I would've tried to populate these areas further, as the most that could be found in the main level were a few enemies and card collectables. However, I had a clear vision for what I wanted to do with the starting area, so I looked into creating materials for the spirits that would make them appear bright, and attached a light to each in-engine to create a sort of mystical scene. I don't intend on getting a job in industry as a designer or an artist, but I do enjoy this step quite a bit.
The bulk of technical work went towards the battle system. I ended up designing three different cards for use in the game, one for attacking, one for shields, and one for healing. Cards were based on the scriptable object system, having a type and a power which would determine the amount of damage healed, defended, or dealt. The player would get five cards for each turn, which they can use or discard as they choose, after which a new hand is drawn. Before a battle, the player can customise their deck as they wish.
Dev screenshot - a slowed demonstration of enemy rabbit AI.
Enemies also utilised scriptable objects as part of their state machine. I designed two enemies, but was only able to implement the rabbit enemy before the project was due to be handed in. The rabbit enemy would swap between three simple states - chasing the player to get in range, attacking the player, then attempting to run away and evade further attacks. It would routinely swap between chasing and evading as well. Each type of action would be determined by a type of action scriptable object. State machines and transitions would also be implemented as scriptable objects.
Also worthy of note, I used this project to improve on some of the generic systems developed in both Game Development Semester 1 and Game Engine Programing Semester 1, such as the UI and Scene Management, as well as developing an Input Manager based on Unity's new input system to spread inputs from one player component across multiple systems.
The following is a video demonstrating the gameplay developed.