
A firefighter Squirrel & Pelican Duo; the Squirrel shoots water from the back of the pelican to extinguish the fire. Designed specifically for Xbox Adaptive Controller and a young audience with the Forest "theme".
Once we agreed on the game concept; a pelican and a squirrel working together to control forest fires. I focused on player controls, feel, and the overall game loop as the Gameplay Designer.
Because the game was designed around the Xbox Adaptive Controller, we decided to limit the control scheme to its two main buttons. I designed and implemented a system where different inputs; short taps, long presses, and the combination would allow the player to rotate, move upward and descend Once the controls were working as intended and the movement values felt right, I passed the script to our Character Programmer, who integrated collisions and handled further polishing. I still continued to iterate on it for wing cooldowns (which I chose to have set as the average wing flap of a Pelican), speeds and more;
void Update()
{
rotating = Mathf.Clamp(rotating, -1, 1);
rotating += Input.GetKeyDown(KeyCode.A) ? -1 :
Input.GetKeyUp(KeyCode.A) ? 1 : 0;
rotating += Input.GetKeyDown(KeyCode.D) ? 1 :
Input.GetKeyUp(KeyCode.D) ? -1 : 0;
if (rotating != 0)
{
targetRotation -= turnAngle * rotating * Time.deltaTime;
leftFlapCooldownTimer = flapCooldown;
}
transform.position += transform.forward * baseForwardSpeed * Time.deltaTime;
if (Input.GetKeyUp(KeyCode.A) && leftFlapCooldownTimer <= 0f)
{
m_Rigidbody.AddForce(transform.up * m_Thrust);
}
if (Input.GetKeyUp(KeyCode.D) && rightFlapCooldownTimer <= 0f)
{
m_Rigidbody.AddForce(transform.up * m_Thrust);
rightFlapCooldownTimer = flapCooldown;
}
if (leftFlapCooldownTimer > 0f)
leftFlapCooldownTimer -= Time.deltaTime;
if (rightFlapCooldownTimer > 0f)
rightFlapCooldownTimer -= Time.deltaTime;
For the squirrel controller. Together with the programmer, we defined how the water-shooting mechanic should work, ensuring the player could rotate and aim comfortably while moving. I also defined the rotation speeds and the velocity of the water balloons to keep the mechanic readable and responsive.
After extensive testing of the core game loop and mechanics, I worked closely with the Fire Programmer on the fire spread system. Early versions of the fire spread too aggressively, quickly overwhelming the player. To fix this, we reduced the number of trees each fire could spread to, while also adjusting the timing between spread events. This resulted in a much more controlled and readable system, while still allowing the fire to gradually become more dangerous over time.
Overall, I spent most of the project playtesting, tweaking values, adjusting mechanics, and communicating design needs with the rest of the team. It was a very smooth collaboration, and the project was a great example of how iterative gameplay design and close communication can quickly improve both feel and clarity.