1w6 - Ein Würfel System - Einfach saubere, freie Rollenspiel-Regeln
Das Onomastikon von Kate Monk ist meine Lieblingsquelle für Namen aller Art. Es bietet eine riesige Liste von Namen aus unserer Welt, sortiert nach Region und Ursprung der Namen.
Damit ist es problemlos möglich, sich für eine beliebige Region in fast jeder Fantasy-Welt und für viele Science-Fiction-Welten passende Namen zu suchen.
Was aber fehlt ist die Möglichkeit, schnell zufällige Namen zu wählen. Daher habe ich ein kleines Skript geschrieben, um den Mangel zu beheben :)
Die Ausgabe enthält den Namen zusammen mit der Datei, aus der er stammt, so dass ich einfach ähnliche Namen finden kann, wenn der Hintergrund des entsprechenden NSCs wichtig werden sollte.
Das Skript ist nicht hundertprozentig poliert, so dass dann und wann Begriffe auftauchen, die mit drin hängen, aber keine Namen sind. Der Grund dafür ist, dass das Onomastikon selbst urheberrechtlich geschützt ist, so dass ich hier keine aufgeräumte Liste hochladen kann, in der die Namen stehen.
Stattdessen kannst du dir mit dem Skript hier selbst so eine Liste erstellen :) (sich das Onomastikon runterzuladen und privat zu bearbeiten ist urheberrechtlich erlaubt). Du kannst es starten via
sh zufaellige-namen-aus-dem-onomastikon.sh
Damit das funktioniert brauchst du ein GNU/Linux System wie Kubuntu (Ein *BSD oder MacOSX könnte auch gehen, ungetestet) und Python (in den meisten Distros standardmäßig installiert).
Das Skript lädt erst mit wget eine Kopie des Onomastikons runter, holt dann alle Namen raus, strukturiert die Zeilen um (Namen vorne, Pfad hinten) und filtert raus, was keine Namen sind.
Danach hast du die Datei "alle-namen-vorne.txt", aus der du mit
cat alle-namen-vorne.txt | shuf | head -n 12
zwölf zufällige Namen holen kannst. Hinter den Namen steht dabei jeweils, aus welcher Datei sie kommen, also wo du weitere ähnliche Namen findest.
Nebenbei hast du, nachdem du das Skript genutzt hast, auch noch eine lokale Kopie des Onomastikons auf deinem Rechner :)
Ich hoffe, die Namen helfen dir!
wget -m -np http://tekeli.li/onomastikon/
cd tekeli.li/onomastikon/
grep \<td\> -r */ |sed "s/<td>//" | sed "s/<\/td>//" > alle-namen.txt
def is_good_line(l):
return l.split(":")[1:] and (
not "Male" in l and
not "Female" in l and
not ".html" in l and
not "nbsp" in l and
not "href" in l and
not "Surname" in l and
not ".shtml" in l and
not "Sources.htm" in l and
not "/" in l.split(":")[1] and
not "+" in l.split(":")[1] and
not "-" in l.split(":")[1] and
not "son of " in l.split(":")[1] and
not l.split(":")[2:]
)
with open("alle-namen.txt") as namen:
names = [(j,i) for i,j in [line.split(":")
for line in namen if is_good_line(line)]]
with open("alle-namen-vorne.txt", "w") as f:
for i,j in names:
k = i[:-2] + " " + j + "\n"
f.write(k.lstrip())
cat alle-namen-vorne.txt | shuf | head -n 12
Das ergibt dann z.B. etwas wie
Zacheriu England-Firstnames/Variants/Biblical-Prophets.htm
Liu A Orient/China/Rulers.htm
Alvitus, Bishop of Leon d106 Saints/Calendar/September.htm
C8t Saints/Alphabet/Saints-A.htm
Faustyn Europe-Eastern/Poland/Latin.htm
Cerneu Saints/Alphabet/Saints-C.htm
Axe Europe-Scandinavia/Sweden/Biblical.htm
Hemalat India/Hindu-Names/Nature.htm
Ranji India/Sikh/Sikh.htm
Emily Luc England-Colonies/Pitcairn.htm
Paul the Apostle (Conversion Saints/Calendar/January.htm
monk of Ripo Saints/Alphabet/Saints-E.htm
Du siehst auch z.B. bei ‚C8t‘, wo das Skript noch nicht ganz sauber aufräumt, aber die Mehrzahl der Namen sind sinnvoll nutzbar, und sie geben sofort Ideen (zumindest mir :) ).
Jetzt viel Spaß beim Spielen!
Und wenn dir dieser Tipp beim Leiten hilft, dann schreib uns doch einen Kommentar. Wir freuen uns über Rückmeldung!
PS: Das Skript wird aktualisiert, ohne dass die Beschreibungen hier aktualisiert werden. Für den aktuellen Code schau also in das Skript.
Klingt super!
Das werde ich bei Zeiten mal ausprobieren. Vielen Dank für den Hinweis und das Skript.
Gern geschehen! ich hoffe,
Gern geschehen!
ich hoffe, es ist nützlich für dich!
Anpassungen
Hi Drak
Danke für das Skript. Der Download klappt auch mit Cygwin. Allerdings muss man erst noch Python 3 nachinstallieren (Windows, gibts für Cygwin leider noch nicht). Aber dann klappts auch mit der zufälligen-12-er-Namesliste. ;)
Gruss Marc
Freut mich! Viel Spaß mit
Freut mich!
Viel Spaß mit dem Namensgenerator :)
Danke für deine Rückmeldung!
Hi Arne, komme gerade von
Hi Arne,
komme gerade von deinem Artikel zum Technophob-Spielen und fand das Skript hier. Der Link oben im Artikel funktioniert nicht mehr, wirft leider einen 404. Ich hab' im Netz eine Kopie gefunden: http://tekeli.li/onomastikon
Viele Grüße
Thorsten
Danke! Das ist leider schon
Danke!
Das ist leider schon ein paar Mal passiert…
Ich habe den Link aktualisiert.
Geht nicht ...
Hi Arne
Also, Ubuntu, Python 3.3 ist drauf, download funktioniert teilweise (Es wird die ganze Seite runtergeladen, warum auch immer.
Die Datei "alle-namen" wird auch erstellt. Aber bei der Datei "alle-namen-vorne" scheitert es. Datei ist immer leer. Eine Idee woran das liegen könnte?
Das Skript hat Execute Rechte, was sonst noch nötig sein könnte wüsste ich nicht.
Probiere weiter. Aber wenn dir in der Zwischenzeit was einfällt, darfst du gerne mein Dunkel vertreiben. ;)
Danke und Gruss Marc
Danke für die Info! Ich
Danke für die Info!
Ich befürchte, dass die Dateisystemkodierung nicht passt.
Rufst du direkt das shellscript auf? (zufaellige-namen-aus-dem-onomastikon-01.sh)
Wenn ich die einzelnen Schritte von Hand durchgehe, funktioniert es. Ich schau mal, ob ich rausfinde, was kaputt ist.
PS: Dass die ganze Seite runtergeladen wird war ein Bug - gefixt durch
-np
in wget. Als ich das Skript geschrieben habe, waren auf der Seite vermutlich noch keine Links in andere Bereiche…Schnell! :)
Hi Arne
Danke für die rasche Bearbeitung. Das mit wget hätte ich auch selber finden können/müssen. Asche auf mein Haupt.
Seltsam ist halt, dass die Datei Alle-Namen.txt angelegt wird, also die bei der der ganze HTML Code entfernt und die Namen mit den Informationen zeilenweise angeordnet sind.
Die zweite Datei ist aber leer.
Gerade ist mir aufgefallen, dass die erste Datei mit -> encoding="ISO-8859-15" und die zweite mit -> encoding="utf-8" erstellt wird. Warum das? Kann es sein, dass meine Probleme daher rühren?
Ich leider kein Programmierer (mehr), aber wenn es das nicht ist, dann weiss ich auch nicht was es sein könnte.
Danke nochmal und Gruss Marc
Die erste Datei wird mit
Die erste Datei wird mit ISO-8859-15 geöffnet, um Umlaute richtig zu erkennen. Eigentlich sollte das laufen - ich muss also noch prüfen, warum es nicht tut…
(und der Spamfilter ist immernoch zu aggressiv…)
zufällige Namen aus dem Onomastikon läuft wieder
Gefunden. Der Filter war zu aggressiv - ich habe ihn korrigiert und gleich noch schöne Debug-Ausgaben eingebaut. Die neue Version ist oben. Viel Spaß beim Spielen!
Kommentar hinzufügen