[Tickets] [Orxonox] #309: Spaceship steering and behaviour
Orxonox
trac at orxonox.net
Fri Sep 25 23:54:20 CEST 2009
#309: Spaceship steering and behaviour
----------------------+-----------------------------------------------------
Reporter: rgrieder | Owner: nobody
Type: task | Status: new
Priority: highest | Milestone: Version 0.2 Codename: Bellatrix
Component: Control | Version: 0.2.0
Severity: major | Resolution:
Keywords: |
----------------------+-----------------------------------------------------
Description changed by rgrieder:
Old description:
> When the physics features were merged with the new Engine feature, a
> conflict has arisen that still exists. The main problem is the fact you
> want to steer a spaceship quite directly but a physics engine doesn't
> like that very much. [[br]]
> Another thing that needs some thinking: The engine class works with local
> velocities. So when you accelerate straight forward and then yaw by
> ninety degrees, then ship will stop abruptly because the lateral speed is
> limited at a lower level than longitudinal speed. [[br]] [[br]]
>
> This could be sorted out by calculating the maximum thrust in function of
> the damping and maximum speed. But I guess that requires some looks into
> the Bullet code to see how damping is realised (most probably a linear
> velocity dependent factor in the differential equation which makes
> damping exponential). [[br]][[br]]
>
> The angular part is a little bit trickier. From my observations it is
> best to have a direct mapping of the mouse position to the orientation.
> Applying this directly to a ship can result in sudden movements (esp. if
> you look at another player...). I therefore suggest to make the camera
> direct and the spaceship adjust to the camera position. From what I know
> about the current implementation of the camera handling, this is not very
> easy to be done (other way round is not a problem). [[br]]
> As an example, this kind of steering is used in Unreal Tournament with
> vehicles.
New description:
When the physics features were merged with the new Engine feature, a
conflict has arisen that still exists. The main problem is the fact you
want to steer a spaceship quite directly but a physics engine doesn't like
that very much. [[br]]
Another thing that needs some thinking: The engine class works with local
velocities. So when you accelerate straight forward and then yaw by ninety
degrees, the ship will stop abruptly because the lateral speed is limited
at a lower level than longitudinal speed. [[br]] [[br]]
This could be sorted out by calculating the maximum thrust in function of
the damping and maximum speed. But I guess that requires some glace at the
Bullet code to see how damping is realised (most probably a linear
velocity dependent factor in the differential equation which makes damping
exponential). [[br]][[br]]
The angular part is a little bit trickier. From my observations it is best
to have a direct mapping of the mouse position to the orientation.
Applying this directly to a ship can result in sudden movements (esp. if
you look at another player...). I therefore suggest to make the camera
direct and the spaceship adjust to the camera position. From what I know
about the current implementation of the camera handling, this is not very
easy to be done (other way round is not a problem). [[br]]
As an example, this kind of steering is used in Unreal Tournament with
vehicles.
--
--
Ticket URL: <http://www.orxonox.net/ticket/309#comment:5>
Orxonox <http://www.orxonox.net>
Orxonox Open Source game
More information about the Tickets
mailing list