Archive for » március, 2011 «

csütörtök, március 31st, 2011 | Author:

Bár a felhasználók által készített tartalom már évek óta vissza-visszatérő téma az MMOk kapcsán, eddig még nem láttam olyan megoldást, ami igazán kielégítő lenne. Járjuk körül egy kicsit a témát, nézzük meg, milyen falakba ütközik, aki ilyen rendszert akar készíteni. (Látszik, hogy ezt a témát eddig mindig angolul gondoltam végig, keresnem kell a magyar szavakat, hogy leírjam, amit akarok.)

A feladat lényege: Mit értünk az alatt, hogy tartalom? 3D modellek és textúrák? Zene? Plug-in? Különleges szörnyek, fegyverek, tárgyak? Küldetések? Zónák?
Bár ezek közül mind lehet értelmes, a Plug-in-ek és a küldetések (zónák) viszik a prímet, a többit leginkább csak ideiglenes jelleggel láthatjuk. Én elsősorban a küldetések-zónák készítésére fogok most koncentrálni, de itt-ott megemlítek mást is.
Milyen elvárásaink vannak a feladattal szemben:

  • Szeretnénk, ha a játékosok észrevennék, hogy ez a tartalom különleges: Ha csak simán egy kard modelljét és textúráját alkotja meg egy játékos, sokszor abba futunk bele, hogy elveszik a tucatnyi hasonló dolog között, vagy stílusában annyira eltérő lesz, hogy nem illik a játékba. Egy küldetésnél sokkal több lehetőségünk van ezt láthatóvá tenni, de természetesen sokkal több lehetőségünk van elrontani is.
  • Szeretnénk, ha sokan lennének képesek ilyet alkotni különleges képességek nélkül: Definiálnunk kell persze, mi számít különleges képességnek, de általános elvárás, hogy például olyan valaki is tudjon mondjuk tartalmat létrehozni, aki nem különösebben járatos a számítógépek kezelésében vagy a programozásban.
  • Nem akarjuk, hogy a content visszaélésre adjon lehetőséget: Ha a játékos bármit szabadon megváltoztathat, akkor lesznek olyan játékosok, akik csinálnak magunknak egy bármit egy ütéssel megölő kardot, és néhány perc alatt max szinten lesznek, vagy a küldetésben lesz egy gomb, ami hirtelen 10000000 xp-t ad a játékosnak.
  • A játék üzemeltetése/fejlesztői részéről minimális (lehetőleg nulla) extra erőfeszítést igényeljen az új tartalom beillesztése a játékba: Ezek a legkorlátozottabb és legdrágább erőforrásaink, de bennük bízunk csak meg, hogy rendesen moderálni tudják a tartalmat, ha erre szükség van.
  • Az eszköz, amivel generáljuk a tartalmat, legyen nagyon rugalmas, és sokra képes, de teljesen hülyebiztos: Nincs is annál bosszantóbb, amikor a tool durván lekorlátozza, amit csinálunk, vagy éppen bármit meg lehet csinálni vele, de irtózatosan bonyolult a kezelése, vagy éppen tele van hibákkal vagy félreérthető dolgokkal. (ld. még második pont)

Részletesség: Ahogy mindig, az ördög itt is a részletességben rejlik, azaz a részletek mennyiségében. Ha túl sok részletet kell kidolgoznia, a felhasználó feladja a dolgot, és nem foglalkozik vele. Ha túl keveset, akkor nem tudja megvalósítani, amit szeretne, és ezért hagy fel vele. Ha közepesen sok a részlet.. akkor lesz néhány felhasználó, aki boldogul vele, de így is lesznek csalódott alkotók..

Szintkorlát: Ha megmondjuk, hogy az adott tartalom milyen szintre való, akkor rengeteg min és max szintű tartalmat kapunk. Ha nem mondjuk meg, hanem skálázhatóan oldjuk meg, akkor a korrekt skálázás fog rengeteg fejfájást okozni nekünk.

Jutalmazás: Jó lenne valami egyedi, különleges jutalmat adni annak, aki végigcsinálja a küldetésünket, és nem arra gondolok, hogy megjelenik egy deed/achievement/title valahol, hogy “Ez XY, aki megcsinálta a -Végtelen Csigák A Fülben- c. küldetést.”

Megtalálhatóság: Nem akarjuk, hogy az alkotás elvesszen a rengeteg hasonló között, de azt is szeretnénk, ha rengeteg küldetés születne a játékosok kezéből. Valahogy megtalálhatóvá, szűrhetővé kell tennem a küldetést.

A fentiek alapján, ha én szeretnék erre valamit alkotni, a következő megoldásokat vetném be:

  • Minden változtatható, de vannak sablonok és okos alapértelmezett értékek: Arra törnék, hogy nagyon sok részlet megváltoztatható/kidolgozható legyen, de igyekeznék minimalizálni a kötelezően megadandó/megváltoztatandó paramétereket.
  • Csinálnék egy “asset library”-t, azaz egy olyan közös helyet, ahol a tervezők megoszthatják egymással az alkotásaikat – szörnyek, pályák, scriptek, etc.
  • Csinálnék egy kifejezetten okos, sokrétű “értékelő” alkalmazást, ami segítene a paraméterek beállításában, hibák megtalálásában, taktikai és stratégiai értékelésben, skálázásban – és ez alapján egy pontszámot rendelne a pályához. Ez egy nagyon-nagyon nehéz feladat, de szerintem mindenképpen szükség van rá.
  • A pontszám alapján lehetővé tennék egy “jutalom” vásárlást, amivel az alkotó bizonyos keretek között megmondhatná, hogy milyen jutalmat ad a küldetése: tárgy, tapasztalati pont, pénz, extra titulus – mindennek lenne egy ára. (A titulust esetleg úgy oldanám meg, hogy ha elér egy bizonyos pontszámot a küldetés, akkor az “nehéz”, és a végrehajtásával automatikusan adok egy – alkotó által beállítható – titulust, de arra nem kell pontot költeni)
  • Az alkotásokat helyhez kötném, de rengeteg paraméter és statisztika alapján kereshetővé is tenném, pl. lenne lehetőség arra, hogy az eddigi játékok statisztikái alapján kiválasszam a populáris küldetéseket, vagy éppen azt, amit eddig csak nagyon kevesen tudtak végigvinni.
  • Minimális extra jutalmat adnék annak (mondjuk az első 30-nak), aki (a tervezőn kívül) először végigjátszik egy küldetést.
péntek, március 25th, 2011 | Author:

Ez a bejegyzés is annyit keringett már a fejemben, hogy tisztára elszédült, de látni is fogjátok, milyen kis szétszórt darab. Nem arról fog szólni, hogy hogyan csináljunk browser based, vagy facebook app jellegű MMO-t; a cél az, hogy rávilágítsunk, mit tanulhatnának az MMO-k a social media-ból.

Az utóbbi néhány évben kiadott mmo-k chat ablakai elég hasonlóak lettek: Kicsit átlátszó, tabos, van pár alap tab, mint combat, general meg messages, és ezeken ömlik be válogatás nélkül a rengeteg értelmetlenség. Lehet új tabokat létrehozni, amire saját filtereket állíthatunk be, pl. tells, guild, meg ilyen misztikusakat, mint system messages és user chat 3. Bizonyára van ember, aki szerint ez a chatelés netovábbja az MMOkban. Szerintem nem.

Úgy gondolom, az MMOk tanulhatnának abból, hogy hol és mennyi idejüket töltik az emberek beszélgetéssel.. nézzük, mit lehetne tanulni a social site-okból.

Standard Chat: Twitter & Wave
A twitter látszólag ugyanaz, mint amit kapunk most a chat-en: Egy rakás ember dumál mindenfélét, mi meg ezt látjuk. Ám ha ez így van, akkor mi a különbség az irc és a twitter között? A barátok. A twitteren én választom ki, kit akarok látni, és azokat fogom alapból. Megnézhetem persze, mit beszélnek mások, követhetem őket, figyelhetem a trendeket, nézhetem, hogy melyik bejegyzés volt a barátaim favoritja.. azaz, tömören, felépítek egy kapcsolati hálót azokból, akiknek a véleménye érdekel. Tag-ekkel helyettesíthetem a mostani csatornákat is, ha olyan nagyon akarom.
A Wave szerintem egy zseniális ötlet betegeskedő megvalósítása volt. Nagyon imádtam a conversationökbe rendezett társalgást, amelyeket kedvemre nyitottam, csuktam, elrejtettem, lenémítottam. Ez hiányzik a játékokból is nekem: a számomra érdektelen témák becsukása.
Ha kombináljuk a kettőt, az is könnyedén megoldható, hogy szóljon a chat, ha egy – akár bezárt – conversationben megjelenik a nevem pl. @Vagabond formában.

De ez nem minden. Ha már van egy barátokat tartalmazó listám, akkor érdekelne az is, hogy mi történik velük. Akkor is, ha én éppen nem vagyok belépve. Minden további ragozás nélkül: szeretnék egy Facebook státusz update-hez és falhoz hasonló lehetőséget a játékban, ahova beidézhetek egy akármilyen chat üzenetet (813-at sebeztél a szürke farkason), vagy kézzel adhatnék hozzá egy státuszt (5. győzelem láncban az arénában, hurrá!). A barátaim ugyanezt tennék, és lenne lehetőségem arra, hogy kövessem, mit csináltak.
Ha más falára is írhatnánk üzenetet, akkor megoldódna az a másik problémám is, hogy miért kell odamennem egy rohadt postaládához, hogy megnézzem, mit küldött valaki. Ha csomagot/tárgyat küld, akkor elfogadom, de legalább azt szeretném látni, bárhol vagyok a világban, hogy ki és milyen topiccal küldött nekem levelet. Nem egyszer jártam már úgy, hogy elmentem a városba a levelesládához, hogy kiderüljön, hogy lejárt az 1ik aukcióm, erről jött egy levél. Marha fontos volt..

Ezzel amúgy még egy dolognak megteremtenénk az alapjait: geo check-in. Érdekes lenne bámulni valakinek a falán, hogy rendszeresen becsekkel egy instance boss roomjában. Vicces lenne titulusokat osztogatni az alapján, hogy hányszor csekkelsz be valahova. Akár még küldetéseket is lehetne csinálni erre – és ehhez gyakorlatilag minden adott, hiszen a virtuális világokban nincs szükség GPS-re a lokáció kiderítéséhez.

Van még egy ötletem egyébként, ami ennek a témának a kapcsán jutott eszembe, de inkább nem publikálom, mert az MMOkon kívül is van üzleti értéke, és még lehet, hogy egyszer fel is fogom használni. Ha így lesz, írok róla.

Category: Hobbi  | Tags: , , , , ,  | 2 Comments
kedd, március 22nd, 2011 | Author:

Csak egy apró arról, hogy hogyan képzelem el a dinamikus világokat meghajtó életjáték működését. A legfontosabb szempont, hogy nem realisztikus, hanem élvezhető játékot akarunk teremteni.

A világ területekre van osztva, ezek közül egy mondjuk Riverspleen Forest. Tegyük fel, hogy Riverspleenben éppen banditák vannak. Mit jelent ez:
Van egy banditatábor valahol az erdőben (nyilván nem bárhol, hanem egy előre meghatározott hotspoton) és gyakorlatilag itt spawnolnak a banditák. A spawnolt banditák a csoport és saját érdekeik szem előtt tartásával elkezdenek valamit csinálni – elmennek az erdőbe fát gyűjteni a nyilvesszőkhöz, vagy szerveznek egy rajtaütést, vagy valami más. Nyilván el is hullanak, amikor éppen úgy jön ki a sor, ilyenkor újabbak születnek helyettük a táborban.

A tábor maga egy instance. Ha a játékos (vagy inkább egy csapat játékos) megközelíti, akkor egy instance-ba fog bekerülni, ahol tud a táborban ölni banditákat, de alapvetően ilyenkor kikerül a való világból, és nem képes befolyásolni a banditák spawn-ját. Ennek két fontos szerepe van: egyrész megakadályozzuk, hogy a magas szintű játékos szórakozásból minden megjelenő banditát leirtson, ezzel kvázi teljesen eliminálva a területen a bandita jelenlétet, másrészt a banditatábor lesz a “raid content”, azaz az az összecsapás, ami megszünteti a területen a banditák uralmát.

Ha egy (vagy egy csapat) túl erős játékos jelenik meg, és bemegy az instance-ba, akkor ők ugyanúgy képesek végigirtani az instance-ot, mint az alacsonyabb szintű játékosok, és lesz a végén egy bossfight is, azonban ez nem generál területváltoztató eventet. Ezzel szemben ha egy megfelelő szinten lévő játékos vagy csapat lép be a táborba, és eljut a bossölésig, és persze le is csapja a bosst, akkor egy globális esemény indul el.

A terület szintjén ez abban nyilvánul meg, hogy többé már nem spawnolódnak új banditák. Azok, amik a területen vannak, ottmaradnak persze, de szépen lassan kihalnak. Azonban a kiürülés hatása a teljes világon/kontinensen/etc. érezhető lesz.

A következő életjáték update-nél észleljük, hogy kiürült egy vagy több terület. Ekkor a következő folyamat zajlik le:
- Az üres terület(ek)re véletlenszerűen generálunk új contentet
- A környező területeket bejárjuk és módosítunk az aktuális szintjükön.
- Számolunk egy kitöltöttséget, majd véletlenszerűen megváltoztatunk néhány területet úgy, hogy minden szintre legyen a kívánt mennyiségű terület.

Például, a fenti banditák kiirtása után egy sárkány érkezik. Ez nyilván egy sokkal magasabb szintű területté változtatja az egészet, hirtelen megjelennek a környéken a sárkányfattyak, óriás gyíkok, mittoménmik. A szomszédos területeket, megnézzük, hogy mennyire ütnek el a sárkánytól. A gyanúsan alacsony szintűeket (mint pl. a szomszéd, ahol éppen alacsony szintű élőhalottak vannak) kicsit megerősítjük, azaz ugyanazt a contentet erősebbé változtatjuk (most már nem csak zombik, hanem ghoulok is megjelennek majd) illetve ha nem lehet a megfelelő irányba változtatni, akkor kicseréljük másra (pl. nem lehetnek alacsony szintű sárkányos területek, ezért ha ilyet kéne csinálnunk, akkor a sárkány elrepülne és jönne helyette más, az adott szintre). Ezek után megnézzük, hogy a kontinens/világ szintjén hogy állunk a területekkel, és azt találjuk, hogy a szintek megemelése miatt most nincs elég alacsony szintű terület, úgyhogy egy okos algoritmussal addig módosítgatjuk a meglévő területek szintjét, amíg kielégítő lesz az eloszlás.
Ennek eredményeként persze lesznek majd itt-ott játékosok, akik olyan területen vannak éppen, ahol megváltozott a szint. Ez a dinamikusság egyik alaptétele: számíts a változásra. :)

Ezek a változások teszik egyébként lehetővé majd azt is, hogy az utazásnak és a felderítésnek legyen értelme. A játékos elviheti a hírt távolabbi területekre, hogy Riverspleen-nél megjelent egy sárkány, amit aztán a helyiek továbbadnak a többi kalandozónak. Nyilván az is egy értékes információ lehet, hogy mi a banditatábor pontos helye, úgyhogy ha a karakter megtalálja, és elég magas a térképészet skillje (ezt most csak úgy mondom..) akkor el tudja vinni ezt a hírt a falusiaknak, akik pénzjutalommal hálálják ezt meg.

Category: Hobbi  | Tags: ,  | 3 Comments
hétfő, március 21st, 2011 | Author:

“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.

péntek, március 18th, 2011 | Author:

Bár a cím azt is sugallhatná, nem az elmebetegekről fogok írni. Nem is tudok annyit róluk, hogy érdemben tudjak a témáról nyilatkozni, de ha tudnék is, akkor sem hiszem, hogy akarnék.
Ez a bejegyzés inkább afféle esettanulmány arról, hogy a korábbi fejtegetéseimet hogy lehet a “gyakorlatba” átültetni.
A Google AI Challenge általában egy olyan feladat, ahol írni kell egy programot, ami más programok ellen játszik egy egyszerű játékot. Volt már Tron, volt Planet Wars, és nemsokára lesz egy hangyás. Ez utóbbi arról szól, hogy van egy terület, rajta néhány hangya, akik kaját keresnek, hogy szaporodjanak, és ha összetalálkoznak, akkor harcolnak. Bár ez nem a feladat része, én ebben a bejegyzésben arra fogok koncentrálni, hogy a hangyákat egyedként kezeljem, és az egyének viselkedéséből alakítsak ki egy csoportos stratégiát (a blogon már korábban említett emergence témaköre). Az egyének viselkedéséhez pedig egy szükségleti piramist fogok alkotni.

Hogy is lássunk hozzá? Négy lépésre lesz szükségünk:

  1. A szabályok megértése
  2. Célok meghatározása
  3. Cél alapján a hozzá kapcsolódó szükséglet meghatározása
  4. Szükségletek priorizálása és csoportosítása

Először akkor írjuk le, hogy mik a szabályok:

  • Pontot ellenséges hangyák megölésért kapunk
  • A hangya X távolságra lát
  • A hangya Y távolságon belül harcol (X > Y)
    • A hangya akkor éli túl a harcot, ha hozzá képest Y távolságon belül több baráti hangya van, mint ellenséges
  • Ha a kajához képest Z távolságon belül hangya van:
    • Ha egyféle, akkor olyan hangya lesz a kaja helyén
    • Ha többféle (azaz harci helyzet) akkor a kaja megsemmisül

Célok -> Szükségletek

  • Minél több baráti hangyát szeretnénk -> Menjünk közel a kajához, ha látunk
  • Minél nagyobb területet szeretnénk átfésülni kajáért -> Álljunk távolabb a többi hangyától
  • Túl szeretnénk élni a harcot -> Ha kevesebben vagy ugyanannyian vagyunk, meneküljünk
  • Szeretnénk ellenséges hangyákat ölni -> Járjunk csapatban
  • Szeretnénk ellenséges hangyákat ölni -> Ha többen vagyunk, rohanjuk le
  • Jobb, ha megsemmisül a kaja, mint ha ellenséges hangya lesz -> Előbb vagy egyszerre érjünk a kaja hatósugarába, mint az ellenséges hangya, ha van olyan
  • Keressünk kaját -> Mozogjunk valamerre

És most jön a feladat legkomolyabb kihívása: a mérlegelés. Minden célra meg kell mondanunk, mennyire fontos, majd eszerint meg kell alkotnunk a piramist. Ki kell találnunk, hogy vannak-e olyan igények, amik egyenrangúak – egymástól függetlenek, de a fölöttük lévőknél fontosabbak – és ezeket egy szintre kell helyeznünk.
Az elsőre a legegyszerűbb módszer az összefésüléses priorizálás: fogok egy elemet, majd végignézem az eddig megalkotott prioritási listát, és megkeresem, melyik a legalsó elem, aminél még fontosabb, és az alá helyezem el. (ebben az elrendezésben alul lesz a lista legfontosabb eleme, ami megfelel a szükségleti piramis felépítésének)
Ezt nem lehet olyan nagyon látványosan megoldani egy ilyen bejegyzésben, úh inkább leírom az így kialakult listát (még1x: alul a fontosak):

  • Mozogjunk valamerre
  • Járjunk csapatban
  • Álljunk távolabb a többi hangyától
  • Menjünk közel a kajához
  • Ha kevesebben vagy ugyanannyian vagyunk, meneküljünk
  • Ha többen vagyunk, rohanjuk le
  • Előbb, vagy egyszerre érjünk a kaja hatósugarába az ellenséges hangyával, ha van olyan

Miket vonhatunk össze:
“Előbb vagy egyszerre érjünk a kaja hatósugarába.. ” Ez fontosabb, mint a második, mivel annak egy speciális ágát fejti ki. Nem összevonhatóak.
“Ha többen vagyunk / Ha kevesebben vagy ugyanannyian vagyunk” – kezdődik a következő két sor. Mivel egymást kizáró a feltétel, ezek a sorok egymástól függetlenek, így összevonhatóak egy szintre. Mindkettő fontosabb, mint a következő.
“Menjünk közel/Álljunk távolabb/Járjunk csapatban” Kössük össze az élelemszerzést azzal, hogy “falkában” járunk. Így biztosítjuk, hogy nem kószál el egy hangyánk kajanyomot követve, de erre utaló mozgásával húzza maga után a csoport többi tagját is, így van esélye eljutni az ételhez akkor is, ha az egy kicsit kiesik a látóköréből.
“Mozogjunk valamerre” Már csak egy maradt, nevezzük ezt önmegvalósításnak :)

Hogyan viselkedik az egyedünk? Ha kaját és ellenfelet is lát, megbecsli, hogy van-e esélye a kajához előbb v 1xe odaérni az ellenséges hangyával. Ha igen, akkor elkezd teperni.
Ha nem így történik, akkor a harci szituációt értékeli ki: “van esélyem hangyát ölni és túlélni?”. Ha igen, megpróbálja, ha nem, olyan irányt választ, amerre a legnagyobb esélye van elkerülni a harcot.
A következő szempont az ételszerzés a falkával: Ha látunk valahol kaját, akkor megyünk arra, ha ez csapatban megoldható. Ne felejtsük el, hogy ide már úgy jutunk el, hogy megvizsgáltuk és elvetettük a kajáért harcolást. Laza falkát építünk, hogy sokat lássunk a területből, de legyen közel a védelem, ha kell.
Ha viszont semmi ilyesmi nincs, vagy több, egyformán jó megoldás közül választhatunk, akkor választunk egy irányt, és arra mozgunk.

A valós probléma egyébként ennél sokkal bonyolultabb, de ez már egy jó alapozás, amiből nyerő stratégiát lehet alkotni. Legközelebb valószínűleg arról írok majd, hogy miyen módon lehetne az MMO-kban hasznát venni ennek.

Category: Hobbi  | Tags: ,  | Leave a Comment
csütörtök, március 17th, 2011 | Author:

Az előző cikkben megemlítettem, hogy a Maslow hierarchia csak az épelméjű emberekre érvényes, más fajra, elmeállapotra egész másféle piramis lenne érvényes.
Na de milyen? Próbáljuk meg általánosítani a problémát: Mit lehet változtatni a piramison?

  • Szintek elvétele
  • Szintek áthelyezése
  • Szintek duplikálása
  • Szintek összevonása
  • Szintek “erősségének” változtatása
  • Szintek hozzáadása
  • .. és a fentiek bekövetkezése/változása az idők folyamán…
  • .. vagy valami esemény hatására

Nyilván van még más is, ami hirtelen nem jutott eszembe. De ez is bőven elég, ha arra gondolunk, hogy ezekből több is lehetséges 1xe. Egyet mondjuk helyből kiejtenék: Nem látom értelmét ebben a kontextusban a szintek duplikálásának.
Azt is fontos még itt leírni, hogy minél jobban eltér a piramis a miénktől, annál meglepőbb, elképzelhetetlenebb lesz a létrejövő élő(?)lény. Van egy fok, ami után gyakorlatilag már képtelenek vagyunk felfogni, hogy milyen is lenne..

Most pedig menjünk sorban:
Ha elveszünk egy szintet, érdekes élőlényt kapunk. Ha a tetejéről, akkor egy ősembert/elmaradott, törzsi embert kapunk. Felülről a második: antiszociális. Felülről a harmadik: szociopata. Felülről a negyedik: Erre már szavam sincs. Valaki, aki nem törődik a biztonságával; ez talán nem is olyan ritka, mint gondolnánk. Az igazán érdekes a legalsó szint elvétele lesz: Ha feltételezzük, hogy az egyed nem pusztul el ennek a szintnek az elvételétől, akkor valami szellemi parazitát, ködlényt vagy ilyesmit kapunk, aminek csak magasabb rendű szellemi tevékenységei vannak. Nem hangzik rosszul persze.. :)
Azt le se írom, hogy több szint elvételével milyen kombinációkat kapunk, szerintem mindenki látja, milyen érdekes ez.

A szintek áthelyezése talán nem is annyira idegen a gondolkozásunktól. Ott van például az Alapítvány valamelyik részében a tudós, aki (külső behatásra) addig dolgozik, amíg belehal a munkába, etc. Ezt a változást el tudjuk képzelni, hogy milyen, sőt, úgy gondolom, hogy valahol része is a személyiségünknek. (pl. nem tudunk nyugodtani pisilni a vécén, ha nincs becsukva az ajtó, mert nem érezzük biztonságban magunkat) Hasonló a szintek összevonása is, ahol azt mondjuk, hogy valamely igényünk egyenértékűvé válik mással, például a security ugyanazon a szinten lesz, ahol az önmagunk megvalósítása. Ez a szituáció akkor lesz furcsa, ha két, nem egymás fölötti szintet vonunk össze, azaz az egyik szint igényei át is helyeződnek a piramison belül.

A szintek erősségének változását én úgy képzelem el, hogy az adott szint kielégítettségének magasabb szintet kell elérnie ahhoz, hogy a következő szinttel foglalkozhasson az egyed, azaz mondjuk nem fog a saját biztonságával törődni addig, amíg dugig nem ette magát. Ennek egy végletekig vitt változata, amikor azt mondjuk, hogy minden egyes szintet TELJESEN ki kell elégíteni ahhoz, hogy a következő szinttel foglalkozzunk. Ez azzal az érdekes viselkedéssel jár, hogy az egyed néha “elveszíti a fonalat”, abbahagyja, amit csinál, és valami másba fog – azaz egy alsóbb szint közben felmerülő igényét elégíti ki.

Ami számunkra már-már elképzelhetetlen, az egy új szint beiktatása a piramisba. Legjobban példákon keresztül tudjuk megérteni: a hím sáska feláldozza magát, hogy utódokat nemzzen. Ez így elég messze van a mi emberi gondolkozásunktól. Ezt én leginkább úgy tudnám megfogalmazni, hogy az utódnemzés szükséglete az fontosabb, mint a self security. De ennél sokkal furábbakat is el tudunk képzelni, mondjuk egy olyat, hogy “minden nap egyél egy virágot”, mint legalsó szint. Amíg ez nincs kielégítve, nem eszel, nem iszol, nem mész vécére.. Szar lesz neked télen. A lehetőségek itt végtelenek.

Azt, hogy időben, vagy egy esemény hatására megváltozik a piramis, jól tudjuk. Ha valaki nem halálos bűncselekmény áldozata lesz, utána jó eséllyel nőni fog a biztonság iránti igénye. Ahogy öregszünk, a szex szerepe egyre kisebb, majd gyakorlatilag teljesen eltűnik rá az igény. Ezt sem kell tovább ragozni.

Ez az egész ott válik érdekessé, amikor megfordítjuk a problémát. Ha nem azon gondolkozunk el, hogy a piramis változása milyen viselkedést indukál, hanem egy összetett viselkedési mintát próbálunk modellezni egy szükségleti piramissal. Ez egy olyan gyakorlat, amit a terjedelmessége miatt most nem fogok megejteni, de a következő bejegyzésből ki fog derülni, miért érdekes ez..

Category: Hobbi  | Tags: ,  | 3 Comments
kedd, március 15th, 2011 | Author:

- Nah, hoztál nekem meglepit? – kérdeztem a kollégámat.
- Nem, nem, csak olyat hoztam, amire számítasz.
- Igen? És mi az? :)

(ui: Tegnap itthagytam a pénztárcám a cégnél, és telefonon megkértem, h vigye el magával..)

Category: Személyes  | Tags:  | Leave a Comment
hétfő, március 14th, 2011 | Author:

Maslow szükségleti piramisát sokan ismerik, de van pár olyan implikációja, amit általában nem gondolnak végig az emberek.
Amit először is meg kell értenünk, hogy a szükségletek nem binárisak avagy fekete-fehérek. Az éhség, szomjúság, önkifejezés szükséglete vagy a biztonság érzése is lehet részleges, vagy éppen teljesen kielégített, vagy akár túlzásba vitt. Ahhoz, hogy egy szintről a következőre léphessünk, nem kell 100%-osan kielégítenünk mindent, ami az előzőn van, sőt, adott esetben olyan is bekövetkezhet, amikor egy magasabb szinten lévő szükségünk olyan erős, h elfojtjuk miatta a lentebb lévőt: pl. amikor hazamegy a gamer, leül a gép elé és hajnalig játszik, amikor is felkel a gép elől, és rájön, hogy nagyon szomjas, éhes, álmos.. Ez a hierarchia inkább csak egyfajta guideline, hogy milyen prioritásaink vannak.
Azt sem árt tudni, amit a wikipedia le is ír, hogy ezt a piramist egészséges emberek megfigyelésével alkotta meg Maslow. Mentális betegségben szenvedők, állatok, földönkívüliek számára a piramis másmilyen lenne.
Valamint, minél feljebb haladunk, annál nagyobb a változatosság. Vannak emberek, akikben egyáltalán nincs meg az igény arra, hogy művészi úton fejezzék ki magukat. Van a másik véglet, ahol az egyén több művészeti ágban járatos, és bármelyikben képes kiélni kreatív energiáit. Ez az, ahol maga az egyéniség megmutatkozik.

Ezek ismeretében, vágjunk neki egy kis gondolati kalandozásnak, ami egészen érdekes helyekre vezethet..

Category: Hobbi  | Tags:  | One Comment
hétfő, március 14th, 2011 | Author:

Ahogy előzőleg már említettem, a dinamikus világok foglalkoztatnak egy ideje. Nagyjából azóta, h anno mudon megismerkedtem a virtual server fogalmával, és elgondolkoztam, mit is lehetne ezzel csinálni..
Ugrojunk a végére: ha ma MMO-t írnék, dinamikus világgal oldanám meg. A térkép olyan szinten adott lenne, amennyire egy térkép normálisan az: a tereptárgyak rajta lennének. Az azonban, amit már megszokhattunk az MMOkban, miszerint “ha elmegyek a dustlandsre, akkor ott 30-35 szint közötti vaddisznók lesznek, a közepén lesz egy vadásztábor, és ott kapok küldetéseket”, ilyen nálam nem lenne.
Ehelyett, egyfajta életjátékkal folyamatosan megoldva a területek balance-át, dinamikusan generálnám rá a szörnyeket, cuccokat, küldetéseket.
Például: Új karaktert indítasz, aki Riverspleen falván kezd. A falu mellett egy erdő fekszik. A rajta átvezető utat rablók fosztogatják, így a faluban néha-néha felbukkanó kereskedők gyakran fogadnak testőröket maguk mellé, amikor az erdőn kell átkelniük. Természetesen a falusiaknak is rengeteg problémája van a banditák miatt, néha kecskét, lovat lopnak, megtámadnak szántóvetőket. A falusiak és a kereskedők is szeretnének “végleges” megoldást a problémára, és adnának is érte valamennyi/sok pénzt.
Egyszer csak hallod a hírt, hogy egy pár kalandozó bement az erdőbe, megkeresték és felprédálták a rablók fészkét. A temérdek ott talált kincsen felül a kereskedők és a falusiak hálája is az övék.
Egy darabig még visznek őröket magukkal a kereskedők, de egyre kevesebbet, mert biztonságossá vált az erdő. Riverspleenen helyreáll a béke, ismét az lesz a legnagyobb probléma, hogy mitől puffadt fel a tehén, és te is továbbállsz, egy kereskedőkaravánnal elindulsz a közeli Smallrocks faluba, ahol – a pletyka szerint – nemrég aranyat találtak.
Sokkal később, egy utad során ismét Riverspleenen utazol keresztül. Odafelé nosztalgikusan emléxel vissza, hogy még kezdő kalandozó korodban itt daraboltad a banditákat. Aztán döbbenten nézed a leégett romokat, és a falu főterén álló kis sátortábort, ahol a falu néhány túlélője nyomorog. Kérdésedre azt mondják a falusiak, hogy nemrég egy sárkány költözött be az erdőbe, aki mellesleg felégette a falut és elvitte a tehéncsordát. Most már csak azok vannak itt, akik túlélték a támadást, és nem hajlandóak elköltözni innen.. de sok reményük nekik sincs, hogy valaha újraépítik az életüket.
Te, a hatalmas kalandozó (társaiddal) beveted magad az erdőbe. Némi emberveszteség árán megölitek a sárkányt, és visszatértek a faluhoz. A falusiak a hálán kívül sokat nem tudnak adni, de megígérik, hogy minden erre vetődőnek elmesélik a történetet, hogy öltétek meg a gonosz sárkányt.
Egy hónappal később ismét Riverspleen mellett utazol. Az újraépített fogadóban felismernek és fizetnek neked egy pár sört a helyiek. Kapsz néhány sárkánycsontból faragott medált is, ami a helyiek szerint varázslatos tulajdonságokkal bír – fellendült mostanában ez az iparág a környéken.
A falu alig várja a kereskedőket, akik téglákat hoznak a szomszéd falvakból, és a favágókat, akik az újjáépített házak tetejéhez hoznak gerendákat. A falu felpezsdült, áramlik a pénz..

Egy hatalmas világ, amiben mindenhol éppen történik valami, a küldetések dinamikusan generálódnak, és mindig van mit felderíteni, kitalálni, kinyomozni, ez igazán érdekes játékot teremtene. Mindezt úgy, hogy ezek az események nem scripteltek, véletlenszerűen változnak, és a változások nem instance-ban jelennek meg, hanem mindenki látja őket, aki a környéken van..

Technológiailag nem bonyolult a megvalósítás. Egy érdekes életjáték, amibe a kalandozók beletáplálnak egy kevés extra információt, de ezen felül semmi nehéz nincs benne. Alaposan végig kellene gondolni, hogy egy-egy esemény milyen jellegű következményekkel járhat, de egy megfelelően kreatív gamedesignernek (vagy csoportnak, inkább) ez sem lenne nagy probléma.

Kérdés persze, hogy az Average Joe játszana-e ezzel. Azok az emberek, akik térkép és wiki alapján oldják meg a questjeiket, valószínűleg szokatlannak találnák azt, hogy nem lehet a neten szinttérképet vagy droplistát találni. (na jó, azért ez az utóbbi létezhetne, csak trükkösen kellene megoldani) A játék egész jellege más lenne, egy-egy küldetés könnyedén elavulna, lenne tere olyan küldetéseknek, ami csak arról szól, hogy “láttam valamit; most keresek valakit, akit érdekel”.
Talán van erre igény. Ha nincs, hát szerintem lesz hamarosan..

Category: Hobbi  | Tags: ,  | 2 Comments
hétfő, március 14th, 2011 | Author:

Két olyan mmo trendet is látok mostanában megvalósulni, amit már pár évvel ezelőtt is valószínűnek láttam, hogy bekövetkezik: egyszerűsített irányítás és open world quest-ek. Az előbbiben a Tabula Rasa ill. a Chronicles of Spellborn rendszere az, amit irányadónak tartok: alapvetően aktív, egér (vagy controller) alapú irányítás, ahol a kattintásra reagál a rendszer, és nem a billentyűn kell zongorázni. Sok játékban a rengeteg skill miatt egyébként is ezt csinálja a user, makrókkal. Ami hiányzik a legtöbb helyen, az ennek a felismerése és megtámogatása rendes ui-jal.
Az open word questek megvalósítása ezzel szemben szerintem még eléggé gyerekcipőben tipeg, a WAR egész statikusaival kezdődően, legutóbb a Rift-ben látható rift bezárásokhoz eljutva, de szerintem van ebben még rengeteg fantázia. A legfontosabb az lenne, hogy a minden játékban beígért, és soha be nem következő “élő, lélegző, folyton változó” világ valóban meg is valósuljon, és legyenek olyan open questek, mint mondjuk “öljétek meg az összes sárkányt ezen a területen”, ami lehet, h egy hétig eltart, de a végén pl. lehet az adott területen birkákat nevelni, mondjuk, és innentől a játékos olcsón juthat gyapjúhoz.. etc. Ahhoz, hogy ez valóban működjön, óriási világot kell csinálni, erősen korlátozott automatikus utazással, és úgy, hogy a világ valóban éljen, azaz akkor is történjenek változások, ha éppen hetekig nem jár arra játékos, pl. Erről szerintem fogok majd még kicsit részletesebben is írni.
Van még pár dolog, aminek a megvalósulására számítok a közeljövőben:
- Jobb tárgykészítés és közgazdasági alapú pénzszerzés: Nem láttam még olyan játékot, ahol a crafting ne grindelés lett volna. A legnagyobb hülyeség arra kényszeríteni a játékost, hogy nyersanyagot gyűjtsön és senkinek sem kellő tárgyakat gyártson, amit aztán a boltban elad 2 rézért, de közben fejlődik a skillje. A pénzszerzés se olyan legyen, hogy megölök 20 nyulat, és kapok érte két ezüstöt – csak akkor kapjak pénzt, ha az, amit csináltam, pénzt ér valakinek. Ez valahol megint a dinamikus világok témakörét feszegeti persze.. Ez szerintem majd lépésenként valósul meg, ahol a sandbox alapú mmok egyre több teret nyernek.
- Valódi player driven content: A City of Heroesban van egy aranyos, de mocskosul limitált quest készítő rendszer. Hatalmas sikere van a korlátjai ellenére, szóval úgy sejtem, hogy ha ez rendesen meg lenne oldva, lenne jövője. Biztos vagyok benne, hogy ilyesmi rendszerek hamarosan mindennapossá fognak válni az mmokban.
- Jobb integráció a való világgal: Lényegében, lehetőség arra, hogy a kedvenc játékunkat kívülről, böngészővel, telefonnal, facebookkal is megközelíthessük, és ha nem is játsszuk, de valami kapcsolódó tevékenységet végezzünk, pl. stratégiai minijáték, crafting, action house, etc. Ez is egy szép lassú folyamat, de az első jelei már láthatóak..

Érdekes lenne ilyen területen dolgozni, de kb. úgy, hogy rengeteg pénzem van, és megtehetem azt, hogy indítok egy mmo-t, ami elbukik. Nagyszerű ötleteim lennének.. :)

Category: Hobbi  | Tags: ,  | Leave a Comment