In college, I regularly played D&D with my closest friends. As you’d expect of a nascent game designer, some of my favorite sessions were the ones that I ran as the Dungeon Master. I created the world, guided the story, and acted out all the NPC characters, and it was a blast.
In my early DM sessions, I would put the players in carefully-bound scenarios where I could anticipate and react to all of their potential choices. If they tried to deviate, I’d find some way to bring them back into my grand plan. I made sure that I had all the answers all the time. You can imagine what it was like: every prison had a single valid escape route, every character was a shallow archetype, every potential battle was perfectly balanced for the party’s current strength. This allowed for a clear linear story, but it inevitably felt limited and heavy-handed. It was the “insurmountable waist-high fence” strategy of tabletop game design.
One day, I was too busy to prepare a proper scenario before it was time to play. I decided that I’d just try to wing it and let the story go wherever the players led it. In retrospect, it’s unsurprising that this turned out to be the most fun session in the entire campaign. The players came up with wild ideas and actually got to try them out (it involved a grain silo explosion and a daring hostage rescue mission). They got themselves into trouble and had to find a creative way out of it, and I was able to improvise well enough to maintain a coherent story.
That left an impression on me. I hadn’t told the players ahead of time that the session would be different, but I think they could sense it right away; instead of subtly suggesting a set of options to choose from, I dumped a messy problem at their feet and left them to figure it out. My presence as the game designer wasn’t looming over them, and I wasn’t limiting their choices or weighing them down like I usually did. The game world was indifferent to their special status as players. I had created a problem without knowing the solution.
In short: my game was most fun when I didn’t have all the answers.
I think this is a large part of the fun behind games based on randomization, like Dwarf Fortress or the roguelike genre. You don’t feel constrained by the intent of the designer because, hey, not even the designer knows the “right” thing to do! The world didn’t exist before you started playing; it’s new and unexplored, and nobody knows the best path. Heck, it might even be impossible to win, and that uncertainty helps generate a more genuine feeling of adventure and danger and discovery.
Also, I think that this is one reason why I dislike the behaviourist view of game design. When designers talk about “rewarding” players, they’re talking about a “reward” as something that they create and dole out at will. But doling out rewards requires that the rewards are known and anticipated ahead of time, which blunts their impact. I think the more powerful rewards are the ones that are created within the player, born of genuine accomplishment and internal pride. The impact of a reward is limited if it's based on meeting someone else’s expectations. If the game has no expectations, if the game is just an engine for creating interesting problems, then winning becomes more meaningful.
To play devil’s advocate: there are obviously all sorts of problems with this design philosophy. For one, sometimes the meaning of victory comes directly from external benchmarks; see, for example, almost any sort of ranking system. For another, most randomly generated challenges are carefully balanced to create a satisfying and fair level of difficulty, and failure to do so could ruin the player's experience. For example, in another D&D game, a party made a single mistake (trying to swim to an island without checking the water for danger), and almost all of them got eaten by sharks as a result. It was a great example of an indifferent world full of danger, and I admire the principle of it, but few of the players found this to be a satisfying outcome. Somehow, a balance must be struck.
In Darknet, almost all of the challenge is randomly-generated, and I can state with confidence that the designer does not know all the answers. But, in an attempt to maintain some level of fairness, I generate everything around some intended level of difficulty. I make this difficulty visible to the player, and I simultaneously track the proven skill level of the player to give clear feedback. I worry that this removes some of the appeal of random generation; the game is essentially telling the player “you should be able to beat this” or “this should be too hard for you” etc.
However, I’ve also tried to include systems that incentivize the player to take on challenges beyond their proven skill level. There’s always a divide between what the player could do and what the player can do, and I hope to drive the player into the realm of uncertainty and self-improvement. My intent is to signal “here is what you’ve accomplished in the past; how much further can you go now?” In the end, the game is still asking the player a question that I don’t know the answer to.