Balansering Turn-Based RPGs Fiender

Så langt har vi bestemt grunnlag og avledet statistikk for helten i vårt mock-spill, Final Trigger. Vi ga da vår spikhårede hovedperson som en kvinnelig følgesvenn, Jane, og finjusterte sin statistikk slik at de ville være i balanse med hans. Denne gangen, i hva som kommer til den tredje og endelige delen av serien vår på RPG-balanse, vil vi sette vår nybalanserte helten Chroud mot den fryktelige, ulykkelige, dødsbedrende ... Killer Attack Rabbit.

Ja, vår furrige trussel kan virke innocuøs først, men få har klart å unnslippe sine farlige kløfter. Underveis vil vi gi vår nye skurk med statistikk, spesielle krefter og kunstig intelligens. Da begynner kampens kongelige. Når vi henter noen innledende data, vil vi justere kampen for å møte forventningene vi satte før kampen. Til slutt skal vi undersøke hva som skjer når vi legger Jane tilbake i bråket, og hvordan hennes tilstedeværelse vil uunngåelig forstyrre vår delikate balanse.


En rask oppskrift

Som du kanskje husker bestemte vi Chrouds avledede statistikk ved å utføre beregninger på basestatistikken. Disse statistikkene viste seg da nyttig for å vurdere Chrouds kampeffektivitet. Vi bestemte oss til slutt på følgende:

Vår spiky-haired hovedpersonens statistikk.

Ved å dele Chroud's Attack Power med sin ATB Speed, konkluderte vi at han ville skille ut omtrent 42 skader per sekund (DPS). La oss gå et skritt videre. I de fleste turbaserte RPG-spill hadde partiledere en sjanse til å kritisk hit deres fiender. Kritiske treff vil vanligvis slå fiender for mellom 1,5 og to ganger mengden skade som en vanlig streik.

Factoring i Chroud's Attack Power og antar en kritisk hitrate på 10% og en kritisk multiplikator på 1,5, kan vi revurdere sin DPS:

  • Chrouds DPS: \ (((500 \ times .9) + (750 \ times. 1)) / 12 = (450 + 75) / 12 \ ca 44 \)

Således, ved å tilføre en tilfeldig sjanse til å kritisere sin fiende, har Chrouds DPS økt med omtrent to. Dette burde gjøre ting litt mer interessant nedover linjen. Merk at Chrouds gjennomsnittlige skade per sving (DPT) er nå 525, i stedet for 500.


The Enemy Face

Å bestemme fiendens statistikk er på mange måter enklere enn å finne ut et partiets medlem. Statistikken deres påvirkes ikke av utstyr, de har vanligvis ikke tilgang til forbruksvarer, og deres nivåer forblir statiske. Dermed får de ikke erfaring.

Tips: I noen moderne WRPGs skal fiendens nivå være i samsvar med dine, men i vårt eksempel antar vi at de ikke gjør det.

Siden utstyr ikke er en faktor, kan vi hoppe over konverteringsbasestatistikk til avledet. Faktisk kan vi avgjøre basestatistikk helt og holdent. Det er gode nyheter, spesielt siden nesten alle RPGs har langt flere fiender enn de gjør spillbare tegn - spill som Chrono Cross er et sjeldent unntak.

I stedet vil vi bare plukke kamp-relevant fiendtlig statistikk manuelt. I tillegg til å være raskere, er den ekstra fordelen ved denne tilnærmingen at den vil tillate mer kreativ frihet. Men før du begynner med å plukke inn numre, er det viktig å stille deg noen spørsmål om den aktuelle fienden:

  • Hvilken kategori av fiende står du overfor: søppelpost, fangehullssjåfør, minisjef eller sjef? Sjekk ut den første delen av denne serien for mer på fiendtlige typer.
  • Hvilken type fiende står du overfor? Hvis fienden er en fysisk angriper, bør hans statistikk gjenspeile sin styrke. Andre fiender kan favorisere magiske angrep eller forsvar. Noen kan være svært unnvikende eller bruke statuseffekter. Ved å bestemme en fiendens type, vil du ha en mye enklere tid å dirigere sin statistikk.
  • Healing: Har fienden noen måte å regenerere livet på? I så fall bør den offensive statistikken ikke være så imponerende som en tilsvarende fiende som ikke kan helbrede.
  • Faser: Forvandler fienden til en sterkere versjon av seg selv halvveis gjennom kampen? Hvis det gjør det, må du lage to (eller flere) sett med statistikk for fienden.
  • Spesielle evner og reaktive AI: Vi får mer inn i dette senere, men de fleste fiender (selv noen søppelpost) bør ha noen triks opp i ermet. Uten AI blir kampene rutinemessige og foreldede.
  • Vil du at fiender i spillet ditt skal følge tradisjonelle 16-biters standarder, eller for å reflektere mer moderne tradisjoner?

Det siste punktet krever litt avklaring. Du ser, i gammeldags RPG, hadde spillerne vanligvis en relativt dårlig mengde treffpoeng i forhold til fiender. Imidlertid, fordi partiledere rammet seg vanskeligere, utgjorde fienden, og hadde tilgang til helbredende ressurser, var fiendens høyt treffpunktsverdier berettiget. De fleste moderne RPGer, minst de fra Vesten, opererer litt annerledes. I realismeens navn har fiender vanligvis treffpunkter som er på nivå med dine egne. De kan ikke slå så hardt, eller være så smart, men de kan sikkert ha deg ned fordi karakteren din er generelt svakere enn han eller hun ville være i en japansk RPG.


Killer Attack Rabbit

Ved å bruke retningslinjene ovenfor, vil du raskt kunne utlede noen rundkjøringsstatistikk. Husk at siden vi bare jobber med kamprelatert statistikk, vil det være opp til deg å finne ut tall som gir mening. Bare ikke bekymre deg for å skape balansert fiender på første skudd - det vil nok ikke skje. Heldigvis, ved å bruke systemet vi skal skissere, kan du enkelt tilpasse fiendens tall.

Tilbake til Killer Attack Rabbit. Våre grusomme gnaver vil være en solid fysisk fighter og ekstremt rask, men mangler i forsvar og magi. Han vil være en dungeon mob, og har flere treffpunkter enn vår helt, men avtar mindre skade. Han vil ikke regenerere livet, men vi vil utforske noen få kule spesielle evner som vil gjøre ham ganske furry.

Her er de opprinnelige tallene vi skal bruke:


Ikke døm ham ved sitt søte utseende.

Nå er vi klare til å gjennomføre vår første test sak.


Test Case # 1

I dette hjørnet, med hår som veier inn på 22 pund, har vi vår dristige helt Chroud. Og i det andre hjørnet, haler fra deler ukjente, veier inn på en truende 4,5 pund, presenterer vi deg ubeseiret, ubestridte ... Killer Attack Rabbit.

Før vi begynner vår varmt forventede kamp, ​​bør vi nok finne ut noen ting. Den første og mest åpenbare, er Killer Attack Rabbit's DPS:

  • Killer Attack Rabbit DPS: \ (((200 \ ganger .85) + (300 \ ganger .15)) / 10 = 21,5 \ tekst DPS \)

Dermed, hvis angrepskaninen bare brukte sitt baseangrep, ville han være oppvask 21,5 skader per sekund. Men vår skurk er litt mer sofistikert. For å blande ting opp, gir vi ham tre ekstra angrep. Den første blir kalt "Bite", den andre "Bunny Hop" og den tredje "Too Cute". For å avgjøre hvordan disse nye angrepene påvirker DPS-en, må vi først definere dem.

Simple Enemy AI

Fiender i tidlig turbaserte RPG-spill hadde vanligvis bare ett eller to angrep. Ved sen 16-biters epoke ble dette tallet økt til tre eller fire, og i noen tilfeller enda mer. Den gjennomsnittlige fienden var imidlertid sjelden sofistikert. Spesielle angrep ble brukt tilsynelatende tilfeldig, statuseffekter ble vanligvis kastet på spillere som allerede var berørt, og angrepene var sjelden rettet mot spillere med lavt treffpoeng. De eneste fiender som oppstod eksternt intelligente, var sjefer.

Vår skurk, som er i vårt spill betraktet som en middelvei-fiende, vil være minst like intelligent som en sen 16-biters sjef, men ikke like kraftig.

Hans første angrep, "Bite" vilje er definert som følger:


Den siste advarselen er viktig. Hvis du gir fiender en sjanse til å bruke spesielle evner igjen og igjen, vil det være tider når de bare overvelder deg. Dette vil føre til at slaget faller avgjørende ut av balanse. For å motvirke dette, forhindrer vi at Killer Attack Rabbit bruker "Bite" to runder på rad. Spillerens rolle vil være å gjenkjenne dette mønsteret, og å tilpasse seg tilsvarende.

Det andre angrepet, "Bunny Hop", fungerer som det er:


"Bunny Hop" er et eksempel på betinget AI, og er en fin måte å enkelt simulere intelligens på. Når Killer Attack Rabbit er på randen av døden, måler han opp all sin styrke og angriper deg med en ødeleggende spesiell evne. For å forberede seg på dette, er partiledere godt tilrådelig å holde sine treffpoeng toppet.

Til slutt har han et angrep som heter "Too Cute:"


Selv om dette angrepet ikke vil øke angrepskanins DPS, vil det forlenge kampen. Og jo lengre kampen, desto bedre sjanse for fienden å vinne. Vi har vår fiende bruke denne evnen umiddelbart etter "Bunny Hop" fordi det bare gir mening. Da "Bunny Hop" ikke fullførte deg, kunne kaninen være tilbøyelig til å bruke en defensiv evne til å hindre deg i å helbrede.

Dermed kan vi gjøre følgende konklusjoner:

  • 25% av tiden (minus opptil to angrep) vil Killer Attack Rabbit DPS være \ (21.5 \ times 1.5 = 32.25 \).
  • 75% av tiden (minus opptil to angrep) Killer Attack Rabbit's DPS vil være \ (21.5 \).
  • Opptil en gang per kamp vil hans DPS være \ (21,5 \ ganger 2,25 = 48,4 \).
  • Opptil en gang per kamp vil hans DPS være \ (0 \).

Vi sier "opp til en gang per kamp" fordi det ikke er noen garanti for at Killer Attack Rabbit vil bruke "Bunny Hop" eller "Too Cute". La oss si at du tar HP ned fra 30% helt til 0% i ett skudd. I dette scenariet har han aldri muligheten til å bruke den. Du vil imidlertid sannsynligvis trenge å slå ham med en hensiktsmessig kritisk streik for å unngå det helt.

DPS og effektiv DPS

Basert på angrepskraften din, og etter at du har gjort det i skadebegrensning (vi kommer til det på et sekund), vil det ta deg omtrent seks runder for å fullføre Killer Attack Rabbit. Normalt vil det ta fem, men du vil sannsynligvis bli bedøvet for en runde. Gitt dette kan vi anta følgende angrepskvoter:

  • Tre av kaninens seks angrep vil være normale angrep: \ (21 \ text DPS \)
  • Man blir "Bite": \ (32.25 \ text DPS \)
  • Man blir "Bunny Hop": \ (48.4 \ text DPS \)
  • En vil være "For søt": \ (0 \ text DPS \)
  • Gjennomsnittlig DPS: \ (((3 \ ganger 21) + 32,25 + 48,4 + 0) / 6 = 23,9 \ tekst DPS \)

Factoring i Chrouds 10% fysiske skadereduksjon og 12,5% dodge rate, blir kaninens effektive DPS:

  • Killer Attack Rabbit Effektiv DPS: \ ((23,9 \ tider .9) \ tider .875 = 18.8 \ tekst DPS \)
  • Killer Attack Rabbit Effektiv skade per sving: \ ((18,8 \ ganger 10) = 188 \)

Ok, så etter alt, kan vi konkludere med at Killer Attack Rabbit vil slå Chroud for i gjennomsnitt 188 skader per tur.

Nå skal vi gjøre det samme for Chroud. Vi har allerede fastslått at Chrouds DPS er 44. Hans effektive DPS er imidlertid betydelig lavere fordi han noen ganger enten blir bedøvet eller tvunget til å av og til bruke en runde ved hjelp av en forbruksvare. For enkelhets skyld antar vi at Chroud ikke vil skade 20% av tiden:

  • Chrouds gjennomsnittlige DPS: \ (44 \ ganger 0.8 = 35.2 \ text DPS \)

Factoring i Killer Attack Rabbits 5% fysiske skadereduksjon og 20% ​​dodge rate, blir Chrouds Effective DPS:

  • Chrouds effektive DPS: \ ((36,9 \ ganger .95) \ tider .8 = 26.8 \ tekst DPS \)
  • Chrouds effektive skade per sving: \ ((28 \ tider 12) \ ca 322 \)

Til slutt kan vi beregne hvor mange runder det vil ta for Chroud å beseire Killer Attack Rabbit og vice versa. Vi vil anta at Chroud under kampen vil pope en potion, gjenopprette 500 av hans treffpunkter og øke sin effektive Hit Point-total til 1300.

  • Chrouds tid til å beseire Killer Attack Rabbit: \ ((2000/336) = 6.21 \) runder eller \ (74.5 \) sekunder.
  • Killer Attack Rabbit er tid til å beseire Chroud: \ ((1300/188) = 6.91 \) runder eller \ (69.1 \) sekunder.

Gratulerer, det ser ut til at vi er nær for å oppnå balanse! Dessverre, som vi snart ser, kan ser ut som bedrager.


simuleringer

Vi bestemte oss for å koble både Chrouds og Killer Attack Rabbits statistikker til vårt interne datasimuleringsprogram og kartlegge noen resultater. Tilstrekkelig å si, resultatene var ikke det vi forventet. Altfor ofte så våre resultater ut som følgende:


Simulering # 1: Killer Attack Rabbit dekimerer Chroud.

Ikke bra. Alt sagt, vant Killer Attack Rabbit i godt over 50% av våre simuleringer, noen ganger før Chroud var i stand til å lande en enkelt hit. I vårt mock-spill Final Trigger, Vårt opprinnelige mål var for fangehuller mobs å vinne ca 5% av tiden. Det er en stor forskjell. Så hva er problemet?

Det første problemet er ganske opplagt. Den gjennomsnittlige tiden det tar Chroud å beseire Killer Attack Rabbit, er omtrent den samme tiden det tar Killer Attack Rabbit å beseire Chroud. Basert på denne statistikken alene, vil Chroud vinne 48,1% av tiden og kaninen 51,9%.

Men det er en annen faktor vi ennå ikke har vurdert: Skade per sving (DPT) volatilitet. I turbaserte RPGer definerer vi DPT-volatilitet som et mål på hvor mye maksimal skade som kan utføres i en runde, varierer fra normen. For eksempel, hvis et partmedlems skade per sving er 50, men han kan utføre maksimalt 400 skader i en gitt sving, vil hans DPS bli ansett ekstremt volatile og uforutsigbare.

Vi har allerede fastslått at Killer Attack Rabbit's Effective DPT er 188. Nå må vi finne ut de største skadeene han kan gjøre i en runde:

  • Killer Attack Rabbit Max Skade: \ ((220 \ ganger 1,5) \ ganger 2,25 \ tider .9 = 668.25 \ tekst DPT \).

Når Killer Attack Rabbit ruller en perfekt angrepsscore, treffer kritisk og bruker "Bunny Hop", vil han pummel Chroud for 668.25 skade etter begrensning. Det er over 80% av Chrouds liv i ett skudd! Vår fattige, spikhårde venn vil neppe få mulighet til å bruke hans potion, og effektivt redusere Hit Point-tallet med 500.

Nå, vil kaninen angripe for denne mye skade på jevnlig basis? Nei. Men han vil slå oss i nesten halvparten av Chrouds liv langt oftere enn vi er komfortable med.

Fordi Killer Attack Rabbit's DPS er så flyktig, vil du tilpasse tallene dine slik at gjennomsnittlig tid Chroud trenger å beseire ham er omtrent halvparten av tiden som er nødvendig for å beseire Chroud. Den enkleste måten å gjøre dette på er å bare redusere Killer Attack Rabbit's DPS. I stedet for 200, la oss gjøre det 120 og se hva som skjer:

  • Killer Attack Rabbit Base DPS: \ (((120 \ ganger .85) + (180 \ tider .15)) / 10 = 12,9 \ tekst DPS \).

Ved å utføre de samme beregningene som er nevnt ovenfor, kan vi enkelt fastslå at Kaninens nye effektive DPS er 11,4, som tilsvarer 114 DPM.

  • Killer Attack Rabbit er tid til å beseire Chroud: \ ((1300/114) = 11.40 \) runder eller \ (114 \) sekunder.
  • Killer Attack Rabbit Max Damage: \ ((132 \ times 1.5) \ times 2.25 \ times .9 = 401 \ text Skade per tur \).

Nå, i gjennomsnitt, vil Chroud trenge 5,19 færre runder enn hans furry nemesis gjør for å vinne. Selv på Killer Attack Rabbits beste dag, må han rulle perfekt for å ta halvparten av Chrouds liv i ett skudd. Så mens kaninen fortsatt kan slå hardt for å gi litt bekymring, vil Chroud kunne beseire ham mesteparten av tiden. En andre simulering bekrefter dette:


Simulering # 2: Balanse oppnådd.

I denne simuleringen tar Chroud en rettferdig slå, men er aldri i noen reell fare for å dø. Men hvis kampen hadde vart en annen runde, ville Killer Attack Rabbit ha brukt sitt "Too Cute" angrep, som kunne ha vist seg katastrofalt for vår helt. Vi kan derfor konkludere med denne simuleringen at vanskeligheten i kampen er innstilt ganske bra, og er i tråd med vår opprinnelige forventning.

Hvorfor så lavt?

Tidligere nevnte vi at i vårt ideelle scenario, Killer Attack Rabbit kun skulle beseire Chroud 5% av tiden. Du lurer kanskje på hvorfor dette nummeret er så lavt. Husk at hvis noen fiende beseirer Chroud, er spillet over. Omvendt må Chroud beseire hver fiende for å vinne. Hans jobb er mye tøffere, og hans sjanser til å dø mot ikke-Boss-typer bør derfor være ganske lave.


Factoring i tilleggspartnere

Det er litt urealistisk å anta at Chroud alltid vil kjempe alene. Du kan huske fra den andre delen av serien at vi justerte Chroud med en scepter-wielding Mage med Jane's beskjedne navn. Selv om Jane DPS var litt høyere og mer flyktig enn Chrouds, var de to allierte relativt balansert.

En av de første antakelsene utviklerne gjør når det gjelder factoring i et andre parti medlem er at den ekstra allierte dobler den samlede effektiviteten til festen. I virkeligheten er det mye mer. Ved hjelp av beregningene som er nevnt ovenfor, bestemmer vi Janes effektive DPS mot Killer Attack Rabbit til å være 30.4. Legg dette til Chrouds og partiets effektive DPS blir:

  • Party Effective DPS = 30,4 + 26,8 = 57,2 DPS

Hvis vi nivåer på spilleregionen ved å legge til en annen Killer Attack Rabbit til blandingen, er fiendtlige partiets effektive DPS:

  • Killer Attack Rabbit Effektiv DPS (mot Chroud): \ ((23.9 \ times.9) \ times .875 = 18.8 \ text DPS \)
  • Killer Attack Rabbit Effektiv DPS (mot Jane): \ ((23.9 \ ganger .9625) \ ganger .85 = 19.6 \ text DPS \)
  • Enemy Effective DPS: \ (18,8 + 19,6 = 38,4 \ tekst DPS \)

Legg merke til at Jane ikke kan redusere fysisk skade, så vel som Chroud, og dermed tar mer skade i gjennomsnitt fra Killer Attack Rabbit.

Fordi forholdet mellom Enemy Effective DPS og Party Effective DPS er ganske mye i tråd med one-on-one-forholdet, ville det være grunn til at vanskeligheten i kampen ville være omtrent det samme. Men vi glemmer om en ting: spilleren. De fleste spillere vil kunne overvinne alle datasystemer, og skal ha en klar fordel i statistisk jevnlige kamper. I dette scenariet må spilleren bare fokusere brannen på en kanin før han går videre til neste. Attack Kaniner, derimot, vil bare angripe partiledere tilfeldig.

Selvfølgelig kan du programmere dem til å fokusere brannen sin på det svakeste partimedlemmet, eller på den som utgjør den største trusselen. Hvis det er tilfelle, er det lite behov for å balansere angrepskanelen igjen. Men hvis de angriper tilfeldig, må du øke deres kampeffektivitet med en nominell prosentandel.

Og egentlig det er det som balanserer en svingbasert RPG handler om: mye gjetning, mye tweaking og mange simuleringer.


Konklusjon

I denne serien har vi utforsket turbasert RPG-balanse fra tre forskjellige perspektiver: spilldesign, festnivå og fiendens nivå. Vi utforsket noen få enkle metoder for å hjelpe deg med å oppnå rudimentær balanse i spillet ditt. I dette segmentet lærte vi hvordan:

  • å beregne fiendtlig statistikk og DPS
  • å beregne effektiv DPS
  • for å bestemme DPT-volatilitet
  • å bruke simuleringer
  • Flere partiledere påvirker resultatet av kampen

Til tross for lengden på denne serien har vi knapt skrapt overflaten. Å balansere en fullskala RPG kan ta utviklingslag måneder, og dra nytte av bruken av en slags modelleringsprogramvare. Men nå skal du i det minste forstå hva som går inn i balanseprosessen, og få en bedre ide om faktorene du må vurdere. Den gode nyheten er at vårt system ikke krever bruk av noe avansert matte eller logikk. Alt sagt, det var en ganske intuitiv prosess som favoriserte sunn fornuft over kompliserte algoritmer. Forhåpentligvis vil det bidra til å gjøre den tilsynelatende skremmende oppgaven med å balansere din svingbaserte RPG litt mer velsmakende.