I decided on a spherical geometry using quaternions as the basis of all math instead of vectors. Here's some prototypes with early mathematics such as Voronoi Tesselation using quaternions. I also did movement and rotation with quaternions. The graphics were very basic in the beginning of the project.
With more skills, I added a planet with height and terrain. I also added navigation meshes to pathfind around the land and ocean parts of the planet. Instead of being in space, now it's on a single planet. This is a fully decked out ThreeJS experience with multiplayer via EasyRTC and Networked-Aframe. There are bugs in Networked-Aframe such as when an NPC is killed or despawns between connecting to the network and creating the networked NPC, it will try to delete something that doesn't exist. It's not a perfect multiplayer netcode library.
Clicking on water will move the ship. Using the keyboard will also move the ship. Clicking on land will spawn foot soldiers or knights. The knights will launch arrows at the native NPCs on the islands. Killing native NPCs or clicking buildings will spawn gold coins. The next step is to make ships fire cannon balls and add the ability to control multiple ships and multiple NPCs.