iToverDose/Software· 4 JUNI 2026 · 20:04

Prozedural Namen in Python ohne externe Bibliotheken generieren

Erfahren Sie, wie Sie mit Standard-Python-Bibliotheken überzeugende Fantasy-Namen für Tests oder Spiele generieren – ohne Abhängigkeiten. Praktische Code-Beispiele und Tipps zur Anpassung.

DEV Community2 min0 Kommentare

Das Erstellen von Testdaten gehört zu den unangenehmeren Aufgaben in der Softwareentwicklung. Wenn es jedoch um fiktive Szenarien wie Spiele oder Simulationen geht, wirken reale Namen oft fehl am Platz. Ein Ansatz zur Lösung dieses Problems ist die prozedurale Generierung von Fantasynamen – und das Ganze sogar ohne zusätzliche Bibliotheken.

Einfache Silbenkombination statt vorgefertigter Listen

Die klassische Methode, Namen aus einer statischen Liste zu ziehen, führt schnell zu Wiederholungen und begrenzter Vielfalt. Stattdessen bietet sich der Ansatz an, Namen aus kleinen Fragmenten zusammenzusetzen. Diese Fragmente lassen sich nach Rassen oder sprachlichen Mustern gruppieren und kombinieren. Ein Beispiel für Elfen-Namen könnte so aussehen:

import random

ELF_START = ["Ae", "Fae", "Lael", "Cael", "Syl"]
ELF_MID = ["", "la", "ri", "va", "thy"]
ELF_END = ["riel", "wyn", "thas", "lor", "ndil"]

def elf_name(rnd=random.random):
    pick = lambda pool: pool[int(rnd() * len(pool))]
    return (pick(ELF_START) + pick(ELF_MID) + pick(ELF_END)).capitalize()

print(elf_name())  # Ausgabe: 'Faewyn'

Mit fünf Fragmenten pro Kategorie entstehen bereits 125 mögliche Kombinationen. Durch die Beschränkung der Fragmente auf bestimmte phonetische Muster lassen sich gezielt Namen für verschiedene Rassen erzeugen. Für Orks eignen sich beispielsweise härtere Konsonantencluster und kürzere Endungen:

ORC_START = ["Gr", "Mog", "Rok", "Dur", "Kra"]
ORC_MID = ["", "u", "a", "o"]
ORC_END = ["gor", "mash", "thar", "zak", "ruk"]

Eine Kombination aus diesen Fragmenten ergibt Namen wie Grukgor oder Rokmash, die sofort als orkisch erkennbar sind.

Reproduzierbare Namen für Tests und Entwicklung

Ein entscheidender Vorteil dieser Methode liegt in der Reproduzierbarkeit. Indem der Zufallsgenerator als Parameter übergeben wird, lassen sich Namen gezielt steuern – besonders nützlich für Testdaten:

import random

def generate(seed=None):
    rnd = random.Random(seed)
    # ... Name-Generierung mit rnd() statt random.random()

Durch das Setzen eines festen Seeds bleibt die Ausgabe in jeder Testlauf konsistent. Zudem sollte die Großschreibung erst am Ende der Funktion erfolgen, um inkonsistente Formatierungen wie FaeWyn zu vermeiden. Eine leere Zeichenkette im mittleren Fragment ermöglicht zudem eine einfache Variation der Namenslänge, ohne zusätzliche Bedingungen prüfen zu müssen.

Fertige Lösung für verschiedene Rassen

Wer nicht selbst die Fragmente definieren möchte, kann auf eine fertige Implementierung zurückgreifen. Das Paket dnd-name-generator bietet Namen für sieben Rassen – darunter Menschen, Elfen, Zwerge und Orks – sowie die Unterscheidung nach Geschlecht. Das Beste: Es kommt ohne externe Abhängigkeiten aus.

Die Installation erfolgt mit pip:

pip install dnd-name-generator

Über die Kommandozeile lassen sich Namen direkt generieren:

dnd-name-generator -r dwarf -g masculine -n 5
# Ausgabe:
# Thorin
# Durgrim
# Balek
# Khazdin
# Gimnor

Auch die Integration in Python-Code ist einfach:

from dnd_name_generator import generate, generate_many

# Einzelner Name
generate("Tiefling", "Feminine")  # Ausgabe: 'Kallieth'

# Mehrere Namen
generate_many(3, race="Orc")  # Ausgabe: ['Grishnak', 'Moguk', 'Rokgor']

Das Paket ist unter der MIT-Lizenz verfügbar und ermöglicht – wie die selbst implementierte Variante – das Setzen eines Seeds für reproduzierbare Ergebnisse.

Fazit: Flexible Namen ohne Ballast

Prozedurale Namensgenerierung bietet eine elegante Lösung für das Problem wiederkehrender Testdaten. Ob für Spiele, Simulationen oder automatisierte Tests – die Methode lässt sich schnell anpassen und bleibt dabei vollständig unabhängig von externen Bibliotheken. Wer eine sofort einsatzbereite Lösung sucht, findet im dnd-name-generator ein praktisches Werkzeug. So vermeiden Sie in Zukunft unpassende Namen wie Test User 3 und setzen stattdessen auf fantasievolle, aber konsistente Alternativen.

KI-Zusammenfassung

Faker kütüphanesiyle yetinmeyen geliştiriciler için hazırlanan, sadece Python standart kütüphanesiyle çalışan bir yöntem. Fantazi dünyalarına özgü gerçekçi karakter adları nasıl oluşturulur? İşte basit ve bağımsız bir çözüm.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #NRFS7B

0 / 1200 ZEICHEN

Menschen-Check

6 + 6 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.