csütörtök, január 22, 2026

a verse-re vártunk, elejitől fogva

Megnéztem ezt a bemutatót a Verse nevű programozási nyelvről, amin Tim Sweeney 20 évet gondolkodott és most felvett egy csomó embert, hogy meg is csinálják és talán majd valamikor az Unreal Enginet is ebben fogják fejleszteni. Az a vicces, hogy mind olyan dolgok vannak berakva újdonságként, amelyek nekem is nagyon jól fognának a játékomba a pályák generálásához. Milyen kár, hogy nem pár év múlva fogtam neki a játéknak, amikor a Verse már elérhető mindenkinek (remélem lesz ilyen verzió is, nem csak a UE-be beépített, szerintem Tim rendes lesz és elérhetővé teszi mindenkinek, főként mivel csak így lehet igazán atombiztossá tenni egy programozási nyelvet, ha sokan próbálhatják ki és mindenki kicsit másképp próbálja használni mint ahogy a többiek). Látszik, hogy játékok programozására találták ki a Verset, annyit mer újítani és olyan dolgokat, amelyek bizonyára nagyon sok más területen hasznosak lesznek, de én a játékoknál látom igazán a hasznukat.

Szóval most szeretnék elaludni és felkelni amikor a Verse már kijött. Amit én csináltam, az egy béna próbálkozás hasonló ötletek összefércelésére, de nem működik egy igazi egészként az én rendszerem, ezért is haladok ilyen lassan a használásával, mert mindig kitalálok valami jó módszert egy probléma megoldására és aztán rájövök, hogy mégse megy, aztán két napig kell győzködnöm magam, hogy ne írjak megint mindent újra.

Csak néhány példa: az én szabályaimban is első rendű elem az, hogy nem sikerül alkalmazni őket, ahogy a verseben is minden kifejezésnek lehet értéke, vagy failelhet. Nálam is lehet ettől eltekinteni, vagy tovább görgetni a failt, azaz ha egy szabály egy szabályon belül failel, akkor a külső szabály eldöntheti, hogy folytatja, vagy ő is failel. Aztán nálam is vannak változók, amelyek több értéket vehetnek fel és ha valami failel akkor automatikusan újrapróbálja a rendszer a többi lehetőséget, sőt, még backtracking is van, ha már egyszer valami sikerült, akkor nem örökre köti meg az az érték azt a változót, hanem a többi lehetőség is sorra kerül, ha odáig visszabontja a kifejezésfa kiértékelését. Sajnos a globális mellékhatásokra, amelyeket lua scriptinggel lehet csinálni, ez nem vonatkozik, pedig milyen hasznos lenne. Az egész késleltetett effekt rendszer kicsit olyan, mint ahogy én kiértékelem egyszer az egészet visszaforgatható módon és utána amikor megvan a végeredmény, akkor még egyszer újracsinálom a pályát, de akkor már a végső paraméterekkel (gyakorlatilag a voxel értékével, nem az egyedi azonosítójával). Az unifikáció berakása mekkora királyság, játéklogikát a legszebben tuti így lehet írni, ilyen nálam nincs, de amióta csak játéklogikát írtam a különböző játékokba amelyeken dolgoztam valamikor, mindig erről álmodtam. Nálam pl. az is elsőrendű konstrukció, hogy egy szabálynak büdzséje van, azaz hányszor lehet alkalmazni, amit mondjuk arra lehet használni, hogy ugyanannyiszor használjon balra fordulást mint jobbra fordulást, hogy kiegyensúlyozott legyen a generált akármi, ezt egy full programozási nyelvben mondjuk triviális megcsinálni, de azért talán mégis jobb, hogy nem általános programozási nyelvnek fogtam neki, hanem csak a pályákat generálom vele.

Na nem baj, majd egyszer talán újraírok mindent Verseben és végre megcsinálhatok minden hülye ötletet amit az utóbbi 7 évben nem felejtettem el leírni. Most meg kitaláltam, hogy kézzel megcsinálok egy adag minimális építőkockát és azokból majd véletlenszerűen fog építkezni a generátor. Ebben a rendszerben amim van, túl nehéz okosan építkezni, túl rigid (gyakorlatilag az van, hogy egy elem csak egy másikra építve határozhatja meg, hogy hova kerüljön, de csak mostanában értettem meg, hogy ennél sokkal nagyobb kontextus kell gyakran és persze sokkal bonyolultabb műveletekkel, mint amit én megengedtem eredetileg), hát majd bután építkezem.

Nincsenek megjegyzések: