Valahogy mindig sikerül olyan játékokba botlani, ahol aztán jól bele kell nyúlni a fájlokba, ha az ember le akarja cserélni a szöveget. Mai alanyunk pedig nem csak programozási szempontból, de nyelvészetileg is egy érdekes eset.
A Chants of Sennaarban egy bábeli torony aljában ébredünk, melynek emeleteit különféle népek lakják. Mind a saját nyelvüket beszélik, merőben eltérő írásrendszerrel és nyelvtannal – a célunk pedig megérteni és lefordítani őket, s ezáltal rálelni a múlt elfeledett titkaira.
A fordításnak egyrészt van egy érdekes nyelvészeti oldala: a szöveg itt ugyanis nem csak körítés, hanem ténylegesen játékmechanikai elem, és a játékmenet középpontjában áll. Ahogy fokozatosan megismerjük az egyes idegen írásjelek jelentését, úgy kell meglévő ismereteink alapján kitalálni a hiányzó láncszemeket. Ennek azonban a fordításban is meg kell jelennie; nézzünk egy egyszerű példát:
I love you
Szeretlek
Figyeljük meg, hogy az eredetihez képest (alany-állítmány-tárgy) kiesett két teljes szó, és ahelyett, hogy pl. „Én szeretlek téged”, a magyar egyetlen igébe gyúrja össze a teljes mondatot. Ezzel nincs is általában semmi baj, itt azonban fejben kell tartanunk azt is, hogy a fordítás alapján kell majd kitalálnia a játékosnak az eredeti nyelvtant és a szavakat.
Könnyen lehet például, hogy egy nyelv kötött szórendben mindig a tárgyat veszi előre, és állítmánnyal zárja a mondatot („You, I love”), de olyan is akadhat, hogy a bizonyos szófajú karaktereknek van valami jellegzetessége, például egy vonal vagy pötty az oldalán. Külön érdekes az az eset, amikor két játékbeli nyelv között kell fordítanunk, és harmadik nyelvként bukkan fel a játékos szövege.
A fordítás, a többi hivatalos nyelvhez hasonlóan tehát a szokásosnál terjengősebb és erősen követi a játékbeli nyelvek nyelvtanát. Mégis, a magyar nyelv szépsége, hogy ilyen nyakatekert körülmények között is olvasható tud maradni – ezt pedig azért nem mindegyik nyelv mondhatja el.
***
Térjünk rá a fordítás technikai részére, merthogy itt is akadtak meglepetések. Játékokban a leggyakoribb megoldás, hogy a szövegek alapvetően egy közös helyen, pár fájlban vannak tárolva, főleg, ha sok hivatalos nyelvet kell támogatni. Itt viszont az alkotók egy érdekes megoldást választottak: a játék minden pályájának minden objektuma rendelkezik a rá vonatkozó összes sor másolatával. Minden ember, minden kirakós, tábla, felirat, kapcsoló, és persze minden menüelem is rendelkezik a teljes szövegkönyv egy-egy kis darabkájával.
Ha jobban megnézzük a játék kódját/fájljait, szerencsére azért találunk ebben némi rendszert: az egyes sorok egyedi azonosítóval rendelkeznek, amiket összegyűjtve kirakhatjuk végül a teljes szöveget. Ha pedig ennek a fordításával készen volnánk, kezünkben a teljes szövegkönyvvel ismét csak bebarangoljuk a pályákat, és kiosztjuk az egyes objektumoknak a hozzájuk tartozó, immár magyar sorokat: összesen 123 fájlban és kb. 1200 helyen.
Ez egy kifejezetten érdekes programozási feladat: a Unity fájlokat először ki kell tömörítenünk, azoknak feldolgozni a struktúráját, megkeresni, hogy fizikailag hol vannak benne az objektumok, majd beolvasni és feldolgozni azokat is. Ezután bejárjuk a lehetséges pályaelemeket, megnézzük, van-e náluk szövegdarab, és ha van, lecseréljük. Ha kész vagyunk, mehet minden vissza: újraépítjük az objektumokat, visszaírjuk őket a fájlon belül a fizikai helyükre, visszatömörítjük az egészet, és mehet a lemezre.
A tömörítés egyébként meglepően időigényes feladat, viszont az egész folyamattal együtt remekül párhuzamosítható: egy jó processzor pár másodperc alatt végig tud szaladni 100 kicsi fájlon, amíg a nagyok dolgoznak. Azért megijedni sem kell, 10 éves gépen is ki lett próbálva a telepítő, legfeljebb egy kicsivel tovább fog futni.
Összességében egy érdekes, sok tekintetben szokatlan projekt került most lezárásra, remélem, meg is hozta a kedveteket kipróbálni. A fordítás immár elérhető a https://mmatyas.github.io/forditasok/sennaar/ címen; jó szórakozást!
Összesen 4 hozzászólás érkezett
00:19
Köszönöm.
07:41
Köszönöm! Egy ideje már a kívánságlistámon van :)
20:17
Szuper, gratulálok hozzá! Egyszer igyekszem majd sort keríteni rá. Eszembe jutott róla egy másik játék, mi is volt a címe... Heaven's Vault! Szerintem érdemes kipróbálni, nekem tetszett annak idején.
https://www.gamekapocs.hu/tag/warg8/blog/12006/linux_mar_nem_csak_tech_zseniknek
18:53
Köszönjük!