System names generation - Italian variant

WKFO
Posts: 157
Joined: Wed Jun 14, 2017 12:37 pm
Location: Turkey
Contact:

Re: System names generation - Italian variant

Post by WKFO » Sat Aug 29, 2020 7:12 pm

I agree that current star system naming thing is a little lacking - even though names are seemingly unique enough, they still show noticeable repetition with fragments during gameplay - at least they do to me.

By the way, moving away from that topic a little, I did some work on my free time for Turkish generation. Got ~60 fragments for start, mid and end fragments so far. Of course it doesn't work well 100% of the time, but most of the names sound quite Turkish. Some generations are so good that I could make Turkish people believe that they are real place names, but some others are quite a stretch; there are Frontier-y, Lord of the Rings-y or Japanese etc. sounding ones as well, but no problem, let's add them into the mix as well, I say! :)

GunChleoc
Posts: 40
Joined: Sat Nov 30, 2013 12:57 pm
Contact:

Re: System names generation - Italian variant

Post by GunChleoc » Thu Sep 03, 2020 11:01 am

If you'd like to look ad other solutions, Battle for Wesnoth has a contect-free grammar implementation for place names. OpenTTD also has a placename generator. If you're interested in Scottish Gaelic names, I could dig up my work from OpenTTD.

My names there have only 2 parts - first parts is City/Mountain etc... and second element is something ending in a genitive, so the grammar will be correct.

https://bananas.openttd.org/package/newgrf/47430101

The interesting thing about the OpenTTD approach is that names have a classification too, so we could distinguish between star names, planet names, station names, ...

testadilegno
Posts: 19
Joined: Sun Feb 02, 2014 8:54 pm
Location: Milano, Italy
Contact:

Re: System names generation - Italian variant

Post by testadilegno » Fri Sep 11, 2020 9:19 am

@GunChleoc I'm sorry, I've been a bit busy with work, but I don't get to see how this openttd mod works. Is there some source code to read? I don't have openttd, am I supposed to download it and then install the mod? Or can I download it somewhere/somehow?
This looks interesting, so you're saying that those names are generated with a generic environmental feature (e.g. lake) and with an added random name, with correct declination? And you build these randomly? Can't you get names without the "geological" feature, or are they uncommon in Gaelic?
Also the classification feature is interesting: it would be cool if we could also tie starport name generation to the base language of the system (so e.g. a French-named system gets more French named starports, maybe with non zero chances of having other languages btw).

About other languages, I'm working on Spanish (Castilian) names, and might have a look at other Iberian variants (btw I just work with data I can find online, I know that the linguistic-political stance of Spain is... complicated... and don't really want to piss people off).
I still haven't found a nice/large resource for English_UK names, but i have found a resource for US names. Further down the line I might try something with Russian, although it would probably require some transliteration.

Which comes to the point. When I will find some time to fix my build WM, I might try and implement the unicode transliteration I posted earlier, and add it to the search function. I will keep you updated, but please don't hold your breath :-)

GunChleoc
Posts: 40
Joined: Sat Nov 30, 2013 12:57 pm
Contact:

Re: System names generation - Italian variant

Post by GunChleoc » Fri Sep 11, 2020 4:21 pm

Can't you get names without the "geological" feature, or are they uncommon in Gaelic?
They are indeed uncommon, unless they stem from non-Gaelic origins, e.g. Norse where you can have people names too, e.g. Éirisgeigh (English spelling Eriskay) means "Eric's Island" in Norse. You do get names that start with "Baile", which means "town", but having them all start with that word would be boring.

OpenTTD

I dug up the file to have a look. It's basically just a part1 and a part2 set.

Documentation is here: https://newgrf-specs.tt-wiki.net/wiki/NML:Town_names

I built this 7 years ago and never touched it again, so I don't remember any further particulars. I have never contributed to their source code, so if you want to take a look, you can research this just as fast as I could.

Code: Select all

grf {
	grfid: "GC\01\01";
	name: string(STR_GRF_NAME);
	desc: string(STR_GRF_DESCRIPTION);
	version: 0;
	min_compatible_version: 0;
}



town_names(one) {
	{
		text("Abhainn ", 31),
		text("Ach ", 10),
		text("Achadh ", 58),
		text("Achd ", 3),
		text("Aghaidh ", 2),
		text("Àird ", 1),
		text("Àirigh ", 7),
		text("Aodann ", 1),
		text("Àth ", 8),
		text("Bad ", 11),
		text("Baile ", 93),
		text("Bàrr ", 1),
		text("Bealach ", 16),
		text("Beinn ", 30),
		text("Blàr ", 5),
		text("Bog ", 3),
		text("Bogan ", 1),
		text("Bràigh ", 3),
		text("Buaile ", 1),
		text("Bun ", 1),
		text("Cadha ", 1),
		text("Caol ", 2),
		text("Càrn ", 20),
		text("Cathair ", 2),
		text("Ceann ", 15),
		text("Clachan ", 15),
		text("Cnap ", 2),
		text("Cnoc ", 20),
		text("Cnocan ", 1),
		text("Coille ", 10),
		text("Coire ", 1),
		text("Creag ", 1),
		text("Cruach ", 1),
		text("Cruachan ", 1),
		text("Cùl ", 1),
		text("Drochaid ", 25),
		text("Druim ", 2),
		text("Dùn ", 7),
		text("Féith ", 2),
		text("Gart ", 2),
		text("Gleann ", 20),
		text("Goirtean ", 2),
		text("Lag ", 1),
		text("Lainn ", 4),
		text("Làirig ", 2),
		text("Loch ", 33),
		text("Lùb ", 2),
		text("Magh ", 2),
		text("Maol ", 3),
		text("Pàirc ", 1),
		text("Port ", 16),
		text("Raon ", 1),
		text("Srath ", 5),
		text("Sròn ", 5),
		text("Tom ", 5),
		text("Tòrr ", 5),
		text("Tulach ", 5),
	}
}

town_names(two) {
	{
		text("a’ Bhac", 1),
		text("a’ Bhàigh", 1),
		text("a’ Bhàird", 1),
		text("a’ Bhalg", 1),
		text("a’ Bhanna", 1),
		text("a’ Bharain", 1),
		text("a’ Bhàthaich", 1),
		text("a’ Bhàthaich Àird", 1),
		text("a’ Bheithich", 1),
		text("a’ Bheòil", 1),
		text("a’ Bhile", 1),
		text("a’ Bhinnein", 1),
		text("a’ Bhoth", 1),
		text("a’ Bhreacaidh", 1),
		text("a’ Bhruthaich", 1),
		text("a’ Bhuilg", 1),
		text("a’ Bhùird", 1),
		text("a’ Bhùiridh", 1),
		text("a’ Bhùraich", 1),
		text("a’ Chaisgein Mhór", 1),
		text("a’ Chaisteil", 1),
		text("a’ Chait", 1),
		text("a’ Chaorthainn", 1),
		text("a’ Charr", 1),
		text("a’ Cheathraimh", 1),
		text("a’ Chip", 1),
		text("a’ Chléibh", 1),
		text("a’ Chléirich", 1),
		text("a’ Chochaill", 1),
		text("a’ Choilich", 1),
		text("a’ Choillein", 1),
		text("a’ Chòinnich", 1),
		text("a’ Choirce", 1),
		text("a’ Choltair", 1),
		text("a’ Chonais", 1),
		text("a’ Chonalaich", 1),
		text("a’ Chonnaidh", 1),
		text("a’ Chrithich", 1),
		text("a’ Chrò", 1),
		text("a’ Chrois", 1),
		text("a’ Chròthain", 1),
		text("a’ Chrùlaiste", 1),
		text("a’ Chuilinn", 1),
		text("a’ Churrain", 1),
		text("a’ Ghamhna", 1),
		text("a’ Ghaoth", 1),
		text("a’ Gheàrrloch", 1),
		text("a’ Gheòidh", 1),
		text("a’ Ghiuthsaich", 1),
		text("a’ Ghlas Uillt", 1),
		text("a’ Ghluasaid", 1),
		text("a’ Ghobhail", 1),
		text("a’ Ghobhainn", 1),
		text("a’ Ghràna", 1),
		text("a’ Mhadaidh", 1),
		text("a’ Mhaide", 1),
		text("a’ Mhàim", 1),
		text("a’ Mheadhain", 1),
		text("a’ Mhiodair", 1),
		text("a’ Mhòid", 1),
		text("a’ Mhonaidh", 1),
		text("a’ Mhuilinn", 1),
		text("a’ Phosta", 1),
		text("a’ Phùbaill", 1),
		text("a’ Phuill", 1),
		text("an Aoig", 1),
		text("an Aonaich", 1),
		text("an Dìollaid", 1),
		text("an Dobhair", 1),
		text("an Draoidh", 1),
		text("an Dreich", 1),
		text("an Droighinn", 1),
		text("an Easa", 1),
		text("an Eòin", 1),
		text("an Eòrna", 1),
		text("an Eunlaith", 1),
		text("an Fheàrna", 1),
		text("an Fhìdhleir", 1),
		text("an Fhiodhaich", 1),
		text("an Fhliuchaidh", 1),
		text("an Fhraoich", 1),
		text("an Fhreiceadain", 1),
		text("an Fhuarain", 1),
		text("an Inbhir", 1),
		text("an Inneail", 1),
		text("an Laoigh", 1),
		text("an Lighiche", 1),
		text("an Linne", 1),
		text("an Òir", 1),
		text("an Rainich", 1),
		text("an Reidhinidh", 1),
		text("an Rìgh", 1),
		text("an Ruighe", 1),
		text("an Taigh Mhóir", 1),
		text("an Tàilleir", 1),
		text("an Tarraig", 1),
		text("an Teine", 1),
		text("an Tighearna", 1),
		text("an Todhair", 1),
		text("an Tràill", 1),
		text("an t-Sabhail", 1),
		text("an t-Salainn", 1),
		text("an t-Saoir", 1),
		text("an t-Seagail", 1),
		text("an t-Seipeil", 1),
		text("an t-Sìthein", 1),
		text("an t-Sithidh", 1),
		text("an t-Snàimh", 1),
		text("an t-Solais", 1),
		text("an t-Sròim", 1),
		text("an t-Sruthail", 1),
		text("an t-Suidhe", 1),
		text("an Tuirc", 1),
		text("an Uillt", 1),
		text("na Spréidhe", 1),
		text("Dà Ghaoithe", 1),
		text("Dà Phris", 1),
		text("Dà Sgaillt", 1),
		text("Gorm an Doire", 1),
		text("a’ Ghiuthais Léith", 1),
		text("na Bà", 1),
		text("na Baintighearna", 1),
		text("na Banrighinn", 1),
		text("na Cairidh", 1),
		text("na Circe", 1),
		text("na Claise", 1),
		text("na Cloiche", 1),
		text("na Crà", 1),
		text("na Craoibhe", 1),
		text("na Crìche", 1),
		text("na Croise", 1),
		text("na Cùil", 1),
		text("na Cuinge", 1),
		text("na Cuingleum", 1),
		text("na Dalach", 1),
		text("na Faire", 1),
		text("na Feàrna", 1),
		text("na Frìthe", 1),
		text("na Gaoithe", 1),
		text("na Giuthsaich", 1),
		text("na h-Eilde", 1),
		text("na h-Imriche", 1),
		text("na h-Ìnich", 1),
		text("na h-Iolaire", 1),
		text("na h-Iubhraich", 1),
		text("na h-Uamha", 1),
		text("na Luachrach", 1),
		text("na Muilne", 1),
		text("na Saighde", 1),
		text("na Saobhaidhe", 1),
		text("na Sìne", 1),
		text("nam Bàgh", 1),
		text("nam Bò", 1),
		text("nam Bodach", 1),
		text("nam Both", 1),
		text("nam Bròg", 1),
		text("nam Feadag", 1),
		text("nam Fiaclan", 1),
		text("nam Fuaran", 1),
		text("nam Fuath", 1),
		text("nam Madadh", 1),
		text("nam Manach", 1),
		text("nam Mèirleach", 1),
		text("nam Péiling", 1),
		text("nan Abhall", 1),
		text("nan Aigheanan", 1),
		text("nan Allt", 1),
		text("nan Cabar", 1),
		text("nan Cailleach", 1),
		text("nan Ceàrd", 1),
		text("nan Clach", 1),
		text("nan Cléireach", 1),
		text("nan Coileach", 1),
		text("nan Coitear", 1),
		text("nan Coitheanalan", 1),
		text("nan Con", 1),
		text("nan Con Dubh", 1),
		text("nan Craobh", 1),
		text("nan Cruithneachd", 1),
		text("nan Dobhran", 1),
		text("nan Doirb", 1),
		text("nan Easgann Bàna", 1),
		text("nan Gearran", 1),
		text("nan Giuthas", 1),
		text("nan Gobhann", 1),
		text("nan Gobhar", 1),
		text("nan Long", 1),
		text("nan Sabhal", 1),
		text("nan Seileach", 1),
		text("nan Sginnearach", 1),
		text("nan Sum", 1),
		text("Sloc an Eich", 1),
		text("an t-Seamraig", 1),
	}
}


town_names {
	styles : string(STR_STYLES);
	{
		town_names(one,1)
	}
	{
		town_names(two,1)
	}
}
Battle for Wesnoth

The more powerful context free grammar generator for Battle for Wesnoth is documented at https://wiki.wesnoth.org/Context-free_grammar

You can play with it on: https://www.physics.muni.cz/~dugi/index.fcgi/cfggen

Source code: https://github.com/wesnoth/wesnoth/blob ... erator.cpp

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest