As a GM, I tend to think about encounters in quite a different way. First, if I have a location which I require the players to go to, for an adventure to happen—typically at the start of a campaign—I’ll start at scene one, “Okay, you’re there!” then ask the players why and how their characters have decided to go there.
This is no different from making sure that adventurers ARE adventurers, or wannabe adventurers, not shopkeepers or farmers or blacksmiths. Sure, you can have a “fish out of water” scenario, but, in general, you want the premise of each character to be compatible with adventuring.
In the case of encounters, I tend to think about the landscape, the ecosystem, and the logic of the world.
If there are ogres about, what do they eat? Where do they get their supplies? What other ogres or other creatures do they interact with? Once you start tracking the activities of the monsters and the rest of the world, then the whole thing starts to feel a lot more logical.
Smart players will start to make logical conclusions, from the evidence of their presence, that encounters may happen. Even if they never actually encounter an ogre, they’ll see the overgrown roadway, and wonder why the road is not in use. They may find the deer guts, and wonder who gutted it before crrying it away. I let the particular flow of the story emerge from the logic of the world, and what the characters do in it, rather than focusing on “narrative beats”.
What this means, of course, is that you have to design the context carefully, so that it’s both coherent and challenging. And you have to operate the active parts of the world, even when the players don’t interact with them.
I think names are surprisingly important — they establish the atmosphere of your world just like background music sets the tone of a film.
I generate random words using an online tool (recently I’ve been using donjon.bin.sh). For my world, the fantasy names are too “tropey”, so I use the Markov Chains generator (Markov Chains use source text to structure the random syllables it generates—if your source text has no Zs, nor will your random words).
In general (but not always) I figure that short, one syllable names are most suitable for nicknames, or for common, lower class names. Two syllable names tend to be typical, ordinary people, three syllable names are more well-to-do, four syllables names are more high-class (or pretentious) and five or more syllable names are very exotic—probably foreign dignitaries, wizards or sages. (They’ll probably have shorter names that friends actually know them by—if they have friends!)
Place names are just as important—in fact, even more important! Often place names contribute to someone’s name, or a historic person’s name can become the name of a place.
Similarly, the names of Gods and Goddesses are vital. Get them wrong, and it’ll skew the whole vibe of your setting.
If you like, you can get creative, and make name words for particular regions have a particular character. Grab a source text for your Markov Chains that has the forms “kn” and “gn” in a lot. Okay, that’s one particular area. Use the combos “dz” and “dj” for another area.
Maybe have one area where everyone who’s male has a name ending in o, and everyone who’s female has a name ending in a. And, of course, the residents of that area will add o or a to the characters’ names—because that’s the rule for names!
When the PCs meet someone then they should, eventually, be able to guess their approximate social status, the region their family comes from, their religion, and maybe even their current place of residence—just from their name!
And yes. People’s names can change over time! Part of them will stay the same, but part may be to do with their profession, their home or something they’re famous for.
I tend to find my “hit rate” on suitable names is only about 2%. Most random words aren’t easily pronouncable, or just don’t feel right. So sometimes I’ll spend a half hour just generating names and saving them off in a list. I don’t know what the names are for yet, I just have them on the side, then slot them into game sessions as appropriate. Yeah. I almost never use more than 25% of my name lists. So I generate more!
And pro-tip: some regions may have default names. In medieval England, loads of people were just called John—meaning, “You! Unimportant person!”. John Smith, John Miller, John Farmer, John Wheelwright… And even if that wasn’t their actual name, if that’s what his Lordship calls you, who are you to argue?