Tworzę grę (a przynajmniej planuję) i aby to zrobić, potrzebuję sposobu na automatyczne generowanie nazw dla „bossów” NPC (długie wyjaśnienie i tutaj nie ma znaczenia). Coś jak to jest przykład dobry, co mam na myśli.
Mam pomysł, że mogę po prostu zbudować bazę nazwisk według narodowości, być może pierwszych / ostatnich par i przypisać je losowo, z listą nazw ignorowanych, aby nie dostać czegoś takiego jak Homer Simpson i zostać pozwanym czy coś takiego.
Problem polega na tym, że musiałbym zbudować ogromną bazę nazw, aby to zadziałało. Zajmie to wieczność lub będzie kosztować pieniądze, chyba że ktoś ma już listę nazwisk dostępną za darmo.
Mam inny pomysł, w którym tworzę losowe pary samogłosek i spółgłosek, przewracam kilka i dodam je razem, ale szybki program, który generuje takie nazwy:
- Seermeecpa
- Cime
- Ofmiahwumafi
- Gozidi
- Effawided
(Dla każdego zainteresowanego kodem możesz go zobaczyć tutaj )
To są ... kęs. Cóż, z wyjątkiem „Gozidi” - to można było pracować. Mimo to wskaźnik sukcesu wyraźnie nie jest zbyt dobry.
Czy jest coś, co mogę zrobić, aby nazwy brzmiały ładniej (patrz poniżej), czy powinienem zacząć tworzyć tę listę? Czy mogę w jakiś sposób naśladować sposób, w jaki ludzie decydują, czy imię jest przyzwoite, czy nie, przynajmniej z pewną dokładnością? Wolałbym coś takiego niż wyszukiwanie na dużej liście.
Rozumiem przez to, że „ładniejszy” to, że zamiast przypadkowych kombinacji znaków (co jest uczciwe), rzeczy, które brzmią jak rzeczywiste imiona. Mogą pochodzić z dowolnej kultury (lub brzmieć tak, jak są), prawdziwej lub wyobrażonej, w ogóle, o ile twój stereotypowy, głupi, jednojęzyczny Amerykanin, taki jak ja, może powiedzieć im bez większych problemów.
Jeśli potrzebujesz dodatkowych wyjaśnień, idź dalej i zapytaj. Nie jestem pewien, co tu umieścić.
Dodatek: O ile mi wiadomo, tak naprawdę nie ma tagów, które pasowałyby do tego pytania tak dobrze. Jeśli ktoś, kto był tu dłużej, może polecić kogoś, byłoby świetnie.
źródło
Odpowiedzi:
Większość generatorów nazw działa poprzez pewne odmiany łańcucha Markowa , które są dość niezwykłymi (re markov le?) Konstrukcjami, które mają wiele zastosowań w grach, a także w innych domenach.
Podstawowe podejście wywołuje jakąś listę. Te nie muszą być dość duże. Celem tej listy jest jedynie poinformowanie algorytmu, jakie sylaby mogą zostać sparowane razem dla danej kategorii nazwy.
Umożliwia to zestawianie różnych list, np. Imion męskich, żeńskich, rodzinnych lub różnych kultur / regionów / gatunków.
Czas, który poświęcisz na udoskonalenie algorytmu, który losowo tworzy wymyślne sylaby w przyjemny sposób, prawdopodobnie będzie dłuższy niż na wygenerowanie listy nazw, które Twoim zdaniem brzmią dobrze i pasują do wspólnego tematu.
Dostępnych jest wiele list nazwisk. Pobierz najnowszą amerykańską bazę danych spisów powszechnych z nazwami współczesnymi, które można łatwo oddzielić według wieku, płci i pochodzenia etnicznego, lub przejrzyj listy dawnych nordyckich nazwisk itp. Wszystkie są dość łatwe do znalezienia za pośrednictwem Google; ten ostatni link był dosłownie moim pierwszym hitem dla „listy norweskich nazwisk”.
źródło
Większość nazw w językach jest zgodna z szeregiem wzorców. Na przykład rosyjskie lub greckie nazwy mogą mieć pięć lub dziesięć różnych prefiksów, więc jeśli znajdziesz nazwę kończącą się na -ov , możesz podejrzewać, że jest rosyjska, ponieważ w pewnym sensie pasuje do wzorca.
Jeśli chcesz prawdziwych nazwisk (lub prawdziwych jak), myślę, że powinieneś zacząć budować swoją listę (która nie powinna być tak długa), ponieważ analiza prawdziwych nazw niektórych języków, znalezienie ich wzorca i stworzenie algorytmu do tworzenia takich nazw nie jest warte wysiłek moim zdaniem.
Jeśli chcesz losowych nazw, które mogą być nazwami w niektórych językach, możesz zbudować małą listę reguł, których należy przestrzegać (np. Podzbiór powyższych). To, co robisz, to już to, że wprowadziłeś zasadę dotyczącą samogłosek i spółgłosek. Możesz dodać kilka innych, takich jak nazwiska powinny kończyć się na tych 10 sylabach, a po niektórych spółgłosek mogą występować tylko samogłoski, takie jak „q”, a następnie tylko „u”, a niektóre inne mogą być poprzedzone innymi spółgłosek, takimi jak „s”, po których następuje „t ”lub„ k ”. Znowu chodzi o to, aby stworzyć kilka słów, które mogą być wymawiane i wydawać się nieco realne, niż tworzenie rzeczywistych nazw.
Coś, co może być istotne, to sposób, w jaki „Dokumenty, proszę” generuje nazwiska. http://papersplease.wikia.com/wiki/List_of_names
źródło
Myślę, że najprostszym sposobem na to jest użycie istniejącego generatora losowych nazw lub istniejącej listy losowych nazw, które spełniają twoje wymagania. Następnie zapisz gdzieś jako listę. Gdy potrzebujesz losowej nazwy, wybierz losowo z istniejącej listy.
źródło