Bring spillet ditt til livet i 10 enkle trinn

Enten det er en enkel spill jam oppføring eller et langsiktig lidenskapsprosjekt, må spillet ditt føle seg levende i hendene på spillerne. I denne opplæringen deler jeg ideer for å bringe spillet ditt til livs, og demonstrere hva som skjer når du bruker alle disse ideene til en enkel spilldemo.

Sjekk ut demoen

Klikk på demoen for å gi den fokus, og bruk piltastene til å flytte, X å skyte, C å hoppe, og N og å bytte mellom ulike iterasjoner av spillet.

Se videoopplæringen

Dette er egentlig en video sammendrag av demoen og opplæringen. Det er mer detaljert nedenfor!

Introduksjon

Denne opplæringen vil gå deg gjennom etableringen av et veldig grunnleggende spill som viser tankeprosessen bak tilleggene og endringene gjort over 10 iterasjoner for å få opplevelsen til liv.

Hva mener jeg egentlig når jeg snakker om å bringe spillet ditt til liv? Dette er en av de spilldesignfilosofiene som varierer sterkt i bransjen, men jeg definerer personlig spilleliv som kombinasjon av kontroll, tilbakemelding, variasjon og varighet. Spillliv handler ikke bare om komplisert AI og dype, karakterdrevne historier. Det handler om hvordan spillet reagerer på dine innspill og hvordan det gir spesifikk tilbakemelding for å stimulere dine sanser og reflekser. 

For dette eksempelet har jeg bestemt meg for å gå med en grunnleggende 2D sidescrolling platformer-shooter. Hvis du utvikler en turbasert RPG, vil de spesifikke detaljene ikke gjelde for ditt prosjekt. Men det er ikke poenget. Betydningen av denne artikkelen ligger i Hvorfor bestemte beslutninger er gjort, ikke de tekniske implementeringer av hver iterasjon. 

Hver iterasjon av spillet tilsvarer en bestemt seksjon nedenfor. Du kan følge med i den angitte spilldemoen ved å bytte mellom de forskjellige iterasjonene. Dette vil illustrere hvordan et spill kommer til liv over tid gjennom enkle, trinnvise endringer.

Iterasjon 1: Grunnleggende kjernemekanikk

Mine damer og herrer, jeg presenterer vår helt for deg: Skull Baby. Vår helt er låst i en evig fei mot de onde Slug Boogers, en intergalaktisk trussel som er fast bestemt på å overta det kjente universet. Med Skull Babys trofaste Booger Buster 5000 og relativt gjennomsnittlig hoppeevne, er det opp til deg å redde galaksen!

Med det har vi vår utrolig grunnleggende og kliché spillidee. Våre kjernemekanikk inkluderer venstre og høyre spillerbevegelse, venstre og høyre fiendens bevegelse, et enkelt hopp og en halvautomatisk pistol som skyter en kule som beveger seg horisontalt. Hvis kulen kolliderer med fienden, blir fienden ødelagt. For denne demonstras skyld, og til testformål, responderer fienden etter å ha blitt ødelagt. Vi bruker et grunnleggende kollisjonssystem for å holde spilleren og fienden lukket i spilleområdet, og fienden begynner å bevege seg i motsatt retning etter å ha kollidert med en vegg.

For dette eksempelet vil jeg ikke legge til en gevinst / tapstilstand, spillers helse eller til og med spiller / fiendtlig kollisjon. Å balansere denne typen spill i den forbindelse vil kreve en helt egen artikkel. Spillbalanse er et viktig element i design, men det varierer så utrolig over genrer at det ville være en forstyrrelse fra hovedideen. Og husk, du spiller ikke et ferdig spill i demoen, du ser på beslutningsprosessen av noen få utvalgte detaljer.

Så vårt spill fungerer, men det er en forferdelig blid opplevelse. La oss begynne å bringe dette spillet til livs!

Iterasjon 2: Legge til animasjon

Det er et så tydelig tillegg, men bare se på hvor mye liv er lagt til spillet med noen få enkle animasjoner. 

For spilleren har jeg lagt til animasjoner for tomgang, kjøring og hopping. For fienden har jeg lagt en turcykel. Med navn som Skull Baby og Slug Booger, er det fornuftig å ta en lysende tilnærming til animasjon. Skull Baby hopper og bobber rundt med en skarp midtseksjon, mens Slug Booger kryper sammen med wiggly-antenner og googly-øyne. Det er viktig å opprettholde konsistens med tonen i kunstverket ditt slik at enheter i spillverdenen din føles som om de hører sammen.

Her er hvor spilldesignfilosofiene er litt annerledes enn andre. Jeg foretrekker å lage og polere kunstverket mitt når jeg utvikler den grunnleggende prototypen. Noen designere foretrekker å bruke "programmerer kunst" så lenge som mulig, mens du bygger grunnleggende om et spill. Mens disse animasjonene ikke er nøyaktig endelige, er de veldig nærme til det jeg ville bruke i sluttproduktet. Jeg gjør dette av to viktige grunner:

  • For det første lar jeg meg se disse animasjonene gjentatte ganger over en lengre periode på grunn av alle testene jeg skal gjøre. Til slutt blir feilene i en animasjon mer og mer åpenbare, og jeg vil føle meg mer tvunget til å finjustere og forbedre den. 
  • For det andre, dette tillater meg å bygge spillet rundt hvordan det ser ut, i stedet for å prøve å tegne en sprite for å passe inn i de begrensede områdene diktert av koden. Det er lettere å endre noen linjer med kode enn det er å redraw en sprite.

Iterasjon 3: Legge til grunnleggende lydeffekter

Jeg bruker denne iterasjonen til å bevise et poeng, og ikke nødvendigvis som et eksempel på hva jeg ville gjøre mens jeg lagde et spill. Ved å implementere utrolig grunnleggende (og uten tvil dårlige) lydeffekter dette tidlig i utviklingen, vil verdien av gode lydeffekter bli enda mer tydelig i en senere iterasjon. 

Jeg har lagt til tre lyder: skyting, hopping og kollisjon i krig / fiendens død. Ved å gjenta disse lydene over de neste få iterasjonene, vil du bedre forstå en av de viktigste, men likevel ofte oversett aspekter av spilldesign: variasjon gjennom randomisering.

I likhet med å legge til animasjoner, legger du til lydeffekter dette tidlig i utviklingen gir deg nok tid til å avgjøre om du liker dine eiendeler eller ikke. Mange utviklere legger til lydeffekter i de siste trinnene i spillutvikling. Dette kan være farlig, fordi bare inkludering av lyd etter timer og timer med tydelig spilltest kan kunstig oppblåse ditt nivå av tilfredshet med kvaliteten på eiendelene. Å legge til lyd tidlig sørger også for at lydutløserne er på plass før du legger for mange lag med komplisert kode som kanskje må skrives om for å få lyden til å fungere skikkelig.  

Iterasjon 4: Legge til fliser

Igjen, dette er ikke en veldig viktig iterasjon på dette utviklingsstadiet, men jeg var lei av å se på de kjedelige, svarte blokkene som brukes til å representere gulvet og veggene. 

Dette er bare en kosmetisk forandring av spillet fordi vi fortsatt bruker den eksisterende funksjonaliteten til de svarte blokkene. Disse fliser legger til ingenting til gameplay-opplevelsen, likevel har spillet fortsatt noe annerledes. I stedet for å stå direkte på toppen av en 2D-blokk, har perspektivet skiftet litt, slik at du kan se både topp og sideflaten av blokken. 

Kollisjonskoden er den samme, men nå er fundamentet på plass for å lage lag av dybde i fremtiden. Jeg bruker dette som en måte å bevise et konsept som jeg vil utvide mer i detalj i en fremtidig iterasjon: tilsynelatende små kosmetiske endringer kan i stor grad påvirke følelsen av et spill.

Iterasjon 5: Vertikalitet og Introduksjon av Variasjon

Det er her ting begynner å bli interessante. I denne iterasjonen har jeg lagt til en av de mest brukte plattformsmekanikene til enhver tid: dobbelthoppet. 

Enten det er tilgjengelig fra starten eller som en oppgradering du tjener over tid, er dobbelthoppet det perfekte eksempelet på hvordan en enkel forandring kan bidra til å bringe et spill til liv. Men hvordan? Det er bare en måte å gjøre spilleren hopper høyere og lengre, ikke sant? Hvordan er det annet enn en enkel mekaniker? Tillat meg å forklare.

Vårt grunnleggende hoppe har en fast høyde og en fast hastighet. Noen plattformspillere tillater deg å holde hoppeknappen nede for å forlenge hopphøyden. Med vår opprinnelige hoppe ble spilleren låst inn i en beslutning. Når knappen ble trykket, hadde spilleren ikke lenger et valg. Det var ingen variasjon. Ved å legge til et dobbelthopp, har vi gitt spilleren et valg, og introdusert variasjon i spillerens hoppopplevelse. Jeg er sikker på at du har hørt at "variasjon er livets krydder"; Dette gjelder også for spilldesign.

Men du kan ikke bare kaste inn massevis av valg og kalle det en dag. Vi kunne gi vår spiller en jetpack, vårsko, en portalpistol og evnen til å fly. Det ville definitivt åpne opp antall valg tilgjengelige, men de fleste ville bli overflødige eller meningsløse. Valgene må være nyttige i flere situasjoner, og vårt dobbeltspring passerer den testen. Ved å legge til dette grunnleggende dobbelthoppet, kan vi legge til vertikalitet til våre stadier og fiendens møter uten å endre kjernespillet i den måten en jetpack ville. For eksempel kan sceneplanleggingen forblir for det meste horisontal for en stund, og da kunne dobbeltpringen bli nødvendig i en seksjon for å utvide vertikaliteten og introdusere variasjon og liv til opplevelsen.

Og det handler ikke bare om grunnleggende plattform. Faktisk er antall gameplay valg enormt med et enkelt dobbelt hopp. Den vanlige fienden kan unngås med jevne hopp. En større fiende kan kreve et dobbelt hopp. Kanskje en sjefsmøte ville kreve en kombinasjon av vanlige og doble hopp for å unnvike angrep og nå et høyere fiendens svake punkt. Et rom med pigger på taket kunne begrense bruken av dobbelthoppet, mens en sekvens av store hopp kunne begrense bruken av det vanlige hoppet. Kast den strategiske evnen til å bruke presis dobbelt hoppetid for å smette unna flere fiendtlige prosjektiler, og du har laget timer med spillingsmuligheter med en liten og tilsynelatende ubetydelig mekaniker.

Dette demonstrerer hvordan å bringe livet til en spillopplevelse, ikke handler om å legge til et sinnssykt nivå av polsk eller detaljert, men kan være om å bruke en liten forandring for å skape gigantiske, feiende endringer i kjernespillerenes opplevelse gjennom variasjon.

Og nå som du tenker på variasjon, vil jeg ta opp et av de største verktøyene du har til disposisjon: randomisering. Denne iterasjonen har en randomisert hoppelyd som sikrer at spilleren ikke hører samme lyd hver gang hoppeknappen trykkes. Det virker som en liten forandring, men den neste iterasjonen vil utvide seg på denne ideen for å vise hvor viktig tilfeldighet er når du prøver å bringe en spillopplevelse til livet.

Iterasjon 6: Forbedre følelsen av Gunplay gjennom tilbakemelding og tilfeldighet

Denne iterasjonen har ganske mange endringer, alle designet for å forbedre gunplay, som er hovedfokuset i spillet. Uansett hvilken type spill du lager, bør du bruke så mye tid som du muligens kan raffinere hovedveien mellom spillerne dine og det. Denne iterasjonen gir livet til spillet gjennom en forbedring av visuell tilbakemelding, lyd tilbakemelding, risiko vs belønning og randomisering.

Visuell tilbakemelding

Våre tidligere iterasjoner inneholdt svært utilfredsstillende og underwhelming gunplay på grunn av den nesten ikke-eksisterende tilbakemelding fra bullet. Ved å trykke på brannknappen ble det opprettet en kule, men det var det. Ved å lage en enkel snapsymbol og øke størrelsen på kulen, har vi skapt en mye mer tilfredsstillende opplevelse for spilleren. En subtil skjerm shake er lagt til for å understreke kraften til pistolen vår, som nå føles mer som et hagle enn en ert-skytespill. Våre kuler blir hovedperson, noe som er utrolig viktig i et spill som drives av gunplay.

Lyd tilbakemelding

Den kjedelige, dårlige skuddlyden fra tidligere har blitt erstattet med en tykk og kjøttfull eksplosjon som går bra med vår nye visuelle tilbakemelding. Det er viktig å sørge for at visuals og lyd fungerer godt sammen for å puste livet inn i spillet ditt. På samme måte som stor lyd kan forbedre spillet ditt, kan dårlig lyd forringe den samlede opplevelsen.

Risiko vs Belønning

I et spill som handler om å skyte, foretrekker mange spillere et auto-brannalternativ. Hvorfor er det sånn? Kanskje det er fordi fingrene deres blir slitne, men jeg vil hevde at det er fordi de fleste skyte spill ikke gir noen risiko for å skyte et våpen. 

Hør på meg. Hvis spilleren ikke straffes for å skyte et våpen i spillet, så hvorfor krever selv at spilleren trykker på knappen i det hele tatt? Det må være grunn til å trykke på en knapp, og det må være grunn til det ikke trykk på den knappen. Variety handler om valg, ikke sant? Så gi spilleren en grunn til å velge å trykke på en knapp eller ikke, og gi en risiko og en belønning for begge valgene. 

I denne iterasjonen har jeg introdusert pistolrekorder som vil drive spilleren bakover med hvert skudd avfyrt. Brann for fort, og du ender opp med å fly på tvers av skjermen. I en scene med fallgruver, pigger eller andre farer, skaper denne rekylmekanikeren interessante scenarier der spillerne blir tvunget til å velge når, hvor og hvordan man skyter. Ja, du kan høste fordelene ved å skyte hundrevis av kuler på fienden din, men du risikerer å bli drept av noe du ikke engang skyter på.

Prøv å finne måter å introdusere dette konseptet på i spillet, og du vil finne ut at antall mulige spillsscenarier blir multiplisert. For eksempel resulterer denne rekylmekanikeren i at spilleren kan hoppe lenger, så lenge de er komfortable gjør det mens de reiser bakover. Det er et interessant lag med dybde som kan dukke opp over tid, og gir enda mer variasjon til gameplay-opplevelsen.

randomisering

Dette er lett den raskeste og enkleste måten å puste livet på i spillet ditt. Som med hoppelydene fra en tidligere iterasjon, blir skuddlyden også randomisert. Spilleren vil skyte hundrevis av kuler om gangen, så det er utrolig viktig å gjøre dette så variert som mulig. Banen til hver kule er også randomisert litt. Vi kan introdusere oppgraderinger over tid for å gjøre våre kuler mer nøyaktige, men denne typen spill vil ikke kreve pinpoint-nøyaktighet, så denne typen randomisering fungerer perfekt..

Iterasjon 7: Enemy Knockback

Å kjempe mot fiender opp til dette punktet har vært en utilsiktet opplevelse. Denne iterasjonen introduserer en form for visuell tilbakemelding ved å gi fiender faktiske hitpoeng og introdusere litt knockback. 

Når en kule kolliderer med en fiende, blinker fienden rødt midlertidig, og fienden flyttes i retningen som kulaen var på reise. Det tar nå fem treff for å drepe en fiende, og skaper en faktisk utfordring.

Start animasjonsrammen og fiendens maksimale bevegelseshastighet er randomisert for å skape variasjon blant fiendens kraft som nå er økt fra en Slug Booger til fire Slug Boogers. Hvis du har samme sprite på skjermen, og sprites er alle instantiated på samme tid, er det viktig å gjøre dette for å sikre at det er noen differensiering mellom enhetene. 

Mens disse endringene gjør at fiendens møter blir litt mer interessante, har vi fortsatt en måte å gå for å gjøre den samlede opplevelsen tilfredsstillende.

Iterasjon 8: Partikler!

Husk da vi introduserte scenefliser, en strengt kosmetisk forandring som ikke la noe til gameplayet, men likevel klarte å forandre følelsen av spillet? Vel, å legge partikler er en sikker brann måte å slå den ideen opp til 11. 

Støvpartikler slippes ut når spilleren hopper og når spilleren lander, legger litt liv til bevegelsen av hovedpersonen. Brann og litt røyk sendes ut fra våpenrommet hver gang et skudd avfyres, og kulene brenner inn i en rekke hvite partikler når de kolliderer med en vegg-, gulv- eller fiendtlig gjenstand.

Mens jeg jobbet på denne demoen, viste jeg noen få teaser GIFs til noen av mine venner, og det første svaret var vanligvis det samme. Alle kommenterte partikkeleffekter, og viste seg hvor verdifull denne typen visuell tilbakemelding kan være. Men det handler ikke bare om å være "pen"; partikler kan gjøre et spill føler mer levende ved å presse spillerens fantasi videre inn i spillverdenen.

Vi vet alle at det ikke er støv på bakken i dette spillet, men partiklene kan føre til at du suspenderer din vantro. Det samme gjelder for skytevåpen. Det som tidligere var bare en hvit sprite, føles mer som et prosjektil kastet ut av en tønne ved forbrenning av krut. Og nå, i stedet for å bare forsvinne, kan våre kuler logisk forsvinne fra spillverdenen ved å bryte opp i små stykker. Start- og sluttposisjonene til våre hopp er nå markert med støv. Alt begynner å ha en begynnelse og en slutt. Alt begynner å ha en hensikt. Når disse individuelle gjenstandene begynner å leve og puste på egenhånd, da er spillet som helhet kan begynne å føle seg levende igjen.

Iterasjon 9: Enemy Death og verdien av Permanence

Siden ting begynner å føle seg mer levende, bør vi definitivt få dem til å føle seg mer døde.

Å feire en fiende bør være et tilfredsstillende øyeblikk, siden det er hovedpoenget til vårt lille spill. I denne iterasjonen eksploderer fiender inn i en utbrudd av fremmede blodpartikler og kroppsbiter. En hvit blits og en kraftig skjermshake følger med en sprø eksplosjonslyd, og kroppens biter gir en støyende lyd når de kolliderer med gulvet.

Disse kroppssjokkene gir også et annet viktig spilldesignelement: permanence. Spilleren kan legge et definitivt merke på spillverdenen. Det er som å holde en utklippsbok av bilder for å markere hendelsene i livet ditt - unntatt mye mer uhyggelig. På en måte er det bevis på at du en gang var i live. Denne enkle ideen kan markere områder som du allerede har vært til, og det kan være en påminnelse om kampene du har vunnet.

Permanens er utrolig viktig, og det er en ide som har eksistert siden begynnelsen av spillutviklingen. Tenk tilbake til den opprinnelige Super Mario Bros., der du kan se hvilke blokker du allerede har brutt. Det er et så enkelt konsept, men det bringer spillet ditt til liv ved å vise de langvarige effektene av din investerte tid.

Iterasjon 10: Final Touches

Den endelige iterasjonen introduserer noen få valgfrie visuelle detaljer og et enkelt lydspor. Selv om jeg ikke tok seg tid til å komponere en sang som passer til den visuelle stilen til spillet, vil jeg ikke ignorere den store betydningen av lydens rolle i å bringe et spill til liv. Enten det er en faktisk sang eller en slags omgivende støy i omgivelsene, er kraften til lyd å puste liv i spillet ditt enormt.

Når det gjelder de visuelle tilleggene til denne siste iterasjonen, la jeg til en rullende parallaxbakgrunn og mer permanenthet via skallhylster utvist fra pistolen. Parallax-bakgrunnen gir ikke logisk forstand i dette eksemplet fordi all handlingen foregår på ett skjermbilde, men du kan se at de ekstra lagene av dybde bidrar til å utvide spillets verden lenger tilbake til territorium som spilleren aldri vil kunne traversere. 

Næringen kan virke besatt av ideen om åpne verdensspill og å kunne nå hvert synlig område i et spills kart, men jeg sier at det faktisk er viktig å ha utilgjengelige områder i et spill. Vil du noensinne gå fot på hvert sandkorn i det kjente universet i det virkelige livet? Selvfølgelig ikke, og det er ikke en dårlig ting. Universets storhet er en interessant konsept, så å tenke på de uoppnåelige områdene i spillet kan være like spennende.

Et spill liv kan utvides langt utover noen spillbar, synlig eller hørbar grense hvis du vil. Verden er nå, så dra nytte av det!

Konklusjon

Sammenlign spillet i Iteration 10 til spillet i Iteration 1. Disse små, enkle endringene og tilleggene ble lagt opp for å skape en mye mer tilfredsstillende opplevelse. Spillet i Iteration 1 er kjedelig, livløs og uinteressant. Spillet i Iteration 10 etterlater deg som vil ha mer, og du kan faktisk føle deg som om et helt spill begynner å ta form.

Som jeg sa før, er dette bare et eksempel på hvordan du kanskje Legg livet til et spill med denne typen spill og presentasjonsstil. Det er uendelig mange måter å få din opplevelse til liv i hendene på spillerne dine, og det er opp til deg å mestre den kunsten. 

Neste gang du spiller et spill, stopp og spør deg selv hvorfor det føles tilfredsstillende. Ikke bare tenk på hvordan det ser ut, hvordan det høres ut, eller hvordan det spiller. Tenk på valgene du har, mulige permutasjoner av hendelser det er, og tilbakemeldingene du ser og hører som følge av dine innspill. Tenk på hvordan tilbakemeldingen påvirker valgene dine, og prøv å forstå hvorfor disse beslutningene ble gjort under utviklingen. Den beste måten å lære om spilldesign er å stille spørsmål som du kanskje aldri finner svaret på. 

Det er som å søke etter meningen med livet: du vil aldri finne svaret, men din kunnskap om verden og deg selv vil utvilsomt vokse underveis.