În piesa introductivă despre jocurile incrementale, am aruncat o privire asupra istoriei genului și am examinat ceea ce face ca aceste jocuri să fie unice, dar nu am făcut-o prea profund în designul lor real. În timp ce jocurile incrementale pot apărea simple, designul lor dezvăluie intenții complexe și intenționate de la creatorii lor. Privind câteva exemple de succes ale genului, putem să apreciem mai bine caracteristicile acestor jocuri și să înțelegem mai bine cum putem proiecta propriile noastre.
Înainte de scufundări în cadrul matematic, există trei domenii de design foarte ușor de trecut, dar importante, pe care vreau să le evidențiez: calitatea explorării și descoperirii, diferența dintre expresiile "idle" și "clicker" ale genului și importanța temă coerentă și artă.
Unul dintre cei mai importanți vectori de "distracție" într-un joc incremental este acela de descoperire. Multe dintre aceste jocuri încep cu o configurație inițială foarte simplă, dar complexitatea se spirală pe măsură ce jucătorul avansează. Procesul de descoperire a acestor complexități se înscrie în atracția înnăscută de a descoperi caracteristici noi și ascunse. Bomboană cutie, de exemplu, poate fi înțeleasă ca un joc în primul rând despre explorarea sistemului său, iar scorul "incrementant" al bomboanelor este pur și simplu mecanismul de deblocare a conținutului suplimentar.
Astfel, majoritatea jocurilor incrementale nu pun la dispoziție întregul sistem încă de la început, ci oferă în schimb "caracteristici suplimentare" la nivelul nivelurilor monedei primare. Acest conținut poate fi un "cunoscut necunoscut", ca în Rândul de a guverna zeii, unde anumite secțiuni ale jocului sunt în mod explicit goale și specifică cum și când pot fi deblocate sau un "necunoscut necunoscut", în care jucătorul nici măcar nu știe că există caracteristici până la atingerea unui anumit nivel, ca aproape tot conținutul în Cookie Clicker. Unele jocuri pot conține elemente din cele două: AdVenture Capitalist informează jucătorul despre o mare parte din conținutul său pe care îl pot debloca, dar conține numeroase caracteristici ascunse care apar pe parcursul jocului.
Cred că avem mult de parcurs.Discovery este o caracteristică importantă de luat în considerare în proiectarea unui joc incremental, deoarece oferă un sistem de recompensare exploratorie jucătorului în timp ce ei învață despre mecanica de bază a jocului. Prezentarea totului în față nu numai că va ridica bariera spre intrarea în învățarea jocului, ci va elimina și bucuria care vine din familiarizarea treptată cu un sistem.
Jocurile incrementale tind să se concentreze asupra a două mecanisme primare care se suprapun, dar distincte:
Jocurile care se concentrează pe acesta din urmă vor avea, în general, fie un mecanic literal "clic" pentru a produce creștere, fie alte mijloace pentru a solicita participarea activă a jucătorilor, cum ar fi capacele de stocare care necesită o intervenție frecventă a jucătorilor. În CivClicker, de exemplu, jucătorul trebuie să gestioneze în mod activ orașul lor, cu doar perioade scurte de creștere inactiv. Dimpotrivă, jocurile care se concentrează asupra creșterii autonome ar putea include un mecanism de clic, dar dacă o face, atunci importanța sa treptat încetează în favoarea unui lucru automatizat. În AdVenture Capitalist,jucătorul trebuie să facă clic în mod activ la început, dar rapid deblochează capacitatea de a automatiza procesul și apoi este în mare măsură liber de creșterea manuală.
Această alegere este în mare parte o chestiune de preferință și accentuare a obiectivelor jocului. Un joc care necesită o gestionare activă poate fi mai angajat pentru jucător într-un interval de timp scurt, dar, dacă este implementat într-un mod care implică prea mult implicarea prea mare a jucătorului, acesta poate să încalce principiile designului de joc etic și uman. Dimpotrivă, o abordare mai autonomă sau inactivă poate necesita mai puțină angajare din partea jucătorului în orice sesiune de joc dată, dar poate genera un angajament pe termen lung pentru joc, ceea ce explică de ce jocurile "inactiv" de pe Kongregate au o rată de retenție atât de ridicată. AdVenture Capitalist chiar și informează cu atenție jucătorul ce sa întâmplat în absența lor, subliniind că nu necesită o atenție constantă:
Jocurile incrementale beneficiază de multe ori de o temă narativă pe care se află mecanicii (deși acest lucru poate fi ușor de ignorat deoarece aceste mecanici sunt atât de minime).
O temă sensibilă poate contribui la contextualizarea exercitării în alt mod a unui număr tot mai mare. De asemenea, toate jocurile beneficiază de o direcție artistică bună și de design, iar incrementele nu fac excepție. Estetica consistentă ajută jocul să se simtă ca o experiență unificată, iar o interfață curată reduce costul mental al navigării în joc, astfel încât jucătorul să se poată concentra asupra jocului în sine, mai degrabă decât să interpreteze elementele interfeței cu utilizatorul rău.
Exemplul de mai sus de la AdVenture Capitalist este o ilustrare bună a acestui lucru. Tema sa este managementul afacerilor și expansiunea capitalistă (care se potrivește cu gameplay-ul tot mai mare număr), și utilizează o idee Googie din anii 1950 pentru direcția sa de artă. Acest lucru este folosit în mod consecvent (și cu umor), astfel încât chiar și meniurile și tutorialele sunt "în caracter" și întăresc tema vizuală și narativă.
Jocurile incredibile de jocuri pentru grafică și scris ar putea fi oarecum rare în comparație cu jocurile de alte genuri, dar este important să nu greșești nevoia scăzută de Nu nevoie.
Mecanicul cel mai definitor al jocurilor incrementale este creșterea numărului. Am definit ultima dată că:
Este cel de-al treilea element care afectează în mare măsură simțul jocului, și acesta este cel mai greu de proiectat bine. Deoarece este un exemplu foarte simplu, să aruncăm o privire la Număr de către Tyler Glaiel. Are cele trei elemente de bază pentru definire și aproape nimic altceva: un număr crește și poți cheltui acest număr pentru a-l face să urce mai repede.
Când începe jocul, "rata de venit" a numărului de creștere este de 0,1 pe secundă. Cantitatea de "număr" salvată poate fi cheltuită pentru ca aceasta să crească mai repede. Iată primele cinci achiziții, cu costul lor în prima coloană și noua rată "numărul pe secundă" în a doua:
Cost | Rata venitului |
---|---|
1.0 | 0.2 |
1.2 | 0.4 |
1.4 | 0.7 |
1.7 | 1.2 |
2.2 | 1.8 |
Chiar și cu o mulțime de observații, putem identifica unele dintre semnele de design incrementale aici. Unul este creșteri neliniare atât pentru costuri cât și pentru beneficii: este nevoie de tot mai mult pentru a obține o îmbunătățire relativ mai puțin incrementală.
Acest lucru are sens dintr-o perspectivă de practică: dacă costul / beneficiul a rămas același (de exemplu, dacă costa întotdeauna un număr pentru a cumpăra o creștere de 0,2% a ratei venitului), nu ar exista deloc variabilitatea rezultatului, iar venitul creșterea ratei ar urca într-un ritm constant și previzibil. Acest lucru s-ar plictisi foarte repede!
În schimb, costul (în albastru) și rata de venit (în portocaliu) pentru primele douăzeci de achiziții arată ca:
(Puteți să descărcați un XLSX al datelor utilizate pentru a genera aceste grafice din acest repo GitHub sau să vizualizați un echivalent Foi de calcul Google.)
Putem vedea aici foarte clar că aceste funcții sunt neliniar (chiar ignorând saltul formulei de cost la ora 12lea iterație), iar costurile cresc rapid, depășind rata veniturilor. Acesta este un aspect important al designului, deoarece înseamnă că timpul petrecut în așteptare pentru a permite următorul upgrade crește exponențial cu cât jocul durează mai mult. Deci, jocul progresează destul de repede la început, jucătorul având doar nevoie să aștepte periodic pentru a economisi suficient pentru următoarea achiziție, dar încetinește treptat.
Cele mai multe jocuri incrementale au mai multe surse de creștere a ratei veniturilor pentru upgrade, în loc de doar unul ca Număr face. Aceasta este o sursă majoră de descoperire și strategie a jocurilor incrementale, deoarece având mai mulți vectori de îmbunătățire ale căror costuri cresc non-liniar introduc căi interesante de optimizare pentru jucător. Dacă jucătorul alege să investească puternic într-o singură clădire sau să facă upgrade, costul crescând exponențial înseamnă că, la un moment dat, alte opțiuni vor deveni relativ mai ieftine, chiar dacă au fost inițial prețuri foarte mari. Aceasta înseamnă că jucătorul are la dispoziție o serie de opțiuni, dar trebuie constant reevaluat, deoarece valoarea relativă a jucătorului se schimbă în mod constant.
exponenţiale cost scalarea este benefică pentru resursele tot mai mari și investițiile în timp pe care le necesită, dar majoritatea jocurilor nu folosesc exponențială venituri crește. De ce nu?
În graficul din ultima secțiune, este diferența între cele două linii care ne dau raportul cost-versus-beneficiu din ce în ce mai mare. Pentru a realiza acest lucru, de fapt, avem nevoie doar de costuri (în portocaliu) pentru a crește exponențial (sau polinomic); rata veniturilor ar putea crește liniar, iar decalajul dintre linii ar crește tot mai mult.
De exemplu, în Eroii de tip Clicker, una dintre primele surse automate de creștere a numărului provine de la un "erou" numit Treebeard. Inițial, costă 50 și vă oferă o rată a venitului de 5 pe secundă. Cel de-al doilea nivel costă 53,5, dar totuși oferă doar o creștere suplimentară a ratei de 5. Primele cincizeci de cumpărături arată așa, din nou cu costuri în albastru, iar rata venitului în portocaliu:
Funcția "rata venitului" este doar o linie dreaptă, deoarece fiecare achiziție o mărește cu suma stabilită de 5, deci formula pentru ea este foarte simplă: rata totală pe secundă este doar numărul deținut înmulțit cu 5 (deci, \ (y = 5x \)).
Cu toate acestea, costul crește cu o rată tot mai mare. Costul incremental al fiecărui nivel suplimentar este minim la început; pe grafic putem vedea că pentru primele douăzeci de ani diferența dintre cele două este aproape constantă. Dar apoi se rupe dramatic, necesitând tot mai mult pentru fiecare upgrade ulterior.
Formula pentru funcția de cost aici este de fapt una care este utilizată pe scară largă în multe jocuri incrementale:
\ [Preț = BaseCost \ Times Multiplicator ^ (\ # \: Deținut) \]
Pentru exemplul Treebeard, costul de bază este de 50, iar variabila "Multiplicator" este de 1,07, deci costul secundar \ (50 \ ori 1,07 ^ 1 = 53,5 \), a treia cost \ 57.245 \) și așa mai departe. Valoarea Multiplicatorului determină curbura liniei, cu valori mai mari, ceea ce înseamnă curbe mai mari ale costurilor. (O valoare de 1 ar da o linie de cost liniar.)
Eroii de tip Clicker folosește 1.07 ca multiplicator de creștere pentru toți cei 35 de eroi actualizabili, precum și toate clădirile diferite Cookie Clicker utilizați o valoare de 1,15. Interesant este faptul că cele 10 afaceri ale companiei AdVenture Capitalist toate utilizează un multiplicator diferit, dar fiecare este între 1.07 și 1.15. Aspectul comun al acelorași multiplicatori în diferite jocuri sugerează că curbele produse între aceste limite sunt echilibrate și satisfăcătoare.
Unele jocuri se abate de acolo. Steam multiplayer joc incremental Monstru, parte din evenimentul de vânzare de vară din 2015, utilizează multiplicatori de până la 2,5, care cresc foarte abrupt.
După cum sa menționat anterior, scalarea costurilor exponențiale are avantajul de a echilibra mai multe căi de upgrade prin asigurarea că fiecare urmează o cale de scădere a profitului. Acest lucru face ca o parte din echilibrul tactic sa fie innascut cu formula de cost in sine, mai degraba decat ceva ce designerul trebuie sa il contureze in mod explicit. Deoarece, chiar dacă o anumită resursă este uneori sau chiar mai mult "mai bună", costul exponențial în creștere înseamnă că nu poate fi exploatat exclusiv.
Să aruncăm o privire la lista clădirilor care pot fi actualizate în Cookie Clicker ca exemplu:
clădire | Costul de bază | Rata de bază a venitului |
---|---|---|
Cursor | 15 | 0.1 |
bunica | 100 | 0.5 |
Fermă | 500 | 4 |
Fabrică | 3000 | 10 |
A mea | 10.000 | 40 |
Expediere | 40.000 | 100 |
Laboratorul Alchemy | 200,000 | 400 |
Portal | 1666666 | 6666 |
Mașina timpului | 123456789 | 98765 |
Condensator antimaterie | 3999999999 | 999999 |
prismă | 75000000000 | 10000000 |
Putem vedea câteva modele aparente doar de la acest tabel.
Primul este că costul de bază al fiecărui upgrade ulterior este de aproape cinci ori mai mare decât cel precedent (cu excepția ultimelor câteva). Aceste creșteri cu o jumătate de ordine de mărime asigură jucătorului suficient timp pentru a se bucura de fiecare resursă recent deblocată; creșterile mai mici ar însemna că deblocările s-ar putea să vină prea repede, dar ar mai risca să se plictisească jucătorul înainte de realizarea următoarei deblocări.
Rata venitului (cookie-uri pe secundă, pentru acest joc) crește între timp cu doar o treime pentru fiecare nivel suplimentar, ceea ce înseamnă că, în timp ce clădirile contribuie cu sume tot mai mari, ele sunt de fapt mai puțin și mai puțin eficiente decât costurile.
Cu toate acestea, deoarece fiecare clădire urmează aceleași formulare de creștere a costurilor (\ Price = BaseCost \ times 1.15 ^ (\ # \: Owned) \), fiecare clădire are de fapt un model foarte asemănător. Diagrama de mai jos prezintă o linie pentru fiecare dintre cele 11 clădiri, reprezentând primele două sute de upgrade-uri, cu un cost logar de-a lungul axei y și rata de venit log pe axa x. (Deoarece acestea sunt funcții exponențiale, o scală logaritmică dezvăluie asemănarea lor mai bună decât una liniară).
Așadar, chiar dacă aceste clădiri apar foarte diferite, deoarece fiecare produce și costă mult mai mult decât cele anterioare, formulele lor de costuri exponențiale produc curbe care sunt în mod similar similare, creând în același timp un sistem pe care jucătorul îl poate optimiza.
În timp ce jocurile incrementale sunt superficial cu privire la creșterea numerelor, este cum să le facem să urce cat de rapid posibil care oferă profunzime jocului pentru jucătorii pasionați. Jucătorul are întotdeauna mai multe căi de îmbunătățire înaintea lor între diferitele resurse care pot fi actualizate (de obicei, împreună cu câteva caracteristici suplimentare pe care le discutăm mai târziu), provocând astfel jucătorului să evalueze aceste opțiuni. Ar trebui să cumpărați upgrade-ul mai ieftin pe care îl puteți permite chiar acum, sau să salvați până când vă puteți permite următorul nivel?
Întrucât, în cele din urmă, dorim să cumpărăm toate actualizările, abordarea cea mai eficientă este doar evaluarea ordinii optime. Imaginați-vă un scenariu în care acum producem 5 din numărul nostru pe secundă (\ (nps = 5 \)) și avem posibilitatea de a alege între două actualizări. Primele costuri 20 (\ (cost_a = 20 \)) și ne vor mări rata venitului cu 1 (\ (rata_a = 1 \)). Celălalt are \ (cost_b = 100 \), dar are și \ (rate_b = 10 \). Primul este mai ieftin, dar este și mai ieftin.
Ei bine, hai să încercăm să cumpărăm un A apoi B:
Dacă am făcut contrariul?
Deci, se pare că cumpărarea unui prim și apoi B este mai eficient, pentru că \ (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 + rata_a) < \frac cost_bnps + \fraccost_a(nps + rate_b) \]
Dar acest lucru este util doar pentru comparații între două posibile upgrade-uri, și nu este la fel de util dacă am avea multe opțiuni. Trebuie să simplificăm formula pentru a izola variabilele pentru un singur upgrade (al cărui derivare este explicat în detaliu în acest articol fantastic de Adam Babcock), care dă acest lucru:
\ [\ frac cost_a nps + \ frac cost_a (nps + rata_a) \
Acum, putem aplica această formulă fiecărui upgrade posibil, iar cel mai mic rezultat, din cauza tranzitivității inegalităților, va genera ceea ce ar trebui să achiziționăm în continuare (cu câteva excepții care nu merită luate în considerare pentru acest nivel de analiză). Acest lucru simplifică foarte mult procesul de găsire a celei mai eficiente căi de optimizare.
Acest lucru este în mod evident relevant pentru jucător, dar este de asemenea util pentru designer. Cunoașterea celor mai eficientefolosirea diferitelor elemente de joc poate identifica existența unor spițe neintenționate în cerințele de timp și poate asigura că jocul optim chiar progresează cu o rată dorită de creator.
Derivarea scenariilor optime de redare ne permite să comparăm diferite jocuri incrementale, deoarece putem reduce variabilele disparate la timpul necesar pentru a ajunge la un anumit nivel de număr pe secundă. Graficul de mai jos arată timpul necesar pentru a obține un număr dat pe secundă a ratei de venit în AdVenture Capitalist (în verde) și Cookie Clicker (în maro), dacă cumpărați clădirile în modul cel mai eficient (ignorând alte aspecte ale jocului pentru simplitate):
În mod remarcabil, cele două jocuri arată foarte asemănătoare aici, întorcând rate mai mari de nps față de o perioadă tot mai mare de timp. Ambele se dezvoltă incredibil de rapid în primele 8-10 ore (aproximativ 500 de minute), dar rata de creștere este mult mai marginală după aceea. În cele din urmă, acestea se împletesc deoarece numărul de clădiri noi este epuizat. Ca rezultat, majoritatea jocurilor incrementale includ alte resurse cumpărate alături de clădirile principale care pot fi actualizate, una dintre cele mai importante fiind capacitatea de resetare a jocului, care permite jucătorului să urce din nou această curbă.
Complexitatea spirală a upgrade-urilor în jocuri incrementale poate face ca designul lor să fie o perspectivă descurajantă. Dar designerul nu are nevoie să calibreze cu precizie fiecare element. Frumusețea sistemelor complexe neliniare înseamnă că se pot produce scări îndemânative de upgradări numai cu un nivel ridicat de echilibrare de la proiectant. Pentru jucător, navigarea în sistem pentru a găsi succesiunea optimă este dificilă și distractivă, în timp ce sarcina pentru designer este pur și simplu să se asigure că există un sistem atât de complex de navigat.
O caracteristică "Joc nou +" permite jucătorului să-și reînnoiască progresul în schimbul unor bonusuri de durată. Deci, toate clădirile achiziționate și alte resurse ar putea fi returnate la zero, însă atunci când se pornește de la o creștere multiplicativă plat se aplică la toate calculele după numărul pe secundă ulterior.
Acest lucru nu schimbă nici una dintre formulele fundamentale ale jocului; înseamnă doar că jucătorul va ajunge la platoul asimptotic eventual mai rapid și mai rapid. În esență, această caracteristică acționează pentru a extinde gameplay-ul de bază, permițându-i să se redea repede. Acest lucru nu poate fi păstrat până la infinit, totuși, în cele din urmă jucătorii de lungă durată vor ajunge la un "endgame" de fel.
O altă caracteristică comună pentru extinderea jocului este pur și simplu creșterea complexității clădirilor care pot fi modernizate. Până acum, am examinat doar cea mai comună metodă de actualizare incrementală, care urmează funcției costului exponențial. Pe lângă acestea, sunt de obicei actualizări care oferă fie îmbunătățiri unice pe ansamblu la numărul total pe secundă, fie modificarea într-un fel a variabilelor costului și a ratei venitului subiacente.
În Eroii de tip Clicker,de exemplu, există îmbunătățiri care măresc numărul de bază pe secundă pentru un "erou", precum și cele care mărește numărul de bază pe secundă pentru toate "eroii". În timp ce aceste caracteristici și caracteristicile similare nu modifică mecanismele care stau la baza unui joc incremental, ele pot spori spațiul de posibilități al jucătorului de a explora și pot provoca în continuare capacitatea lor de a optimiza jocul. În plus, ca mecanicul "New Game +", volumul upgrade-urilor poate acționa și pentru a prelungi redarea înainte de a atinge platoul eventual în desfășurare.
Deși aceasta nu a fost o investigație exhaustivă a designului jocului incremental, am aruncat o privire detaliată asupra aspectelor fundamentale ale acestora. Ca un scurt rezumat pentru potențialii designeri și dezvoltatori:
Dacă sunteți interesat să aflați mai multe, subrediturile pentru jocuri incrementale sunt o comunitate excelentă de designeri și dezvoltatori care se adresează pentru sfaturi și idei. Dacă doriți să vă scufundați chiar în implementarea unor idei, dezvoltatorul Cookie Clicker a creat un instrument online care poate crea cu ușurință jocuri similare și este o modalitate excelentă de a experimenta fără a trebui să vă puneți singur întreaga fundație. Dacă cauți ceva mai avansat, creatorul din CivClicker are o piesă excelentă asupra logicii pentru o implementare HTML și JavaScript.
Sper ca cadrul analizat aici să servească drept sursă de inspirație pentru a vă explora propria expresie a unui joc incremental. La urma urmei, există încă o mulțime de spațiu de proiectare neexploatat care trebuie lăsat să exploreze:
Deși nu este o listă completă (pentru aceasta, subrediturile pentru jocuri incrementale au o listă grozavă), iată o listă a jocurilor menționate în primul nostru articol sau în acest articol:
De asemenea, rețineți: puteți descărca un XLSX al datelor folosite pentru a genera graficele din acest articol din acest replică GitHub sau puteți vizualiza un echivalent Foi de calcul Google.