namegen

Linux.fista
Versio hetkellä 23. joulukuuta 2025 kello 10.00 – tehnyt Lahtis (keskustelu | muokkaukset) (1.3.1 Xmas-Edition)
Siirry navigaatioon Siirry hakuun


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

v  k  m
Peliohjelmointiin liittyvät artikkelit
 Yleiset  Peliohjelmointi Linuxilla | Pelisuunnittelu | 2D-peliohjelmoinnin aloitusopas Linuxille | Musiikki ja äänet | Kuvankäsittely | Mallinnus | Lokalisointi
 2D 
 Pelimoottorit  Solar2D | Defold | Fife | LÖVE | GameMaker
  -Karttamuokkaimet  Tiled | OGMO Editor
 3D 
 Avoimet  Banshee 3D | Castle Game Engine | DarkPlaces | Defold | Godot Engine | Grit engine | Irrlicht Engine | id Tech (Quake) | ioquake3 | jMonkeyEngine | Lightfeather 3D | The Mirror | OGRE | O3DE | Panda3D | Range Engine | Serious | UPBGE | QFusion
 Suljetut  Axis Game Factory | CryEngine | Source | Unity3D | Unreal Engine
 Keskeytyneet  Crystal Space
  kuvankäsittely tekstuurikartoitus mallinnus 
 Kuvankäsittely  Gimp
  -Pikseligrafiikka  Aseprite | Pixelator
 Mallinnus  Blender | UPBGE | Bforartists | MakeHuman | Neobarok | ngPlant | ArbaroDust3D
  -Tekstuurikartoitus  AwesomeBump | Material Maker | Ptex
  -Tekstuurien luonti  ArmorLab
  -Pintakuviomaalaus  ArmorPaint
 Maastogeneraattorit  TerraForge3D
 Ohjelmointikielet 
  -Käännettävät  C | C++
  -Tulkattavat  Java | Python | Lua
  Ohjelmointimoduulit  pygame
  -Kirjastot  Assimp | OpenGL | Vulkan | SDL