Tall blir større Design og matematikk av inkrementelle spill

I vår introduksjonsdel på inkrementelle spill, tok vi en titt på sjangerenes historie og undersøkte hva som gjør disse spillene unike, men vi døde ikke for dypt inn i deres faktiske design. Selv om inkrementelle spill kan virke enkle, viser deres design kompleks og gjennomtenkt hensikt fra sine skapere. Ved å se på noen vellykkede eksempler på sjangeren, kan vi bedre sette pris på funksjonene i disse spillene, og bedre forstå hvordan vi kan designe våre egne.

Før du drar inn i matematiske rammer, er det tre lett oversett, men viktige designområder som jeg vil fremheve: kvaliteten på lete og funn, forskjellen mellom "inaktiv" og "clicker" -uttrykk av sjangeren, og betydningen av sammenhengende tema og kunst.

The Joy of Discovery

En av de viktigste vektorer av "moro" i et inkrementelt spill er det av oppdagelse. Mange av disse spillene begynner med et veldig enkelt innledende oppsett, men kompleksiteten spiraler når spilleren utvikler seg. Prosessen med å avdekke denne kompleksiteten taper inn i den medfødte appellen for å oppdage nye og skjulte funksjoner. Candy Box, for eksempel kan forstås som et spill primært om å utforske sitt system, og "økende" candy score er ganske enkelt mekanismen for å låse opp ytterligere innhold.

Således gjør de fleste inkrementelle spillene ikke hele systemet tilgjengelig fra starten, men i stedet "port" flere funksjoner mot tier av primærvalutaen. Dette innholdet kan være et "kjent ukjent", som i Lei å regere gudene, hvor visse deler av spillet er eksplisitt tomme og angir hvordan og når de kan låses opp, eller et "ukjent ukjent", hvor spilleren ikke engang vet at funksjonene eksisterer til et visst nivå er nådd, som nesten alt innhold i Cookie Clicker. Noen spill kan inneholde elementer av begge: Advent Capitalist informerer spilleren om mye av innholdet som de kan låse opp, men inneholder mange skjulte funksjoner som dukker opp i løpet av spillet.

Jeg antar vi har en lang vei å gå.

Discovery er en viktig funksjon å vurdere i utformingen av et inkrementelt spill fordi det gir et utforskende belønningssystem til spilleren mens de lærer om spillets kjernemekanikk. Å presentere alt opp foran ville ikke bare øke adgangsbarrieren ved å lære spillet, men også fjerne glede som kommer fra gradvis kjennskap til et system.

Inaktiv eller klikker?

Inkrementelle spill pleier å fokusere på to overlappende men tydelige primærmekanikere: 

  • Autonom vekst som spilleren gradvis øker hastigheten på.
  • Aktivt spillerengasjement hvis produktivitet gradvis øker.

Spill som fokuserer på sistnevnte vil generelt ha enten en bokstavelig "klikke" mekaniker for å produsere vekst, eller på noen annen måte å kreve aktiv spillerdeltakelse, som lagringsskap som krever hyppig spillerintervensjon. I CivClicker, for eksempel må spilleren for det meste aktivt forvalte byen, med bare korte perioder med tomgangsvekst. Omvendt kan spill som fokuserer på autonom vekst inneholde en klikkmekaniker, men hvis den gjør det, blir dens betydning gradvis avhengig av noe automatisert. I Advent Capitalist,despilleren må aktivt klikke først, men frigjør raskt muligheten til å automatisere prosessen, og er i stor grad fri for manuell økning.

Dette valget er i stor grad et spørsmål om preferanse og vektlegging av spillets mål. Et spill som krever aktiv ledelse, kan være mer engasjerende for spilleren over en kort tidsramme, men hvis implementert på en måte som krever for mye spillerengasjement for ofte, kan det komme til å bryte med prinsipper for etisk og humant spilldesign. Omvendt kan en mer autonom eller inaktiv tilnærming kreve mindre engasjement fra spilleren i en gitt leksesjon, men kan skape en mer langsiktig forpliktelse til spillet, noe som bidrar til å forklare hvorfor "inaktiv" spill på Kongregate har en så høy oppbevaringshastighet. Advent Capitalist til og med informerer spilleren hva som har skjedd i deres fravær, understreker at det ikke krever konstant oppmerksomhet:

Kunstretning og tema

Inkrementale spill er fortsatt ofte avhengig av et fortellende tema som mekanikerne sitter på (selv om dette kan være lett å overse fordi disse mekanikkene er så små).

 Et fornuftig tema kan bidra til å gi kontekst til ellers abstrakt utøvelse av økende antall. like måte, alle spill drar nytte av god kunstretning og design, og inkrementer er ikke noe unntak. Konsekvent estetikk hjelper spillet til å føle seg som en samlet opplevelse, og et rent grensesnitt reduserer den mentale kostnaden ved å navigere spillet, slik at spilleren kan konsentrere seg om spillet selv, i stedet for å tolke dårlige brukergrensesnittelementer.

Eksempelet ovenfor fra Advent Capitalist er en god illustrasjon av dette. Dens tema er forretningsadministrasjon og kapitalistisk ekspansjon (som passer med gameplayen av stadig økende antall), og den bruker en 1950-årig googie-estetikk for sin kunstretning. Dette brukes konsekvent (og med humor), slik at selv menyer og opplæringsprogrammer er "i karakter" og forsterker det visuelle og fortellende temaet. 

Økelsespillens behov for grafikk og skriving kan være litt sparsom sammenlignet med spill av andre sjangere, men det er viktig å ikke forveksle lavt behov for Nei trenge.

Tall går opp

Den mest definerende mekaniker av inkrementelle spill er antallet økende. Vi definerte denne siste gang som:

  1. Tilstedeværelsen av minst én valuta eller nummer,
  2. som øker med fast hastighet, uten eller minimal innsats,
  3. og som kan brukes til å øke hastigheten eller hastigheten som den øker.

Det er det tredje elementet som i stor grad påvirker følelsen av spillet, og det er det vanskeligste å designe godt. Siden det er et spesielt greit eksempel, la oss ta en titt på Nummer av Tyler Glaiel. Den har de tre kjernedefinisjonene og nesten ingenting annet: et nummer går opp, og du kan bruke det nummeret for å få det til å gå raskere.

Når spillet begynner, er "inntektsraten" av tallet økende 0,1 per sekund. Mengden "nummer" lagret kan brukes til å gjøre det raskere. Her er de fem første kjøpene, med prisen i den første kolonnen og den nye "tallet per sekund" i andre:

Koste Inntektsrente
1.0 0.2
1.2
0.4
1.4
0.7
1.7
1.2
2.2 1.8

Selv med en håndfull observasjoner kan vi identifisere noen av kjennetegnene til inkrementell design her. En er den ikke-lineære økninger til både pris og fordel: det tar stadig flere tall for å få relativt mindre gradvis forbedring. 

Dette er fornuftig ut fra et praktisk perspektiv: Hvis kostnads ​​/ ytelsen forblir den samme (for eksempel hvis det alltid koster 1 tall for å kjøpe 0,2 økning i inntektsrenten), ville det ikke være noen variasjon i resultatet, og inntektene renteøkning vil klatre i et jevnt og forutsigbart tempo. Dette ville bli kjedelig veldig raskt!

I stedet er dette hva kostnaden (i blått) og inntektsrenten (i oransje) for de første tjue kjøpene ser ut som:

Blå: Kostnad for den fjerde oppgraderingen. Orange: Inntektsrate per sekund generert fra x kjøp. For eksempel koster det tiende kjøpet 7 tall, og resulterer i en inntektsrate på 7,6 tall per sekund.

(Du kan laste ned en XLSX av dataene som brukes til å generere disse grafene fra denne GitHub repo, eller se en Google Sheets-ekvivalent.)

Vi kan se her helt åpenbart at disse funksjonene er ikke-lineære (til og med ignorere kostnadsformelhoppet på 12th iterasjon), og at kostnadsøkningene raskt overskrider inntektsveksten. Det er et viktig aspekt av designen, fordi det betyr at tiden som ventes å ha råd til neste oppgradering vokser eksponentielt, jo lengre spillet varer. Så fort går spillet fort i begynnelsen, med spilleren som bare må vente med jevne mellomrom for å spare nok for neste kjøp, men gradvis bremser ned.

De fleste inkrementelle spill har flere kilder til inntektsøkningsøkning for å oppgradere, i stedet for bare én som Nummer gjør. Dette er en viktig kilde til oppdagelsen og strategien av inkrementelle spill, fordi det har flere vektorer av forbedring hvis kostnader øker ikke-lineært introduserer interessante muligheter for optimalisering for spilleren. Hvis spilleren velger å investere tungt i en enkelt bygning eller oppgradere, vil de eksponentielt økende kostnadene på et tidspunkt øke relativt billigere, selv om de i utgangspunktet ble priset veldig høyt. Dette betyr at spilleren har en rekke alternativer til deres disposisjon, men de må hele tiden bli revurdert fordi relativ verdi til spilleren stadig skifter.

Lineære forbedringer med eksponentielle kostnader

eksponentiell koste skalering er gunstig for den stadig økende ressurs- og tidsinvesteringen de trenger, men de fleste spillene benytter ikke eksponentiell inntektsrate øker. Hvorfor ikke? 

I diagrammet fra siste avsnitt er det gapet mellom de to linjene som gir oss det stadig voksende kostnads-mot-fordelforholdet. For å oppnå det, krever vi faktisk bare kostnad (i oransje) for å øke eksponentielt (eller polynomielt); Inntektsrenten kan øke lineært, og gapet mellom linjene vil fortsatt øke.

For eksempel, i Clicker Heroes, En av de første automatiserte kildene til antall økende er fra en "helt" kalt Treebeard. I utgangspunktet koster det 50, og gir deg en inntektsrate på 5 per sekund. Det andre nivået koster 53,5, men gir fortsatt en ekstra renteøkning på 5. De første femti kjøpene ser slik ut, igjen med kostnaden i blått og inntektsrenten i oransje:

Vær oppmerksom på at for enkelhets skyld ignorerer vi en rekke andre kostnader / prismekanikk i Clicker Heroes.

"Inntektsrate" -funksjonen her er bare en rett linje, siden hvert kjøp øker det med det angitte beløpet på 5, så formelen for det er veldig enkelt: Den totale frekvensen per sekund er bare tallet som eies multiplisert med 5 (så, \ (y = 5x \)). 

Kostnaden går imidlertid opp med en stadig økende pris. Den inkrementelle kostnaden for hvert tilleggsnivå er minimal i begynnelsen; På grafen kan vi se for de første tjue gapet mellom de to er nesten konstant. Men da bryter det seg vekk dramatisk, og krever mer og mer for hver etterfølgende oppgradering. 

Formelen for kostnadsfunksjonen her er faktisk en som er mye brukt på tvers av mange inkrementelle spill:

\ [Pris = BaseCost \ times Multiplikator ^ (\ # \: Eid) \]

For vårt Treebeard-eksempel er basekostnaden 50, og variabelen "Multiplier" er 1,07, så det andre nivået koster \ (50 \ ganger 1.07 ^ 1 = 53.5 \), den tredje koster \ (50 \ ganger 1.07 ^ 2 = 57.245 \), og så videre. Multiplikatorens verdi bestemmer krumningen av linjen, med høyere verdier som betyr brattere kostnadskurver. (En verdi på 1 ville gi en lineær kostnadslinje.) 

Clicker Heroes bruker 1,07 som økningsmultiplikator for alle 35 av sine oppgraderbare helter, og alle de forskjellige bygningene i Cookie Clicker bruk en verdi på 1,15. Interessant, de 10 bedrifter av Advent Capitalist alle bruker en annen multiplikator, men hver er mellom 1,07 og 1,15. Det felles utseendet til de samme Multiplikatorer på tvers av forskjellige spill tyder på at kurvene som produseres mellom disse grensene er balansert og tilfredsstillende. 

Noen spill divergerer derfra skjønt. Steams multiplayer inkrementale spill Monster, En del av deres 2015 sommer salgshendelse, bruker Multipliers så høyt som 2,5, noe som øker veldig bratt.

Som nevnt tidligere har eksponentiell kostnadsskalering fordelene ved å balansere flere oppgraderingsbaner ved å sikre at hver følger en bane med avtagende avkastning. Dette gjør noe av den taktiske balansen medfødt til kostnadsformelen selv, i stedet for noe designeren trenger å eksplisitt ramme. Fordi selv om en gitt ressurs er noen ganger eller enda det meste "bedre", betyr den eksponentielt stigende kostnaden at den ikke kan utnyttes utelukkende. 

La oss se på listen over oppgraderbare bygninger i Cookie Clicker som et eksempel:

Bygning Basiskostnad
Basisinntektsrate
markør 15 0.1
bestemor
100 0.5
Farm
500 4
Fabrikk
3000 10
Min
10000 40
forsendelse
40000 100
Alchemy Lab
200000 400
Portal
1666666 6666
Tidsmaskin
123456789 98765
Antimatterkondensator
3999999999 999999
Prism
75000000000 10000000

Vi kan se flere tilsynelatende mønstre bare fra dette bordet. 

Den første er at basekostnaden for hver etterfølgende oppgradering er nesten fem ganger høyere enn den forrige (unntatt de siste få). Disse økningen med en halv størrelsesorden sikrer at spilleren har tilstrekkelig tid til å nyte hver nyopplåst ressurs; lavere økninger ville bety at opplåsingen kan komme for fort, men lenger vil risikere at spilleren blir lei før den neste opplåsingen oppnås.. 

Inntektshastigheten (informasjonskapsler per sekund, for dette spillet) øker imidlertid kun med om lag en tredjedel for hvert ekstra nivå, noe som betyr at mens bygningene bidrar til stadig større tallbeløp, er de faktisk mindre og mindre effektive i forhold til kostnadene.

Men fordi hver bygning følger den samme kostnadsøkningsformelen \ (Pris = BaseCost \ times 1.15 ^ (\ # \: Owned) \), følger hver bygning faktisk et meget lignende mønster. Tabellen nedenfor viser en linje for hver av de 11 bygningene, og graver de første to hundre oppgraderingene, med loggkostnad langs y-aksen og logg inntektshastigheten på x-aksen. (Siden disse er eksponentielle funksjoner, avslører en logaritmisk skala deres likhet bedre enn en lineær.)

Denne Hver linje representerer en annen bygning, med kostnad på y-aksen og inntektshastigheten på x-aksen (begge logaritmiske skalaer). Dette er en visualisering av kostnaden for nyttekrumning vi diskuterte tidligere

Så selv om disse bygningene virker svært forskjellige, siden hver produserer nominelt og koster mye mer enn tidligere, produserer deres eksponentielle kostnadsformler kurver som er iboende lik, samtidig som de skaper et system som spilleren kan optimalisere.

Regnskap for effektivitet

Mens inkrementelle spill er overfladisk om å få tallene å gå opp, er det slik å få dem til å gå opp så fort som mulig som gir dybde for lidenskapelige spillere. Spilleren har alltid flere forbedringsmåter foran dem mellom de ulike oppgraderbare ressursene (vanligvis sammen med noen ekstra funksjoner vi diskuterer senere), og utfordrer spilleren til å evaluere disse valgene. Skulle du kjøpe den billigere oppgraderingen du har råd til akkurat nå, eller lagre til du har råd til neste nivå?

Siden vi til slutt vil kjøpe alle oppgraderinger, er den mest effektive tilnærmingen bare for å evaluere den optimale bestillingen. Tenk deg et scenario der vi for øyeblikket produserer 5 av nummeret vårt per sekund (\ (nps = 5 \)), og vi har valg mellom to oppgraderinger. Den første koster 20 (\ (cost_a = 20 \)), og vil øke vår inntektsrate med 1 (\ (rate_a = 1 \)). Den andre har \ (cost_b = 100 \), men har også \ (rate_b = 10 \). Den tidligere er billigere, men det er også mindre kostnadseffektivt. 

Vel, la oss prøve å kjøpe A da B:

  • Vi venter og lagrer for \ (20/5 = 4.0 \) sekunder, så kjøp A.
  • Nå venter vi \ (100 / (5 + 1) = 16,67 \) sekunder, så kjøper du B.
  • Vi har nå \ (nps = 16 \), og det tok oss \ (20.67 \) sekunder for å oppnå.

Hva om vi gjorde det motsatte?

  • Vi venter og lagrer for \ (100/5 = 20,0 \) sekunder, så kjøp B.
  • Nå venter vi \ (20 / (5 + 10) = 1,33 \) sekunder, så kjøper du A.
  • Vi har nå \ (nps = 16 \), og det tok oss \ (21.33 \) sekunder for å oppnå.

Så, det ser ut til å kjøpe A først og deretter B er mer effektivt, fordi \ (20/5 + 100 / (5 + 1) < 100/5+20/(5+10)\). We could generalize this example to get a formula like this:

\ [\ frac cost_a nps + \ frac cost_b (nps + rate_a) < \frac cost_bnps + \fraccost_a(nps + rate_b) \]

Men dette er bare nyttig for sammenligninger mellom to mulige oppgraderinger, og det er ikke så nyttig hvis vi hadde mange valg. Vi må forenkle formelen for å isolere variablene for bare en enkelt oppgradering (avledningen av dette er forklart i detalj i denne fantastiske artikkelen av Adam Babcock), som gir dette:

\ [\ frac cost_a nps + \ frac cost_a (nps + rate_a) \]

Nå kan vi bruke denne formelen til enhver mulig oppgradering, og det laveste resultatet, på grunn av transittiviteten til ulikhetene, vil gi det vi skal kjøpe neste (med noen unntak som ikke er verdt å komme inn på for dette nivået av analyse). Dette forenkler forenklet prosessen med å finne den mest effektive ruten for optimalisering.

Dette er åpenbart relevant for spilleren, men det er også nyttig for designeren. Å vite det mest effektivebruk av ulike spillelementer kan identifisere eksistensen av utilsiktede pigger i tidskrav, og sørge for at selv optimalt spill utvikler seg med en hastighet beregnet av skaperen.

Å avlede optimale lekscenarier lar oss også sammenligne ulike inkrementelle spill, da vi kan redusere de ulike variablene til den tiden det tar å nå et gitt antall nivåer per sekund. Tabellen nedenfor viser tiden som kreves for å oppnå et gitt tall per sekund inntektsrate i Advent Capitalist (i grønn) og Cookie Clicker (i brun), hvis du kjøper bygninger på den mest effektive måten (ignorerer andre spillaspekter for enkelhet):

X-akse: tid, y-akse: inntektsrate (logg skala); grønn: AdVenture Capitalist, brun: Cookie Clicker.

Bemerkelsesverdig, de to spillene ser veldig like ut her, og returnerer høyere frekvenser av nps mot en stadig økende tid. Begge vokser utrolig raskt i de første 8-10 timene (rundt 500 minutter), men økningen er mye mer marginal etterpå. De flater etter hvert som antall nye bygninger er utmattet. Som et resultat inkluderer de fleste inkrementelle spill andre kjøpbare ressurser sammen med de viktigste oppgraderbare bygningene, en av de viktigste er evnen til å tilbakestille spillet, noe som gjør at spilleren kan klatre på denne kurven igjen.

Den spiralende kompleksiteten av oppgraderinger i inkrementelle spill kan gjøre deres design et skremmende prospekt. Men designeren trenger ikke å nøyaktig kalibrere hvert element. Skjønnheten i komplekse ikke-lineære systemer betyr at engasjerende stiger av oppgraderinger kan produseres med bare høyt nivå balanse fra designeren. For spilleren er det vanskelig og morsomt å navigere systemet for å finne den optimale sekvensen, mens oppgaven til designeren er å sikre at det er et så komplekst system å navigere.

"Nytt spill +" og andre funksjoner

En "Ny spill +" -funksjon lar spilleren tilbakestille sin fremgang i bytte for en varig bonus. Så alle kjøpte bygninger og andre ressurser kan returneres til null, men når man starter over en flat multiplikativ økning, blir det brukt på alle tall per sekund beregninger deretter. 

Dette endrer ikke noen av de grunnleggende formlene i spillet; det betyr bare at spilleren vil komme til det eventuelle asymptotiske platået raskere og raskere. I hovedsak handler denne funksjonen for å forlenge kjernespillet ved å la det spille raskere. Dette kan ikke opprettholdes på ubestemt tid, men så til slutt vil langtidspartnere nå et "endgame" av slag.

I Clicker Heroes, stigende belønner spillerne med en ny valuta for å kjøpe oppgraderinger med.

En annen vanlig funksjon for å utvide spillet er ganske enkelt å øke kompleksiteten til oppgraderbare bygninger. Så langt har vi bare undersøkt den vanligste metoden for inkrementell oppgradering, som følger eksponentiell kostnadsfunksjon. Ved siden av er det vanligvis oppgraderinger som enten gir engangsflateforbedringer til det totale antallet per sekund, eller som endrer de underliggende kostnads- og inntektsrentevariablene på en eller annen måte. 

I Clicker Heroes,for eksempel er det oppgraderinger som øker basenummeret per sekund for en "helt", så vel som de som øker basenummeret per sekund for alle "helter". Selv om disse og lignende funksjoner ikke endrer de underliggende mekanikkene til et inkrementelt spill, kan de utvide muligheten for spilleren til å utforske, og ytterligere utfordre deres evne til å optimalisere spillet. I tillegg, som "New Game +" -mekanikeren, kan volumet av oppgraderinger også fungere for å forlenge avspillingen før du treffer det eventuelle plateauet som pågår.

Conspiracy Clicker har tre forskjellige trær av sammenhengende oppgraderinger.

Gå frem og multipliserer (eksponentielt)

Selv om dette ikke har vært en uttømmende undersøkelse av inkrementell spilldesign, har vi gitt et grundig utseende til deres grunnleggende aspekter. Som et kort sammendrag for potensielle designere og utviklere:

  • Aktiver og fremme en følelsesfunn.
  • Vurder aktivt og inaktivt spill (og ideell belønne begge).
  • Ikke forsøm et samlende tema og kunststil.
  • Bruk eksponentiell kostnadsskaling, med den vanligste formen er \ (Pris = BaseCost \ times Multiplikator ^ (\ # \: Owned) \) med en multiplikator mellom \ (1.07 \) og \ (1.15 \).
  • Gi spilleren flere muligheter for optimalisering.
  • Utvid spille gjennom strategisk bruk av tilbakestilling og mekanikk som øker kompleksiteten.

Hvis du er interessert i å lære mer, er de inkrementelle spillene subreddit et stort fellesskap av designere og utviklere å vende seg om for råd og ideer. Hvis du vil dykke rett inn i å implementere noen av dine ideer, utvikleren av Cookie Clicker laget et online verktøy som lett kan lage lignende spill, og det er en fin måte å eksperimentere uten å legge hele fundamentet selv. Hvis du leter etter noe litt mer avansert, skaperen av CivClicker har et utmerket stykke på logikken for en HTML- og JavaScript-implementering også.

Jeg håper rammen vi har undersøkt her tjener som en inspirasjon for å utforske ditt eget uttrykk for et inkrementelt spill. Tross alt er det mye uutnyttet designrom som er igjen for å utforske:

Liste over spill nevnt

Selv om det ikke er en omfattende liste (for det, har de inkrementelle spillene subreddit en flott liste), her er en liste over spillene som er nevnt i vår første artikkel eller i denne:

  • Et mørkt rom
  • AdVenture Capitalist (også tilgjengelig gratis på Steam)
  • Anti-Idle: Spillet
  • Candy Box
  • CivClicker
  • Clicker Heroes (også tilgjengelig gratis på Steam)
  • Conspiracy Clicker
  • Cookie Clicker
  • DripStat (et interessant eksempel på et selskap som bruker et inkrementelt spill som en del av markedsføringen)
  • Lei å regere gudene
  • Monster (Steams midlertidige sommer salg minigame, ikke lenger aktiv)
  • Nummer
  • Progress Quest
  • Sandcastle Builder
  • The Monolith

Merk også: Du kan laste ned en XLSX av dataene som brukes til å generere grafene i denne artikkelen fra denne GitHub repo, eller se en Google Sheets-ekvivalent.