> It's likely I won't be using tilemap anymore, so it won't be as easy as snap. I want to be able to create the walls at runtime, so the layout can be different, and the walls are automatically placed. It'll mean combining either normal sprites or tiled backgrounds with tilemap offset.
>
I would still use a Tilemap (or several). You can make them invisible and put sprites over the tiles. Use tilemaps as solid obstacles for other behaviors, for collision detection, pathfinding, LoS etc. You can create different tilemap layouts and load them from JSON string for each ship. Tilemap basically works as an array, so it will make many things easier.
Tilemap would work quite well, but while trying to do it, I found that corridors require 2 collision polygons, as the square pixel is open on 2 sides, while closed on the other 2.
Tilemap would allow me to store the positions quickly, but I would then likely have similar issues with doors. If I build it using sprites instead, then store the positions and have the system rebuild it from an array, I can edit the tilemap quickly without issues. Say I suddenly want a different floor colour, or my doors to change. Rather than changing the tilemap, I could just change the frame on the individual sprites. Also, FTL tracks oxygen, so giving each sprite a variable also allows me to make this easier.