Naming a city is the moment a setting starts to feel real. A good name carries history, geography, and culture in two or three syllables. A bad one — Dragonfortressburg, Crystalia, Newcastle (again) — collapses the illusion. This guide breaks down how real place-names actually form, the patterns that fantasy authors and TTRPG game masters keep coming back to, and how to use a procedural generator to get unstuck without ending up with mush.
Why Most Made-Up City Names Sound Wrong
When a name "feels off," the problem is rarely the syllables themselves — it's that the name violates the implied rules of its language. Real place-names are not random. They are weathered down by centuries of pronunciation, conquest, and bureaucracy, and they almost always follow these patterns:
- They describe geography or position. Oxford is the ford for oxen. Cambridge is the bridge over the Cam. Reykjavík is "smoky bay." Dar es Salaam is "abode of peace." Buenos Aires is "good airs."
- They contain a generic suffix that means "settlement." English
-ton,-ham,-bury,-borough,-chester. German-burg,-dorf,-stadt. Slavic-grad,-gorod. Norse-by,-vik,-fjord. Latinate-villa,-polis. Players hear Thornholm and Eiríksvik as "places" because the ending does the heavy lifting. - They follow the phonotactics of a real language family. English speakers can pronounce Whitby or Eastleigh without hesitation. Tlazcatlán is fine in Nahuatl but unparseable in English unless you mark it as foreign on purpose. Pick a flavor and stick to it within a region.
- They show layers of history. Many British cities are Celtic root + Roman suffix + Anglo-Saxon ending. That's why London doesn't sound like Aberystwyth doesn't sound like Eastbourne — they're three different historical strata of the same island.
If you want to invent a name that sounds lived-in, you need to imitate at least two of these rules at once.
The Two-Slot Pattern That Does 80% of the Work
Most usable city names are a descriptor plus a settlement word:
[geography or trait] + [generic suffix] = place-name
| Descriptor | Suffix | Result |
|---|---|---|
| Thorn | -holm (island) | Thornholm |
| Black | -ford (river crossing) | Blackford |
| Eiríks | -vík (bay) | Eiríksvík |
| Stone | -gate | Stonegate |
| Korov | -grad (city) | Korovgrad |
| Adler | -burg (fortress) | Adlerburg |
This is exactly the pattern the City Name Generator uses for its real-world and Anglo-Saxon flavors. The generator's combinator picks a descriptor fragment and a compatible suffix, then runs phonotactic checks (no vowel-vowel hiatus, no double sibilants) and a deny-list check against ~280 real cities and IP-protected place names from Tolkien, Martin, Sanderson, Star Wars, and D&D before returning the result. You can re-roll any single name 20+ times before it will surface an empty state.
Choosing a Language Flavor
A "fantasy language flavor" is shorthand for the phonological feel of a real language family. Ship one flavor per region or culture in your setting — mixing them is the single fastest way to break immersion.
The eight flavors offered by the generator each evoke a recognizable real-world stratum:
- Generic Invented. Tolkien-adjacent neutral fantasy. Aenmar, Thornheim, Galdorwick. Pick this when you want it to sound "fantasy" without committing to a culture.
- Norse-inspired. Hard consonants, þ/ð substitutes, suffixes like
-vík, -fjord, -berg, -holm. Eiríksvík, Skarrholm, Hrafnberg. Best for raider cultures, cold climates, mountain peoples. - Slavic-inspired. Soft consonants, palatalized clusters, suffixes like
-grad, -gorod, -slav. Volograd, Korovin, Ratislav. Best for steppe empires, river kingdoms, eastern duchies. - Latinate. Open syllables,
-um, -ia, -polis, -iumendings. Aurelium, Castrania, Solaris. Best for old empires, ecclesiastical strongholds, ruins. - Anglo-Saxon.
-ton, -ham, -bury, -wick, -ford, -shire. Eastwick, Thornbury, Oxenford. Best for pastoral kingdoms, market towns, the part of the map your players actually live in. - Celtic-inspired. Aber-, Llan-, -dun, lots of w and y. Aberwynne, Llandruth, Cairndun. Best for druidic, highland, or coastal cultures.
- Arabic-inspired. al- prefix, sun/moon imagery, suffixes like
-stan, -abad. Use the generator's "v1 — flavor not yet expert-reviewed" banner as a real signal: get a sensitivity reader before publishing in this flavor. - East Asian–inspired. Short syllables, suffixes like
-jing, -do, -shan. Same caveat — these are inspired by, not authentic, and should never be presented as accurate transliterations.
The honest-labeling on the latter two flavors is intentional. Inventing names "in the style of" a living culture without consultation has a long ugly history in genre fiction. The "v1 — not yet expert-reviewed" disclosure is a feature, not a wart, and the Report button on every generated card mails the team if a name looks wrong.
The Sci-Fi Sub-Styles (And When Each Works)
For science fiction, the same combinator runs against four stylistic sub-modes that map to recognizable subgenre conventions:
- Hard sci-fi. Designation-style names. Outpost K-7, New Geneva, Lagrange Station Theta. Best for near-future, NASA-flavored work.
- Space opera. Latinate roots, evocative compounds. Alpha Centaurus Prime, Veridian Nexus, Helion Reach. Best for Star Wars / Star Trek register.
- Cyberpunk. Corporate-merged neologisms, mega-city sprawl. Neo-Osaka, Mitsugen Sector, Black Spire Arcology. Best for near-future urban dystopia.
- Post-human. Numeric, mathematical, post-organic. Constellation 9.4, The Aleph Array, Lagrange-Kessler. Best for far-future, post-singularity, A Fire Upon the Deep energy.
Don't mix them inside one polity. Your players will smell it.
Post-Apocalyptic Naming Has Different Rules
Post-apoc city names are almost always layered. There was a name. The world ended. Survivors gave it a new name that references either the ruin or what they hope to build. The generator's four sub-styles each capture a different layer:
- Wasteland. Old name + decay or scavenger imagery. Old Phoenix, Rust Hollow, The Glassworks, Sector Seven. Mad Max, Fallout, The Road.
- Green-overgrown. Old name + reclamation by nature. New Eden, Ivybridge, The Bloom, Greenfall. Station Eleven, Mortal Engines, Annihilation.
- Techno-ruin. Old name + technological remnant. The Server Farm, Node 12, Old Geneva. Horizon Zero Dawn, Snow Crash aftermath.
- Theocratic. Old name + new religious framing. Saint Detroit, The Last Light, Holy Refuge. Often the most narratively rich — every name implies a schism.
The most evocative post-apoc names answer two questions in one breath: what was here? and who claimed it after?
How the Procedural Combinator Works
Once you've picked a mode and a flavor, the generator does five things in order:
- Picks a slot template. Fantasy mostly uses prefix+root+suffix or root+suffix. Real-world favors prefix+suffix to mirror real morphology. Sci-fi mixes all three. Post-apoc favors prefix+root.
- Samples compatible fragments. Each of the ~1,500 hand-written fragments carries metadata: type, tone, era, climate, syllable count, and a phonotactic class describing how its edges combine. The combinator only chains fragments whose end-class can legally join the next fragment's start-class — no vowel+vowel hiatus, no consonant cluster + consonant cluster.
- Applies your filters. Era, climate, tone, syllable bucket, starts-with-letter — anything you set in the panel narrows the candidate pool.
- Runs the deny-list. Real cities (~280 major), religious terms, IP-protected place names (Tolkien, Martin, Sanderson, Star Wars, Star Trek, D&D), and an offensive-pattern regex set. Up to 20 retries before surfacing the empty state.
- Derives the metadata. Climate, era, and tone are voted by majority across fragment provenance. Size (hamlet/town/city/metropolis) is a deterministic FNV-1a hash mod the per-mode size distribution — the same name always produces the same size.
This is why two names with the same suffix can read very differently. Stoneholm (Anglo-Saxon, medieval, temperate, neutral, town) and Eiríksholm (Norse-inspired, viking-age, frozen, harsh, city) share the -holm ending but the rest of the metadata makes them different settlements.
Worldbuilding Pack Mode
For game masters and novelists, individual names are less useful than named regions. Worldbuilding Pack mode generates 2–20 names that share one flavor and one shared era + climate, then labels the pack with the implied polity:
Names for one kingdom — Norse-inspired, medieval, frozen, neutral Eiríksvík • Skarrholm • Hrafnberg • Thornfjord • Vetrgard • Stensfjord
The shared era and climate are taken from the first item in the pack, so the rest of the names will feel like they belong to the same place. Each card has a mini Re-roll if a single name doesn't fit, and Save Set / Copy All / Print / Permalink let you bring the pack into your campaign notes.
A Naming Workflow That Actually Works at the Table
If you're a GM staring at a blank hex on Friday night, here's the loop:
- Decide the polity first, not the name. What's the geography? What culture lives there? What's the tech level? You're picking a flavor and an era, not a name.
- Generate a pack of 6–10. Worldbuilding mode, the right flavor, the right era and climate. Print or screenshot the result.
- Assign names to the map by geography. A coastal name with
-víkgoes on the coast. A-berggoes on a mountain. A-fordgoes on a river crossing. Don't put a fjord settlement in a desert. - Re-roll the ones that feel close-but-wrong. The mini Re-roll button on each card is faster than typing variants by hand.
- Lock the canonical spelling and write it in the PC handout. Once a name is in front of players, you cannot change it without breaking continuity.
The whole loop takes about three minutes per region.
The Honest Limitations
A procedural name generator cannot do these things, and you shouldn't pretend it can:
- It cannot tell you the story behind a name. You still have to invent the founding event.
- It cannot guarantee linguistic authenticity for living cultures. The non-default flavors carry the v1 disclaimer for this reason. If you're publishing commercially in those flavors, hire a sensitivity reader.
- It cannot know what your other regions are called. You have to manage geographic coherence yourself.
- It cannot avoid every coincidental overlap. The deny-list catches major real cities and well-known IP-protected names, but two-syllable invented names will inevitably sometimes match obscure real places. Cross-check the final pick if it matters.
Related Generators on DevZone
A city name is one part of a setting. The full toolkit:
- Random Animal Generator — for fauna, sigils, and bestiary entries.
- Random Object Generator — for hoards, market goods, and improv prompts.
- Pictionary Word Generator — for in-session party games when the campaign goes off the rails.
- Name Picker — when you need to pick a player or NPC at random.
All of them run entirely in your browser. No accounts, no logging, no upload. The names you generate exist between your tab and your campaign notes.
TL;DR
Good city names are descriptor + settlement-word, in the phonology of a single language family, weathered by a real or implied history. Pick a flavor, pick an era, generate a pack, distribute by geography. The City Name Generator does the syllable-level work; the cultural and geographic work is still yours.