on-game | vs-web | vs-online | AAA WEBY
Hlavni panel

Online hry a jejich stabilita


Online hry a jejich stabilita

   Každou chvíli člověk brouzdající po internetu narazí na nějakou novou online-hru. Kupodivu i mne překvapuje, jejich množství. Není to tak dlouho, co jsem nějakou hledal a narazil jsem na dvě, později se objevily další dvě a dnes stačí podívat se do seznamu na on-game a je vidět, že neustále vznikají nové a bohužel staré i zanikají. Téměř to vypadá, že mít vlastní onlineovku je dnes nutná záležitost a kdo ji nemá vlastně neexistuje.

   Ovšem pravda je někde trošku jinde. Ve skutečnosti se jedná o úplně jiný jev než o módu. Člověk už od dob pravěku si nese v sobě touhu posunovat své hranice, poznávat nové věci a sám sebe překonávat nejlépe překonávat ostatní. Tuto soutěživost má člověk v genech stejně jako touhu dokázat sám sobě, že zvládne víc a víc. A zde je důvod proč vznikají nové a nové onlineovky. Pro některé autory to je možnost jak zužitkovat volný čas, pro některé snaha udělat něco lépe, než to udělal někdo jiný, pro některé je takový projekt možností jak realizovat sám sebe a naučit se víc a víc. V konečném důsledku je snažení všech ohroženo už v základech. Podívejme se na některé problémy, které mohou udělat hru nehratelnou a protože se chceme chovat konstruktivně, navrhněme rovnou nějaké řešení.

Problém první – myšlenka
   Myšlenka je hlavním stavebním kamenem celé online hry. Na tomto kameni všechno stojí, ale také s ním všechno padá. Obvyklou myšlenkou je zkopírování jiné hry za účelem jejího dalšího vylepšení, častou inspirací dále jsou různé seriály a filmy, případně romány. Zde je třeba dát si pozor na autorská práva. Převzetí nápadu někoho jiného může být velmi drahá záležitost, obdobně kopírování zdrojů a motivů. To ovšem není jediná cesta, jakou autor může pomocí myšlenky hře ublížit. Důležitější cestou je prosté „nasycení“ trhu. Typickou ukázkou jsou textové onlineovky. Na internetu se dají najít desítky her, které se liší jen tématikou a grafickým zpracováním. Hráč po nasycení první z nich přechází z jedné na druhou, ovšem to, kvůli čemu odchází, tedy nasycení hrou tedy jejím procesním schématem, je mu předhazováno znovu a znovu. Ačkoliv pak třeba zrovna vaše hra je ta nejlepší z nich, velmi často zapadá do řady ostatních. Pokud tedy už nepřicházíte s myšlenkou kompletně vlastní, zkuste ji zpracovávat bez přihlédnutí k ostatním hrám. Často jsem při vývoji vlastní hry slyšel, zkus si zahrát to a to, najdeš tam to a to zajímavé. Pokud autor takovým svodům podlehne, stane se jeho hra masivním plagiátem stvořeným z mnoha jiných prvků a celý celek pak bude působit lehce nepřirozeně. Lepší cestou je rozjet hru v základu s několika základními funkcemi a pak se řídit přáním hráčů. Ostatně jsou to oni, kdo to hrají a kdo vám může nejvíce pomoct ve vývoji. Proto byste neměli tento zdroj nápadů ignorovat.

Problém druhý – vyrovnanost
   Vyrovnanost je obvyklý problém všech her, ať už onlineovým nebo klasickým. Vyskytuje se všude, kde existují dvě a více skupin hráčů, které se liší svými dostupnými parametry. Typický zdroj těchto konfliktů jsou druhy jednotek u strategických her, rychlost a výkon u simulátorů, tedy všude, kde se liší základní parametry. S tímto problémem se potýkají i zavedené firmy vydávající „staticové“ hry a řeší to vydáváním service packů nebo updates. Vývojáři online her mají nasazování těchto parametrů sice jednodušší, ale složitosti při ladění parametrů se jim nevyhnou. Signálem pro změnu parametrů je neustále vítězící jedna skupina, pokud se vám něco takového stane, je dobré vzít tužku papír a celý víkend počítat. Nic jiného se, bohužel, navrhnout nedá. Zdravý selský rozum je zde zcela na místě a nutný.

   Další možností, kde zaběhnutí hráči získávají převahu nad ostatními je možnost růstu, u mnoha her, jakmile hráč nebo skupina dosáhne určité úrovně, nelze jí již ve vítězství zabránit a může si dělat, co chce. Zničením nejbližších sousedů dosáhne hráč velikosti, kdy je nedotknutelný apod. I zde se systém hry může bránit, existuje mnoho možností. Vycházejme z reálného života, kdy čím větší je země, tím vyšší náklady je třeba vynakládat pro její režijní procesy. Do své hry jsem tento mechanismus zakomponoval pod názvem „ekonomický strop“, kdy režijní náklady hráče rostou s jeho velikostí. Tento mechanismus jednak znevýhodňuje giganty, kteří se pak nemohou stát nedotknutelnými, protože jejich náklady na obranu jsou vyšší než náklady útočníků na útok, dále tento mechanismus chrání systém před vyčerpáním jediným hráčem apod. Existují jistě námitky, že tento mechanismus je nespravedlivý, ale rozebereme si jej do důsledků, je to mechanismus nejen ochrany systému ale zároveň nepřímé ochrany nováčků a vnáší do celého systému další proměnnou, se kterou je třeba počítat.

   Během návrhu hry je třeba počítat nejen se základními proměnnými jako jsou přímé vlastnosti hráče, je třeba vzít v úvahu interakce hráčů mezi sebou, interakce v okamžiku i v čase, reakce systému na události a hráčů na systém, toto vše dává dohromady množinu proměnných ať už přímo viditelných nebo ne, ovlivnitelných přímo nebo nepřímo. Tato skupina pak přímo ovlivňuje hratelnost hry, pokud je příliš malá, hra hráče brzy omrzí a je možné najít scénář přinášející úspěch. Pokud je jich naopak mnoho, je obtížné zachovat vyrovnanost hry, hráčům se hra zdá složitá a hůře se implementují změny, protože je třeba hlídat všechny interakce.

Problém třetí – zkušenosti hráčů
   Velkým problémem všech her je možnost, že noví hráči jsou vystaveni napospas hráčům zkušeným. Jsou pro ně snadným terčem a zdrojem bodů. Jak tomu zabránit? Možností je několik, je však na autorovi, aby se rozhodl, do jaké míry a jakým způsobem nováčky ochrání. První a asi nejjednodušší možností je zavést ochrannou lhůtu, kdy nelze na nováčka zaútočit. Tato ochranná lhůta dává nováčkovi možnost se do hry vpravit bez ohrožení, avšak co dělat, když nováček sám zaútočí? Další možnost je rozdílné bodování pro nováčky a ostřílené. Zde však narážíme na možnost, že se nám ostřílení hráči budou vydávat za nováčky jen proto, aby měli lepší přírůstek bodů, navíc tato možnost skrývá diskriminaci ostřílených hráčů a porušuje tím vyrovnanost hry.

   V této oblasti se často objevují vnitřní nenaprogramované korekční mechanismy, jako podpora skupin hráčů proti příliš vyspělým hráčům, skupiny hráčů trestající porušení napsaných nebo dohodnutých pravidel. Na tyto mechanismy ovšem nelze spoléhat a vývojář by měl mít v rukávu nějaké řešení, které bude takové situace řešit.
Problém čtvrtý – výkon

   A nakonec nikoliv však nejmenším problémem je problém výkonu. Tento problém by měl vývojář řešit průběžně napříč vývojem celého systému. Můžete mít nádhernou hru, ale k čemu bude, když se její stránka bude stahovat několik desítek sekund? Můžete mít nádherně propracovaný systém hry s jednoduchou rychlou grafikou, ale ve chvíli, kdy vám na ní vkročí pár lidí, server zhyne v plamenech. Často vývojáři ve snaze nabídnout hráčům co nejvyšší komfort přetěžují server. Technologií k tomu nejvíce nakloněnou je například technologie AJAX, pokud její využití nedomyslíte a narvete ji všude kam je to možné, získáte sice úžasné stránky, ze kterých ale hráči sami budou zmatení a navíc budete sami sobě generovat takovou zátěž, že to server nemusí zvládnout. Typickou ukázkou může být řekněme okno, kam vypisujete poslední události, toto okno se bude obnovovat každých deset vteřin. To je šest dotazů za minutu. Vše je ok, to zvládne server levou zadní. Ale co když na takovou stránku vstoupí a zůstane větší skupina uživatelů, řekněme sto? Dotazů už je šest stovek, tedy deset dotazů za vteřinu vznikající jen provozem tohoto boxu, vedle toho standardní zátěž běžného provozu a více uživatelů, a server podlehne DOS útoku, kterým jste na sebe zaútočili sami. Ukázková střelba do vlastní nohy. Další možností může být nevhodné zvolení doprovodných technologií. Pokud se například rozhodnete, že budete permanentně číst soubor z disku, musíte počítat s tím, že daný disk bude přímo reagovat na zátěž uživatelů, při vyšší zátěži a vytížení disku pak můžete dosáhnout sestřelení serveru díky čekáním na data z disku.

   Předcházet těmto problémům lze v mnoha krocích, prvním krokem je zvolení vhodné technologie, jestliže vím, že mám pomalé disky, přirozeně na ně nenavěsím zbytečně mnoho zátěže, pokud vím, že mám pomalou databázi, pokusím se co nejvíce data zpracovat a zpracované uchovat pro další použití, pokud vím, že mám problém s kapacitou linky ale ne s výpočetním výkonem, mohu zavést kompresi výstupních dat, pokud očekávám velkou zátěž, je třeba zvolit architekturu tak, aby se logické části, co nejméně dotýkaly a aby si neblokovaly zdroje mezi sebou. Z hlediska architektury je jedno z nejnešťastnějších řešení možnost, kdy na každé stránce jsou boxy, které se necacheují a reprezentují postupně všechny moduly aplikace, přetížení jakékoliv stránky pak působí přetížení všech modulů a padají následně i stránky ostatní.

   Přirozeně, polévka, kterou jsem vám zde nastínil není většinou tak horká, jak jsem zde napsal, ale při vývoji jakékoliv webové aplikace je třeba počítat s tím, že zátěž, kterou se snažíte obsloužit může být nárazová, růst v několika vteřinách mimo předpokládané hranice, vyvíjíte pro různé prohlížeče, musíte být odolní proti robotům, uživatelé budou posílat zběsilé vstupy a budou se snažit aplikaci probourat.



Známka 1,00 | Přečteno 1916 x | Smaž | 3/04/2007 | Autor: genesis |
Komentařů: 11 | Vstup do diskuse |
Sdílet

Abyste mohl hodnotit tento článek, tak musíte být přihlášen. Nemáte ještě zřízený účet ? Registrujte se zde.
Všechna práva vyhrazena, © 2006 Team on-game

Optimalizováno pro 1024x768 a prohlížeče IE, Mozilla Firefox a Operu

ip:38.107.179.216, čas:0.00427412986755, sql:10