The map wrapping is neat, but is it leaking information I shouldn't have?


#1

Example:

Bottom of map has a town but no ships:

Top of map has a ship and the wrapping gap is close enough to see the bottom:

Can/should wrapping be disabled in this case somehow? Like, could it refuse to scroll past a border/continuous line of unseen hexes?


#2

Do you mean that you know the extents of the map? Or more than that?

I think the width and height of the map will always be shown just because of how the data is structured in the universe.galaxy


#3

More than the extents (though maybe that’s important too), but I basically know how to get south from north, if that makes sense, without having explored the area.

I haven’t “discovered” a connecting path yet, but it’s close enough that it’s obvious.

If you perhaps added some “fuzzing” to the size of the map, so that it wasn’t known by the client, could it/would it make more sense to have to connect yourself from either end before you could scroll past the wrap?

Any of that make any sense?


#4

Yep, ok. I think something to keep in mind for the future. I dont think there is a huge give away here, and everybody can have the same information so its not an exploit as such.


#5

I think to make it work that probably the server would have to send the client “bounding” unseen tiles, and the exact map extents should vary a bit, and all coordinates sent to the client should be local coordinates (relative to some starting town).


#6

Or, maybe with an unknown map size and local coordinates, the client could “fit” (or pack) the area you can see into an area much smaller than reality and just draw some border in the unseen spaces.

So it would just draw a box around your visible world and scroll at its boundaries. It might also look nice because the world would seem bigger and bigger the more you explore.


#7

There is one information leak i do want to fix, If you see a players city, them move away so you can see it anymore, you still are given its hex type, which is the size of the city. So you will see it upgraded even though the tile is grey.


#8

I guess that would mean just tracking and sending more unique per-player data, yeah?


#9

Yeah, Im not sure whether I should keep hex type for every hex for every player, and only update them when they can been seen, or just do something like report any city hex as grass if you can’t see it. (You can only build on grass)

At the moment we store a number for each hex for each player. 0 means unexplored, 1 means has seen but can’t see now, 2 means can see.

We want to support up to 18 players so on a huge map we might need to be more efficient than that.


#10

Oh ok. Well probably you can fit the last as-seen tile state in the same space you fit the number, right? That would be no difference in storage or processing, right?

You’d just have to map all the possible tile states to integers and then use that, right?

Edit: I mistook what you mean I think. You mean “more efficient” than currently, not more than if you implemented this.


#11

Yes, I was thinking “more efficient than what I have now” but Its one of those things where I dont want to fix it untill its a problem.

So yeah. the first thing I should do is just store what the hex was last time you saw it.


#12

If you actually want to optimize it - unseen settlements could simply be displayed as the shipwreck, and no buildings attached - regardless of size.

Also, a thing I thought about now. If I see the tile where a settlement has Its port, do I see the port regardless of seeing the settlement?