Å gjøre ditt første spill Matt Porters tidlige opplevelser

Det er to spill som jeg anser for å være min første: en jeg laget før jeg kunne kode (som var vanskeligere enn det måtte være, men på ingen måte umulig) og en jeg laget i samarbeid med en kunstner etter at jeg hadde lært grunnleggende om programmering. I denne artikkelen vil jeg dele mine erfaringer med deg, for å bevise at uansett hvilket ferdighetsnivå du er på, alt du trenger for å lage spill er lidenskap - ingen unnskyldninger!


Mitt preprogrammeringsspill

Før jeg var en spillutvikler, spesielt en programmerer, dabbled jeg med animasjon ved hjelp av Flash 4. Jeg var bare 12 eller så på den tiden, men jeg hadde mye moro å lære det grunnleggende ved hjelp av pokerslag, som var sterkt inspirert av mine mange timer brukte roaming Newgrounds. Dette fører til slutt meg til å lage korte animasjoner, som inkluderte pre-loaders, spillknapper og Stoppe() funksjon (plassert på filmens siste ramme for å unngå looping).

Jeg hadde alltid ønsket å lage spill, men det virket helt utover mine evner - det vil si til jeg skjønte at de få verktøyene jeg allerede brukte, ga meg muligheten til å gjøre det.

Møt Omnigosha

Navnet på mitt første spill var Omnigosha. Til denne dagen har jeg absolutt ingen anelse om hvor jeg kom opp med det navnet, men det hørtes kaldt da jeg så fast.

Omnigosha var et pek-og-klikk-eventyr, som fant sted i en stor by hvor et forbrytelsessyndikat var ikke bra. Spillet var for det meste mangler i historien, men fra de få bokstavene og bøkene du finner gjennom hele spillet, lærer du at en gruppe som kalder seg "Black Monks", importerer ulovlige japanske våpen, og styres av deres leder Don Etello (jeg var et smart barn, jeg vet).

Du vil utforske hovedbygningen (Bygning A, da det var den eneste bygningen som ble fullført for dette ambisiøse prosjektet), samle gjenstander og jobbe fremover. Da jeg ikke hadde noen programmeringskunnskap, var det ingen beholdning, så spillet hadde en lineær gjenstandsfremgang, noe som betyr at du måtte utvikle spillet i en bestemt rekkefølge. (Selv om det var en valgfri mini-sjef kamp, ​​som skjedde hvis du slo ut en alarm ved å forsøke å samle et element fra et sikkert skap for tidlig i spillet.)

Et spill med (nesten) ingen kode

Mens det kan virke helt latterlig, tok jeg faktisk av hele ideen min, og så noen, med nesten ingen kode i det hele tatt. De eneste verktøyene jeg hadde, var Flash-knapper, og kunnskapen om følgende funksjoner:

 Stoppe(); // stopper film på gjeldende rammespill (); // gjenopptar film fra gjeldende ramme gotoAndStop (ramme); // stopper film på spesifisert ramme gotoAndPlay (ramme); // gjenopptar film fra spesifisert ramme

Jeg skjønte at jeg kunne bruke verktøyene ovenfor til å lage noe som en "Velg ditt eget eventyr" bok. Spilleren ville hoppe mellom sider (rammer) ved å velge (hva de klikket på), som ville bestemme hvilken side (ramme) de ble sendt til.

For eksempel var det 12 etasjer til mitt spill, så hver etasje ville være på de første 12 bildene. Heisen som fører mellom gulvene var ikke noe mer enn en indeks av knapper som fører til hver ramme. For rommene som hadde flere etasjer, takket jeg de ekstra rommene på på slutten.

Dette systemet fungerte ganske bra for å utforske verden jeg hadde opprettet, men jeg hadde absolutt ingen anelse om hvordan å lage en inventar, som er hvor ting ble vanskelig.

Inventaren

Siden jeg ikke hadde noe lager system, måtte jeg bli kreativ med hvordan spillet faktisk utviklet seg. For dette gjorde jeg noe helt latterlig, men jeg visste ikke noe bedre - og hei, det virket.

Jeg kopierte min hele verden (alle rammene i spillet mitt) til flere "scener", en for hver progressiv fase av spillet. Deretter gjorde jeg små endringer i hver scene, avhengig av hvor langt i spillet du var.

Hvis du for eksempel begynner på Scene 1, og det første elementet du samler er en nøkkel på gulv 4, så når du klikker på skrivebordet for å "samle" den nøkkelen, sender spillet deg i samme etasje og rammen du var på , men i scene 2. I scene 2 er verden den samme, bortsett fra nå har du nøkkelen, og så kan du åpne døren som den låser opp. Det er ikke noe system som holder styr på det faktum at du holder nøkkelen: du er rett og slett i Scene 2, hvor skrivebordet er nå tomt, og døren kan åpnes.

Dette fortsetter for hver enkelt gjenstand du samler gjennom hele spillet, noe som skaper en god 20 til 30 kopier av nesten alle rammer i spillet mitt. Så vidt jeg var klar over, gjorde jeg ikke noe galt! Og jeg var klar til å skape enda mer, til tross for hvor lite jeg visste.

Slåss!

Da jeg ble mer og mer begeistret for prosjektet mitt, vokste jeg ambisiøst, og jeg begynte å lure på hvor mye jeg kunne skape med det lille jeg visste. På et tidspunkt i mitt spill møtes du til slutt med medlemmene av "Black Monks", og har en pistol duell; Det er her ting blir vanvittige.

Du kan spørre deg selv hvordan dette er mulig uten programmeringskunnskap. Vel, ved å ha noen ekstremt intrikate rammevalg, og forskjellige knapper som fører deg til bestemte rammer, avhengig av hva som skjedde, var jeg i stand til å skape en veldig fin pistolavstand. Under denne standarden kan du trykke på pil ned for å gjemme seg bak en gigantisk kasse, trykk på pil opp for å komme ut av dekselet, og klikk på fiender mens de ikke er på forsiden for å skyte dem. For å polere ting av, gjorde jeg hver kasse i rommet en knapp som kunne klikkes, noe som ville utløse en lydeffekt og skifte grafikk til en kasse med et kulehull (kulehullet var forhåndsbestemt og ikke i stedet du skjøt ).

Senere, ved å bruke meget lignende teknikker, opprettet jeg til og med en gigantisk tankesjef som skutt missiler på skjermen, og som hadde et svakt punkt som bare kunne skutt når vaktene var nede.

Gå aldri til kamp uten våpen

I tilfelle du ikke hadde innsett ennå: metodene ovenfor er helt latterlige på alle mulige måter. Hadde jeg kjent de mest ekstreme grunnleggende programmering, kunne jeg ha skapt dette spillet mye raskere. På toppen av det kunne jeg ha gjort filstørrelsen mye mindre, siden jeg ikke hadde hatt å kopiere rammer om og om for hvert trinn av progresjon i spillet.

En grunnleggende forståelse av arrays ville ha tillatt meg å lage et enkelt lager system, slik at brukeren kunne samle gjenstander som de fant dem, og for spillet å vite hvilke elementer som ble holdt til enhver tid. Kunnskap om hvis uttalelser og booleaner ville da ha tillatt meg å utføre kontroller på alle mine dører, kommoder, rister og så videre. Disse to kombinert, sammen med noen andre grunnleggende, ville tillate meg å programmere spillet ordentlig, slik at jeg kunne redigere og utvide som jeg så passe. Som det var, hver gang jeg la til et nytt element i begynnelsen eller midten av spillet, måtte jeg gjøre store endringer, siden alt i spillet var ramme- og scenespesifikt, og de senere verdiene endret med tidligere tillegg.

Ikke hindre deg selv gjennom mangel på kunnskap

Den mest verdifulle ting jeg lærte av dette spillet er at du aldri bør hindre deg selv gjennom mangel på kunnskap. Hvis du prøver å løse et problem uten de riktige verktøyene, er det best du er borte fra problemet, og oppnå de riktige verktøyene først.

Hvis du har svake punkter i programmeringsevnen din, gjør du vane med å takle ett aspekt av gangen, og du vil sakte men sikkert få den kunnskapen som lar deg aldri lage feil som de jeg laget.


Min Ekte Første spill

Et par år etter at jeg hadde skapt Omnigosha og sluppet den på Newgrounds, fant jeg meg selv i den lille byen Moskva, Idaho. Det var her at jeg jobbet på en Pizza Hut for fem dollar en time, og her bestemte jeg meg for at mitt liv måtte bytte. Jeg var helt lei av jobben min, og ingen følelse av retning i mitt liv. Jeg hadde tidligere kjøpt en Wacom grafikkbrett for å fremme animasjonsferdighetene, men kunst har aldri vært min forté, og jeg hadde endelig akseptert at min animasjon ikke var noe mer enn en hobby. Selv om animasjonen ikke syntes å være min kallelse, var alt greit, for for første gang i mitt liv visste jeg hva som var: spillutvikling.

Jeg visste at jeg ikke hadde ferdigheter til å gjøre dette til virkelighet når som helst snart, men motivasjonen min til å forlate dagjobber som den jeg hadde i min fortid, var sterk nok til å presse fremover. Noen få måneder senere la jeg ut mitt første virkelige, fullt programmerte spill - Stabika Episode 1: Escape.

Hvordan ble jeg en del av prosjektet

Som en del av min reise til å anskaffe ferdighetene jeg trengte å bli en spillutvikler, gikk jeg til det eneste stedet jeg visste kunne lære meg på den tiden, Newgrounds. Det er her jeg tilbrakte utallige timer i Flash Forums, og spurte hvert nybegynnerspørsmål kjent for mannen. Jeg leste opplæringsprogrammer, leste andre folks spørsmål og noterte seg svarene de mottok. Mens det jeg lærte ikke var helt formell, eller god praksis, var det et stort skritt i den riktige retningen, og ingenting som det som jeg tidligere hadde brukt.

Etter hvert som min læring fortsatte, ble jeg i økende grad ivrig etter å hjelpe noen jeg kunne, for det ville vise meg at jeg faktisk lærte, og det ville være bra for meg å gi tilbake til samfunnet som lærte meg hvor lite jeg visste . En dag spurte David Mills et spesielt interessant spørsmål på Newgrounds fora om å skape en gud av krigslignende tidsbestemt rekkefølge, og til min overraskelse fant jeg meg selv i stand til å svare på hans spørsmål. Mens kodingen bak ideen var det meste logikk som noen kunne finne ut, skjedde det bare slik at jeg også hadde fått muligheten til å programmere den logikken.

Etter noen få svar frem og tilbake takket han meg sterkt, og lovet å kreditere meg i spillet. Noen dager senere var han tilbake til forumet, og viste en demonstrasjon med koden jeg ga ham, og fikk tilbakemelding. Ikke lenge etter, var han tilbake for å stille spørsmål om hvordan å inkludere hva folk hadde foreslått, og jeg var tilbake til å svare ham igjen. Før vi visste det, var vi samarbeidet sammen, og jeg opprettet mitt første virkelige spill.


Hvis du er interessert i å se den første utvekslingen, kan innleggene bli funnet her og her.

Dette den opprinnelige teknologiske demoen jeg leverte Mills med, som et bevis på at jeg var i stand til å trekke av jobben:

(Kudos til ImageShack for hosting den SWF alle disse årene.)

Stabika Episode 1: Escape

Spillet selv spilte mye som de tidsbestemte sekvensene fra God of War, som Mills nevnt i hans første innlegg. Det var mer eller mindre en animasjon med interaktive øyeblikk der tiden skulle sakte og spilleren måtte skrive inn en tilfeldig valgt nøkkel før tiden løp ut.

Disse øyeblikkene var alltid til tider der faren var involvert, så å trykke på den riktige nøkkelen ville føre til at animasjonen fortsatte videre på noen sinnsykt fantastisk måte, mens å trykke på feil nøkkel ville resultere i en gory død. Spillet tok bare noen minutter å slå hvis du var god nok, men de fleste spillere måtte øve igjen og igjen for å få reaksjonstiden opp og å huske når de tidsbestemte sekvensene kom.

Uansett den korte varigheten, la vi til et kontrollpunkt like før den endelige sjefsscenen, for å holde spillet hyggelig og ikke altfor straffet. For å avslutte spillet, laget vi en siste sekvens som refererer til Mortal Kombat: tiden ville fryse helt, og teksten "Finish Him" ​​ville bli spredt over skjermen. Spillerne måtte da legge inn fem tilfeldig genererte nøkler på rad for å lande det siste slaget. Mens spillere ikke kunne rote opp denne siste sekvensen, var det en ganske dårlig måte å avslutte spillet, og folk syntes å elske det.

Åpning dører

Å frigjøre Stabika var et stort skritt fremover mot mitt mål om å bli en spillutvikler. Jeg hadde vellykket å bruke programmeringskunnskapen min til å bruke, raffinert kunnskapen og dannet et helt nytt partnerskap som førte til mange fremtidige spill, noe som igjen ga meg betydelig mer erfaring som utvikler.

Selv om vi kanskje har gitt ut Stabika 1 bare for moro skyld, har oppmerksomheten og tilbakemeldingen det førte til vår første sponsring med CrazyMonkeyGames, som åpnet oss for en helt ny verden av muligheter.

Jeg kan ærlig talt ikke si nok gode ting om å slippe ut mitt første spill, og jeg oppfordrer deg sterkt til å jobbe mot dette målet hvis det er noe du er interessert i; Resultatene kan overraske deg.


Avsluttende tanker

Uansett hvilket ferdighetsnivå du er på, alt du trenger for å lage spill er lidenskap.

Som du kan se, mine to spill varierer ganske mye. Ett spill kreves nesten ingen kode i det hele tatt, og den andre var mer avansert, krevde noe programmering, og var langt mer polert. Uavhengig av forskjellene deler de en ting til felles: Mitt ønske om å lage spill er det som førte dem til liv.

Hvis du tar noe ut av dette, vil jeg gjerne at du innser at uansett hvilket ferdighetsnivå du er på, alt du trenger for å lage spill er lidenskap. Enkle spill kan opprettes med nesten ingen teknisk kunnskap, og mer kompliserte spill er rett foran deg - hvis du tar deg tid til å lære de nødvendige ferdighetene. Hvis du skaper spill er noe du virkelig ønsker å gjøre, lover jeg deg at du er i stand til; du må bare tenke på det.