Components of convincing urban names
Effective fantasy city names incorporate geography + function + culture. 'Ironforge' communicates three things: mountainous location (forge implies caverns), metallurgical production, industrious dwarven culture. 'Silverpine' suggests pine forest near silver river or silver mines. Each name component adds information.
Real historical cities demonstrate this: 'Oxford' = ford where oxen crossed; 'Newcastle' = new castle; 'Portsmouth' = port at river mouth. In fantasy, apply the same logic but with creative freedom: 'Dragonrest' implies dragons nest there or used to. The name is the first worldbuilding layer.
Suffixes matter: '-ford' = ford, '-ton'/'-burg' = town/fortified city, '-haven' = port/refuge, '-dale'/'-vale' = valley, '-mere' = lake, '-holm' = island, '-gate' = gate/pass. Tolkien used '-dor' (land), '-and' (region), '-ond' (stone). Establish your own suffixes for races: elven cities end in '-iel' or '-ath', dwarven in '-grim' or '-heim', human in variety of styles.
Cultural differentiation in urban names
Each race/culture needs its own linguistic pattern. Elven cities sound fluid: many vowels, soft consonants (l, r, th, s). 'Lothlórien', 'Rivendell', 'Silvermoon'. Avoid hard consonants. Dwarven cities are guttural: double consonants, strong k/g/r. 'Kazad-dûm', 'Ironforge', 'Karak Eight Peaks'. Sounds like rock and hammer.
Human cities have greater variety because humans in fantasy represent multiple terrestrial cultures. A kingdom based on medieval England uses Anglo-Saxon/Norman names: 'Camelot', 'Stormwind', 'Lordaeron'. One inspired by Mediterranean prefers Latin/Greek: 'Aurelia', 'Valandria', 'Arcadia'. Nordic goes with 'Jorunnsgard', 'Skaldenheim'. Linguistic consistency per region makes the world believable.
For original race cities, invent rules: if the Drakaar are reptilian, use sibilants (ss, sz, zz) and short vowels—'Szathak', 'Vezzir'. If insectoid, clicks and buzzes—'K'tchak', 'Vzzrm'. This seems unnecessary work until a player asks 'what language do they speak' and you have consistent answer. Detail generates immersion.
Names that suggest history and architecture
The best urban names hint at past events. 'Fallen Spire' suggests a collapsed tower—who built it? Why did it fall? 'Lastlight' implies frontier outpost, last city before wilderness. 'Oldtown' vs 'Newtown' establish settlement timeline. 'King's Landing' (Game of Thrones) refers to first Targaryen king's landing—the name is compact lore.
Architectural names: 'Highwall' has impressive walls, 'Deepdelve' is underground city, 'Bridgetown' is built on bridges, 'Waterdeep' (D&D) descends levels toward ocean. 'Spire' suggests towers, 'Keep' implies fortress, 'Haven' is refuge. Players form correct expectations before arriving—that's efficient design.
For ruined cities, modify names: 'Brightwater' → 'Blightwater' (contaminated), 'Sunspire' → 'Broken Spire', 'Goldenhaven' → 'Ghosthaven'. Nominal change reflects physical change. Some names can be ironic: 'Fairhaven' is now a dump, but originally was beautiful. That contrast is narratively powerful.
Mistakes that destroy urban credibility
Mistake #1: mixing styles without justification. If a city is called 'Thorngarde' (Germanic) and neighboring city 'Luminathiel' (elvish) without explanation of why such different cultures coexist nearby, it breaks cohesion. This works if there's lore of conquest, trade, or alliance. Otherwise, choose consistent regional style.
Problem #2: overly on-the-nose names. 'Villageville' is terrible. 'Evilton' as evil kingdom capital is comically bad. Even 'Mordor' has more subtlety (in Sindarin means 'Black Land', not 'Evil Place'). Give your antagonist cities names that their inhabitants would use with pride: 'Bastion of Eternal Order' sounds good until you discover 'order' means totalitarian oppression.
Trap #3: unreadable names. 'Xhk'zyth'qar' frustrates players who have to write it in notes. Tolkien invented complete languages but 'Minas Tirith' has seven easy letters. If your city needs multiple apostrophes, reconsider. Pronounceability matters—players will say the name hundreds of times in campaign.
Error #4: ignoring geography. 'Seahaven' in middle of desert without magical justification is carelessness. 'Ironforge' with no nearby mountains or mines confuses. Names generate geographic expectations—fulfill them or explain why not (ex: 'Seahaven' was port but sea receded centuries ago, now ironic name in desert city—that's interesting worldbuilding).