Tag-Archive for » mmo «

kedd, november 01st, 2011 | Author:

After trying to define what makes an adventure ‘Epic’, let’s take a look at the AI. The scope is somewhat bigger than just the epic adventures, this time we need to lay down the foundation for NPC AI driven quest/task/job/adventure generation first.

NPC AI In separation

Previously, I was writing on this blog about NPC AI based on Maslow’s Hierarchy of Needs. (In Hungarian, so I’m linking only the wikipedia now..) Simply put, this system defines the same levels in the same order for humans, as it is outlined in Maslow’s Hierarchy, then uses them to determine the next action for the NPC. Naturally, different races have their own structure, and make their decisions by their own needs.

While in theory this is a very good system, in practice it is not the best for the imminent action, when the entity is expected to react when – for example – it is attacked. Also, quest givers are usually not expected to have their own lives, or to do anything else than to interact with the player. It is actually better to have a simple state based system for reactions, and use the maslowian system for long term goals, and with that, quest generation.

Beside of the memory, and the sense of the environment, the entity needs a sense of future needs. Let’s take the blacksmith of the village, as an example, and analyse his long term needs.

On the lowest level, his everyday needs: Air, food, something to drink, other body functions, sex. For three of these functions – food, drink, sex – he can make long term plans. Having food in the storage, having some water in the pitcher, being in good terms with his wife, these are all things that he can and will do to keep the status quo.

One level up, safety. To prevent future accidents, he takes good care of his tools, and protective clothing – mittens, apron. He puts out the fire for the night so that the building won’t catch fire in the night. He locks the door so no-one steals his materials, tools. Safety is one of those things where you need to do a lot of things to prevent future bad things from happening.

Then the next level: “belongingness”. (I found this wonderful word on the wiki.. :) ) There are a lot of groups the smith belongs to. His family, his friends, the guild of craftsmen, the angling club (see below), the village, the country, humans.. Although the role of the entity is usually more significant in a smaller group, meaning that he is more important in his family than as a human, he has obligations in each group. He will earn money to be able to put bread on the table. He will go to the local pub and drink an ale with his friends, and if a friend needs a loan, he will give some money to them. And so on. The future need on this level of the hierarchy is to maintain social status and to provide safety for the group.

Esteem, the next level, is when our smith shows his ambition. He wants to be known for something: Be a good father, be a good friend, be the leader of the craft guild, the best smith in the country, etc. He is working hard on this, to earn reputation. In game terms, the previous level means that he works to keep neutral reputation in the groups he belongs to by fulfilling his role. This level means that he is working to increase his reputation beyond neutral.

And the last level is self actualization. As I mentioned above, he is a member of the angling club, because his hobby is fishing. He likes fishing, not just for the fish, but also for fulfilling his need of solitude, and the time he spends out at the lake. He plans for these fishing trips, checks his equipment, gets the right kind of lure, talks to other anglers about good places, big catches, etc.

As we can see, these levels are somewhat interconnected (work -> money -> food) and you can be in several states at once – you might be worried at once about getting food for tomorrow, and forgetting to lock the smithy door. Also, the degree of your need can vary, you might be worried about having food next week, but that is probably not as worrying as not having food for tomorrow; you can quantify the need as a percentage value, for example. Thus, a simple finite state machine would not be sufficient for this,  but a fuzzy logic system might work well. Aside of this, every NPC must have a definition of groups it is part of, as well as a “personality”, which would describe the importance of each levels for a given NPC. For example, we might have an NPC with a high importance for self actualization, and low importance for safety. Putting these two together the NPC is willing to go to prison to defend it’s art. (see Marquis de Sade) Personality also needs to define the occupation, hobby, and interests of the character. This importance of the need can be sometimes expressed as the speed the need raises – if the NPC eats more, it will need to store more food to have reserves for the whole month.

NPC generated quests

Now, let’s take a look at this system. What kind of quests can we generate based on this system? Let’s put together a few examples.

On the physiological level, the NPC might need help to gather food, get something to drink, or get sex. Also, the NPC may offer these things and is looking for someone to buy them. (this latter one is actually the second level, but connected to the needs of other NPC on the first level). Possible quests here is “get meat”, “help with the harvest”, “remove the troll from under the bridge which prevents us to get fresh water”, “get me a specific type of wine”. It’s important to realize, that we mix the levels here; the third one is safety as well as the basic need of drinking, and the fourth one is actually more like self actualization than basic need. The common point with all of these is that the NPC has a goal, but for certain reasons it requires help to achieve them – if it would be easy, the NPC would do it itself. A possible Epic quest on this level is to take food into a castle that is under siege and surrounded by enemies.

(I’d like to emphasize one thing here: There might be several different ways to actually solve these quests, and that is intentionally part of the system. The NPC doesn’t tell you which or how much animals you need to kill to get meat. It doesn’t tell you to kill the troll, if you scare it away for good, it can live with that. It doesn’t care about whether you steal the wine, buy it or take it out from your backpack.)

Second level: The source of the “Kill ten rats” type of missions. Defend, escort the npc, but also, help him to get materials for his everyday job, catch the robber who robbed him, etc, etc. Carrying items from point A to point B, including the safety of the item. Also, health is here, in this category, so a quest to find a rare herb to cure an illness will be generated on this level. Also, taking crafts into consideration, the NPC may even ask you to help him to repair his roof, for a reward, of course. Epic quest here is to save children from a burning house.

Third level: Carry messages, social interactions, solving group level issues. Diplomacy, quests related to emotions. Epic quest here is to prevent a war between two kingdoms.

Etc.

It is important to notice that the quests you get in the MMOs today are usually of the lower levels. Because NPCs doesn’t have real lives, they don’t have higher level needs. There are some quests when the male npc is in love with the female npc, and asks you to collect a bunch of flowers that he can then give to her, but, beyond the obvious question (“Why the hell don’t you go and pick those f*cking flowers yourself, mate?”) these are also really bad examples for the quests of the third level. Maslow’s hierarchy would allow much more than that.

In the next article, I’ll take a look at the problems of numbers – the need for simulating the crowd.

Category: Hobbi  | Tags: , , ,  | Leave a Comment
péntek, szeptember 02nd, 2011 | Author:

A cím átverés, mert nem a kedvenc játékaim, sokkal inkább a kedvenc játékötleteim lesz a téma. Rengeteg játékötletem van, ezekből jónéhányat pár sorban papírra (google docsra) vetek, hogy megőrizzem magamnak későbbre. Van azonban egy pár, ami ennél sokkal kedvesebb helyet foglal el a szívemben, ők a kedvenceim, amiken sokkal többet gondolkozom, kidolgozom a részleteiket, és elképzelem, hogy néznének ki, milyen platformon írnám meg őket, stb.

A jelenlegi három kedvenc a következő (időrendben, ahogy eszembe jutottak)

Steam: ennek semmi köze a jól ismert steam rendszerhez, annál inkább a steampunkhoz. A steam egy valós idejű stratégiai játék lenne, a stratégiát komolyan véve: Az egységek önállóak, a játékos pusztán parancsokat ad nekik, nem irányítja őket közvetlenül. A kommunikációt és a feelinget helyezné a középpontba, kis változtatással ideális lenne webes/körös játéknak is.

Hiker: Az alapötlet itt az volt, hogy mit csinált a játékos karaktere, mielőtt az elite-ben megvette az első hajóját? Képzeljünk el egy űrbeli lövöldözős, játékot, ami nem annyira 4X, mint inkább sci-fi rpg, nagy hangsúllyal a pénzkeresésen. Ezt el tudom képzelni single player játéknak, de könnyen össze lehetne rakni belőle egy mmo-t is.

Grim: Ez az a dinamikus világos, Maslow elves mmo, amiről már annyit írtam itt a blogon. Pillanatnyilag ez érdekel a legjobban, aktívan foglalkoztat napi szinten.

Te melyikkel játszanál?

Category: Hobbi  | Tags: , , , ,  | Leave a Comment
hétfő, május 23rd, 2011 | Author:

.. de azért leírom.

Szóval, mármár testközelbe kerültem azzal a problémával, hogy az mmo szerverben hogyan is ábrázoljuk a világot. A feladat: van egy rakás játékos a kis dolgaikkal, akik különböző cselekvésekkel befolyásolják az őket körülvevő világot, és azon töprengtem el, hogy ezt milyen módon lehet/érdemes nyilvántartani.
Az fő motívumok a következőek:
1. A játékosok közvetve és közvetlenül befolyásolják a világot
2. A játékosok kvázi real time látják, ahogy a többi játékos befolyásolja a világot
3. A világban vannak történések, amelyek nem játékos akció eredményei
4. Lehetnek olyan történések, amit az egymás környezetében álló játékosok másként érzékelnek. (példa lentebb, ha el nem felejtem)

Az egyik lehetséges modell a játékosközpontú. Ez gyakorlatilag arról szól, hogy a statikus világon felül minden játékosnál külön tároljuk az általa érzékelt szeletét a valóságnak, a cselekvései erre hatnak. Az elképzelhető előnye ennek a megoldásnak az, hogy ezek a világszeletek gyönyörűen elszeparálhatóak akár fizikai gépekre, de minimum virtuális gépekre, ami a cloud korában egyáltalán nem elhanyagolható. Azonban a második pont miatt – real time észlelése a többi játékosnak – ez csak akkor működhet, ha a játékosok közötti interakció ritka, hiszen minden, amit több játékos is lát, redundánsan jelenik meg, emiatt a kommunikáció exponenciálisan nő a közelben lévő játékosok számának növekedésével. Azzal lehet optimalizálni a dolgot, ha a csapatokat egy entitásként kezeljük, ám ezzel pont a legnagyobb előnytől esünk el – a könnyen lekezelt párhuzamos interakcióktól. Egy másik érdekes probléma a scope, azaz hogy a világ mekkora szeletét tároljuk el a játékosnak – ez megint a redundancia miatt érdekes.
Ez a modell egyébként különösen erős a negyedik pontban, azaz a relatívan érzékelt valóságokban, hiszen a relativitás itt nem transzformáció eredménye. (ld. lentebb) Emellett, egyedüli játékosnak sokkal gyorsabb lehet, mint a lent taglalt változatok.

A másik alapvető modell a terület/világközpontú. Ennek az a lényege, hogy egy világ/terület szintű adatstruktúránk van, ezen a modellen jönnek létre a változások, a játékos cselekvései és érzékelt világa egy transzformációval képeződik le. Az előnye nyilvánvaló: mivel minden egy helyen van nyilvántartva, nincs redundancia, ami tárolás szempontjából is előnyös, ráadásul sokkal kisebb az esély arra is, hogy valamilyen kommunikációs- vagy programhibából kifolyólag a duplikált adat elveszti a szinkronját.
Ámde bontsuk szét ezt is kétfélére: Szinkron és Aszinkron update. Az utóbbi az, amikor minden hatás azonnal érvényesül. Az előbbi az, amikor összegyűjtjük a cselekvéseket, és valamilyen időközönként lefut egy központi feldolgozó egység, amit a felgyűlt változásokat egyszerre ráilleszti a modellre, majd az így elkészült modell lesz az új alap.
Nyilvánvalóan ami az egyik problémája, az a másik előnye. A szikron változattal sokkal kisebb probléma a párhuzamos változtatás, ám – hacsak az update frekvencia nem nagyon magas – nem lesz olyan gyors a reagálás a változásokra. Az aszinkron változat adatforgalma nagyobb, hiszen minden változásról azonnal (realtime, ugye) értesül a játékos, legalábbis azokról, amik a környezetében történtek. Szerintem egyértelmű, hogy mik a különbségek.

Én jelenleg egy hibrid megoldáson gondolkozom. Az alap egy terület központú, több feldolgozó szállal dolgozó modell (pl. a környezet “maguktól” történő változásait egy sokkal ritkábban aktiválódó szállal kezelném, mint a harci cselekményeket) ugyanakkor teret hagynék a transzformátorokban egy privát content modulnak. Ezzel a megoldással tudnám kombinálni a fenti megoldások előnyeit, anélkül, hogy teljes mértékben fel kellene vállalnom a hátrányaikat.

Mondok egy példát: Két játékos lopakodik a sötét erdőben. Egyikük egy korábbi mágikus behatás miatt (vagy gombát evett..) hallucinál. Konkrétan, úgy tűnik neki, hogy a bokorból egy farkas ugrik elő és rátámad.
A helyzet egy kicsit problémás a hagyományos mmo-kban. Mit csinálunk a farkassal, hogy ne lássa a másik játékos? Mi történik a hullával, ha meghalt? Mi van a környéken lévő npc-kkel, akik ráaggrózhatnak a farkasra? Ha ezeket mind nem kezeljük le, akkor a játékosok beleszaladhatnak egy nagyon fura bugba..
Az persze nem opció, hogy az egész a játékos kliensén játszódjon, mert a szervernek tudnia kell erről, de a cheat programok miatt a játékos kliensében nem bízhatunk meg, hogy rendes update-et küld. Erre szolgálna a privát content modul, amit fent említettem, hogy a szerveren, de teljesen elkülönítve kezeli az eseményeket, anélkül, hogy saját instance-t kellene a játékosnak erre a hallucinációra létrehoznunk.

Majd meglátjuk, mi sül ki ebből.

Category: Hobbi  | Tags: ,  | Leave a Comment
kedd, május 10th, 2011 | Author:

(Bevezető megjegyzés: A bejegyzés nem minden része vonatkozik a sandbox MMO-kra, de jó pár pontban azokat is érintik a kommentjeim. Emellett elsősorban a fantasy mmo-kat tárgyalom, bár más mmo-kra is vonatkoztathatóak egyes megjegyzések)

A probléma
Lehetővé tenni a játékosok számára, hogy tárgyakat készítsenek, de:
- Ne legyen túl könnyű elkészíteni – Dolgozzon meg érte
- Ne legyen túl nehéz elkészíteni – Ne adják fel a próbálkozást
- Ne legyen túl egyszerű – Legyen némi befolyása arra, hogy mit készít
- Használható legyen – Összemérhető legyen a tárgy azokkal, ami a szörnyekből esik és az erőfeszítéssel, amit rá kell áldozni
- Ne legyen túl erős – Azért ne mindenki ebben/ezzel szaladgáljon, mert nincs értelmes alternatíva
A tipikus megoldás erre az, hogy a játékos alapanyagot gyűjt az erre szolgáló skilljével, ami ettől fejlődik, és előbb-utóbb képes lesz még jobb alapanyagot is gyűjteni. Az így megszerzett alapanyagból aztán a játékos tárgyakat készít, általában azt, ami a legkevesebb alapanyagból a legtöbb tárgykészítő skill fejlődést eredményezi, majd végül meglesz a skillje ahhoz a tárgyhoz, ami a szintjén tök jó, és akár 5 szinten keresztül is örül neki, amikor már túl gyenge lesz, és újra elölről.

Crafting mint küldetés, avagy hogyan működik
Képzeljük el a következő szituációt: Rag’rag, az ork sámán azt a küldetést adja nekünk, hogy szerezzünk neki 10 farkasbőrt és 30 farkasfogat. Cserébe csinál nekünk egy farkasfogakkal kivert farkasprém páncélt, ami a szintünkön teljesen jó. Elmegyünk, kiverünk 30 farkasfogat (pun intended), megnyúzunk 10 farkast, visszamegyünk, miénk a páncél. Rengeteg ilyen küldetés van. De akkor miért erőlködünk, hogy legyen craft a játékban, hiszen tulajdonképpen az ugyanerről szól? Három lényeges különbség van:
- A craftnál előre megszerezheted az összetevőket – akár másik játékostól is
- A craftnál van egy képzettséged, aminek elég fejlettnek kell lennie, hogy elkészíthesd a páncélt
- A küldetésből megszerzett jutalom általában hozzád van kötve, azaz másik játékosnak nem adhatod át/el.

A rendszer gyenge pontjai
- Az összetevőket tárolni kell, és ezeknek a száma hihetetlen méretűre tud duzzadni: pl. a wowban tierenként volt legalább 3-4 féle herb, meg még különféle halak és egyebek, amit az alkímiához tárolni kellett. A bankom 90%-át ezek foglalták el.
- Repetitív és időigényes: Tényleges használatba mondjuk minden általad elkészített századik tárgy kerül. A többit szétszeded (ahol lehet), vagy eladod a kereskedőnek. Azokban a játékokban, ahol egyszerű craft (receptre kattint és vár) van, ez azt jelenti, hogy 100x látod a zöld progressbart végigmenni. A bonyolultabb helyeken (ahol a craft egy minigame) ez azt jelenti, hogy százszor kell ugyanazt az kis minigame-et végigtolni, ami – lássuk be – ritkán annyira izgalmas.
- Nem realisztikus: Bár az az általános alapelvem, hogy a játéknak nem realisztikusnak, hanem élvezhetőnek kell lennie, ebben az esetben úgy gondolom, hogy a skála túlvégén vagyunk: ez a rendszer még rosszabb, mint a valóság. A tárgykészítés ne arról szóljon, hogy a legtürelmesebbek tudnak valami használhatót adni, hanem adjuk meg mindenkinek a lehetőséget, hogy – ha már rászánja az idejét arra, hogy megértse a rendszert, és kütyüzik vele kicsit – akkor legyen is érte valami jutalma.

Szerintem
Az elmúlt néhány bejegyzés után már talán nem meglepő, ha azt mondom, ezt is lehetne jobban csinálni :) Nem mondom, hogy az általam elképzelt az egyetlen üdvözítő megoldás, de az biztos, hogy sokkal élvezhetőbb lenne.
Lássuk alant, hogyan működne ez.

A mágikus tárgyak felépítése
Az egyik bajom a tárgykészítő rendszerekkel az, hogy nem gondolkoznak logikusan, akik kitalálják. Használjunk egy egyszerű struktúrát a tárgyak mágikus mivoltához:
- Mi a hatás: Ez a tömb írja le, hogy mit csinál a dolog, például hőt bocsát ki, fagyaszt vagy éppen gyógyít. Ide tartozik a hatás ideje is, ami lehet egyszeri (robbanás) vagy hosszabb hatóidejű, illetve akár permanens is.
- Kin jön létre a hatás: A felhasználó által kijelölt célponton? Valakin, akit megütünk a fegyverrel? Aki viseli a páncélt? Aki megüti a páncél viselőjét? Mindenkire, aki 5 méteren belül áll?
- Mi szolgáltatja a varázsenergiát?
Az első kettő eléggé adja magát. Megfelelő komponenseket használva, vagy egy listán rábökve megmondjuk, hogy “ezt tudja, és kész”.
A harmadik viszont egy olyan kérdés, amit érdemes kicsit tovább boncolgatni. Milyen forrásokról beszélhetünk egyáltalán?
- A felhasználó saját mágikus ereje: A felhasználó fogja a saját nyers mágikus energiáját, belenyomja a tárgyba, az meg megformázza és kisüti a megfelelő célpontra. MMO szempontból ez úgy jelenne meg, hogy levonunk a játékos manájából X-et, amikor kisüti a cuccot.
- A felhasználó életereje/egyéb erőforrásai: A nyers mágia forrása ebben az esetben egy átalakító, ami a mágiát valami másból állítja elő, például életerőből, vagy pénzből, vagy apró fehér kavicsokból.
- Magioaktiv anyagok: Olyan anyag, amiből folyamatosan áramlik a nyers mágia. Nyilván elég ritka, és nem is kifejezetten erős, de folyamatos, ezáltal lehetővé teszi a permanens hatásokat.
- Mágia akkumlátor: Egy mágikus energiával valamilyen metódus szerint feltölthető, annak a tárolására képes cucc. Érdemes elgondolkozni azon, hogy mi van, ha ez szivárog, azaz folyamatosan veszti el az energiát akkor is, ha nem használjuk.. érdekes taktikai vonatkozásai lennének.
- Elhasználódó forrás: Olyan forrás, aminek korlátozott töltete van, és ez szépen elhasználódik, és nem újul meg. Ez lehet egy lény bebörtönzött lelke (a’la Morrowind/Oblivion, bár ott permanens volt) de lehet például a varázsital főzéséhez használt varázsnövény ereje is. A lényege, hogy korlátozott használatot tesz lehetővé, és utána a tárgy nem fog működni, hacsak nem szedjük szét és cserélünk benne elemet.
- Megújuló erőforrás: Hasonló a magioaktív anyagokhoz, de képes lemerülni és újra töltődni. Gyakorlatilag úgy kell elképzelni, mint ha egy akkumlátort, ami mondjuk képes 10 egység tárolására, összekötnénk egy magioaktív maggal, ami 1 egységet termel percenként. Teljesen feltöltött állapotban képes 10 egység kibocsátására, de utána várnunk kell 10 percet, hogy újra használható legyen.

Tárgytervezés
A grindelés helyett tegyük a craft központi aktivitásává a tervezést. A játékos összeszed valami alapanyagot, és azokat felhasználva megtervezi a konkrét tárgyat, amit csinálni akar. Vegyünk példának egy fegyvert.
A játékos talál egy lehullott aszteroidát, ami közismerten mágikus fém. Van nála egy rubin, ami tökéletes befogadó eszköz tűzalapú varázslatokra. Ismer pár törpe rúnát is, amiket látott fegyvereken, és tudja, hogy ezeket bele lehet vésni a fegyverbe. Megnyitja a tervezőpanelt, az inventry-ból bedobálja a fémet meg a drágakövet, és a lore-ból bedobja a rúnákat.
A program megnézi, hogy ennyi fémmel milyen fegyvereket lehet gyártani. Kétkezes kardhoz, csatafejszéhez kevés, de lehet belőle csinálni egy hosszúkardot, vagy szablyát, vagy két tőrt, vagy 10 nyílhegyet (etc.). Ezeket felajánlja a játékosnak, aki – mivel csak egy darab rubin van nála – elsőre kiválasztja a hosszúkardot.
Középen megjelenik egy hosszúkard hozzávetőleges formája. A program jelzi, hogy kell még majd markolatot csinálnia, ami a megjelölt anyagokból nem fog menni, de hagyja, hogy tervezzen. Játékosunk kiválasztja a rubint, és megnézi, hova lehetne ezt elhelyezni. A program felajánlja neki, hogy beépítheti a markolat végére, a penge tövébe, illetve apró darabokra szétmetszve készíthet a pengére is drágakőberakást. Az elsővel a kard viselőjére tud hatást kifejteni, a második a pengét illetve a penge élét éri el, a harmadik esetben pedig a penge hegye lesz mágikusan biztosítva. Ezután a játékos a rúnákat is megvizsgálja, azokat csak a pengébe lehet belevésni, vagy az éléhez, vagy a vércsatornához, ami a vágásra/szúrásra hat megintcsak.
Rövidre fogva a szót, a játékos vizuálisan megtervezné a tárgyat, ami aztán a tervezésnek megfelelően működne. Például a fentiekkel lehet olyat csinálni, hogy a kard folyamatos tűzellenállást biztosít a játékosnak (a rubin), és emellé, amikor sikerül megszúrnia az ellenfelet, annak sokkal mélyebb lesz a sebe, mint a szúrás indokolná (sebzés rúna). Ami nagyon fontos eleme a dolognak, az az, hogy a játékos nem a recepthez gyűjt hozzávalókat, hanem az összegyűjtött alapanyagokat tudja felhasználni úgy, hogy azokból egy egyedi tárgyat készítsen.
Hogy nézne ez ki lebontva különböző tárgytípusokra:

Fegyverek, ékszerek, fémpáncélok
A fentiekben leírt módon tervezhetünk tárgyakat. Fontos, hogy a fegyver/ékszer szétbontható és a darabjai újra használhatóak, a páncél ezzel szemben leginkább csak beolvasztható.

Bőrpáncél
Képzeljük el, hogy a nyúzásból összeszedett, ilyen olyan formájú és minőségű darabokból dolgozunk. Ráadásul, az általunk használt mágia 1-2 bőrdarabra hat csak, szóval ha teljes varázspáncélt akarunk, akkor vagy sok mágikus komponenst, vagy egy darab, nagy, összefüggő bőrdarabot használunk – amit persze nem olyan egyszerű ügy megszerezni.
Ami itt szóba jöhet a bőrdarabokon kívül az a varráshoz használt cérna, ami lehet varázslatos, vagy sima is, a bőrre festett/belemetszett minták és a rávarrt fétisek, ezek mind befolyásolhatják a tárgy végső képességeit.

Ruhák
Hasonló a bőrpáncélokhoz, kivéve a bőröket. Itt is lehet különleges anyagokkal dolgozni, de itt sokkal nagyobb az esély, hogy egy egész ruhányihoz hozzájutunk.

Alkímia
Ebben rengeteg van, nem is írom le az egészet, csak címszavakban: Lehetséges hatókör: elfogyasztó személy, személy/tárgy, amire rákenték, vagy éppen bomba, ami egy területre ható azonnali vagy tartós hatást fejt ki – pl. méregfelhő. Számít, hogy mit kombinálunk és számít, hogy milyen alkímiai műveleteket hajtunk végre rajta (ez olyasmi, mint ami az ATP mudon volt..) de itt például simán bevezetném azt a rendszert, hogy vannak pl. napszakok, amikor ez/az a növény nagyobb potenciállal rendelkezik, és ha ilyenkor szedjük le, hatásosabb lesz. Esetleg lehet permanens hatású is némelyik potion – a növény, v ásvány, amiből készült, magioaktív – de ezek egy játékosra csak egyszer hatnak.

Fejlődés
Ha a tervezés van a központban, akkor hogyan fejlődik a tárgykészítő képesség? Erre alapvetően három féle megoldást tudok elképzelni:
- Sehogy. Nincs ilyen képzettség, a craft teljesen csak a designra épít, és a szintkorlátos hatásokra (ld. lentebb)
- Továbbra sincs ilyen képzettség, de vannak tierek. Ahhoz, hogy a következő tierbe léphessünk, mestervizsgázni kell az előzőből, azaz desingolni kell egy adott quality-vel rendelkező tárgyat, ha sikerül, továbbléptünk.
- A játékos kalandozó szintjét használjuk képzettség helyett.

Szintkorlátos hatások
Minden hatást szintfüggővé tennék, amit ezek adnak – gyakorlatilag bizonyos szintek között velünk fejlődne a páncél-fegyver-ékszer, amíg csak ki nem növünk belőle.

Elhasználódás
Minden kopna, használódna el, ahogy használjuk. A varázsfőzeteink elvesztik az erejüket, a páncélok elszakadnak, a fegyverek kicsorbulnak. Ez mind-mind munkát adnak a crafternek, hogy mindig legyen friss főzet (mert különben a rómaiak legyőzik a gallokat!), jól védjen a páncél és jól vágjon a kard.

Most jó lenne írni valami összefoglalást, de túl fáradt vagyok ehhez. A gondolatok nagy része szerintem átment így is.
Legközelebb talán arról fogok írni, hogy miért unalmas raidelni, és mit lehetne tenni ez ellen.

Category: Hobbi  | Tags: ,  | One Comment
vasárnap, április 17th, 2011 | Author:

Gondoltál már erre? Mert én már egy jó ideje töprengek rajta. Vajon a Blizzard következő nagy dobása az lesz?

Category: Hobbi  | Tags: ,  | 3 Comments
péntek, április 15th, 2011 | Author:

Néhány további, rendezetlen, röviden kifejtett ötlet alant, amit még másképp lehetne csinálni az mmokban:

Tapasztalati pont az egész összecsapásra (Encounter XP)
A legtöbb mmo játékos belefut abba a szituba, hogy “véletlenül beránt egy addot”, azaz az éppen ölt szörny mellé becsatlakozik még egy. Ez nagy szívás, mert a szörny üt minket, mi viszont vagy csak az egyiket ütjük, vagy mindkettőt területre hatóval, de az minden, csak nem hatékony. A legtöbb játékban erre a megoldás a Crowd Control, azaz az altató/lassító/helyhezkötő varázslatok ill. képességek. Ha nincs ilyened, akkor így jártál.
Ehelyett, mi lenne, ha azt mondanánk, hogy – bár a CC-nek továbbra is van értelme nyilván – de tegyük az ellenfelek számának kontrollálását is a játék egyik faktorává, pusztán azzal, hogy ha egyszerre több ellenfelet ölünk, akkor több tapasztalti pontot is szerzünk – persze, kockáztatva azt, hogy ha túl sokan vannak, akkor belehalunk.
Maga a feladat nem könnyű, mert a szörnyek mennek-jönnek csata közben (többnyire persze csak jönnek és meghalnak) de ugyanez igaz a játékosokra is. De nem lehetetlen, és semmiképp nem szabad “egyszerűsíteni” a problémát, sőt, tegyük annyira bonyolulttá, hogy csak az aktív szörnyekre kapunk xp-t, ha bealtatnak egyet, azért nincs xp arra az időszakra.
Tapasztalt gamer persze egyből azt mondja, h “de akkor az AOE class-ok mekkora előnyben lesznek?!”, de ez valójában nem igaz. Egyrészt, az AOE a legtöbb esetben sokkal kisebb sebzés, mint a sima 1v1 spellek, ennek megfelelően sokkal lassabban lehet vele kinyírni az ellent. Másrészt, vessük el az AOE class elméletét, és adjuk meg mindenkinek az AOE és a CC képességét – persze, legyen azért, aki ebben vagy abban jobb.

Tapasztalati pont, mint erőforrás/pénznem (XP as resource)
Mi lenne, ha a szörnyekből lootként esne ki az xp? Ha nem automatikusan lépnénk szintet, hanem el kellene költenünk a megszerzett erőforrást. Mi lenne, ha a mágikus fejlődéshez mondjuk piros xp kellene, a csavargóshoz meg zöld? (ld. még a cross skilles fejlődést alant)
Ez így alapban nem sokat mond, azon túl, hogy jócskán elbonyolítjuk a játékos életét. De nézzük, mit lehetne még vele csinálni: kereskedni vele, cserélni, tárgyakra költeni, varázstárgyakat craftolni és újratölteni vele, és így tovább. Ne vonjuk össze a pénzzel, legyen attól független fizetőeszköz, de legyen fizetőeszköz.
A fő probléma, amit itt azonosítani lehet, az a farmolás. Amint az XP currency lesz, lesznek emberek, akik nekiállnak gyűjteni és eladni rl pénzért. Ez ellen több módon is lehet védekezni, sokkal összetettebb, ügyesebb módon, mint a pénzfarmolók ellen, de ezt most nem fejtem ki, mert unalmas.

Harci taktikázás (Combat like dueling)
Ha megnézzük, hogyan harcolunk most egy mmo-ban, akkor többnyire azt fogjuk látni, hogy 1-2-3-1-2-3-1-2-3-1-2-3-5, meghalt. Én már ténylegesen harcoltam úgy, hogy a tévét néztem közben, és csak az ügyesen megírt 1-es gombra bemappelt makrómat használtam. Ez minden, csak nem izgalmas. Ráadásul, ha a realisztikum felől nézzük, marha nehéz elhinnem, hogy egy kétkezes karddal nyolszor kell eltalálnom egy bőrruhába öltözött raidert, hogy meghaljon végre az átkozott. Sokkal hihetőbb az, ahogy a főszereplők közötti harcot-párbajt szokták ábrázolni a filmeken, amikor is üt az egyik, véd a másik és tökönrúgja az egyiket, aki ekkor kicsit összezuhan, de még a pajzsával éppen kivédi a második ütését, majd gyomron szúrja, aki ettől simán meghal. Én bizony rohadtul szoktam vérezni, ha megsértem/elvágom valamimet, sajog is, sőt, még el is gyengül az adott végtag. Igazából még véreznie se kell, elég, ha véletlenül az ujjamra ütök a kalapácsommal, az is rohadtul fáj. Most képzeld el ezt a bordáid közé egy csatacsillaggal.
Szóval legyen olyan a harc, hogy az ütések 95%-át dodgeolja, blockolja, parry-zi az ellen, vagy a páncéljában akad meg, de az a 20. ütés simán kinyírja. Nem azt akarom itt mondani, hogy a játékos kattintgasson ügyesen, meg ilyesmi, sokkal inkább azt, hogy adjuk sokkal nagyobb hangsúlyt a kitérő skilleknek.
Ám, hogy ne legyen unalmas, alkossunk egy “előny-hátrány” rendszert, ami arról szól, hogy a támadásaink mellett helyezkedünk is, hogy előnyösebb pozícióba kerüljünk, és egy-egy támadásnál védtelenné is tesszük magunkat, ha történetesen nem sikerült olyan jól. Legyen a harc bonyolult, de olyan élvezetes, hogy amikor végre sikerül bevinni azt a találatot, akkor felkiáltson a játékos a gép előtt, hogy “ezt edd meg, a k*rva anyád!” (nem muszáj szó szerint)
Ha a szörny/játékos éppen nem hal bele egy sikeresen bevitt találatba, akkor sebet kap, ami durva negatív bónuszokkal jár. Jutalmazzuk a sikert.
Illesszük be ide a mágiát is: a harci varázslatokat is lehet dodge-olni, stb. Persze a varázsló irányultságú játékos is közelebb állhat és megpróbálhat vakfoltra helyezkedni, hogy a szörny ne tudjon olyan könnyen kitérni, de ezzel azt kockáztatja, hogy a szörny – veszélyben érezve magát – hirtelen ráfordul, és lecsapja.
Elég ügyesen megoldva ezt, akár az aggrot is kiírhatjuk a rendszerből.

Cross Skill System
Erre nem találtam jó magyar kifejezést. A lényeg: képzeljük el, hogy a karakterünknek nincsen osztálya, de még csak őstípusa sem. Van viszont 4 darab skillje, amikre kap pontot, amikor mondjuk szintet lép, vagy mittudomén. Mondjuk a max szint 50, minden szinten kap két pontot, azaz összesen 100-at (vagy inkább kap alapból 10-et és 6. szintig semmit.) amit elkölthet a négy skillre. Minden skillt 100-ig lehet felnyomni, néhány pontonként kapsz egy új képességet (erről mindjárt még egy pár szót).
A négy alapskill a harc, mágia, lélek és az alvilági tudományok, az alap osztály role-oknak megfelelően.
Általában ezek a rendszerek úgy működnek, hogy ha 25-ig kitolod valamelyik ágat, akkor megkapod 25-ig annak az ágnak a képességeit. Ha két ágat tolsz ki 25-25-ig, akkor mindkettőből 25-ig azt, amit adnak. Alapvetően, ha egyenletesen elosztod a pontjaidat, akkor lesz nagyon sok gyengécske képességed, ezért aztán az ilyen jellegű játékokban arra kell törekedni, hogy kimaxold az egyik ágat.
Ehhez képest csak 1 fontos változást vezetnék be: A több skillt igénylő képességeket. Minden képességnél adott, hogy mik a feltételei: mi a szint és melyik skillek kellenek hozzá. Például a lefegyverzés képességhez kell 30 harci és 30 alvilági képesség, ami azt jelenti, hogy ha egyenletesen fejlesztjük ezt a két skillt, akkor 60 pont elköltésével megkapjuk ezt. Ha azt szeretnénk, ha ezt a képességet az 50-50-es harci/alvilág karakterek használják legjobban, akkor ráadásként bele is tehetünk egy sima sebzésmódosítót, ami úgy működik, hogy “sebzés * (ha + al) / 100″, amivel máris garantáltuk, hogy bérgyilkos barátunk legyen a legügyesebb lefegyverző széles e vidéken.
Ez már így önmagában is egy jó kis rendszer, de mivel biztosítjuk azt, hogy két 100-as harcos ne legyen pont ugyanolyan? A választás lehetőségével: minden alkalommal, amikor új képességet kap, mindjárt 2-3-t felkínálunk neki. Ez mondjuk lehet ugyanannak a képességnek többféle változata is: Mondjuk 30 ha-nál kap egy kardos támadást skillt, ahol három verzió közül választhat:

  • Brutális ütés – 1 ellenfél, nagy sebzés
  • Suhintás – 3 ellenfél, közepes sebzés (vesd össze az encounter XP-vel)
  • Hasítás – 1 ellenfél, közepes sebzés és vérzés, ami elnyújtott további sebzést jelent néhány másodpercig – összességében több, mint a Brutális, de lassabb is.

Ha emberünknek ebben a pillanatban megvan már a 30-as lélek skillje is, akkor felajánljuk neki az Élőhalott lesújtása képzettséget is, ami élőhalottak ellen jó. Ha ehelyett alvilági képessége van, akkor olyan képességet fog kapni, ami mondjuk hátulról nagyobbat üt, vagy éppen ad egy pár másodperces debuffot.  Ő választ valamit.
Ezt az egészet nagyon ügyesen kell balanceolni, hogy ne árasszuk el a játékost fölösleges képességekkel (ne legyen neki 100, ha úgyis max 10-et használ) de ne is érezze úgy, hogy ennyi rengeteg skillből ő megkapott 50. szintre összesen 5-öt.

A hátas, mint bekapcsolható képesség (Riding as a switch)
A legtöbb mmo helyből azzal indít, hogy futsz. Ha mégsem, akkor gyorsan kikeresed azt a gyorsbillentyűt/beállítás-t, amivel be lehet kapcsolni, hogy “always run”, és már futsz is. Kb. minden tizezredik játékos, akit látsz, gyalogol éppen, de az is csak egy rövid időre kapcsolta ki.
Ezzel szemben a lovaglás egy kínszenvedés. Meg kell állnod, hogy előhívd a lovat. Végignézed, ahogy a zöld sáv végigkúszik. Felpattansz a lóra. Rájössz, h elfelejtetted felbuffolni magad. Elkezdesz varázsolni, erre eltűnik alólad a ló, te meg anyázol. Megint előhívod. Kilovagolsz a kapun. 150 méterrel távolabb megtámad egy nálad 20 szinttel alacsonyabb vaddisznó, akit 1bként mostanában reggelire hármassával fogyasztasz, de most a játék leszállít a lóról.
Ennél a pontnál a legtöbb játékos már anyázik. Namost, ha ezt meg lehet a futással csinálni, miért nem lehet a lovaglás is csak egy kapcsoló? Megveszed a lovat, berakod egy slotba, bekapcsolod valahol, hogy “Always ride when possible”, és aztán lovagolsz, hacsak egy mód van rá. Ha éppen harcolsz, indoor vagy, craftolsz, varázsolsz, akkor automatikusan leszállsz és nem szállsz vissza, amíg a zavaró tényező meg nem szűnt. Ha éppen nem vagy lovon és elkezdesz szaladni, akkor néhány másodperc múlva automatikusan felszállsz rá, ha a fenti esetek egyike sem akadályoz.
Hogy nézne ki ezzel a fenti példa: Kirohansz a boltból és szaladsz a városkapu felé. Megjelenik alattad a ló, ekkor rájössz, h nem buffoltál. Varázsolsz, ló eltűnik, csík végigmegy. Elkezdesz megint rohanni, megint megjelenik. Vaddisznó, leszállsz a lóról, lecsapod/rohansz tovább, a vaddisznó lefordul rólad, a ló megjelenik. Gyakorlatilag a varázslás kivételéve folyamatosan rohansz, nincs az az érzésed, h vazzeg, megint meg kell állni, amíg a szaros hátas végre megjelenik. Ez az élmény sokkal kellemesebb, higyjétek el nekem. Egyébként bevezetném azt a rendszert is, amit eddig csak Vanguardban láttam: Ha mozgás közben kezdesz el varázsolni, vagy varázslás közben mozogni, akkor nincs nagy gond, nem szakad meg a varázslás, csak lelassul a mozgásod. Ha ilyet még nem próbáltál soha, akkor vsz nem érted, miért olyan hű de jó ez, de hidd el nekem: az. Minden fantasy játékban anyáztam emiatt, mióta csak játszottam a VG-vel.

Pénz a befektetésekből (Money from investment)
Minap olvastam egy cikket arról, hogy mekkora lenne az ideális hátizsák méret az MMO-kban, és egyből fel is forrt az agyvizem a “végtelen hátizsák” ötlet olvastán. Tényleg az a probléma, hogy nem férünk el a hátizsákban? Nem. A tényleges probléma az, hogy minden sz*rt magunknál hurcolunk, hogy aztán eladjuk, vagy jó lesz valamikor.
Egy pillanatnyi kitérővel: Alaposan meg kellene reformálni a tárolórendszert, és ezzel együtt a tárgyrendszert. Nem akarok 87 scrollt magamnál tartani, amik különböző szintekre és képességekre adnak bónuszt. Legyen egy tekercs képesség, amögött egy lista, hogy milyen tekercseket gyűjtöttem be eddig, miből mennyit, és ha el akarom lőni vagy odaadni valakinek, akkor csak megnyomom a “cast on self”, “cast of target” vagy a “give to target” gombot mellette. Potionökkel, ételekkel, craft alapanyagokkal (!) ugyanez. (Ez utóbbi asszem pont létezett Guild Warsban)
Szóval visszatérve az eredeti témára, a “gőte szeme, egy marok” jól hangzik a Machbet-ben, de ne kelljen már ezt gyűjtenem és eladnom. Maradjunk a realitás talaján és legyen úgy, hogy csak az értékes dolgokat tudom eladni, mint pl. a rablók főnökének alig használt mágikus kardja. Persze, a rablóknál lehet, hogy volt készpénz, és a küldetésért is biztos kapok, ami miatt leraktam a rablókat…
A legtöbb esetben ez az a pont, ahol a game designer a homlokára csap, hogy “de jó, akkor legyen minden craft alapú, de jó, csinálunk egy sandbox játékot, de jó”, ami egy jó ötlet, csak nem ez az egyetlen megoldás a problémára.
Én simán azt mondanám, hogy a szemételadás helyett kapjon a játékos folyamatosan share-t a nyereségből. Csinál egy küldetést a kovácsnak, amiért az annyira hálás, h nekiadja a nyereség 10%-át a következő egy hónapban. Játékosunk innentől bámulja a folyamatosan befelé csordogáló pénzt, és örül, h milyen gazdag lett.
Mondhatjuk erre, hogy “de így csak pénzt generálunk, a játékos csak belép és dől a pénz”, de ez nem teljesen igaz.
Egyrészt, a trash eladás az valóban semmi több, mint egy szofisztikált és idegesítő megoldás arra, hogy a nem humánok is dobjanak pénzt. Gyakorlatilag, pénzjutalom azért, hogy megöltünk valamit. Ehelyett a játékost mi a küldetés megoldásért jutalmaznánk. Továbbá, időkorlátos, azaz a játékos csak x ideig kap belőle pénzt. Mégtovábbá, ezzel lehetőséget adunk a játékosnak arra, hogy a pénzét kezelgesse, okosan gyarapítsa (pl. tippet ad a kovácsnak, hogy háború lesz, kardok kellenek, így nagyobb a nyereség) és a játékos ezt akár offline, browserből is megteheti, amivel tovább növeltük a játékos kötődését hozzánk, akik a játékot írtuk. Ráadásul, ez egy nagyszerű küldetés forrás is, hiszen időről időre azt mondhatja a kovács, hogy “kilyukadt a fújtató, kell nekem malacbőr, h kijavítsam, ha nem hozol, feleakkora hozamod lesz egy hétig.”, etc.
Érdekes lehet még akár a nyílt investment rendszer, ahol a játékos a pénzét be is fektetheti valamibe, mondjuk egy falu újjáépítése, vagy ilyesmi. Ez egészen hasonló lehetőségeket kínál, mint a fenti, küldetésért kapott részesedés, egy fontos különbséggel: ehhez nem feltétlenül kell kalandozni, így játékosunk akkor is ügyesen gyarapíthatja a pénzét, ha éppen nincs belépve a játékba, és nem tud küldetéseket csinálni.

Egyelőre ennyi. Igyekeztem az érthetőség határain belül, az unalomén kívül maradni, remélem, sikerült is. Hamarosan várható egy nagyobb lélegzetvételű bejegyzés a tárgykészítésről.

Category: Hobbi  | Tags:  | 2 Comments
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
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.

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