Я делаю игру (или, по крайней мере, планирую), и для этого мне нужен способ автоматически генерировать имена для "боссов" NPC (длинное объяснение и несущественное здесь). Что - то вроде этого является хорошим примером того , что я имею в виду.
У меня есть идея, что я могу просто создать базу данных имен по национальности, может быть, первые / последние пары, и назначить их случайным образом со списком игнорируемых имен, чтобы я не получил что-то вроде Гомера Симпсона и не получил иск или что-то еще.
Проблема в том, что мне нужно создать массивную базу данных имен, чтобы это работало. Это займет либо навсегда, либо будет стоить денег, если у кого-то уже нет списка имен, доступных бесплатно.
У меня есть другая идея, где я делаю случайные пары гласных и согласных, переворачиваю несколько и складываю их вместе, но это быстрая программа, которая генерирует имена, подобные этим:
- Seermeecpa
- Cime
- Ofmiahwumafi
- Gozidi
- Effawided
(Для всех, кто интересуется кодом, вы можете увидеть его здесь )
Это ... отчасти глоток. Ну, кроме "Гозиди" - это можно было бы работать. Тем не менее, показатель успеха явно не очень хорош.
Могу ли я что-нибудь сделать, чтобы названия звучали лучше (см. Ниже), или я должен начать составлять этот список? Могу ли я каким-то образом подражать тому, как люди решают, достойное имя или нет, хотя бы с некоторой точностью? Я бы предпочел что-то подобное поиску в большом списке.
Под «более приятным» я подразумеваю то, что вместо случайных комбинаций символов (которые, честно говоря) это вещи, которые звучат как настоящие имена. Они могут быть из любой культуры (или звучать так, как они есть), настоящими или воображаемыми, кем угодно, до тех пор, пока ваш стереотипный тупой, одноязычный американец, такой как я, может сказать им без особых проблем.
Если вам нужны дополнительные разъяснения, продолжайте и спросите. Я не совсем уверен, что здесь поставить.
Приложение: Насколько я могу судить, на самом деле нет тегов, которые бы так хорошо подходили к этому вопросу. Если кто-то, кто был здесь дольше, может порекомендовать это, это было бы здорово.
источник
Ответы:
Большинство генераторов имен работают через некоторые вариации цепочки Маркова , которые являются довольно замечательными (re markov le?) Конструкциями, которые много используются в играх, а также в других областях.
Базовый подход вызывает какой-то список. Они не должны быть достаточно большими. Цель этого списка - просто сообщить алгоритму, какие слоги, вероятно, будут объединены для данной категории имени.
Это позволяет составлять разные списки, например, мужские имена, женские имена, фамилии или названия для разных культур / регионов / видов.
Время, которое вы потратите на настройку алгоритма, который случайным образом собирает составленные слоги в приятную манеру, вероятно, будет больше, чем вы потратили бы просто на создание списка имен, которые, по вашему мнению, звучат хорошо и соответствуют общей теме.
Там являются много списков имен , доступных. Загрузите новейшую базу данных переписи населения США для современных имен, легко разделяемых по возрасту, полу и этническому происхождению, или возьмите списки старых норвежских имен или тому подобное. Все это довольно легко найти через Google; эта последняя ссылка была буквально моим первым хитом для "списка норвежских имен".
источник
Большинство имен в языках следуют последовательности шаблонов. Например, русские или греческие имена могут иметь пять или десять разных префиксов, поэтому, если вы найдете имя, оканчивающееся на -ov, вы можете заподозрить его в русском, потому что оно как бы соответствует шаблону.
Если вам нужны настоящие имена (или настоящие), я думаю, вам следует начать создавать свой список (который не должен быть таким длинным), потому что анализировать реальные имена некоторых языков, находить их шаблоны и создавать алгоритм для создания таких имен не стоит усилия на мой взгляд.
Если вам нужны случайные имена, которые могут быть именами на каком-либо языке, вы можете составить небольшой список правил, которым нужно следовать (например, подмножество вышеупомянутых). Уже то, что вы делаете, это то, что вы сделали правило о гласных и согласных. Вы можете добавить еще несколько таких, как фамилии должны заканчиваться этими 10 слогами, или за некоторыми согласными могут следовать только гласные, такие как «q», за которыми следует только «u», а за некоторыми другими могут следовать другие согласные, такие как «s» и «t». 'или' k '. Опять же, это больше для создания некоторых слов, которые могут быть произнесены и чувствовать себя немного реальными, чем создание реальных имен.
Кое-что, что может быть уместно, - способ, которым "Бумаги, Пожалуйста" генерируют имена. http://papersplease.wikia.com/wiki/List_of_names
источник
Я думаю, что самый простой способ сделать это - использовать существующий генератор случайных имен или существующий список случайных имен, которые соответствуют вашим требованиям. Тогда сохраните это где-нибудь как список. Когда вам нужно случайное имя, просто выберите из существующего списка наугад.
источник