If your game is tiled 2d and if the arena is several more than one screen in sizes which needs to be scrolled then i would use option #1, so the user ship can always be seen centered in the monitor and will have enough space around to see what is going on.

If the arena is just one screen size so it can be stand still then of course you have to move the ships.

If you are using a 3d api for doing 2d, that is using camera "eye" position, camera "At" position, and matrices for translate/rotate your "world" or your "ships" then i guess you are asking what you rotate/translate, the world or the ships?, visually they look exactly the same, and the math are basically the same too, but i think it is more intuitive if you have the world stand still, move all ships positions coordinates, and move the camera allways looking the user´s ship centered on top looking down so it is seen centered in the monitor.

Remember, in 3d apis the final scene seen depend of the world coordinates, the ships coordinates, the camera position and the camera lookat position, so even if you traslate/rotate the user ship but if you also translate/rotate the camera with same values always looking to the ship then it will look like the user ship dosent move and everithing else around move.


good look.


Tp.