-
szigetva: @Sándorné Szatmári: Kérlek, fejezd be a hülyeséget. Egyszer-kétszer talán vicces, de most ...2024. 11. 13, 12:05 Szótekerészeti agybukfenc
-
Sándorné Szatmári: @Sándorné Szatmári: 12 kiegészítés: -A mai angolban a "kulcs" szó időben csak oda helyezhe...2024. 11. 13, 11:33 Szótekerészeti agybukfenc
-
Sándorné Szatmári: @szigetva: "..„ké” milyen meggondolásból jelentene 'eszközt', abba bele se merek gondolni....2024. 11. 13, 10:55 Szótekerészeti agybukfenc
-
szigetva: @Sándorné Szatmári: Metaforák helyett akkor mondd azt, hogy nt > nn. (Egyébként ezt se ...2024. 11. 13, 10:42 Szótekerészeti agybukfenc
-
Sándorné Szatmári: @szigetva: 9 Gondolom félre értettél..: "....Csakhogy akkor a „keményebbé vált” volna" írt...2024. 11. 13, 10:06 Szótekerészeti agybukfenc
Kálmán László nyelvész, a nyest szerkesztőségének alapembere, a hazai nyelvtudomány és nyelvi ismeretterjesztés legendás alakjának rovata volt ez.
- Elhunyt Kálmán László, a Nyelvész, aki megmondja
- Így műveld a nyelvedet
- Utoljára a bicigliről
- Start nyelvstratégia!
- Változás és „igénytelenség”
Kálmán László korábbi cikkeit itt találja.
Ha legutóbb kimaradt, most itt az új lehetőség!
Ha ma csak egyetlen nyelvészeti kísérletben vesz részt, mindenképp ez legyen az!
Finnugor nyelvrokonság: hazugság
A határozott névelő, ami azt jelenti, hogy ‘te’
Az oroszok már a fejünkön vannak!
Mit csinál a játékfejlesztő, ha ötvenezer vérszomjas sárkánynak kell egyedi nevet adnia? Hogyan alkossunk könnyen és gyorsan tetszőleges nyelvre hasonlító halandzsaszöveget? Miért óvakodjunk az ehető költőtől? Cikkünkből mindez kiderül, és még ingyen játékok is vannak benne!
A játékprogramok egyre nagyobbak lesznek, a felhasználók igényei is egyre nőnek. A fejlesztők munkaereje azonban véges, úgyhogy a játékipari cégek tíz körömmel kapnak minden időmegtakarító módszer után. A procedurális tartalomgenerálás épp ilyen – de pontosan micsoda is az? Nyelvi tartalmakat is létre lehet hozni vele, és ha igen, hogyan? Összeállításunkban szemléltetésül három ingyenesen letölthető, Windows, Linux és Mac platformokon egyaránt futtatható játékot is bemutatunk!
Végtelen város
A procedurális tartalomgenerálás lényege, hogy a videojátékba kerülő tartalmakat nem egyenként, „kézzel” készítik el, hanem egy olyan eljárást használnak, amely automatikusan hozza őket létre néhány előre megadott szabály alapján. Ez kicsit hasonlít ahhoz, ahogy az emberek használják a nyelvet – nincsen az agyban minden lehetséges mondat előre eltárolva, hanem a meglévő alkotóelemekből a nyelvtan segítségével jönnek létre a mondatok.
Bármit létre lehet hozni így, ha az embernek van türelme kitalálni a megfelelő szabályokat. Létezik procedurálisan generált zene – ez nagyon hasznos, mert az ismétlődő dallamok nem ragadnak bele a játékos fülébe a hosszú menetek során –, vannak automatikusan létrehozott tájképek, városok, galaxisok. A következő videóban egy olyan program bemutatója látható, amely tetszés szerinti méretű éjszakai városképet állít elő, három dimenzióban. A készítőnek saját bevallása szerint körülbelül ötven órájába került elkészíteni a programot, de innentől fogva tetszőleges számú várost csinálhat vele magának. (Azért ezt a példát választottuk, mert ha valakit részletesebben is érdekel a téma, a fejlesztő weblapján mindegyik lépésről olvashat közérthető angol nyelvű összefoglalót.)
A procedurális módszerrel előállított tartalomnak az időmegtakarítás mellett más előnyei is vannak. Nem ismétli önmagát, habár ha valaki sokáig nézi, azért egy idő után ezt is unalmasnak találja. Az előállítási szabályok kevesebb helyet foglalnak, mint ha minden előre lenne rögzítve. A szabályok végrehajtásához azonban nagyobb számítási teljesítményre van szükség, éppen ezért a játékiparban gyakori az a módszer, hogy procedurálisan létrehozzák a kívánt anyagot (és ezzel időt spórolnak), majd eltárolják, hogy ne valós időben kelljen újra meg újra előállítani (így pedig számítási kapacitást spórolnak). Így ugyan a tartalom mindig ugyanolyan lesz és nem változik minden futtatáskor, de van, amikor ez inkább előny, mint hátrány, például ha a játékosnak az a feladata, hogy egy városban tájékozódjon. A hagyományos tartalomelőállítással is lehet kombinálni a módszert: például a játékos által bejárható területen az épületek nagy részét procedurálisan alkotják meg – így a készítők nem őszülnek bele abba, hogy egyenként rakosgassák az ablakokat a házfalakra –, de beletesznek néhány egyedi elemet is.
Az oldal az ajánló után folytatódik...
Mára már számos olyan segédprogram létezik, amely bizonyos fajta tartalmakat állít elő, így a fejlesztőknek elég ezeket megvásárolniuk és használniuk. Például sok játékban a SpeedTree programmal készítik el a fákat. Ebben a videóban végignézhető, ahogy a fejlesztő egy golfpályát erdősít be procedurálisan: beállítja az előállítási szabályok fontosabb paramétereit (például azt, hogy mennyire legyenek közel egymáshoz a növények), majd néhány fát áthelyez, hogy a végeredmény jobban mutasson. Így sokkal hamarabb megvan a munkával, mintha egyenként kellett volna a fákat megterveznie és lerakosgatnia, és a jól kigondolt szabályoknak köszönhetően mégis valószerű az összhatás.
Hol itt a nyelv?
Az automatikusan előállított tartalmakat gyakran el is kell nevezni – például egy térképen a városneveket, vagy a játékban található varázstárgyak nevét nem biztos, hogy egyenként szeretné kitalálni a fejlesztő. Már az először 1984-ben megjelent Elite űrhajós-kereskedőszimulátorban is procedurálisan generált bolygónevek és -tulajdonságok szerepeltek:
Az érdeklődők egy OpenOffice táblázat segítségével élesben is kipróbálhatják az eredeti algoritmust. (Ha valaki magát a játékot szeretné kipróbálni, az Elite modernizált változata, az Oolite ingyenesen hozzáférhető.) Rögtön láthatjuk, hogy bizony meglehetősen furcsa eredményeket is kaphatunk a használatával. Egy földönkívüliek által lakott távoli bolygónak még csak-csak elnézi a játékos, ha XEAQU a neve, vagy ha fő exportcikke az „ehető költő”, de sokszor valószerűbb kifejezésekre van szükség.
Az OpenTTD ingyen letölthető és teljes magyar nyelvű kezelőfelülettel rendelkezik. A magyar OpenTTD FanSite pedig a számos hasznos tudnivaló mellett olyan, a hazai közlekedésbarátok szívét megdobogtató kiegészítőkkel is szolgál, mint a MÁV vagy az Ikarus készlet, igény szerint BKV-festéssel.
Viszonylag egyszerű megoldás, ha előre megadott apróbb darabokból rakja össze a program véletlenszerűen a neveket. Itt csak arra kell vigyázni, hogy minden lehetséges kombináció értelmes legyen. Ezt például úgy lehet elérni, hogy korlátozzák, melyik elem hol szerepelhet. A magyar településneveknél a Felső- vagy Alsó- rendszerint a név elején található, a -háza vagy -falu pedig a végén. Valóban így állít elő magyar térképet az OpenTTD közlekedési-gazdasági szimulációs játék. A végeredmény sokszor vicces, de egészen hihető: akár létezhetnének is olyan magyar települések, mint Felső-Balatonladány vagy Vámoskürt. A Békésvölgy és Budakereszt jellegű neveket elnézve pedig elgondolkodhatunk, vajon nem így születnek-e a lakóparkok nevei...
Magyaros halandzsa
Eddig minden szép és jó, de vannak olyan nyelvi adatok, amiket csak igen körülményesen lehet előállítani a korábban bemutatott módon. Például ha egy kitalált nyelvhez szeretnénk szavakat alkotni, az Awkwords kis webes segédprogrammal a betűket csoportokba sorolhatjuk, és megadhatunk szótagszerkezeti szabályokat, de ez nem kis pepecseléssel jár. (Habár szerintünk a pepecselés rendkívül szórakoztató, úgyhogy mindenki adjon egy esélyt neki!) Hogyan határozzuk meg az alkotóelemeket, ha például németesen vagy magyarosan hangzó halandzsaszövegeket szeretnénk generálni galaktikus birodalmunknak?
A számítástudomány csodákra képes – a Markov-láncnak nevezett eljárással egy meglévő szövegből új zagyvalékot tudunk csinálni. A spammerek is előszeretettel használják! A módszer lényege, hogy azok az elemek, amelyek az eredeti szövegben gyakran követik egymást, a frissen előállított véletlenszerű szövegben is gyakran fogják egymást követni. Minél több elemre terjesztjük ki a „követés” fogalmát, annál jobban fog az eredetire hasonlítani a végeredmény (ezt értik az alatt, hogy „hányadrendű” a Markov-lánc). Szemléltetésül beleraktuk ezt a cikket egy Markov-alapú szöveggenerátorba – lássunk néhány eredményül kapott mondatot!
1-rendű: hodkevédenúgy átn dema A ny azitetétetálenmez at, rolódál, pón, rdőly jészzigy vezéprot hokogeisidaselárinipe Ig
2-rendű: Végesztőretnek), minden lésül ben ges ják a vandzsa elő észon. A progy azt, dalkos – ítsékodhat.
3-rendű: Magyan, hazai változata, hogy adjon magyban mutassonlítájén tíz köszön láthatjuk, mennyítása szák az a méretű és játékban egy Markov-alatt, hogy goldául ha az Elite pedig ugyan,
4-rendű: Az érdeklődők munkaereje azonban végis valószerű az összes lényege, hogy procedurálisan elő szabályoknak köszönhető:
5-rendű: A procedurális névgenerált bolygónak még csak-csak elnézi, azért ezt a például németesen hangzó halandzsaszövegben is gyakran fogják egymást körülbelülettel rendelkezik.
6-rendű: Eddig minden futtatáskor, de van, amikor ez inkább előny, mint a MÁV vagy a játékosnak az a feladata, hogy egyenként szeretnénk szavakat alkotóelemeket, vagy a játék.
Markov-láncokat használ például a Battle for Wesnoth fantasy taktikai játék az egységek nevének előállítására. Egy hosszú lista tartalmazza a különböző fajokra – ember, tünde, sellő... – jellemző neveket, amelyekből fajtól függően másod- vagy harmadrendű Markov-láncok hozzák létre a tényleges elnevezéseket. A lentebbi képen látható Verkan sárkány, vagy a cikk bevezetőjében szereplő Messa mágus egyaránt ennek az eljárásnak köszönheti a nevét.
A Wesnoth is ingyenes és szintén létezik magyar fordítása, habár a „perzsekény surranó” (eredetiben Drake Glider, kb. 'vitorlázó sárkány') és hasonló csodák minket elriasztottak a magyar változattól...
Webes érdekességek
PHP Markov chain text generator / Forráskód és rövid ismertető
Letölthető játékok