It still needs a lot of work yet to call it a plane controller. The controls seem to be working okay. However, there is no stall mechanism, meaning I can keep climbing vertically without speed impacting my flight. Maneuvering the plane in general feels a bit harsh. Definitely a step in the right direction though. It just needs a bit more work.
Regarding the stalling: The system currently uses body gyros plus body velocities, other games using a similar system just stop the body velocity from working once the plane reaches the stall threshold, causing the whole model to just fall from gravity with no forwards movement. I didn’t want to go about it that way. I will add stalling though based on your feedback, maybe just forcing the gyro down when a threshold is met, and preventing the player manoeuvring until they gain enough speed to break out of the stall.
However it should also be noted the game I’m making the plane for is more arcade than realism, so I’m not sure if stalling would fit (my bad for not mentioning that)
As for “manoeuvring the plane in general feels a bit harsh” could you please elaborate a bit more? Are you referring to the mouse control, the responsiveness etc.
Thanks again for taking the time to play the demo!
I can show you an example of what I mean here. Assuming you have used a vector-based control system for the mouse, and you draw out the vector physically on the screen:
For instance, if your mouse is located on the first quartile, you would be climbing up and banking to the right. If it’s located on the X axis, you would only be banking to the left or right, and if it is touching the Y axis, you are pulling up or down. If it’s on 0 you stay on “cruise” mode.
My point here is, change in banking angles and pitch isn’t done in a linear way. When altering Physics values, be sure to implement an EaseIn-EaseOut solution to closely resemble real life. This is done due to the altering of aerodynamics in the plane body and for that to slowly come into effect.
To bring another example, say you quickly move your mouse from the first to the second quartile. Change of banking direction is done almost immediately which is unrealistic, even for arcade standards. That will even add a bit more challenge for the players instead of a simple pull-up/pull-down, turn left/turn right mechanism.
Sorry for the late response.
Landing the plane currently isn’t implemented. It’s something I would like to add, but given the plane’s current handling, I don’t think it’s possible right now.
Currently mouse control is done through mouse.hit.position, but I’ll change it to getting the screen coordinates as having the Z axis is probably pointless, and if anything may be causing some issues. Also screen coordinates just make more sense.
Ill change the way the body gyro’s cframe is altered (or just tweak the max torque values) to try and make the manoeuvring less linear.