Hello Civ fans! Ken Pruiksma, Senior Graphics Engineer at Firaxis Games, here to share some behind-the-scenes updates on map generation.
When Civilization VII first shipped, the map generation technique we used focused on ensuring balanced play while following some new gameplay rules around things like Deep Ocean and Distant Lands. This technique, which has its roots in previous Civ games, created fair maps, but also made them predictable. This caused the exploration phase of the game to be potentially less rewarding (which is a problem when the first X in 4X is Explore!) We heard from you that maps felt too repetitive, and we agreed.
Something else we heard loud and clear from the community is that the straight-edged coastlines that could occur between the two major halves was hindering the play experience. Part of the fantasy of Civ is that you're playing an alternative history of Earth, and when the maps don't feel plausibly Earth-like, it detracts from the experience (outside some exceptions like perfectly balanced multiplayer where you're opting into a mirrored game).
So, we've made some big updates with 1.2.5. We wanted map generation that felt more natural and less repetitive, while still keeping balance in mind where it matters. Out of that work came two brand new map types to choose from: Continents and Islands (two large continents, with islands) and Pangea and Islands (one large continent, with islands). Both are built on an entirely new technique: Voronoi map generation.
VORONOI MAPS
I'm a graphics engineer, which means I spend most of my time making beautiful pixels, but I've always had a soft spot for procedural generation and the algorithms that drive it. When the chance came up to help the gameplay team with map generation, I couldn't resist.
I had an idea about using Voronoi diagrams to dynamically grow landmasses using some rules. After throwing a quick test together, the idea showed promise.
Without getting too technical, the Voronoi technique completely changes how we approach map generation. Previously, fractal noise had been used to create maps, and it works really well when it can be applied uniformly to the whole map. That said, it can be hard to steer towards specific gameplay needs. Voronoi diagrams, on the other hand, give us structure we can build rules on top of, so maps can stay organic while still meeting the gameplay requirements of Civ VII.
Let's walk through how this works.
Randomly spray a bunch of points onto the map. The more points we spray, the higher the resolution. We'll start low res. Draw lines around each point dividing them into "cells." You end up with something that looks a bit like cracked glass. Select some starting cells. These are the seeds of tectonic plates in the game map, similar to the tectonic plates that form our Earth. Each plate grows, one cell at a time, following some configurable rules, until the whole map is filled. Each plate gets a rotation and movement direction. This is your map's crust, and will be used to help influence the growth of continents later. Now spray many more dots for a higher resolution version! Draw those lines again to get another shattered-glass look sitting on top of your tectonic plates. Choose some new starting points for the primary landmasses, and grow them once again following a custom set of configurable rules. These rules can do things like influence landmasses to grow along plate boundaries (especially if they're colliding), avoid the poles, and prefer certain latitudes, just to name a few. This is also where we can apply gameplay-based restrictions, like ensuring Homelands and Distant Lands are separated by a Deep Ocean. Based on the map's settings, we then grow islands, erode the coastline, add mountains and volcanoes, and perform other finishing touches. Many of these steps involve the same set of generic rules used earlier to determine where features are placed. Once finished, we overlay the hex grid and then hand the map off to the gameplay layer to determine tile types, Yields, Resources, starting location, and more.
... continue reading