🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Designing world maps

Started by
3 comments, last by Scouting Ninja 7 years ago

Take a moment and think of games like Legend of Zelda or a good metroidvania.  Games where the player is given a single connected world to explore.
I love those kinds of games, and I love to explore large maps like that, and unlock new areas to explore more.

But as I've been thinking about trying to design such a map myself, it quickly dawns on me that such designs are deceptively complicated, and I bet they could be a massive downfall to developers who jump in with such a goal but without some proper preparation.

The big issue (as far as I can see) is when the map needs to be changed.  This is basically guaranteed in development at some point or another to some degree or another, especially if the dev team is trying something they haven't done before.  Lots of things can bring about changes in a game's design, and changes in a game's design bring about changes in the level design, which in this case is the world map.

In games with world maps like Elder Scrolls, where there is vast amounts of terrain and the player has virtually unlimited freedom, this is less of an issue.  Maps like that have a lot of "empty space" with little distinct content, because part of the experience is travelling through such "untamed wilderness" without borders, barriers, and ultimately little designed content.  In such a design, if key spots with distinct content need to changed, there is plenty of breathing room for such changes to be made.
Games that have a linear design, even if they are still connected as one world, (such as the first three Metal Gear Solid games,) also have breathing room where one area could be expanded or re-directed if needed, and have little consequence on the other areas of the game.

But in a game with a world design like Legend of Zelda, this is not the case.  If a portion of the map is designated to be, say, a swamp, and then after developing the swamp a bit it is decided that the swamp needs to be bigger, well, making the swamp bigger is going to take away from the land nearby, which may cause that adjacent area to be redesigned, and this ultimately can cascade across the whole world map.
Or in a Metroidvania, there may seem to be room to expand or contact an area as there is likely "unused space" on the map, but resizing an area still has the same cascade effect because of pieces that don't fit together anymore, and there still needs to be areas that contract or expand to properly connect to each other.
These types of games rely on there constantly being content in each area.  Long empty corridors and bland fields kill the appeal of such games.  Each room, each screen, needs to have some sort of content that to some extent makes the player feel rewarded for reaching or passing through that area.

It's an issue that requires careful planning.
But let's be honest, "careful planning" is something of a buzzword.  It really doesn't mean anything without some real meat behind it.  There are a lot of things that need to be planned.  Some specific guidelines, details, and points to remember can go a long way to make sure that the "careful planning" is going to succeed.

I'm wondering if anyone here has any experience or thoughts on how someone ought to go about designing maps for a whole explorable world in their game.  Or has anyone put together an article on the subject?  (I'd be interested in writing such an article myself once I have some more personal experience under my belt.)

Read my webcomic: http://maytiacomic.com/
Follow my progress at: https://eightballgaming.com/

Advertisement

I suspect you're overthinking it a little bit. "Careful planning" in this case means little more than making a mental or prototype version of what you want to do before you commit to implementing it, and being aware of potential problems. You can draw the map out on paper, and if you need to rework it, draw it again. Or you make a very rough prototype in Photoshop or some other drawing/painting tool where you can quickly resize and move blocks around. You can look at areas you're unsure about and leave extra space to expand if necessary, or move things to give you that option in the future. You can take into account technical constraints such as needing to divide the world up into screens or be limited to a certain size, and show that on the prototype. And when you're happy with it, you can create the full version, safe in the knowledge that any future changes are likely to be small ones.

...Or you can just auto-generate the map. That's what I did for Hexoshi. If you need inspiration, here's the source code for that (GNU GPL):

http://git.savannah.nongnu.org/cgit/hexoshi.git/tree/hexoshi.py

Do a Ctrl+F search for "def generate_map". It's not hard to do, you just need to be able to recursively parse your rooms for the presence of "doors" or something like that connecting them to other rooms, as well as any information you want to show on the map. When you distribute the game, you can include pre-generated maps so that the initial startup time is not needlessly slow. When there's a map update, regenerate the maps. Easy as pie.

For this kind of level design you use a multi pass approach.

Unreal's documents describe it better than I can: https://docs.unrealengine.com/latest/INT/Resources/ContentExamples/LevelDesign/1/

 

A tip for expansion is to work from the center of the map outwards:

BHY32pP.png

This way you can expand without effecting zones around the one you are working with. You can see this used in almost any open world game.

This topic is closed to new replies.

Advertisement