We have a great time designing missions for Siege of Centauri. There is a lot of design work to do to get the pacing right. To much and it's overwhelming, to little and it's boring.
One of the lessons I have learned is that even though its fun to have a variety of challenges, large maps, multiple entrances, unpredictable movement, etc, it gets overwhelming very quickly. Unpredictable movement in particular can make someone want to drop kick their monitor when they setup defenses and enemies totally ignore them and go a different way.
In general I like these different threats because when they are used very specifically it provides a new challenge to tackle. For example I love Rul. It is a small map with one entrance, but there is no indication where the enemies are going to go when they enter the map. It isn't overwhelming because it is the challenge factor, everything else (enemy strength, etc) is all relatively easy. Most opponents don't even come for your colony first.
But the "unpredictable movement" tool in our toolbox is used very sparingly.
Likewise I really loved multiple entrances for forcing players to make decisions about deployment and not going down the same path every time as you may notice in other TD games. But it can also be overwhelming when you are completely unaware of an army as it sneaks past your defenses and sacks your colony and you didn't even know it was there. Having to make a calculated strategic decision is good, losing because your weren't monitoring the minimap closely enough isn't fun (and isn't the game we are trying to make).
It seems to feel better in larger groups. So instead of having enemies coming in form the East-West-East-West-East-West it feels better to be East-East-East-West-West-West. That way you are able to focus on a region as part of a larger war that is going on. Knowing you won't have anyone coming through the east entrance for the next 405 waves gives you time to leave that be and worry about other areas of a larger map.
It is a lot of fun. And soon you will be able to have that fun too. Siege will have the ability create and share your own missions with the community, as well as downloading and playing the missions other people have created. If you want to create a mission where There is barely any places to place towers you can do that. If you want nothing but endless rivers of reapers coming at your colony that never ends until you kill 1,000,000 of them, you can do that.
I'll provide a full modding guide for Siege later but for now this is a little sneak peek.
First we have a map editor that allows you to select the size, environment, terrain, buildings, effects and cosmetic values you want. Decide where to put your colony, outposts, fission reactors, metal refinery's and energy cells. Draw out your paths and place plateaus where you want the player to be able to put towers and basins and mountains where you want to block movement. Put your metal refineries in a great defensive location, or put them right by an entrance so they come under immediate attack.
I enjoy making maps, but you can also use one of the existing maps in the game if you want to jump right to planning the attack.
Everything for designing the mission script is in XML. We use the scripting functionality from Ashes of the Singularity, with a lot of new features for Siege. At a very high level you have Waves:
Which tell you what is to spawn and when. It includes the rush bonus for each wave (in case you want to play with those) and the timer for the main wave (Wave3 Timer=55 means that wave 3 will spawn 55 seconds after wave 2). As well as delays for parts of that wave. Just because there are 6 Punishers spawned in Wave 5 doesn't mean they all have to spawn at once (though they could), in the above they spawn 2 seconds part from each other.
You also need to define the paths. These give you complete control over where the units will go. You select where a spawn using this path will begin and where it will travel on its way to your colony. There is an option in the map editor to show positions so you can see exactly what points you want your enemies to travel to.
The third major piece is the Spawns themselves. These are what are called by the waves and you can see that they all have a path assigned. So you can see that if a wave called for a spawn of "Air-Spawn" it will create a Unit_Air (which is a Punisher group) on the path Path-Air for player 1 (the bad guys).
That's all you need to make it work. But if you really want to have some fun there are a lot of trigger you can play with. You can give the player some metal, spawn a specific enemy if a player put a tower in a certain region, make something happen when a particular enemy dies, send in some help for the player, and on and on. All of the missions in Siege are open (you can look through them with any text editor) so you can see how we do it for your own scenarios. And I'm excited to see what all of you come up with.
I came from the modding community so I get a lot of pleasure out of putting these sorts of tools into the game, and I look forward to playing your creations soon.