Ero sivun ”Namegen” versioiden välillä
p typo Merkkaukset: Mobiilimuokkaus mobiilisivusto-muokkaus |
|||
| (12 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
| Rivi 1: | Rivi 1: | ||
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | {{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | ||
{{Ohjelma | {{Ohjelma | ||
| nimi=namegen | | nimi = namegen | ||
| kuva= | | logo = | ||
| kuvateksti= | | kuva = | ||
| ensijulkaisu = 0.1.0 | | kuvateksti = | ||
| | | tekijä = | ||
| käyttöliittymä=[[Komentorivi]] | | kehittäjä = | ||
| | | moottori = | ||
| kotisivu= | | ensijulkaisu = 0.1.0 (2025) | ||
| lähdekoodi=[https://github.com/lahtis/GeneSim/ | | vakaaversio = 1.3.1 | ||
| vakaapvm = 23. joulukuuta 2025 | |||
| kehitysversio = | |||
| kehityspvm = | |||
| ohjelmoitu = [[C]] | |||
| käyttöliittymä = [[Komentorivi]] (cli) | |||
| tyyppi = nimi generaattori | |||
| lisenssi = [[GPLv3]] | |||
| kotisivu = [https://github.com/lahtis/GeneSim/ github.com/lahtis/GeneSim/] | |||
| lähdekoodi = [https://github.com/lahtis/GeneSim/tree/main/namegen github.com/lahtis/GeneSim/tree/main/namegen] | |||
}} | }} | ||
'''Namegen''' on avoimen lähdekoodin | '''Namegen''' on avoimen lähdekoodin [[komentorivi]] pohjainen nimisimulaattori, joka lukee etunimen, välinimen ja sukunimen historiallisista suomenkielisistä [[CSV]]-tiedostoista. | ||
Unohda satunnaiset nimigeneraattorit. Tämä työkalu on täydellinen ratkaisu kirjailijoille, roolipelaajille ja pelikehittäjille, jotka tarvitsevat historiallisesti tarkkoja ja uskottavia suomalaisnimiä suoraan 1800- ja 1900-luvun taitteesta. | Unohda satunnaiset nimigeneraattorit. Tämä työkalu on täydellinen ratkaisu kirjailijoille, roolipelaajille ja pelikehittäjille, jotka tarvitsevat historiallisesti tarkkoja ja uskottavia suomalaisnimiä suoraan 1800- ja 1900-luvun taitteesta. | ||
== Rakenna koko perheen tarina == | == Rakenna koko perheen tarina == | ||
== Historiallinen tarkkuus ja datan | '''Yksittäisen hahmon luonti'''<br> | ||
Luo uniikkeja hahmoja, joilla on historiallinen syvyys. Ohjelma ei vain arvo nimeä, vaan rakentaa identiteetin valitun aikakauden perusteella. | |||
* Sukupuolen valinta: Voit määrittää hahmon sukupuolen tai antaa ohjelman päättää sen puolestasi. | |||
* Keskinimien kerrostuneisuus: Säädä hahmon arvovaltaa määrittämällä keskinimien määrä (0–3) ja niiden esiintymistodennäköisyys. | |||
* Ikä ja aikakausi: Tukee täysin `--age` -lippua, joka laskee hahmolle loogisen syntymävuoden suhteessa valittuun historialliseen periodiin. | |||
'''Parigenerointitila'''<br> | |||
Luo hetkessä aviopareja, joilla on automaattisesti sama sukunimi. Tämä antaa tarinallesi välittömän perustan ja uskottavuuden. | |||
* Yhteinen sukunimi: Saat yhdellä komennolla Mies + Nainen -parin, jolla on yhteinen sukunimi. | |||
* Historiallinen realismi: Ohjelma huomioi aikakauden tavat; naiselle voidaan generoida tyttönimi (o.s. / nee), mikä helpottaa sukupuiden rakentamista. | |||
'''Perhegenerointitila (Family Mode)'''<br> | |||
Luo kokonaisia ydinperheitä, jotka toimivat loogisena kokonaisuutena. | |||
* Loogiset sukupolvet: Ohjelma generoi automaattisesti lapset ja vanhemmat, joiden syntymävuodet ovat historiallisesti ja biologisesti järkeviä. | |||
* Sukunimen perintö: Kaikki perheenjäsenet jakavat saman sukunimen, ja äidin tyttönimi säilytetään historiallista tarkkuutta varten. | |||
'''Deterministinen generointi'''<br> | |||
Hahmot, parit ja perheet ovat nyt täysin deterministisiä. Käyttämällä samaa `--seed` -lukua, saat aina täsmälleen saman tuloksen, vaikka vaihtaisit tulostusmuotoa tekstistä JSON- tai CSV-muotoon. Tämä mahdollistaa datan johdonmukaisen käytön eri tuotantovaiheissa. | |||
== Historiallinen tarkkuus ja datan laatu == | |||
Ohjelma ei anna sinulle epäaitoja nimiä. Generaattori ammentaa dataa suoraan vuosikymmenittäin luokitelluista historiallisista lähteistä, tarjoten: | Ohjelma ei anna sinulle epäaitoja nimiä. Generaattori ammentaa dataa suoraan vuosikymmenittäin luokitelluista historiallisista lähteistä, tarjoten: | ||
* Aika- | * Aika-aukotota realismia: Valitse tarkasti haluamasi aikakausi (1860-luvulta 1920-luvulle). Vain tuo aikaan sopivat nimet tulivat käyttöön. | ||
* | |||
== Tekniset ominaisuudet ja datan vienti == | |||
Version 1.2.0 myötä Namegen on muuttunut pelkästä tekstigeneraattorista monipuoliseksi datatyökaluksi. Ohjelma tukee nyt useita standardimuotoja, jotka mahdollistavat saumattoman integraation muihin sovelluksiin. | |||
'''Tuetut vientimuodot (--output):'''<br> | |||
* JSON: Tuottaa täysin validoitua JSON-dataa. Syntymävuodet ja nimet on rakenteistettu oikein, joten tiedosto on suoraan luettavissa nykyaikaisilla ohjelmointikielillä ja pelimoottoreilla (esim. Unity ja Unreal Engine). | |||
* CSV: Standardimuotoinen taulukkolaskentatiedosto. Erinomainen työkalu suurten väestölistojen hallintaan Excelissä tai Google Sheetsissä. Sisältää vakioidut sarakkeet etunimille, sukunimille ja iälle. | |||
* Plain Text: Selkeä ja luettava listaus suoraan konsoliin, joka sopii nopeaan ideointiin ja hahmojen selailuun. | |||
'''Deterministinen generointi (--seed)'''<br> | |||
Ohjelma käyttää kehittynyttä satunnaislukugenerointia, jota voidaan hallita `--seed` -lipulla. | |||
* Syöttämällä saman siemenluvun (esim. `--seed 1233`), saat joka kerta täsmälleen saman listan nimiä ja ikiä. | |||
* Tämä takaa, että peliympäristösi pysyy muuttumattomana eri kehitysversioiden välillä. | |||
'''Automaattinen laadunvarmistus (test.py)'''<br> | |||
Projektin mukana toimitetaan Python-pohjainen testausympäristö, joka varmistaa koodin vakauden: | |||
* Validointi: Tarkistaa, että JSON-rakenne on virheetön. | |||
* Eheys: Varmistaa, että CSV-sarakkeet pysyvät linjassa. | |||
* Konsistenssi: Testaa, että deterministinen generointi (seed) toimii odotetulla tavalla kaikissa formaateissa. | |||
'''Suorituskyky ja koodin laatu:'''<br> | |||
* Ohjelma on kirjoitettu puhtaalla C-kielellä, mikä takaa salamannopean generoinnin myös tuhansille nimille kerralla. | |||
* Muistinhallinta on optimoitu. | |||
== Kääntäminen === | |||
Ohjelma on helposti käännettävissä [[GCC]]:llä seuraavasti. | |||
gcc main.c args.c generator.c loader.c output.c utils.c -o namegen | |||
== Käyttö == | |||
JSON-moodi mahdollistaa komentoketjut, esimerkiksi | |||
./namegen --count 10 --output json | grep "Virtanen". | |||
== | == Aiheesta muualla == | ||
* [https://github.com/lahtis/GeneSim/wiki NameGen Wiki] ja käyttöopas. | |||
* | |||
[[Luokka:Komentorivin erikoisohjelmat]] | [[Luokka:Komentorivin erikoisohjelmat]] | ||
{{Pelinteko}} | {{Pelinteko}} | ||
Nykyinen versio 24. joulukuuta 2025 kello 01.19
| namegen | |
|---|---|
| Ensijulkaisu | 0.1.0 (2025) |
| Vakaa versio | 1.3.1 / 23. joulukuuta 2025 |
| Ohjelmoitu | C |
| Käyttöliittymä | Komentorivi (cli) |
| Tyyppi | nimi generaattori |
| Lisenssi | GPLv3 |
| Kotisivu | github.com/lahtis/GeneSim/ |
| Lähdekoodi | github.com/lahtis/GeneSim/tree/main/namegen |
Namegen on avoimen lähdekoodin komentorivi pohjainen nimisimulaattori, joka lukee etunimen, välinimen ja sukunimen historiallisista suomenkielisistä CSV-tiedostoista.
Unohda satunnaiset nimigeneraattorit. Tämä työkalu on täydellinen ratkaisu kirjailijoille, roolipelaajille ja pelikehittäjille, jotka tarvitsevat historiallisesti tarkkoja ja uskottavia suomalaisnimiä suoraan 1800- ja 1900-luvun taitteesta.
Rakenna koko perheen tarina
[muokkaa]Yksittäisen hahmon luonti
Luo uniikkeja hahmoja, joilla on historiallinen syvyys. Ohjelma ei vain arvo nimeä, vaan rakentaa identiteetin valitun aikakauden perusteella.
- Sukupuolen valinta: Voit määrittää hahmon sukupuolen tai antaa ohjelman päättää sen puolestasi.
- Keskinimien kerrostuneisuus: Säädä hahmon arvovaltaa määrittämällä keskinimien määrä (0–3) ja niiden esiintymistodennäköisyys.
- Ikä ja aikakausi: Tukee täysin `--age` -lippua, joka laskee hahmolle loogisen syntymävuoden suhteessa valittuun historialliseen periodiin.
Parigenerointitila
Luo hetkessä aviopareja, joilla on automaattisesti sama sukunimi. Tämä antaa tarinallesi välittömän perustan ja uskottavuuden.
- Yhteinen sukunimi: Saat yhdellä komennolla Mies + Nainen -parin, jolla on yhteinen sukunimi.
- Historiallinen realismi: Ohjelma huomioi aikakauden tavat; naiselle voidaan generoida tyttönimi (o.s. / nee), mikä helpottaa sukupuiden rakentamista.
Perhegenerointitila (Family Mode)
Luo kokonaisia ydinperheitä, jotka toimivat loogisena kokonaisuutena.
- Loogiset sukupolvet: Ohjelma generoi automaattisesti lapset ja vanhemmat, joiden syntymävuodet ovat historiallisesti ja biologisesti järkeviä.
- Sukunimen perintö: Kaikki perheenjäsenet jakavat saman sukunimen, ja äidin tyttönimi säilytetään historiallista tarkkuutta varten.
Deterministinen generointi
Hahmot, parit ja perheet ovat nyt täysin deterministisiä. Käyttämällä samaa `--seed` -lukua, saat aina täsmälleen saman tuloksen, vaikka vaihtaisit tulostusmuotoa tekstistä JSON- tai CSV-muotoon. Tämä mahdollistaa datan johdonmukaisen käytön eri tuotantovaiheissa.
Historiallinen tarkkuus ja datan laatu
[muokkaa]Ohjelma ei anna sinulle epäaitoja nimiä. Generaattori ammentaa dataa suoraan vuosikymmenittäin luokitelluista historiallisista lähteistä, tarjoten:
- Aika-aukotota realismia: Valitse tarkasti haluamasi aikakausi (1860-luvulta 1920-luvulle). Vain tuo aikaan sopivat nimet tulivat käyttöön.
Tekniset ominaisuudet ja datan vienti
[muokkaa]Version 1.2.0 myötä Namegen on muuttunut pelkästä tekstigeneraattorista monipuoliseksi datatyökaluksi. Ohjelma tukee nyt useita standardimuotoja, jotka mahdollistavat saumattoman integraation muihin sovelluksiin.
Tuetut vientimuodot (--output):
- JSON: Tuottaa täysin validoitua JSON-dataa. Syntymävuodet ja nimet on rakenteistettu oikein, joten tiedosto on suoraan luettavissa nykyaikaisilla ohjelmointikielillä ja pelimoottoreilla (esim. Unity ja Unreal Engine).
- CSV: Standardimuotoinen taulukkolaskentatiedosto. Erinomainen työkalu suurten väestölistojen hallintaan Excelissä tai Google Sheetsissä. Sisältää vakioidut sarakkeet etunimille, sukunimille ja iälle.
- Plain Text: Selkeä ja luettava listaus suoraan konsoliin, joka sopii nopeaan ideointiin ja hahmojen selailuun.
Deterministinen generointi (--seed)
Ohjelma käyttää kehittynyttä satunnaislukugenerointia, jota voidaan hallita `--seed` -lipulla.
- Syöttämällä saman siemenluvun (esim. `--seed 1233`), saat joka kerta täsmälleen saman listan nimiä ja ikiä.
- Tämä takaa, että peliympäristösi pysyy muuttumattomana eri kehitysversioiden välillä.
Automaattinen laadunvarmistus (test.py)
Projektin mukana toimitetaan Python-pohjainen testausympäristö, joka varmistaa koodin vakauden:
- Validointi: Tarkistaa, että JSON-rakenne on virheetön.
- Eheys: Varmistaa, että CSV-sarakkeet pysyvät linjassa.
- Konsistenssi: Testaa, että deterministinen generointi (seed) toimii odotetulla tavalla kaikissa formaateissa.
Suorituskyky ja koodin laatu:
- Ohjelma on kirjoitettu puhtaalla C-kielellä, mikä takaa salamannopean generoinnin myös tuhansille nimille kerralla.
- Muistinhallinta on optimoitu.
Kääntäminen =
[muokkaa]Ohjelma on helposti käännettävissä GCC:llä seuraavasti.
gcc main.c args.c generator.c loader.c output.c utils.c -o namegen
Käyttö
[muokkaa]JSON-moodi mahdollistaa komentoketjut, esimerkiksi
./namegen --count 10 --output json | grep "Virtanen".
Aiheesta muualla
[muokkaa]- NameGen Wiki ja käyttöopas.