Anyway if you aren't familiar with Masters of Orion 1, it uses a 2D map of space with stars spread randomly around. Although it shows stars in all practical terms the stars are actually planets that may or may not be habitable.

The game map can be several sizes (24 to 100+ stars). When performing your turn you see only a portion of the entire game map (basically zoomed in so you can see details) then when the game is processing your commands and figuring out what the Computer players are doing it displays the entire map with ship movement etc being displayed. You can also get the zoomed out view during your turn by hitting the "Map" button. Clicking on stars/ships displays its details in a sidebar.

Everything on the map is clickable and when you do click on a star, ship, monster, whatever, it switches back to the zoomed in view with the clicked item centered and highlighted (or close enough to centered if the object was on the edges of the map).

Navigating around the map is done by simply clicking near the edges and the view slides in that direction.

Ships in the game travel in a straight line between stars and distances are calculated as the crow flies, not by any kind of grid cell counts though there is obviously some form of grid use when it comes to star placements.

So I'm looking for suggestions on how to achieve this kind of 2D graphics functionality (not necessarily code, just point to examples/write ups/whatever you think would be useful). I'm flying blind as I've never even attempted something in the 2D map realm, its all a mystery at the moment.

As an example, how to place stars and ships and make them selectable?. Should I have some sort in internal grid (math only) for placements? Something like a grid where the click position is divided by the number of cells which gives an index to look up data (either X/Y or a single dimension calculated by an X index and adding Y * XMax (e.g. one row has 200 positions, clicking in the area of the first row gives X + 0, second row gives X + 200, third X + 400, you get the idea). Or am I barking up the wrong tree entirely?

Next is the map graphic - sticking a picture in a scrolling picture box is probably not going to cut it (though it might, this is just my assumption).

I found an old bit of source for a similar game and it used Gorgon library (which I believe is the same idea as XNA/Monoplay). I get the feeling I should probably look into some form of library for 2D games. Anyone have a favorite?

I'll stop babbling now. Looking forward to any suggestions people may have!