Flying Character Controller

I worked on this project sometime around mid to late 2020. I had tried to do player flight in the past, but was never really satisfied with the results. Moving with forces always felt floaty and unsatisfying. So for this attempt, I tried to do a little bit more research on the mechanics of flight first. Although I didn’t have a strong enough physics background to translate the various formulae into physically accurate flight, I was able use simplified lift, gravity, thrust, and drag forces to make a flight controller that works well and is fun to use, even if it’s not really realistic. I had experimented with braking and diving acceleration, but they were still buggy so I took them out for this demo.

You can try the game on Itch here.

The flight controller is split up into a few classes to help me stay organized. The FlightController script is a MonoBehaviour which is mostly just responsible for getting player input, then telling the FlightManager to update its data, and calculate/apply physics (For clarity, I removed a large part of the FlightController like initialization, and event registration). The FlightManager is provided with an IFlightSpecifications which dictates the flying properties of an object such as speed, turn rate, and acceleration.