namegen
| 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 | [hhttps://github.com/lahtis/GeneSim/tree/main/namegen 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
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
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
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 =
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
- NameGen Wiki ja käyttöopas.