I was proposing L4D as one game that “adapts” to your game style. However, I feel like L4D (or L4D2 in that case) isn’t really… mastering it. One part of the AI director was, if I’m not mistaken, to have adaptive gameplay that would discourage players from rushing through campaigns while still allowing less skilled ones to finish the game. However, this wasn’t really done well in some cases: You could go on four quite a big chunk of the map without any real encounter and be greeted by a small wave of zombies at the end. The next level, the game would throw at you every bad thing it could possibly think of. Overall, the experience was… not really smooth. There were times of complete nothing and times where the game just tried to destroy you, and it seemed somewhat independent of your performance. I would even say that it was sometimes so… far away, that it was hard to tell what one did to deserve this kind of treatment (in either way).
I think the biggest issue from the common approach would be how you handle to measure the… let’s call it stress level of a player. In FPS, this is clearly measurable: If there’s lots of (mouse-)movement, he’s possibly stressed. If there’s lots of jumping he’s probably not. If he’s jumping on top of a teammate, he certainly isn’t at all. How would you translate something like that to a city builder, where a (stressing) challenge can be something banal as to “am I going to have two doors on this building or just one?” - something that happens not intuitively (i.e. not with muscle memory) but rather with thinking and therefore could lead to seemingly “bored” player activity.
The last thing that should be done in such a case is to just try to entertain the player. “Hey, you haven’t done anything in the last 30 seconds! Have a goblin platoon to play around. But wait, there’s more! If you don’t get wiped out now, we’ll send in three crusades after you for free!” is just wrong. If I’m thinking of the city layout (while still wishing to gather resources, for example - so pause is out of question), the last thing I want to do is interrupt that just to deal with the (either ridiculously overpowered or pathetic) challenge the game gave me.
So, if we continue with L4D as example…
The latter is a dead giveaway in L4D up to the point where it’s game breaking. Disabling the music is really something that can impact your performance badly. The knowledge that there is a certain infected around, or a wave is about to start, is extremely valuable. It does of course increase the adrenaline and potentially shift the attention of a player - something that SH won’t have to do - and this might be a good thing - but I always considered this to be “cheap knowledge”. Those who didn’t want to use it (because they found the music to be annoying, for example) had a handicap: They didn’t know what to look for or rather, when to hide.
I think all these “omens” don’t really fit into SH’s mostly non-mystical world (so far). On one hand they are really easy to miss, on the other they are just in the plain wrong genre - the only thing a rustling bush would do would potentially scare the hell out of me (to be fair, there’s a certain appeal to investigate a rustling bush to see either a bunny or Cthulhu emerge out of it…). There’s also an educational aspect about this that wouldn’t fit well with SH’s core design: Avoid micromanaging. If you have to pay attention to your city, the resources, current tasks of the settlers and the current rustling state of nearby vegetation, the recent change in amphibian population and the number of cases where underwear has disappeared without a trace, it might become too much. Punishing a player by throwing a random event at it when they don’t pay attention to these signs seems unfair. Educational because they might learn wrong lessons: Stay away from bushes. This might not be a message you want to send; shrubberies are a very valuable trading good and usually harmless.
Terraria could be another example for such foreshadowing, although much clearer. When something is about to happen in Terraria, it’s simply put in the chat. In plain sight, yet a bit “mystified” (unless you have made yourself some sort of dictionary “what the game tells me” <-> “what the game is going to do” already). It’s presenting information clearly and usually not with too much time to prepare for whatever comes (although it’s usually enough time to run away).
I’m not sure how I would translate this to SH myself. The first thing that pops in my mind would be a trigger-based system (inspired by DF to a certain extent), where events (which are either once-per-game or recurring) could have a list of conditions (a logic table with ANDs and ORs). For example, the first goblin attack could happen after EITHER a certain, huge amount of time passed (which is slightly variable) OR there are a certain amount of settlers, a little militia and after that some random time passed. There are certainly things to watch out for with this system: Every challenge should be tied to multiple triggers (as described above, maybe even more). If a scenario has only a few events, they could be circumvented by (clever) players. In the example above, avoid goblin attacks altogether by just having two militia guys (assuming the event fires after 3 were recruited). This is enough for early game soldering stuff. As soon as you’re almost at the earliest deadline for the timer-based triggering, you simply start recruiting like mad - because you didn’t invest in a military before, you had plenty of resources to get your economy going.
This is smart thinking but again, renders a part of the game useless and gives players the wrong idea. It should not be a viable strategy to simply ignore military because you know there won’t be any threats until you recruit the third guy (or two hours pass). These scenarios could then even build on top of each other (i.e. “Final Boss Of Doom” requires the “Goblin Invasion: Round 11” scenario to be completed) and to simplify things, events could be triggered together into groups (for example, “starter village” could be “10 settlers, 3 militia, 1 building”) to simplify writing scenario conditions.
You already have a system in place for this, although admittedly it’s not exactly thought for this kind of situation. The current AI, with its dependencies on actions, and observers and what not would be pretty much fit into all this. Of course it would be less think-based and more event-based so there wouldn’t be a need for the whole thinking loop (which would waste a lot of time too), but the general concept would be available.
Last but not least, the pathetic challenge curve award certainly goes to Psychonauts in my book. At the end, it’s really just “Let’s make mincemeat of the player.”