Tutorial11 min read

How to Name Cities for Fantasy Worldbuilding

Real place-names are weathered down by centuries of geography, conquest, and bureaucracy — and that's why most made-up names sound wrong. The patterns that real cities follow, the eight fantasy language flavors that map to recognizable cultures, and a procedural workflow that gets you from blank hex to named region in three minutes.

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, -ium endings. 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:

  1. 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.
  2. 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.
  3. Applies your filters. Era, climate, tone, syllable bucket, starts-with-letter — anything you set in the panel narrows the candidate pool.
  4. 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.
  5. 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:

  1. 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.
  2. Generate a pack of 6–10. Worldbuilding mode, the right flavor, the right era and climate. Print or screenshot the result.
  3. Assign names to the map by geography. A coastal name with -vík goes on the coast. A -berg goes on a mountain. A -ford goes on a river crossing. Don't put a fjord settlement in a desert.
  4. Re-roll the ones that feel close-but-wrong. The mini Re-roll button on each card is faster than typing variants by hand.
  5. 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:

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.

Try the tools

casino
Name Picker
Spin a wheel to pick a random name. Save rosters, share wheels via URL, run raffles and classroom draws — no account needed.
arrow_forward
pets
Random Animal Generator
Pick a random animal from a curated database of 500+ species. Filter by class (mammals, birds, reptiles, amphibians, fish, invertebrates), habitat, region, diet, size, and conservation status. Four modes — Single, Batch up to 50, guess-the-animal Game with progressive hints, and Writing Prompt with six tones. Save up to 100 favorites, export to JSON/CSV/text, share via URL, safe-for-kids by default. 100% in your browser.
arrow_forward
inventory_2
Random Object Generator
Pick a random everyday object from a curated catalog of 400+ items. Five modes — Single, Batch up to 32, Pictionary with timer and reveal, Drawing Prompt that combines object + style + constraint with a 31-Day Drawing Challenge, and printable Scavenger Hunt with checkboxes. Filter by category, size, CEFR level, drawability, location, and scavenger or charades friendliness. Save favorites, share via URL, runs entirely in your browser.
arrow_forward
location_city
City Name Generator
Generate fantasy, real-world, sci-fi, and post-apocalyptic city names from a curated fragment catalog. Eight language flavors for fantasy (Norse, Slavic, Latinate, Anglo-Saxon, Celtic, Arabic-inspired, East Asian–inspired, generic invented), four sci-fi sub-styles, four post-apoc sub-styles, seven real-world traditions with a real-cities deny-list. Climate / era / tone / size metadata per name, optional pronunciation hints, worldbuilding pack mode for coherent regional sets of 2–20 names, save up to 100 favorites, share via URL, runs entirely in your browser.
arrow_forward