One of the last big items on my TODO list is map generation. Up until now there was no difference between one generated map and the next. And I do not mean the topography of the map (there is only so much variety I can achieve with flat land and a few features: lakes, rivers, mountains) or its looks, since this is a visual/rendering thing and something to take care of at a later date. But the really important aspect: gameplay.
Two different maps may have looked differently but did not have any influence on the actual gameplay. After juggling with some ideas I decided to make rainfall, temperature and fertility vary much more over a map than before. This results in smaller areas on the map where certain things can grow. Like only a small patch that allows for growing wheat. Heck, some maps may even lack any areas where certain things can be grown. This adds two important aspects to the game:
- Certain areas of the map become more important than others, especially when cost of transportation is factored in. Do you prefer a lower yield when growing certain things closer to its consumers, or higher yield with higher fees to pay for transportation?
- Maps may lack any area to grow certain goods at all, so imports become much more important, shifting the strategy to other production chains or concentrating more on importing goods on your own instead of relying on other seaports.
Visualization of Map-Properties
Making those properties of a map visible to the player is very important, since it is the foundation to making the correct decisions when plunking down certain buildings, like farms. Initially I only wanted to keep the already existing datamaps to display temperature, rainfall and fertility. However it soon became clear that this is rather inconvenient to find the right spot to plant wheat, for example. Having to click through 3 different datamaps and merging them in your head is no fun at all. For a while I tried to find a way to show all three properties and once, without looking convoluted; but without success.
In the end the solution was quite simple: instead of showing all kind of different datamaps just focus on what is really important. The game only needs to display a single map representing what the player really wants to know: where are the best spots to plant certain crops. Put this into a dedicated datamap and we have a winner.