I have a keen interest in terrain and maps, and also in procedural generation of stuff that interests me. There is evidence for this, like ORG which is a game focused on procedurally generated terrain maps, and GCM whose core is procedural generation of American Civil War armies. When I had just started programming, my interest in terrain took shape of hand-crafted battlefield terrain in various games, HDN in particular.
I really like writing code to generate things that feel realistic. In some multiplayer games, which are played over and over again, variety is extremely important. However, the flavor of realism is still important. This is where random generation shines.
GCM is, in part, my attempt to reduce repetition as much as possible in the multiplayer of Scourge of War – Gettysburg. As much as possible I want each battle to feel new. The huge hindrance here has been the battle maps. The game originally had five, and over a year after release it has eight. Two of these are barely worth playing. In 2011, these were the amount of times each map was played:
PPT 145 DevilsDen 91 EastCavalryField 87 McPherson 81 CulpsHill 77 Gettysburg 47 Kansas 21 Alpine 8
GCM did still randomly generate the scenarios, so the objectives and armies would be in different places each time, but you still knew at the start of a battle what ground to race for. Due to some logic that I haven’t fathomed, putting certain arbitrary restraints on a modding community gives some perceived benefit. The restraint in this case is that we are intentionally prevented from making new maps for the game or modifying existing ones. The apparent reason is so the company can sell maps because people wouldn’t buy them if they could get maps for free from modders. Perhaps some time I will write a thorough explanation of the problems I see with this reasoning.
Anyway, the result is that the multiplayer community has dealt with a lot of needless repetition, and the modding community has produced far less than its potential if unrestricted. I find it a very sad story. Only sad because the game is so good otherwise. If the game was nothing remarkable to begin with, I wouldn’t care about it.
With the ability to make maps, the battle variety shoots way up. Basically, every battle you have to figure out new terrain. There’s a kind of realism here that can’t exist in historically accurate maps of the real thing. Lee hadn’t fought the battle of Gettysburg 100 times when he decided not to “move around to the right.”
Now, a partial move toward this has been made. One important part of the maps can be modified, the part which says what ground is forest, what is wheat field, what is stone wall, and so one. What can’t be changed is the elevations, and the textures on the ground. And of course, since we can’t add new maps, I have to overwrite existing ones with the modifications.
The good news is, last Friday I started a random map generator. I could have done this far earlier if real map modding was allowed, but oh well. For now, we can have random terrain on an existing heightmap with existing roads and creeks. Still way better than before. The locations of forests and stone walls are critical.
This is multiplayer, of course, so it’s necessary for all players to have the same map. My auto updating system comes in handy here. I run a script that runs the map generator, and deploys it as an update all at once. Then all the players run their updater to get the map, and we’re ready to play.
I’ve also made a heightmap generator which will sit idle until such time as the map making restriction is lifted.