I am trying to design a map for souls-like game and stumbled upon such problem:
According to the lore i have a self-contained city that is supposed to be built with convenience in mind.
I am currently designing a graph that represents which locations i have within the city and how they are connected to each other.
For the sake of convenience (for people living in the city) it makes sense for this graph to be somewhat reminiscent of a star (a central square/street and other minor streets flowing from it leading to different locations). Thus it would never take too long to go from point A to point B.
The problem is that with such design player has no obvious reason to go through every single location (which i really want to enforce).
The final goal of the game is to reach certain location on the map (not in the city, the city is just a part of a bigger world) and from player's perspective it makes sense to take the shortest path available.
How could i force the player to go through all the locations without making it obvious that the city was designed just for this and not actually for people to live in it?
In some places i would put doors that only open from one side or require keys from a location that player would otherwise not go through, but using this everywhere quickly gets old and annoying. What else can i do?
I'm fine with altering the city's layout as far as it makes sense in the game's world. Like having a city built like a spiral because it's built on a mountain. But then i need to come up with an idea why would people build the city on a mountain in the first place?
Edit: originally i did not make it clear that i to make it unavoidable for the player to go through all locations, not just strongly encourage