Updated: Oct 31, 2019
What is this?
General Flight Mechanics describes the absolute fundamentals of how flight in Star Citizen works. Much of this topic covers the mechanics of the flight model itself.
Why is this important?
True mastery of any skill requires an understanding of why things work they way they do behind the scenes.
Can I get a TL;DR?!
We recommend checking out the video series (coming soon, sorry).
What should I know before reading this?
This text assumes that you have completed some kind of basic physics course in primary school. If you aren't sure about the differences between scalars and vectors, or velocity and acceleration, or you just want a refresher, Crash Course has a great series.
What will I take away from this?
After this, you should understand the different kinds of ship motion in Star Citizen and have familiarity with the three equations that determine how a ship can alter its motion on any given axis.
Flight in Star Citizen is realistically simulated and largely consistent with how real bodies would behave under similar circumstances per classical mechanics, with a few exceptions.
Ships generate force, usually with thrusters but sometimes via aerodynamic effects, to produce movement consistent with Newton's laws of motion. In non-quantum flight, ships and projectiles are constrained to speeds on the order of thousands of meters per second, which eliminates the need to consider relativistic effects.
Ship Intelligent Flight Control System (IFCS) features are designed to assist the pilot and often automate ship thrust in a manner that gives the appearance of non-Newtonian flight, but at the fundamental level, the game is accurately simulating rigid-body physics.
Aerodynamic effects are heavily simplified but, for the most part, consistent with real life. The classic drag and lift equations are used to determine the respective forces on the spacecraft, but many of the variables are tweaked to give a good experience rather than represent how the art-driven spaceframe designs would actually fare in atmospheric flight.
Orbital mechanics, along with planetary body sizes and distancing, are scaled to benefit gameplay rather than provide hyper-realism. Objects outside of the atmosphere of a planet do not need to be in an orbit to maintain the characteristics of free fall. For the most part, orbital piloting gameplay is non-existent, and players can simply fly directly to where they want to go.
Motion is the essence of spaceflight. It's the whole reason for heading out into the dangerous vacuum of space: to get from A to B so that you can move things, scan things, shoot things, and so on. It behooves a pilot to fully understand motion, and that's exactly what we'll aim to accomplish here.
Two types of ship motion are:
Translation (Δs), which is change in position (s)
Rotation (Δθ), which is change in angular vector (θ), a.k.a. which way you are pointed
A ship in Star Citizen has three axes:
lateral (x, right/left),
longitudinal (y, forward/back), and
vertical (z, up/down).
All motion is along or about these axes.
Translation (Δs) is movement along one or more of the three axes (Δx, Δy, Δz). This is the ship moving from one place in space to another. The orders of this motion are:
0: Position (s) - where the ship is
1st: Velocity (v) - how fast the ship is moving and in what direction (up/down, etc.)
2nd: Acceleration (a) - how quickly the velocity is changing and in what direction
Rotation (Δθ) is the movement about one or more of three axes (around x, around y, around z). Pitch is rotation about the ship's x axis. Roll is rotation about the ship's y axis. Yaw is rotation about the ship's z axis. The orders of this motion are:
0: Angular vector (θ) - which direction the ship is pointed
1st: Angular velocity (ω) - how fast the ship is rotating and in what direction
2nd: Angular acceleration (α) - how quickly the angular velocity is changing and in what direction
Translation in x, y, and z and rotation in pitch, roll, and yaw are all controllable in some way by the pilot - because there are six possible motions available, the term "6 Degrees of Freedom" (6DOF) is often used to describe the game's flight simulation. All these types of motion would normally be difficult for a player to control precisely, even with expensive hardware, but the control interface, IFCS, and ship thrusters all work together to translate pilot inputs into desired motion in a fairly intuitive manner.
How does motion happen, and how does it change? These questions are relevant because a ship that can't speed up, slow down, or rotate isn't going to be much use to anyone. Thrust is the primary tool a ship uses to correct the current motion into what the pilot wants. In this section, we'll explain exactly how the ship does this.
Newton's second law defines the equation:
The net force (F) acting on an object is equal to the mass (m) of an object multiplied by its acceleration (a). Rearranging the equation:
In many instances Star Citizen, net force is entirely the thrust applied to a spacecraft (T), but this is not always the case - the spacecraft can also have other forces affecting it, like lift (L), drag (D), gravity (G), and other forces (O) like collisions. To account for this difference, the equation can be rearranged as follows:
To simplify, we'll usually just present the equation like this, with all the non-thrust forces included in the "net external force" (E):
The rotational equivalent for Newton's second law is very similar:
The torque (τ) acting on an object is equal to the rotational inertia (I) of the object multiplied by its angular acceleration (α). Rearranging, with thrust (T) and external (E) torque represented separately:
If we have the rotational inertia of an object and the torque (think differential thrust, like in the animation below), we can determine what the resulting angular acceleration will be.
An example of external torque might be the weathervane effect, which occurs when the spacecraft aligns itself into relative wind (in atmo).
In the previous section, we explained how applying thrust will affect the motion of a spacecraft. That's great, but it does no good if the result isn't what the pilot wants. There has to be a system that takes the pilot's inputs and then determines what thrusts are needed to make the ship's motion match what the pilot wants - and that is done with a special ship system, the Intelligent Flight Control System (IFCS).
The next article will dive into the IFCS in detail, but, for now, we'll consider the end state: what kind of "goal motion" the pilot is trying to achieve.
Imagine yourself driving down a road in a car.
If the speed limit is 50 miles per hour, you may want to drive exactly this speed (or maybe a bit over if you like to throw caution to the wind!). This is a goal velocity of 50 miles per hour in the forward direction.
Now imagine you are in your car again, but stopped at a stoplight. Someone pulls up next to you, revving his engine - you know what that means.
If you decide to take him on, when the light turns green you'll likely slam down the accelerator and release the brake. This is different from the first situation - for the first few seconds, you aren't trying to get to a specific speed, but instead just accelerate as quickly as possible so that you can pull into the lead. This is a goal acceleration of, well, whatever your car's maximum possible acceleration is.
Finally, imagine that you have finished your drag race and are now turning onto a highway, with a circular on-ramp.
To stay on the on-ramp, you'd want to move the steering wheel to a position that corresponds to a constant rotation rate (your car is also changing its direction of translation, but ignore that for now) - too high or low of a rotation and your car would careen off the side of the on-ramp! This means that your car has a goal angular velocity corresponding to the steering wheel position that keeps you in the middle of the ramp.
How do we apply the above concepts of goal velocity, goal acceleration, and goal angular velocity to a spacecraft? For now, we'll only discuss a single axis of motion by considering a ship moving forward in a straight line.
Let's say you, as the pilot, want to fly forward at a constant speed - you want the spacecraft to have a goal velocity. According to the kinematic equations of motion:
v₁ is the goal velocity, v₀ is the ship's current velocity, and acceleration can be substituted using our equation from before to get:
Now, consider this - if you want the ship to achieve a certain velocity, it will use all of the thrust available to it (unless you have purposefully limited thrust in some way - we'll discuss this in the next article). This will often be the maximum output of the thrusters in a given direction, minus any thrust needed for stability or to change motion on other axes. We call this usable quantity the thrust available (TA).
So, if a ship will always use the maximum thrust available in this situation, what does the IFCS need to determine? The ship needs to fire its thrusters long enough to change the current velocity into the goal velocity - so the variable that the IFCS needs to determine is the amount of time it needs to apply the thrust available - burn time. Substituting in TA and solving for burn time, we get our first equation of motion:
Next, we'll skip to goal angular velocity. This one is easy because it looks exactly the same as the previous equation - except with rotational inertia (I) in place of mass, angular velocity (w) in place of velocity, and torque (τ) in place of force:
Finally, we'll consider goal acceleration. This situation is different because instead of using the maximum thrust available, the ship will vary the thrust according to how much the pilot wants to accelerate. Prior to 3.5, (in decoupled mode) pilots could set goal acceleration via control inputs, and the ship used those inputs to determine thrust output. In the current flight model, however, pilots can instead directly meter thrust available on a given axis via a few methods that we will cover in the next chapter - goal acceleration is still the objective, but the pilot input is more direct.
These two concepts (adjusting goal acceleration versus adjusting thrust) might seem equivalent, but there are some situations where this difference can produce divergent results on ship motion. Regardless, the result of this change is that a thrust magnitude equation isn't necessary - the ship will simply thrust based on pilot inputs, minus any thrust required for ship stability or for changes on other axes, which we will explain more in the next chapter. So - hooray for less equations!
In summary, there are two "goal equations" that describe how ships move in Star Citizen:
With these equations, the ship's IFCS can determine how to use its thrusters to achieve the goal motions in any one axis. But how does the IFCS interpret the goal values from the player? How does it mix simultaneous inputs for multiple axes together? And what about pilot thrust metering - how does that work?
In the next article, you'll get a deep-dive into the IFCS to see how it derives the goal values from player control inputs (link).