Deník vývoje

Proč tady nic neplatí za sekundu

Každá idle hra, kterou jsem hrál, fungovala stejně: koupíš generátor, číslo jde nahoru a to číslo se ti navždycky přičítá k zůstatku, po kouskách. Idle Broker jsem nejdřív postavil taky tak. Pak jsem ten motor vyhodil a nahradil ho něčím, co produkuje úplně stejný průměrný příjem a hraje se naprosto jinak. Tohle jsou zápisky z toho přepisu — co se změnilo, co to rozbilo, a jedno číslo, na kterém nakonec záleželo víc než na návrhu.

Problém s plynulým praménkem

Motor na mince za sekundu se píše triviálně. Držíš průběžný součet všeho, co hráč vlastní, vynásobíš délkou ticku a přičteš. Dvacetkrát za sekundu, navěky. Taky je, jak jsem si nakonec přiznal, úplně netečný. Hráč něco koupí, tempo skočí ze 4,2 na 4,7 a nic v celém světě to nijak nepotvrdí. Není tam žádná událost. Není tam žádný okamžik. Je tam o kapku rychlejší šmouha.

Téma to spíš zhoršovalo než zachraňovalo. Idle Broker se odehrává na obchodním patře a obchod není šmouha — obchod se zadá, chvíli trvá, dojede a přijdou peníze. Mechanika, kterou jsem napsal, aktivně odporovala fikci na obrazovce. Takže generátory přestaly platit pasivně a začaly běhat časované obchody: obchod se spustí, běží pevně danou dobu a při dojezdu vyplatí jednu částku.

Tlačítko mělo chvíli i vlastní obchod: tři sekundy, jeden dolar. Později šlo pryč, a to je vlastní malý příběh — viz dodatek na konci.

Advertisement

Zachovat křivku, změnit pocit

Podmínka, kterou jsem si dal, zněla: ekonomika se nesmí pohnout. Křivky v idle hrách jsou křehké — každá cena, každá odměna za kvest a každý práh prestiže je vyladěný proti očekávanému příjmu, a když se ten příjem posune, ujede to všechno s ním. Výplata jednoho dokončeného obchodu je proto definovaná takhle:

výplata = základní výnos × základní délka × 4 × počet kusů × multiplikátory

Vyděl to délkou a délka se vykrátí. Průměrný příjem za sekundu je základní výnos × 4 × počet kusů, což je starý pasivní výnos krát čtyři. Stejný tvar křivky, jen větší a kulatější čísla na obrazovce. Jediné, co se změnilo, je, že peníze teď chodí ve viditelných skocích místo praménku.

Délky jsou rozházené, aby patro nikdy nesklaplo do jednoho rytmu. Nejlevnější generátor dojíždí nejrychleji, což zároveň znamená, že se v rané hře každých pár sekund něco děje:

GenerátorDélka obchoduZákladní výnosVýplata za obchod, 1 kus
Stážista5 s0.1$2
Kávový vozík6 s0.5$12
Akciové portfolio8 s4$128
Investiční fond10 s20$800
Hedgeový fond12 s100$4800
Kryptoburza15 s400$24000

Stážista platí 2 dolary každých pět sekund. Kryptoburza 24 000 každých patnáct. Obojí má přesně čtyřnásobek svého starého pasivního výnosu a obojí teď dělá událost, na kterou se dá dívat.

Nehoda, ze které se stala mechanika

Víc kusů generátoru zrychluje jeho obchody — na 10, 25, 50 a 100 kusech klesne délka na 93 %, 85 %, 72 % a nakonec 60 % základu. Zamýšlel jsem to jako příchuť: větší patro pracuje rychleji. Co jsem nedomyslel, je, že vzorec výplaty používá základní délku, zatímco výpočet příjmu dělí tou skutečnou.

To znamená, že zrychlení není kosmetika. Je to přímý násobitel příjmu 1 ÷ 0,6 — tedy o chlup pod 1,67× — za vytažení generátoru na sto kusů. Našel jsem to tak, že jsem zíral do tabulky a přemýšlel, proč hromada stážistů překonává můj model.

Nechal jsem to tam. Dává to hloubku rozhodnutí, které je jinak čistá aritmetika — jít do šířky na jednom stupni je lepší než rozmělňovat — a ty prahy dávají cíl, který není jen další odemknutí. Je to jediný kus téhle ekonomiky, který jsem nenavrhl schválně, a zřejmě ten nejzajímavější.

Advertisement

Co přepis rozbil

Číslo v hlavičce přestalo znamenat, co říká. „Výnos/s“ býval fakt — bylo to doslova číslo, které se každý tick přičítalo. Teď je to průměr přes obchody, které ještě nedojely. Hráči koukali, jak jim zůstatek osm sekund stojí, a hlásili hru jako rozbitou. Rozbitá nebyla; lhal displej tím, co zamlčel. Oprava nebyl kód, ale vysvětlení v průvodci a prstenec postupu na každém generátoru, aby bylo čekání vidět.

Prstence postupu jsou překvapivě drahé. První verze překreslovala každý řádek generátoru asi patnáctkrát za sekundu, jen aby se pohnul pruh. Na telefonu s tuctem běžících generátorů je to měřitelný kus baterie za animaci, kterou nikdo nestuduje. Pruhy jsou teď čistá CSS animace, které se předá délka — React ji nastaví jednou při startu obchodu a do dojezdu na ni nesáhne.

Existující savy to musely přežít. Kdokoli byl uprostřed běhu, vlastnil generátory, které by podle nových pravidel nevydělaly nic, dokud by jim někdo neřekl, ať obchodují. Načtení starého savu proto tiše zapne automatizaci na všem, co už hráč vlastní — vracející se hráči si nechají příjem, se kterým šli spát, místo aby se vzbudili k mrtvému patru a psali mi mail.

Dodatek: smazání kliku

Tlačítko, které zadávalo vlastní tříse­kundový obchod za dolar, je pryč. Byla to poslední věc ve hře, která odporovala pravidlu, podle kterého se řídí všechno ostatní — vydělávají tvoje aktiva, ne ty — a potichu učila nové hráče první minutu jejich běhu špatnou lekci.

Jedno stisknutí teď spustí obchod na každém aktivu bez automatizace, s odznáčkem, který počítá na kolika. Tlačítko viditelně ztrácí smysl, jak automatizuješ — což je přesně ten oblouk, o kterém hra je. Aby to bylo bezpečné, musely se opravit dvě věci. Běh bez příjmu z kliku a bez vlastnictví nemůže vydělat vůbec nic, takže každý běh — včetně každé prestiže — začíná s hotovostí na jednoho stážistu. A Midasův dotek, který násobil klikací příjem, jenž přestal existovat, teď přidává svůj bonus k obchodům spuštěným ručně a ne k automatickým. Dopadlo to líp než to, co nahradil: konečně existuje důvod sáhnout si na hru i potom, co si patro běží samo.

Smazat mechaniku je levnější, než to vypadá, a dražší, než čekáš. Samotné smazání trvalo dvacet minut. Najít všechno, co na ní potichu viselo — jedno vylepšení, pořadí kroků v tutoriálu, řetěz kvestů nadimenzovaný pro auto-clicker, který byl odstraněný o měsíce dřív — zabralo zbytek dne.

Stálo to za to?

Raná hra se měřitelně hůř užívá — čísla jsou malá a stážistovi trvá výplata pět sekund. To je reálná cena a nechci ji obcházet. Ale kupuje přesně to, o čem ten žánr doopravdy je: okamžik, kdy koupíš první automatizaci a patro se rozjede bez tebe, je teď skutečná změna stavu, ne o něco strmější čára na stejném grafu. Přešel jsi od dělání práce k vlastnění práce.

Jestli chceš čísla místo úvah, průvodce návratností automatizace počítá, kdy se každý stupeň zaplatí, a další zápisek je o křivce prestiže, která se mi dvakrát složila, než aritmetika držela.