So you aren’t projecting your 3d x,y,z movement to 2d x,y movement correctly. If you took a “top down” view of your movement vector the 2d x,y projection would have a magnitude of 1 regaurdles of the pitch, even if your ship is pointing straight up or down. The quickest answer is to factor in the pitch for your x,y movement

```
def spaceCraftSpeedUpTask( self, task ):
dt = globalClock.getDt()
self.vel = self.origVel + ( self.accel * dt )
dist = self.vel
correction = math.pi / 2
angleX = math.radians( self.mSpaceShipModel.getH( ) )
angleY = math.radians( self.mSpaceShipModel.getH( ) )
angleZ = math.radians( self.mSpaceShipModel.getP( ) )
dx = dist * math.cos( correction - angleX ) * math.cos( angleZ )
dy = dist * -math.sin( correction - angleY ) * math.cos( angleZ )
dz = dist * -math.sin( angleZ )
self.mSpaceShipModel.setPos( Vec3( self.mSpaceShipModel.getX( ) - dx, self.mSpaceShipModel.getY( ) - dy, self.mSpaceShipModel.getZ( ) - dz ) )
self.origVel = self.vel
return Task.cont
```

I’ve downloaded your game.

Wow.

Good graphics

Martin