sobota 23. června 2012

O programování her

To bych předtím fakt neřekl kolik kódu je třeba napsat pro takovou hru jako je Nicky Boom. "Jaká jednoduchá hříčka, ne na více než deset, patnáct řádek programovacího kódu," zdálo se mi. Jenže ono je toho mnohem víc, až několik set řádků "code"-u! A to je opravdický šok, protože Nicky jen chodí do stran, skáče, sbírá dobroty, háže ohryzky a sem tam jednou, či dvakrát za úroveň vyhodí nad sebe bombu. Poté jsou ve hře nepřátelé, kteří se pohybují jen tam a zpět v rozmezí max deseti metrů. A taky občas s Nickym seberete klíč, a krom něj i bombu. Klíčem otevřete neposlušné dveře. A kolečko s písmenkem T jako teleport přepíše Nickyho pozici na jiné programátorem předem určené místo.

Každou tuhle "feature" v programu popíšete, slovem, ale i jednou větou. Nejprve však definujete co je co, protože počítač sice dokáže rozlišit písmenko od číslíčka, ale už nepochopí, co je tím "a" nebo "6" myšleno. Častý případ je, že ani tohleto nestačí, protože při výskoku nejenže program zjišťuje, jestli je postavička na zemi nebo ve vzduchu, důležité je také to, zda paprsky vystřelující z kolizního boxu obklopujícího postavičku dají vůbec onomu raketovému startu vstříc nebesům zelenou. A je to ještě složitější, chcete-li mít skákání zcela bez chybičky. Ani celý kalendář nemusí stačit na popis dokonalého skákání ve 2D prostoru - alespoň v případě Unity, které je zaměřené čistě na 3D programování, a nemá tak opravdový 2D prostor "k dispozici".

A ono se to vůbec nezdá, ale nakupí se to a ve výsledku máte přes dvě stovky řádků kódu, ani nestačíte říct desetkrát za sebou Nicky Boom. To však stále není úplně vše, protože při betatestování se objeví něco s čím jste nepočítali, ale co za vás mnohokrát chytřejší počítač vypočítal za vás. Co se týká psaní podmínek - čiže jestli tohle, tak to udělá "bum", ale jinak to neudělá nic, resp. udělá to něco, co hráč nepostřehne - musíte i při naprosto pitomých a vám víceméně jasných věcech programu natlouct do jeho CPU, že se v případě A stane B, protože C zvýší D a E vám neudělá nic, když F není na G, protože H se objeví, až přivoláte I, za předpokladu, že jste na plošince s atributem J v čase K, protože L nemá nic společného s M, po jehož sebrání se vám přičte N do vaší tabulky O, ale jen pouze v případě, že máte na vašem P dost bodů Q, skáčete-li zrovna na podlahu R, přičemž zeď S je v jiné hladině zvané T, a tím pádem má jiné vlastnosti než podlaha U, a tudíž jste nuceni napsat podprogram V, ve kterém se musí vyskytovat fyzikální síla W, protože výskok o rychlosti X musí být v úhlu Y násobené časem, jinak vám Nicky vyleze z monitoru a vytluče vám do hlavy jedno velké Z.

zeal

0 komentářů:

Okomentovat