Post reply

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.

Name:
Email:
Subject:
Message icon:

shortcuts: hit alt+s to submit/post or alt+p to preview

Please read the rules before you post!


Topic Summary

Posted by: Steve Walmsley
« on: December 01, 2023, 07:45:42 AM »

I suppose you could furnish a name/appearance popup upon contact (or communication establishment), its too late to allow full customization but some things could be changed freely after the race has already been generated, I would think.  (could pre-populate the popup with what the name/appearance were upon generation)

I've added an SM option to the Intelligence window to change the actual NPR name. You can use this after first contact. It will show the originally generated name when you use it, so you can choose to change it.
http://aurora2.pentarch.org/index.php?topic=13346.msg166451#msg166451
Posted by: superstrijder15
« on: December 01, 2023, 07:06:42 AM »

This is exactly what I am looking for right now, I want to make a setting with 'degenerating' and 'incompetent' NPRs, which can basically be NPRs I encounter in the wild and then having their name adjusted when I meet them, and my player race and a few 'expanding' NPRs, and I'd want them to be the races that exist in the canon that I am taking this scenario from. These options would be great for that!
Posted by: QuakeIV
« on: November 30, 2023, 10:47:06 PM »

I would just like to be able to make a pass to check that NPRs aren't being created with silly names as they're frequently generated with real-world place names.

If you can outline the 'non-silly name' logic, I would be happy to implement it :)

I think what he is saying is he would just like to be able to manually check.  Algorithm would be HumanBrainV1.0

Using this logic, every time a new race is generated, you would need a pop-up to name it, even though you don't necessarily know the race was just generated. I think that would spoil fog-of-war and break immersion, especially when enter a new system and get the 'new name' popup.

You can rename new races already as soon as they are detected. I thought the idea was to generate 'non-silly-names' behind the scenes.

I suppose you could furnish a name/appearance popup upon contact (or communication establishment), its too late to allow full customization but some things could be changed freely after the race has already been generated, I would think.  (could pre-populate the popup with what the name/appearance were upon generation)
Posted by: Conscript Gary
« on: November 30, 2023, 09:09:22 PM »

I would just like to be able to make a pass to check that NPRs aren't being created with silly names as they're frequently generated with real-world place names.

If you can outline the 'non-silly name' logic, I would be happy to implement it :)

I think what he is saying is he would just like to be able to manually check.  Algorithm would be HumanBrainV1.0

Using this logic, every time a new race is generated, you would need a pop-up to name it, even though you don't necessarily know the race was just generated. I think that would spoil fog-of-war and break immersion, especially when enter a new system and get the 'new name' popup.

You can rename new races already as soon as they are detected. I thought the idea was to generate 'non-silly-names' behind the scenes.
You're right that it would spoil the fog-of-war, but I would personally compare it to the 'Generate New Races as NPRs' checkbox. When that option is disabled, the fog of war doesn't exist at all- the player has complete knowledge and control of aliens when they generate. Getting a pop-up to name and theme them but then leaving them to run as NPRs afterwards is like a mid-point between the current extremes.
Posted by: Froggiest1982
« on: November 30, 2023, 05:35:59 PM »

I've been working on a new option for game start, that allows you to customise NPRs, while still retaining a reasonable degree of randomness. Essentially, if you click a 'Customise NPR' checkbox on game start, you will get one popup window for each NPR as part of the game creation process. So far, this allows you to alter the following options, or leave the random option generated before the window is displayed.
  • Race Name, Race Title and Home World name
  • Images for Race, Flag, Ship and Station
  • Commander Naming Theme and Rank Theme
  • Name Themes for Systems, Classes, Ground Forces and Missiles
  • Species characteristics such as Xenophobia, Determination, etc.
  • Production, Research and Growth modifiers
  • Starting Tech Point and Build Point modifiers
  • Ship Size modifier
  • If the Race uses Shields: Yes, No or Random
  • If the Race uses Missiles: Yes, No or Random
  • Primary Beam Weapon: Random, Laser, Railgun, Particle or Carronade
  • Point Defence Beam Weapon: Random, Laser, Railgun or Gauss
  • Starting System and a list of acceptable Dominant Terrain

(snipping Star Trek Locations text as this is now in a new thread)

Thanks, I can finally bin the Alien Generator tab in my spreadsheet.
Posted by: Garfunkel
« on: November 30, 2023, 05:31:44 PM »

I vaguely recall a place in England that is just HillHillHillHill but in 4 different languages. Stuff like that happens quite a bit over the centuries.
Posted by: AlStar
« on: November 30, 2023, 11:45:01 AM »

I was actually reading an interesting thread about this on Reddit.

A lot of place names that sound 'cool' to our ears are just boring-ass names in the original language that they're from.

Unfortunately I can't find the thread, but I remember that a lot of cities end up with names that translate, literally, to just "Capital" or "Town on the River/Hill/Lake"

For instance, Tokyo just means "Eastern Capital"
Posted by: Garfunkel
« on: November 30, 2023, 07:44:06 AM »

Yeah, I agree. My pet peeve with both fantasy and sci-fi authors is when they cobble together nonsense gobbledygook to pretend it as an alien language. Either go full Tolkien and make up an entire language or just use normal words and say it's a translation.
Posted by: Steve Walmsley
« on: November 30, 2023, 05:29:14 AM »

I would just like to be able to make a pass to check that NPRs aren't being created with silly names as they're frequently generated with real-world place names.

If you can outline the 'non-silly name' logic, I would be happy to implement it :)


Well, the real solution would be to create a random name generator. Of course it takes a lot of work to generate aesthetically pleasing results. Here's a quick and dirty java random name generator I threw together to generate some alien-sounding names:

Code: [Select]
import java.util.Random;

public class RandomNameGenerator
{
String plosives = "ptkbdg";
String onsets = "ptkbsfhjmnvz";
String codas = "tkbdgsmnrl";
String onset_medials = "rlwy";
String coda_medials = "rln";
String vowels = "aeiou";

int onset_chance = 80;
int onset_medial_chance = 20;
int coda_chance = 80;
int coda_medial_chance = 10;
int dipthong_chance = 10;

Random rand;

public RandomNameGenerator()
{
rand = new Random();
rand.setSeed(System.currentTimeMillis());
}

public char GetRandomLetter(String str)
{
int len = str.length();
int num = rand.nextInt(len);
return str.charAt(num);
}

public String GenerateSyllable()
{
String ret = new String();

if (rand.nextInt(100) <= onset_medial_chance)
{
ret += GetRandomLetter(plosives);
ret += GetRandomLetter(onset_medials);
}
else if (rand.nextInt(100) <= onset_chance) ret += GetRandomLetter(onsets);
ret += GetRandomLetter(vowels);
if (rand.nextInt(100) <= dipthong_chance) ret += GetRandomLetter(vowels);
if (rand.nextInt(100) <= coda_medial_chance)
{
ret += GetRandomLetter(coda_medials);
ret += GetRandomLetter(codas);
}
else if (rand.nextInt(100) <= coda_chance) ret += GetRandomLetter(codas);
return ret;
}

public String GenerateWord()
{
String ret = new String();
for (int x = rand.nextInt(2) + 2; x > 0; x-- )
{
ret += GenerateSyllable();
}
return ret;
}
}

public class Main
{
public static void main(String[] args)
{
RandomNameGenerator rng = new RandomNameGenerator();
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());

String str = new String();
for (int x = 100; x > 0; x-- )
{
System.out.println(rng.GenerateWord());
}
}
}

Sample output:
Code: [Select]
proknim
faporfur
varpyis
aram
gyoknabmalm
onno
ursklusbom
kotkwos
kebturnor
haktas
pyidpud
sonkras
pletkuteag
kweethabfers
tudwahei
kubaimkunk
folotoenb
mekputblun
toleu
bwikkogklo
eban
kamugseg
kebraok
ohailhog
pamfag
vukwur
zitdwarhod
neudom
krulmozat
zafols
utnalam
sekseln
utmagbe
felfudjoab
suneg
tenzont
bugsem
mobprurgtild
ermbyub
pobonis
nurha
pugfoddlaat
grurkfilvok
umplid
unulkug
tadmorkkwol
tildkweug
hudyassis
obkaan
akanfes
ponum
torembyeb
muldnib
fihunfa
binskyebkus
blanhab
funkbut
niges
arut
erbyot
gwanrji
fileod
basdwaad
sunhinmua
nunhed
adton
krumuktward
huljud
tigbas
sannos
mimbu
dranjus
vorbaanat
kyurmad
dwasadton
kleaitdyug
aamjirs
tirpalmulg
netbek
faltukgwol
mulhut
jubog
mobzo
judyolvarm
kusan
ulkrugun
gyizurbvum
brenminhid
immet
kwerpiddlont
kobzeukzuurt
bozuub
twilgtlotam
ikpoer
pitmull
kridipiak
zukka
sajersplon
tutvim
draoglaal

A more elegant solution might be to use the real-world database names as a starting point, and then apply random changes, for example, change out one consonant for another, remove syllables, etc.

To be honest, I would rather have real-world names than gibberish that doesn't mean anything. But again, this is down to personal preference, which is why it is so hard to agree a definition of 'non-silly names' because the above seem like silly names to me.
Posted by: Steve Walmsley
« on: November 30, 2023, 05:07:12 AM »

I would just like to be able to make a pass to check that NPRs aren't being created with silly names as they're frequently generated with real-world place names.

If you can outline the 'non-silly name' logic, I would be happy to implement it :)

I think what he is saying is he would just like to be able to manually check.  Algorithm would be HumanBrainV1.0

Using this logic, every time a new race is generated, you would need a pop-up to name it, even though you don't necessarily know the race was just generated. I think that would spoil fog-of-war and break immersion, especially when enter a new system and get the 'new name' popup.

You can rename new races already as soon as they are detected. I thought the idea was to generate 'non-silly-names' behind the scenes.
Posted by: Steve Walmsley
« on: November 30, 2023, 05:06:14 AM »

Can we get that system/planet picking function for player races as well? I plan on starting a new campaign with new human settlements on nearby stars that got there via generation ships. I've done a similar campaign before but had to use the space master grav survey to explore dozens of systems before finding the ones I wanted, than going back through to clean up and undiscover the fillers was super tedious

You can use Create Habitable to do that now for player races. Click the button and pick a system and it will generate a habitable planet in that system. You may still need to adjust though for a human species.

Also this new NPR generation system won't necessarily help you. Its designed to create a planet based on selected terrain and then generate a race based on the resulting planet. It isn't designed to generate a planet suitable for an existing species. That would require a different set of code. I might add that in the future, but I want to check this is working fine first.
Posted by: QuakeIV
« on: November 29, 2023, 10:05:07 PM »

I would just like to be able to make a pass to check that NPRs aren't being created with silly names as they're frequently generated with real-world place names.

If you can outline the 'non-silly name' logic, I would be happy to implement it :)

I think what he is saying is he would just like to be able to manually check.  Algorithm would be HumanBrainV1.0
Posted by: nuclearslurpee
« on: November 29, 2023, 08:58:42 PM »

Can we get that system/planet picking function for player races as well? I plan on starting a new campaign with new human settlements on nearby stars that got there via generation ships. I've done a similar campaign before but had to use the space master grav survey to explore dozens of systems before finding the ones I wanted, than going back through to clean up and undiscover the fillers was super tedious

I would second this, as it while the Create Habitable System button is nice this would remove a couple of steps and not require a separate SM race to handle everything (unless you want your first player race to know of all other home systems).
Posted by: KriegsMeister
« on: November 29, 2023, 07:58:48 PM »

Can we get that system/planet picking function for player races as well? I plan on starting a new campaign with new human settlements on nearby stars that got there via generation ships. I've done a similar campaign before but had to use the space master grav survey to explore dozens of systems before finding the ones I wanted, than going back through to clean up and undiscover the fillers was super tedious
Posted by: Desdinova
« on: November 29, 2023, 03:16:50 PM »

I would just like to be able to make a pass to check that NPRs aren't being created with silly names as they're frequently generated with real-world place names.

If you can outline the 'non-silly name' logic, I would be happy to implement it :)


Well, the real solution would be to create a random name generator. Of course it takes a lot of work to generate aesthetically pleasing results. Here's a quick and dirty java random name generator I threw together to generate some alien-sounding names:

Code: [Select]
import java.util.Random;

public class RandomNameGenerator
{
String plosives = "ptkbdg";
String onsets = "ptkbsfhjmnvz";
String codas = "tkbdgsmnrl";
String onset_medials = "rlwy";
String coda_medials = "rln";
String vowels = "aeiou";

int onset_chance = 80;
int onset_medial_chance = 20;
int coda_chance = 80;
int coda_medial_chance = 10;
int dipthong_chance = 10;

Random rand;

public RandomNameGenerator()
{
rand = new Random();
rand.setSeed(System.currentTimeMillis());
}

public char GetRandomLetter(String str)
{
int len = str.length();
int num = rand.nextInt(len);
return str.charAt(num);
}

public String GenerateSyllable()
{
String ret = new String();

if (rand.nextInt(100) <= onset_medial_chance)
{
ret += GetRandomLetter(plosives);
ret += GetRandomLetter(onset_medials);
}
else if (rand.nextInt(100) <= onset_chance) ret += GetRandomLetter(onsets);
ret += GetRandomLetter(vowels);
if (rand.nextInt(100) <= dipthong_chance) ret += GetRandomLetter(vowels);
if (rand.nextInt(100) <= coda_medial_chance)
{
ret += GetRandomLetter(coda_medials);
ret += GetRandomLetter(codas);
}
else if (rand.nextInt(100) <= coda_chance) ret += GetRandomLetter(codas);
return ret;
}

public String GenerateWord()
{
String ret = new String();
for (int x = rand.nextInt(2) + 2; x > 0; x-- )
{
ret += GenerateSyllable();
}
return ret;
}
}

public class Main
{
public static void main(String[] args)
{
RandomNameGenerator rng = new RandomNameGenerator();
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());

String str = new String();
for (int x = 100; x > 0; x-- )
{
System.out.println(rng.GenerateWord());
}
}
}

Sample output:
Code: [Select]
proknim
faporfur
varpyis
aram
gyoknabmalm
onno
ursklusbom
kotkwos
kebturnor
haktas
pyidpud
sonkras
pletkuteag
kweethabfers
tudwahei
kubaimkunk
folotoenb
mekputblun
toleu
bwikkogklo
eban
kamugseg
kebraok
ohailhog
pamfag
vukwur
zitdwarhod
neudom
krulmozat
zafols
utnalam
sekseln
utmagbe
felfudjoab
suneg
tenzont
bugsem
mobprurgtild
ermbyub
pobonis
nurha
pugfoddlaat
grurkfilvok
umplid
unulkug
tadmorkkwol
tildkweug
hudyassis
obkaan
akanfes
ponum
torembyeb
muldnib
fihunfa
binskyebkus
blanhab
funkbut
niges
arut
erbyot
gwanrji
fileod
basdwaad
sunhinmua
nunhed
adton
krumuktward
huljud
tigbas
sannos
mimbu
dranjus
vorbaanat
kyurmad
dwasadton
kleaitdyug
aamjirs
tirpalmulg
netbek
faltukgwol
mulhut
jubog
mobzo
judyolvarm
kusan
ulkrugun
gyizurbvum
brenminhid
immet
kwerpiddlont
kobzeukzuurt
bozuub
twilgtlotam
ikpoer
pitmull
kridipiak
zukka
sajersplon
tutvim
draoglaal

A more elegant solution might be to use the real-world database names as a starting point, and then apply random changes, for example, change out one consonant for another, remove syllables, etc.