Ero sivun ”Namegen” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
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     =
| lisenssi=[[GPLv3]]
| tekijä        =
| käyttöliittymä=[[Komentorivi]]
| kehittäjä      =
| ohjelmoitu=[[C]]
| moottori      =  
| kotisivu=
| ensijulkaisu  = 0.1.0 (2025)
| lähdekoodi=[https://github.com/lahtis/GeneSim/ 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 yksinkertainen [[komentorivi]] pohjainen nimisimulaattori, joka lukee etunimen, välinimen ja sukunimen historiallisista suomenkielisistä [[CSV]]-tiedostoista.  
'''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 ==
* Parigenerointitila: Luo hetkessä aviopareja, joilla on automaattisesti sama sukunimi. Tämä antaa tarinallesi välittömän perustan ja uskottavuuden. Valitse 'Couple Mode' ja saat Mies + Nainen -parin, jolla on yhteinen sukunimi!
* Monikerroksiset Keskinimet: Haluatko luoda nimen, joka huokuu arvovaltaa ja perinteitä? Aseta jopa kolme (3) keskinimeä! Saat nimen, joka kuulostaa suoraan historiankirjoista otetulta (esim. Jaakko Johannes Eemil Virtanen).


== Historiallinen tarkkuus ja datan Laatu ==
'''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-aukoton realismi: Valitse tarkasti haluamasi aikakausi (1860-luvulta 1920-luvulle). Vain tuo aikaan sopivat nimet tulevat käyttöön.
* Aika-aukotota realismia: Valitse tarkasti haluamasi aikakausi (1860-luvulta 1920-luvulle). Vain tuo aikaan sopivat nimet tulivat käyttöön.
* Virheetön data: Kiitos tarkemman datavalidoinnin, voit olla varma, että saat 100% puhtaita nimiä. Ohjelma hylkää automaattisesti kaikki numerosarjat, otsikot ja muut epäpuhtaudet.
 
== 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".


== Täydellinen hallinta nimesi yli ==
== Aiheesta muualla ==
Räätälöi nimen jokainen osa:
* [https://github.com/lahtis/GeneSim/wiki NameGen Wiki] ja käyttöopas.
* Sukupuolen valinta: Valitse joko mies- tai naisnimet (tai molemmat paritilassa).
* Sukunimen täysi kontrolli:
* Pakota sukunimi: Aseta tietty sukunimi (esim. -S Nieminen) kaikille nimille. Täydellinen, kun haluat luoda useita henkilöitä samaan sukuun.
* Satunnainen generointi: Anna ohjelman valita sukunimi kattavasta sukunimilistasta.
* Hienosäädä todennäköisyys: Säädä keskinimen esiintymistodennäköisyys (0–100%).
* Tämä on enemmän kuin nimi: Tämä on henkilökohtainen historia generaattori.


[[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]
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