Quote: "Controls are a little weird."
Try playing Zarch!
Unity is a Javascript-based semi-RAD program-writing system (there are already plenty of commerical programs for it - eg, Big Bang Brain Games).
It has PhysicX built-in along with shaders.
There are two version - Pro and Standard. The main difference is that the Pro can also create web-based and Windows games...
All the code for the demo is :
var turnSpeed=40.0;
var thrust=0.0;
function Start()
{
thrust=0.0;
transform.Translate(0.0,0.0,0.0);
}
function FixedUpdate()
{
var bank=0.0;
var tilt=0.0;
bank=Input.GetAxis("Mouse Y")*Time.deltaTime*turnSpeed*-1.0;
tilt=Input.GetAxis("Mouse X")*Time.deltaTime*turnSpeed*-1.0;
if (Input.GetButton("Fire1"))
{
thrust+=Time.deltaTime*25.0;
if (thrust>5.0)
{
//thrust=5.0;
}
}
else
{
thrust-=Time.deltaTime*25.0;
if (thrust<0.0)
{
thrust=0.0;
}
}
transform.Rotate(bank,0.0,tilt);
rigidbody.AddForce(thrust*transform.up);
}
It takes a bit of getting used to - its not a procedure orientated system, so some things aren't as straight-forward as they should be, and some things are simpler...
One thing that is annoying is that values in the rotation matrix are accumaltive and not absolute.