A "spagetti kód" második részében a hibák típusaival foglalkozunk majd és megtudjuk azt is, hogy például Jarvan IV ultija miért minionokból épül fel valójában.
Tegnap megnéztük, hogy milyen jellemzők alapján sorolják be az egyes hibákat a Riotnál, ezek voltak az Impact (hatás a játékra), Fix Cost (javítási költség, vagy inkább ár), és Contaignon (fertőzésveszély). Ezek alapján lövik be egy-egy probléma súlyosságát, főleg az utóbbi szerint, hogy mennyire sürgős vele foglalkozni. Bővebben ezekről az alábbi cikkben olvashattok.
A LoL és a "spagetti kód" -miként, vagy mi alapján javítja a Riot az egyes hibákat -első rész
Aioween | 18/04/11 12:25A LoL egy roppant összetett program, több mint 400 000 programsorral és még számtalan alrendszerrel. Egy egyszerűnek tűnő probléma javítása is összetett lehet, a Riot betekintést adott, miként is működik ez.
Ma pedig folytatjuk a hibák típusával, vagyis hogy milyen gondokba ütközhetnek a fejlesztők és ezekre milyen megoldás lehet.
Az első kategória a Local Debt, vagy helyi probléma. Ezek a tipikus esetei a fekete doboz szindromának, amikor a hiba valamennyire elszigetelt és inkább egy adott rendszert érint. Ez lehet például egy-egy varázslat, a hálózati rendszer, a script motor stb. általában megbízhatóan működnek. Nem nagyon kell velük külön foglalkozni, ha ezek körül fejlesztenek valamit, de ha valaki komolyabban belenéz egy-egy ilyen rendszerbe, az sokszor elképedhet, hogy mit is lát mögötte.
Ilyeneket mi magunk is láthatunk a játékban, maximum nem fogjuk fel, hogy az valójában egy local debt. Így működik a szemünk is egyébként, hiszen a dolgokat alapvetően fejjel lefele látjuk, sőt mi több a két szem között van egy-egy vak folt, amit valójában nem látunk rendesen, és az agyunk állítja helyre a képet illetve illeszti össze a két szem információit. Ezek a "hiányosságok" azonban csak a látást érintik és általában elég jól működnek a legtöbb esetben.
A játék nyelvére lefordítva egy tökéletes példa erre a cikk elején említett Jarvan ulti, vagyis a Cataclysm. Ez ugyanis a mai napig "minionokból" épül fel. Ha a fejlesztők valamilyen tereptárgyat szeretnének készíteni a játékban, azokat általában láthatatlan minionokkal oldják meg, mert ez a legegyszerűbb megoldás jelenleg. Ezekkel az eszközökkel viszonylag könnyű megoldani ezeket a helyzeteket, vagyis Jarvan esetében a bezárást egy körbe. Jelenleg 24 darab minion alkotja Jarvan végső képességét, ezzel biztosítva azt, hogy senki nem tudja átpréselni magát rajta. Egy másik megoldás egy kör alakú tereptárgy lenne, ahol egy egyszerű logikai darab irányítaná az egésznek a helyzetét. Ha ezt megtennék, akkor könnyebb lenne a kiszámolása az egésznek, hiszen így kevesebb egység jelenne meg a pályán. Ezek után nézzük meg, hogy ez a három felsorolt jellemző szerint mennyire érinti a játékot, hogy megértsük miért nem annyira jó ez a második megoldás az egyértelmű előnyök mellett sem.
Impact: 1/5
Eleinte 12 minionból állt az ulti, de így bizonyos esetekben egy-egy karakter ki tudott sétálni belőle, ezért emelték meg a számát 24-re. Mivel a fal minionokból áll, nem nagyon befolyásol semmilyen más fejlesztőt, ha új tartalmat gyártanak.
Fix Cost: 2/5
Jelenleg a LoL nem képes különféle alakú tereptárgyak létrehozására a játékon belül anélkül, hogy ne írjanak hozzá egy teljesen új geometriai kódot. Ha szeretnének csinálni egy kör alakú falat, amivel egy adott területet lehet befolyásolni és tovább erősíteni Jarvan ultijának bezáró jellegét, ahhoz elég komoly matekozás kellene, hogy kiszámolják például az egyes egységek ütközését a körrel. Minionok esetében ez pedig már most is adott, a konkrét célt pedig ellátja. Már dolgoznak egyébként egy ilyen rendszeren más okokból, ami így sokat vehet vissza a fejlesztés önálló "költéségből".
Contagion: 1/5
Nem nagyon kell figyelembe venni jelenleg Jarvan ultijának falát, ha valaki új tartalmat szeretne fejleszteni a játékhoz, vagyis elég alacsony a fertőzésveszélye. Az egyetlen igazi veszélyt maximum az jelenti, ha más funkciókhoz ezt másolják be esetleg új hősökhöz, amire korábban volt már példa. De ami a beépítést magát illeti, a Cataclysm jelenség elterjedése és "fertőzése" alaposan ismert és eléggé alacsony rá az esély.
Ez egy tipikus példája egy helyi elmaradásnak. A helyi hiányosságok amúgy is alapvetően alacsony contagion jelzővel rendelkeznek. Ha az Impact esetleg magasabb lenne, mint a fix cost, akkor az jó eséllyel záros határidőn belül javításra került, mielőtt eldurvulna a helyzet.
Amikor az a téma, hogy egy local debt javításra szorul, vagy sem, általában az az első kérdés, hogy megéri-e. Ha ez a hiányosság ténylegesen nem fertőző, vagyis nem jelent veszélyt más rendszerekre, akkor otthagyható egészen addig, amíg ez szükséges. A leggyakoribb hiba, amit LtRandolph szokott látni, hogy egy egyébként nem fontos helyi hiba valamelyik fejlesztőnek a szépségérzetét sérti, pedig nem éri meg a belefektetett energia és erőfeszítés a részéről. Ha valóban arra szánják magukat, hogy egy problémát orvosoljanak, az általában könnyen lefejleszthető és tesztelhető, mivel helyi dologról beszélünk, ami nem befolyásol sok minden mást.
Mostanság például olyan helyi hiányosságokkal foglalkoztak, amik az inhibitorokat érintették, és a hatásuk miatt a hősök néha véletlenszerűen a 0,0,0 koordináta fele indultak el, vagyis ha a rendes koordináta rendszer nézzük, ez a pálya bal alsó szél lenne. Hasonló volt például Janna ultija is, a Monsoon, ami figyelmen kívül hagyta a mágikus pajzsokat és ugyanúgy hátratolta őket, vagy talán a három közül a legláthatóbb, a Tear of the Goddess stackelése olyan képességekkel, amik nem kerültek manába (ezek rendszerint alakváltó képességek voltak Nidalee-nél, Jayce-nél, vagy akár Elise-nél).
Mint látható, egyáltalán nem olyan könnyű egy hiba orvoslása, hogy rárakják a hiba, vagy bug jelzőt és már indulhat is a javítás. Sokkal több rétűbbek általában a problémák és sok mindent kell figyelembe venni. A Local Debt még az egyszerűbbek közé tartozik, hamarosan foglalkozunk majd az összetettebb rendszerekkel is.
TETSZETT A CIKK? KÖVESS MINKET FACEBOOKON!