Overview
Role: Game Designer, Tech Lead
Developer: Flyers (3-person DigiPen student team)
Overview: Fly By Knight is a 2D adventure platformer with light combat mechanics, characterized by a special multi-jump mechanic used to overcome obstacles and fight enemies. Fly By Knight was released on Steam on June 18, 2022.
Medium: Video Game (Unity Engine 2021.1)
Timeframe: January 2022 – May 2022
Contributions
On this project, I worked in a variety of design roles. I designed and implemented many major mechanics, such as the player controller, physics interactions, and combat systems. Given my familiarity with Unity, I was also the primary point of contact for all tech-related matters.
Some of my primary contributions to this project include:
● Designing and implementing a complex side-scrolling character controller
● Prototyping, iterating on, and implementing one of the three core gameplay levels
● Implementing a smooth, room-based camera system across the entire game world
Designing a Satisfying Character Controller
In Fly By Knight, the player controls a bird capable of multiple air jumps, with each jump in the chain growing progressively weaker. As the game is a 2D platformer, it was crucial that this core mechanic created interesting gameplay interactions while feeling both satisfying and responsive to players.
In order to nail our desired game feel, I designed and programmed the player’s jump physics almost entirely from scratch. This included modulating the player’s gravity depending on how long they held the jump button and where they were in their jump arc.
This system was designed to be highly dynamic and consistent despite the many complex interactions that could occur, such as knockback during combat and the influence of external mechanics like wind streams. I took dozens of factors and variables into account to ensure the control of the hero felt smooth across the entire experience.
Tuning these values by researching the inner workings of existing games as well as by conducting playtests to gather feedback, I iterated frequently on the system to make it feel as good to play as possible.


Final iteration of my custom jump decay function
Level and Mechanics Design
Fly By Knight consists of a central area that branches into three separate levels. I created the second of these levels, designing the layout and playtesting it several times to improve it.
This level introduces two new mechanics: vertical wind which pushes the player upward and fireballs dropped from plants. I designed and fully implemented both mechanics, including their visuals, feedback, and code.
My primary aim while designing these mechanics was to ensure they complemented the player’s existing moveset. In other words, I sought to create novel obstacles that still challenged the same skillset as the rest of the game. For example, I specifically made an allowance for the player’s down smash ability to supersede the strength of the wind streams so that this new mechanic would meaningfully interact with every existing tool in the player’s arsenal.
Ultimately, this level ended up being one of the favorites amongst playtesters.

Final obstacle, combining both mechanics

Full Level
Camera System
During the polishing phase of development, I designed a room-based camera system to help guide the player and emphasize key elements throughout the game. I implemented this system across the entire game world, including in the levels made by other designers.
Compared to the simple follow-camera used prior, this system segmented individual challenges, helping the player to focus on one thing at a time by hiding later obstacles until they were relevant. The purposeful placement and zoom assigned to each room highlighted the important elements while obscuring insignificant ones.
I designed the system to be flexible for a variety of level content. For example, both static and scrolling cameras were supported to accommodate different contexts.

Engine Experience
I have used the Unity Engine for personal projects since 2016. My plethora of experience proved itself useful numerous times across the development of Fly By Knight. The aforementioned character controller and camera system were rather involved systems which may have been out-of-scope otherwise.
In a rather dire circumstance, we discovered a major bug involving the cherry collectibles’ respawn behavior just a day before development ended. Though the team at first believed the problem would to be too difficult to solve with the time remaining, I put my years of experience to use, identifying the underlying cause and implementing a full solution in just a few minutes.
However, this project involved far more than just applying prior experience; my skillset expanded as well. I learned to use numerous previously unfamiliar systems, including visual scripting, particle systems, tilemaps, and more.


