“Egy hatalmas világ, amiben mindenhol éppen történik valami, a küldetések dinamikusan generálódnak”
A vájtszeműek már biztos sejtették, hogy egy ilyen bejegyzés is fog születni, ahol kombinálom a dinamikus világokat a maslowi szükségletekkel. Nézzük az alapfelvetést: A dinamikus világokban a dinamikusság egyik alapfeltétele, hogy a scriptelt, előre tervezett események helyett (vegyük ide a manuálisan kontrollált ad-hoc eventeket is) a benne lévő szereplők viselkedjenek valahogy, a saját AIjuk döntései alapján. Egy szép példa erre az Oblivion Radian AI-ja, ami hasonló dolgokat céloz meg. A legfontosabb vonása az én elképzelt rendszeremnek az együttműködés megvalósítása, azaz az a tény, hogy a “küldetés” egy játékban az semmi több, mint egy szolgáltatás/javak megvásárlása a játékostól.
De kezdjük inkább az alapoknál. Több ponton is felhasználhatjuk a szükségleti piramist:
- Az egyedek viselkedését leírhatjuk egy szükségleti piramissal
- Az életjáték működését is befolyásolhatjuk egy megfelelően specifikus piramissal
- Valamint küldetéseket generálhatunk az igények kielégítéséhez
A kettest igazából ki is ejteném helyből, mert bár lehet ilyet csinálni, valószínűleg egyáltalán nem praktikus. Az elsőt, bár ki lehetne, nem akarom most kifejteni nagyon részletesen, inkább csak említésszerűen, hogy a harmadikat megfelelő kontextusba helyezzem, mert elsősorban az az, amiről most írni akarok.
Bár az emergence egy nagyon hasznos tool tud lenni, ha lehetőségünk van rá, érdemes többrétegű szükségleti hierarchiát építeni helyette, azaz az egyednél implicit megfogalmazott csoportcélok helyett a csoportot ki kell emelni önálló entitásnak, és annál kell az ahhoz tartozó célokat explicit megfogalmazni. Például, a dinamikus világokban leírt példánál maradva, egy falusinak vannak saját igényei, de lehetnek olyanok is, amik tulajdonképpen a falu igényei. Például, minden falusinak fontos, hogy a kút tiszta maradjon, amit megfogalmazhatunk mindenkinél, mint saját célt, de létrehozhatunk egy virtuális “falu” entitást, ahová elkülönítjük ezeket az igényeket, és a falusiak igényeiben ezt mint örökölt vagy beépített igényt jelenítjük meg. A különbség az örökölt és beépített igények között a következő: ha örököljük az igényt, akkor azok a falusi saját igényeként jelennek meg, a megfelelő szinthez hozzárendelve, és azokat a falusi is a sajátjainak tartja. Ez a megoldás gyakorlatilag egyfajta emergens viselkedés, ahol csak absztrakt módon különítjük el a csoportra jellemző igényeket. Ezzel szemben a beépített igények egy saját szintként, elszeparálva jelennek meg az egyed igényei között, mondjuk van egy extra szükséglet a harmadik vagy negyedik szinten, ami arról szól, hogy “figyelembe veszem a falu igényét is”. A kétféle megoldásnak számos előnye és hátránya van, amiket most nem fogok leírni, mert részletkérdés, és a jelenlegi témát annyira nem érinti.
A témánkra visszatérve, és immáron a harmadik pontot tárgyalva, nézzünk egy példát egy dinamikusan generált igényre. A falu kovácsa szeretne meggazdagodni, ehhez többet kell dolgoznia. (+ egyéb lehetőségek, erről majd később). A munkáját lenne is kinek eladni, de kellene neki még vas. A kereskedőktől az összeset felvásárolta, de még ez sem elég.
Hogyan gyűrűzik szét ez az igény: Először is, a kovács elmondja boldog-boldogtalannak, hogy kellene neki még vas, jó árat fizetne érte. Elmondja a játékosnak is, ha az szóba áll vele. Valamint persze a falusiaknak is, akik az ilyesmi iránt érdeklődő kalandozónak meg is említik. Másodszor, a kereskedő, akitől az összes vasat megvették, legközelebb nagyobb adagot hoz.
Tegyük fel, hogy több játékos is hallja ezt, és hoznak vasat. Az első adagot persze örömmel veszi a kovács, de egy idő után már se pénze nincs rá, se helye, ahol tárolja, úgyhogy megmondja az ekkor érkező játékosnak, hogy “bocs, már van elég vasam”. Közben a kereskedő is befut, annak is van egy csomó vasa, úh nem veszi meg a játékostól. A kovács viszont, mivel többet dolgozott, és most több a pénze, felvesz két kovácsinast.
Másfelől, az is megtörténhet, hogy nem hoznak a játékosok vasat, de a kereskedő sem, mert megtámadják a rablók útközben. Ekkor a kovács ideges lesz, és keres (aktívan) egy kalandozót, akit elküldhet az ellopott vas visszaszerzésére. Talán több kalandozót is felfogad, de az is lehet, hogy egy kalandozó alkut köt vele, hogy ne fogadjon fel mást, és mi legyen a díjazás.
Mi történik itt? Egyrészt, a küldetés, mint olyan, nem abszolút érvényű. Ha “felveszed a küldetést”, az nem feltétlenül jelenti azt, hogy jutalmat is fogsz kapni érte, egyszóval van egy bizonyos kockázata a dolognak. Ráadásul, magát a küldetést nem is csak a kovács adja, hanem a falusiaktól is hallod, és a kovács akkor is megveszi tőled a vasat, ha történetesen nem beszéltél vele korábban erről, de valahonnan megtudtad, és elsőként érkeztél. Igencsak fontos az a vonulat is, hogy egy igény, ha nincs kielégítve, egy idő után más igényt szülhet. Ugyancsak érdekes az a rendszer, hogy lehet “alkudozni” egy küldetés kapcsán, az árról, teljesítés időpontjáról vagy éppen a kizárólagosságról. A küldetést gazdasági megfontolás szülte, azaz a kovács azért fog csak pénzt adni, ami neki pénzt termel, vagy valamilyen szempontból hasznos.
A téma szempontjából azonban a legfontosabb momentum az, hogy mi szüli az alapküldetést: a kovácsnak az a célja, hogy gazdagabbá váljon. Ugyanilyen módon, a falunak is lehetnek igényei. Például egy egész falu szintjén jelentkező igény, a sárkányos történés kapcsán, hogy ölje már meg valaki a szemét sárkányt. Aztán, ha ez már megtörtént, a falu újjáépítése is közös igény. Ezek mind-mind generálhatnak kisebb, kapcsolódó küldetéseket, de egy magas szintű motiváció is megjelenik itt, ami összefogja ezeket, és ez a fent leírt módon tükröződik a falusiak igényeinél is.
Ezeket az igényeket nem kell teljesen dinamikusan számon tartani és real time számolni. Ez hatalmas kapacitást igényelne, és szerintem elég jól szimulálható magasabb szintű kalkulációkkal. (Egy ilyen világban az erdőben eldőlő fa nem generálna hanghullámokat, ha nem lenne ott játékos.) Azon a szinten kellene megfogni őket, ahol a játékosok belépnek a képbe: azok az igények, amelyek értékelhető játékélményt adnak, küldetések formájában is megjelenhetnek – de egy konkrét határidővel, amivel a nem játékos karakterek által lefolytatott interakciót szimulálnánk, és ami nem lenne ismert a játékosok számára. Természetesen nem jelenne meg minden mindig, valamilyen szinten véletlenszerűen kell felajánlani őket, hogy sokkal változatosabb élményt kapjon a játékos. Az egyedek szintjén általában egyszerű, solo vagy casual küldetéseket generálnánk, ami lehet kevésbé veszélyes is, és az egyed saját szükségén alapul, és van gazdasági vonzata. A csoport szintjén megjelennek a nagyobb lélegzetvételű, csoportos vagy raid küldetések is, de megmaradnak a sima, egyszerű küldetések is.
Nem közvetlenül tartozik ide, de nagyon hasonló az is, ahogy az eventek hatása megjelenik az egyedek életében. Például, a sárkány legyőzése a falunak egy új resource-ot teremtett, (sárkánycsont) ami aztán fellendíti a falu gazdasági életét. Az ilyen dolgok megfogása sokat ad ahhoz, hogy a világ mennyire tűnik reálisnak, dinamikusnak a játékos számára.
Térjünk vissza arra, amit a kovácsnál megemlítettem: Vannak más lehetőségei is, hogy meggazdagodjon. Elmehet kincset keresni. Elmehet egy nagyobb településre, ahol több pénzért kamatoztathatja a tudását. Bűnözésre adhatja a fejét. Az, hogy ezek közül mit választ, a véletlenen és a személyiségén múlik – ami lehet kézzel beállított vagy random generált is.
Az egyedek szükség alapú viselkedéséhez kapcsolódóan még egy gondolat: ügyesen megalkotva a rendszert eljuthatunk arra a pontra, ahol a rablók önállóan szerveznek egy rajtaütést a kereskedőkön az úton, ahelyett, hogy ezt kézzel kellene beléjük drótozni. Amit mindenképpen szeretnék elkerülni, az az, hogy az erdő tele legyen random spawn pontokkal, ahol véletlenszerűen fog megjelenni a rabló, medve vagy a vaddisznó. A rabló is egy gondolkozó lény, szeret csoportban járni. Ennek egy érdekes mellékhatása az, amikor a rablók az őrség megerősítésével reagálnak arra, ha valaki elkezdi öldökölni őket, azaz csoportosan reagálnak a kívülről érkező veszélyre. Ez természetesen lehet egy csoport szintjén jelentkező igény, hiszen a rablók, mint olyan, egy csoport.
Az elkövetkezőkben akarok még írni majd olyan dolgokról, hogy szerintem miket lehetne még jobbá tenni az MMO-kban. Némelyik bejegyzés szervesen fog kapcsolódni a dinamikus világokhoz, mások bármely mmo-ban megállnák a helyüket.
A reklám után folytatjuk.