Planet Kodu Második hét Tartalom: -
Gyors prototípus készítés Video: Kodu játékok tervezése Ötletelés A kockázat felismerése A 400 projekt Tervezési minták a játékokban Kodu Game Lab receptek Második heti feladat
Gyors prototípus készítés A játéktervezés szabályszerűbb módja Ismétlődő fejlesztési folyamat Múlt héten a játéktervezés egy kötetlenebb módját tekintettük át. Ezen a héten a játékfejlesztés egy hagyományosabb módszerével ismerkedünk meg, amelyben világosan meghatározott lépések segítenek neked abban, hogy általánosabban tekints a játéktervezésre. Az ismétlődő folyamat egy általánosan elfogadott ciklikus módszer, amit a játékfejlesztésben is felhasználhatsz. Kép: Requirements – követelmények Planning – tervezés Initial planning – előzetes tervezés Analysis and design – elemzés és tervezés Implementation- megvalósítás Deployment – piacra dobás Testing – tesztelés Evaluation – kiértékelés Forrás: wikiedia – egy általános ismétlődő fejlesztési modell 1. a tervezés és a követelmények tulajdonképpen a küldetés akcióterve. Meg kell határozni a játékod világos céljait, és hogy mire van szükséged ahhoz, hogy elkészítsd. 2. A következő lépésben megtervezed a játékot. Ezt többek között akár papíron is megteheted mielőtt nekiállsz a fejlesztésnek. 3. Ha elkészült a játék, tesztelni kell.
Egy kicsit olyan, mint amit a múlt héten tanultunk, nem? Nos, igen, ez olyan mint a kötetlen fejlesztési folyamat, kivéve néhány kulcs tényezőt. 1. Először is, már az elején világosan meg kell határoznod, mik a céljaid, és később mindegyik kör tesztelés és kiértékelés során ezeket a célokat veszed elő. Persze ebben még mindig benne van a hibázás lehetősége, de ez a módszer egy szabályszerűbb játékértékelést tesz lehetővé. 2. Minden ciklus végén kicsit alakíthatsz az első lépésben meghatározott céljaidon. Ezt sokszor muszáj megtenni annak fényében, hogy ahogy te eltervezted, hogyan fog működni a játékod és az, ahogyan valójában működik, egy kicsit eltérhet. Ahogy haladsz a fejlesztéssel azt veheted észre, hogy a kezdeti ötleteid vagy már nem szükségesek, vagy elérhetetlenek, vagy nagyobb léptékű módosítást kivánnak meg. 3. A szabályosabb módszer segítségével a céljaid mindig a szemed előtt lesznek, ahogy haladsz a fejlesztési folyamatban. Nem csak azt fogod megnézni minden fejlesztési ciklus végén, hogy elérted-e ezeket a célokat, de azt is eléred, hogy a játékod minden egyes tesztelési folyamattal újra lehessen játszani. Hogyan készítsünk játék prototípust 7 nap alatt Akár a szabályosabb, akár a kötetlenebb utat választod a játékter vezéshez, az alkotás során hamar szembe találod magad kihívásokkal mindkét módszer esetében. Ha határidőre dolgozol, ahogy azt a múlt héten is kértük, van néhány tényező, amit érdemes figyelembe venned: a. Válassz egy témát, ami a játék alapját képezi majd. Lehet például az ismert gyerekjáték mintájára a fogócska, amiben egy üldöző és egy üldözött szerepel. A téma segít, hogy a játékodnak legyen egy meghatározó alapja, és rengeteg időt sprórolhatsz meg azzal, ha ezt már az elején tudod. b. Ne tölts túl sok időt egy olyan ötlettel, ami nem működik – próbálj ki valami újat, kezdj valami másba és térj vissza az eredeti elképzelésedhez később. c. Csak mert valamit hamar szeretnél megalkotni, még nem jelenti azt, hogy fontos lépéseket hagyhatsz ki. Ha nem gondoltad át elég alaposan a játékot, ha nem köt le eléggé a vele való játék, hiába minden hangulatvilágítás, zene vagy az ügyes színhasználat! d. Csak mert valamit hamar szeretnél megalkotni, még nem jelenti azt, hogy nem kell odafigyelned a hangulatvilágításra, a zenére és az ügyes színhasználatra! Egy olyan játék ami kiforrottnak érződik, sokkal jobban leköti azt, aki játszik vele. Egy rosszul megtervezett játékot ezek sem mentenek meg, de egy alaposan átgondolt játékot még jobbá tehetnek. e. Ne félj a kudarctól! A hibáinkból tanulunk, ilyen egyszerű. Minél inkább úgy tekintesz a kudarcaidra, mint amikből sokat tanulhatsz, annál gyorsabban fejlődsz majd játékfejlesztőként.
f. Soha ne becsüld alá egy egyszerű játék erejét. Nem kell, hogy a játékodnak ezerféle variációja legyen, csak hogy érdekesebbé váljon. A Pac Man és a Pong is jó példa erre – bár már évek óta játszunk velük, még mindig születnek újabb verziók mert egyszerűen lebilincselőek… vagy lebilincselően egyszerűek? Az egyszerű játékok is teljesen a hatalmukba kerithetnek, nem kell hogy egy játék bonyolult legyen ahhoz, hogy élvezetes legyen vele játszani. g. Ha van egy végcélod, azzal nem csak a játék lesz élvezetesebb, de dolgoznod is egyszerűbb lesz ha tudod, mi felé haladsz. Már láttam néhány RPG játékot, főleg amiket Kodu-ban fejlesztettek, ahol ez volt a probléma. Erre mész, arra mész, de nincs tiszta képed arról, mit is kéne tenned. A terep és a hangulatvilágítás valóban elismerést érdemel, de mit is csinálok itt? Ezt az emberek hamar megunják, tehát figyelj oda, hogy a célok már a fejlesztés előtt világosak legyenek! Video: Kodu játékok tervezése A Charles Howellel készített interjú második részében arról beszélgetünk, hogyan lehet jó játékot készíteni játékok segítségével, különös tekintettel a módszerre, amit Charles maga is használ. Ötletelés A kreatív ötleteket nem tudod időre ütemezni, ez a határozott véleményem. Tudod ütemezni a munkafolyamatot, amiben az ötletből prototípus születik, amin már dolgozni lehet. Tudod ütemezni a fejlesztési ciklus különböző szakaszait, amit követni szeretnél…na de új ötletekkel előállni? Valószínűleg te is megtapasztalod majd, hogy az ilyen ötletek leginkább az olyan hétköznapi pillanatokban születnek, mint amikor épp sétálsz a munkahelyedre, amikor a gondolataid elkalandoznak mosogatás közben, vagy amikor lefekvés előtt épp könyvet olvasol. Én személy szerint a Kodu Game Lab-ban azt tapasztalom, akkor száll meg legtöbbször az ihlet és születik meg egy-egy új ötletem, amikor valaki más játékát elemzem. Hogy hol jön a képbe az ötletelés? Nos, azért van egy-két módszer arra, hogy adj löketet a kreatív gondolatoknak. Lehet, hogy csak egyszerűen kísérletezgetsz a Koduval, vagy esetleg mikor összeszeded és leírod, miket szeretnél az aktuális játékban megvalósítani, az előhoz pár új ötletet is. Rengeteg módon lehet ötletelni, a titok abban rejlik, hogy megtaláld a neked legmegfelelőbbet. Íme pár ötlet, ha nem tudod, hogyan kezdj neki: Automatikus jegyzetelés Csak kezd el leírni, olyan gyorsan, ahogy csak tudod, az összes olyan elemet, amit egy játékban szeretnél megcsinálni. Ne törődj a helyesírással, ne tölts időt azzal, hogy az ötleteidet alaposabban átgondolod. Csak írj, amilyen gyorsan csak tudsz,
bármit, ami a témában eszedbe jut. Határozz meg egy időkorlátot, mondjuk legyen pár perc. Ha lejárt az idő, hagyd abba az írást, dőlj hátra és karikázz be bármit, amin megakad a szemed. Kapcsolj ki Néha az a legjobb módszer arra, hogy új ötletekkel állj elő, ha egy időre kikapcsolsz. Ha úgy látod, semmi új nem jut eszedbe, tarts szünetet és menj futni vagy vegyél egy fürdőt, és adj az elmédnek egy kis pihenést. Meglepődsz majd, milyen sokszor bizonyul jó ötletnek kicsit felállni a feladattól. Kísérletezz Ahhoz, hogy inspirációt gyűjts az újabb ötletekhez azt is csinálhatod, hogy csak kísérletezgetsz a Koduval anélkül, hogy bármilyen világos célod lenne. Csak kezdj el megépíteni egy játékot! Próbálj ki olyan dolgokat benne, amiket egyébként nem tennél és nézd meg, mi történik! Rengeteget tanulhatsz a Koduról, ha nem nyomás alatt dolgozol – meglátod, számos új ötleted támadhat majd ebből a céltalan kísérletezésből. Prortotípus készítése papíron Néha az is új ötletekre inspirál, ha más médiumon dolgozol, nem számtógépen. Én például tudom magamról, hogy másképp állok neki egy probléma megoldásának ha gépelek, mint amikor leülök és papíron próbálom megoldani. Mivel elég gyorsan szoktam gépelni, a papíron való munka arra kényszerít, hogy kicsit lassítsak és jobban átgondoljam milyen nyelvet használok és hogyan tudom kidolgozni az ötleteimet. Ugyanez igaz ha Koduban tervezel, csak éppen papíron. Rajzold meg nagyjából a világodat, majd tölsd meg szereplőkkel és ötletekkel. Ha ezzel megvagy, próbáld meg ugyanezt létrehozni Kodu-val.
A kockázat felismerése Játéktervezés közben fontos figyelembe venni a tervezés buktatóit, ami különösen igaz, ha a Kodu Game Lab-el tervezel játékot. Tedd fel magadnak a kérdést: Egyáltalán lehetséges ezt a játékot a Kodu Game Lab-el megcsinálni? Van a tervezett játéknak olyan eleme, amit nem lehet létrehozni a Kodu Game Lab-el? A szükséges erőforrásokat olyan méretben és komplexitáson lehet tartani, hogy a játékot Kodu-ban játszani lehessen? A tárgyat vagy bot-ot be lehet programozni úgy, hogy az elvárt módon cselekedjen? El lehet készíteni a világot a szükséges formában?
Ha ötleteket gyűjtesz a játékaidhoz, jó ha nem ragadsz le a realitásnál, egy ponton azonban figyelembe kell venni, hogy egyáltalán el lehet-e készíteni az adott játékot Kodu-ban. Természetesen az olyan ötletek esetében, amik más Kodu játékok variációi, viszonylag biztosan állíthatjuk, hogy ezzel nem lesz probléma. Más ötletek viszont, mint pl a Second Life elkészítése Kodu-ban, nyilvánvalóan lehetetlennek tűnnek. Mit tehetünk, hogy amennyire lehet, csökkentsük a tervezési és technikai kockázatokat? A folyamat 1. Ismerd fel a terved fő technikai és tervezési kockázatait Ha eldöntötted, milyen játékot szeretnél elkészíteni, fontos meghatároznod a játék azon elemeit is, amiket nem feltétlenül lehet majd megcsinálni. 2. Készítsd el a buktatók prototípusait Kezdd el megépíteni a játék azon részeit, amiket szerinted majd nem biztos, hogy meg lehet csinálni. Ezen a ponton még nem kell egy teljes játékot elkészítened, ahogy ennek a résznek egy tökéletes verzióját sem. A folyamat ezen szakasza arról szól, hogy meghatározd, valós-e a kockázat vagy sem. Kodu-ban nem csak az a fontos, hogy lásd, valami lehetséges-e, de azt is tudnod kell, a játéknak ez a része mennyi erőforrást használ fel. 3. Teszteld A játék tesztelése a legfontosabb feladat. A tesztelés ebben a szakaszban a meghatározott kockázatok tesztelését jelenti. 4. Változtass vagy hagyd el teljesen, ha kell Ha elemezted a kockázatokat és meghatároztad, mi a lehetséges, folytathatod a munkát a terveknek megfelelően, megváltoztathatod a tervet az időközben megállapított korlátok fényében, vagy el is hagyhatod a projektet. Ha már a játék tervezése során felméred a kockázatokat, azzal rengeteg időt és csalódást spórolsz meg, mikor nagyobb és összetettebb játékot tervezel a Kodu Game Lab-el.
A 400 projekt A 400 projekt célja, hogy megtalálja és összegyűjtse azt a körülbelül 400 szabályt, ami a játéktervezésre vonatkozik. A projekt 2003-ban inult és eddig több, mint 100 szabály gyűlt össze. A projektet Hal Barwood és Noah Falstein vezeti. A legtöbb szabályt Noah írta, de bárki küldhet be szabályt. Minden szabálynak van neve, meghatározása (leírása) és egy olyan környezete, amiben alkalmazni kell. Minden szabályhoz tartozik egy-két példa már létező,
ismert játékokból, ahogy ellenpélda is, ami azt szemlélteti, mit történik a szabály be nem tartásakor. Például: Határozz meg világos rövid távú célokat! Mindig legyen világos a játékosok számára mik a rövid távú célok. Ezt teheted direkt módon is, hogy elmondod nekik, de úgy is, hogy a játékban elhelyezett útmutatók segítségével vezeted őket a cél felé. A játékosokat így nem érinti kellemetlenül a bizonytalanság, ellenben ott lesz a biztos tudat, hogy haladnak előre. Noah azt akarja ezzel mondani, hogy a szabályok fontosak, ha elakadtál a játék tervezésével, de hasznos a játékot ezen szabályok alapján időről időre ellenőrizni is. A Good Game, egy ausztrál TV-műsor röviden beszámolt a 400 projektről tavaly, de a felvétel már sajnos nem elérhető youtube-on. A következő pár hét során áttekintünk néhányat a szabályok közül és megnézzük, hogyan hatnak a játékélményre. Kíváncsiak vagyunk a te véleményedre is a szabályokkal kapcsolatban!
Tervezési minták a játékokban A tervezők arra használják a mintákat, hogy olyan, már ismert megoldásokat próbáljanak ki egy probléma kapcsán, amik valaha már beváltak. Christopher Alexander 1977-ben írta a “A Pattern Language” című könyvét amely bemutatja, hogyan használhatók fel a minták az építészetben úgy, hogy így bárki tervezhessen épületet. A tervezési mintákat a Gang of Four népszerűsítette, hogy megoldásokat adjon az objektum-orientált programozás problémáira. A tervezési minták: - Általános megoldást kínálnak gyakori problémákra - Egységesek minden programnyelv / környezet / keretrendszer esetén - Felvázolják, miért megfelelő a minta - Közös nyelvet és tudást hoznak létre Staffan Björk és Jussi Holopainen mintegy 300 tervezési mintát ismertetnek honlapjukon és könyvükben. A weboldalon csak alapszintű leírásokat találunk példákkal és összehasonlítva más mintákkal, de ez így is nagyon hasznos összeállítás. Példa a weboldalról: Boss Monsters A játékosoknak egy erős ellenfelet kell legyőzniük, hogy bizonyos célokat érjenek el a játék során.
Néha a cél maga az, hogy legyőzd a Boss Monster-t, általában azonban ez csak a cél elérését megnehezítő próbatétel a játékban és a legfőbb cél valami ennél magasabb rendű dolog. A Boss Monsterek szinte mindig azt a célt szolgálják, hogy a játék menetét strukturáltabbá tegyék. A játéktervezési minták pozitívan befolyásolhatják a játéktervezők döntéseit, hiszen “sajátos játékélményt” adnak minden játéknak. Főleg az adhat ötleteket a játékodhoz, ha megfigyeled milyen tervezési minták segítik a történet ívét, a megjósolhatóságot vagy a játékba való belemerülés élményét, mint például a feszültség vagy a karakter fejlődése. Sok minta és azok leírása elsőre magától értetődőnek tűnik, sok minta pedig talán kivitelezhetetlen a Kodu Game Lab-el, de a játéktervezési minták mélyebb ismerete mindenképp segít abban, hogy jobb játékokat tervezz. A kurzus harmadik, negyedik és ötödik hetén részletesebben átnézünk néhányat ezek közül a tervezési minták közül hogy lásd, hogyan használhatók a játékélmény felépítéséhez.
Kodu Game Lab receptek (és más módszerek, amik könnyebbé teszik az életed) Bár a Kodu Game Lab vizuális programozási nyelve elég intuitív, számos trükk létezik, amivel hamarabb megtanulhatsz bizonyos fortélyokat. 1. Változass már létező játékon, vagy legyen egy ilyen játék az alap A legegyszerűbben úgy készíthetsz játékot a Kodu Game Lab-el, ha változtatsz vagy javítasz egy már meglévő játékon. Bármelyik Kodu játékot lehet módosítani és javítani, hogy jobb legyen. 2. Megnézheted bármelyik játék kódját, hogy lásd, hogyan tervezték Természetesen indulhatsz tiszta lappal is, mikor játékot tervezel, de jó ha megnézed mások kódját és tanulsz tőlük. 3. Másolj át kódot egyik projektből a másikba Kodu-ban átmásolhatsz tárgyakat és “bot”-okat egyik projektből a másikba. Ezzel te tudod összeállítani a saját játékodat több különböző játék alapján. A törlés eszközzel eltávolíthatsz “bot”-okat és tárgyakat egy már létező világból, amit egy új játékhoz szeretnél alapnak használni. 4. Használj programozási recepteket bizonyos elemek implementáláshoz A programozási receptek olyan kódrészletek, amik egy bizonyos funkcióért felelősek a játékban. A receptek általában rövid, nyelvfüggő kódok, amik egy bizonyos feladatot látnak el. A fejlesztők általában ismerik annyira a kódot, hogy
meg tudják csinálni ezeket a feladatokat, de kezdetben a receptek nagyon egyszerűen segítenek megértetni a nyelvet és megismerni ezeket a technikákat. Például itt egy recept, hogyan készíts visszaszámláló órát. Ahhoz, hogy olyan visszaszámláló időmértőt készíts, ami tíztől számol visszafelé, használd az alábbi Kode-ot egy elemhez, ami nem semmisül meg a játékban. Állítsd Csendesre a piros pontot is. Kép: When: ha Do: feladat Score: elért eredmény Red: piros Point: pont Once: egyszer When: ha Timer: időmérő Second: perc Do: feladat Subtract: kivonás Red: piros Points: pont When: ha Score: elért eredmény Red: piros Below: alatt Points: pont Do: feladat A legtöbb fejlesztői nyelven elérhetők ilyen “szakácskönyvek” nyelvspecifikus receptekkel az interneten és könyv formájában is. Második heti feladat Ezen a héten két feledat közül választhatsz attól függően, mennyi időd van. A. Javíts egy létező játékon Keress egy létező játékot, legyen az akár egy olyan játék, amit te készítettél korábban, egy alap játék, ami már eleve része a Kodu Game Lab-nek, vagy egy olyan, amit a közösségi oldalon találtál, és tedd még jobbá! Ehhez lehet, hogy új “bot”-okat kell a játékhoz adnod, ki kell bővítened a játék témáját vagy fejlesztened kell a játékteret és a játékélményt, ez mind csak rajtad áll. Vagy
B. Készíts egy átgondoltabb, összetettebb játékot Ezen a héten arra kérünk, lépj egy lépést előre a fejlesztési folyamatban. Ne feledd, mit tanultunk a játékfejlesztés szabályozottabb módjáról. Felhasználva azokat a lépéseket, amiket a héten átnéztünk, először írj egy listát a feltételekről, amiket a játéknak teljesíteni kell, mintha küldetésnyilatkozatot írnál. Készíts pár jegyzetet a tervekről, majd kövesd az ismétlődő fejlesztési modell lépéseit, amit a heti kurzus során ismertettünk. A heti kihívásnak nincs időkorlátja. Csak be kell nyújtanod a végén a játékod, akár elkészült, akár nem, a jegyzeteiddel együtt. Nem számít, ha a jegyzeteid csak pár egyszerű listaelemből állnak, vagy írtál pár bekezdést, amiben kifejtetted őket. Ami számít az az, hogy sokkal átgondoltabban kezdted a játékfejlesztést. És azt se felejtsük el, hogy különösen kíváncsiak vagyunk azokra a dolgokra, amik nem sikerültek! Ha az első próbálkozásod nem volt túl sikeres, mi akkor is számítunk a visszajelzésedre, hiszen egymás hibáiból is sokat tanulhatunk!