Estoy haciendo un juego (o planeo hacerlo, al menos) y para hacerlo, necesito una forma de generar automáticamente nombres para los "jefes" de la APN (explicación larga e irrelevante aquí). Algo como esto es un buen ejemplo de lo que quiero decir.
Tengo la idea de que puedo construir una base de datos de nombres por nacionalidad, tal vez primer / último par, y asignarlos al azar, con una lista de nombres ignorados para que no obtenga algo como Homer Simpson y ser demandado o algo así.
El problema con eso es que necesitaría construir una base de datos masiva de nombres para que eso funcione. Tardaría una eternidad o costaría dinero, a menos que alguien tenga una lista de nombres disponible de forma gratuita.
Tengo otra idea en la que hago pares aleatorios de vocales y consonantes, volteo algunas y las sumo, pero un programa rápido que genera nombres como estos:
- Seermeecpa
- Cima
- Ofmiahwumafi
- Gozidi
- Effawided
(Para cualquier persona interesada en el código, puede verlo aquí )
Estos son ... una especie de bocado. Bueno, excepto "Gozidi", ese podría funcionar. Aún así, la tasa de éxito claramente no es muy buena.
¿Hay algo que pueda hacer para que los nombres suenen mejor (ver más abajo), o debería comenzar a hacer esa lista? ¿Puedo imitar de alguna manera la forma en que los humanos deciden si un nombre es decente o no, con al menos algo de precisión? Preferiría algo como esto a una búsqueda en una gran lista.
Lo que quiero decir con "más agradable" es que, en lugar de combinaciones aleatorias de caracteres (que es, para ser justos), cosas que suenan como nombres reales. Pueden ser de cualquier cultura (o sonar como son), reales o imaginarios, cualquier cosa, siempre y cuando tu estereotípico estadounidense tonto y monolingüe como yo pueda decirlos sin demasiados problemas.
Si necesita una aclaración adicional, continúe y pregunte. No estoy realmente seguro de qué poner aquí.
Anexo: Hasta donde puedo decir, realmente no hay etiquetas que se ajusten tan bien a esta pregunta. Si alguien que ha estado aquí más tiempo puede recomendar algunos, sería increíble.
fuente
Respuestas:
La mayoría de los generadores de nombres funcionan a través de alguna variación de Markov Chain , que son construcciones bastante notables (re markov le?) Que tienen muchos usos en los juegos, así como otros dominios.
El enfoque básico invoca una lista de algún tipo. Estos no necesitan ser bastante grandes. El propósito de esta lista es simplemente informar al algoritmo qué sílabas se pueden emparejar juntas para una categoría de nombre determinada.
Esto le permite armar diferentes listas para, por ejemplo, nombres masculinos, femeninos, familiares o diferentes culturas / regiones / especies.
El tiempo que pasará ajustando un algoritmo que ensambla aleatoriamente sílabas inventadas de una manera agradable probablemente sea más de lo que pasaría simplemente generando una lista de nombres que cree que suenan bien y se ajustan a un tema común.
No son muchas listas de nombres disponibles. Descargue la última base de datos del censo de EE. UU. Para ver los nombres modernos fácilmente separados por edad, género y etnia, o tome listas de antiguos nombres nórdicos o similares. Todos estos son bastante fáciles de encontrar a través de Google; ese último enlace fue literalmente mi primer hit para "lista de nombres nórdicos".
fuente
La mayoría de los nombres en idiomas siguen una serie de patrones. Por ejemplo, los nombres rusos o griegos pueden tener cinco o diez prefijos diferentes, por lo tanto, si encuentra un nombre que termina con -ov , puede sospechar que es ruso porque se ajusta un poco al patrón.
Si desea nombres reales (o reales), creo que debería comenzar a construir su lista (que no debería ser tan larga) porque no vale la pena analizar nombres reales de algunos idiomas, encontrar su patrón y crear un algoritmo para producir dichos nombres El esfuerzo en mi opinión.
Si desea nombres aleatorios que podrían ser un nombre en algún idioma, puede crear una pequeña lista de reglas a seguir (como un subconjunto de lo anterior). Lo que estás haciendo ya es eso: hiciste una regla sobre vocales y consonantes. Podría agregar algunos más como los apellidos deben terminar en estas 10 sílabas o algunas consonantes pueden ser seguidas solo por vocales como 'q' seguidas solo por 'u' y algunas otras pueden ser seguidas por otras consonantes como 's' seguidas de 't 'o' k '. Nuevamente, esto es más para crear algunas palabras que se pueden pronunciar y sentir un poco más real que crear nombres reales.
Algo que puede ser relevante es la forma en que "Documentos, por favor" genera nombres. http://papersplease.wikia.com/wiki/List_of_names
fuente
Creo que la forma más fácil de hacer esto es usar un generador de nombres aleatorios existente o una lista existente de nombres aleatorios que cumplan con sus requisitos. Luego guárdelo en algún lugar como una lista. Cuando necesite un nombre aleatorio, simplemente elija de la lista existente al azar.
fuente