Gör ditt första spel Matt Porters tidiga erfarenheter

Det finns två spel som jag anser vara min första: en jag gjorde innan jag kunde koda (vilket var svårare än vad som var nödvändigt, men inte alls omöjligt) och en jag gjorde i samarbete med en artist efter att jag lärt mig grunderna om programmering. I den här artikeln delar jag mina erfarenheter med dig, för att bevisa att oavsett vilken nivå du är närvarande på, allt du behöver för att göra spel är passion - inga ursäkter!


Mitt förprogrammeringsspel

Innan jag var en spelutvecklare, speciellt en programmerare, dabbled jag med animering med Flash 4. Jag var bara 12 eller så vid tiden, men jag hade mycket roligt att lära mig grunderna genom stickfights, som inspirerades mycket av min otaliga timmar tillbringade roaming Newgrounds. Detta ledde mig till slut att göra korta animationer, som inkluderade förladare, spelknappar och sluta() funktion (placerad på filmens sista ram för att undvika looping).

Jag hade alltid velat göra spel, men det verkade helt bortom mina förmågor - det vill säga tills jag insåg att de få verktyg som jag redan använde gav mig kraften att göra det.

Möt Omnigosha

Namnet på mitt första spel var Omnigosha. Till denna dag har jag absolut ingen aning om var jag kom fram till det namnet, men det lät svalt vid tiden så jag fastnade med det.

Omnigosha var ett pek-och-klicka-äventyr som ägde rum i en stor stad där ett brottssyndikat var okej. Spelet saknade mestadels historia, men från de få bokstäverna och böckerna du hittar i hela spelet lär du dig att en grupp som kallar sig "Black Monks" importerar illegala japanska vapen och styrs av deras ledare Don Etello (jag var ett smart barn, jag vet).

Du skulle utforska huvudbyggnaden (Bygg A, eftersom det var den enda byggnaden som någonsin fullbordats för detta ambitiösa projekt), samla in saker och arbeta dig framåt. Eftersom jag inte hade någon programmeringskunskap var det ingen inventering, så spelet hade en linjär objektprogression, vilket innebär att du var tvungen att utveckla spelet i en viss ordning. (Även om det fanns en valfri mini-boss kamp, ​​som inträffade om du larmade ett larm genom att försöka samla ett objekt från ett säkert förvaringsskåp för tidigt i spelet.)

Ett spel med (nästan) ingen kod

Medan det kan tyckas helt löjligt, tog jag faktiskt bort hela min idé, och sedan några, med nästan ingen kod alls. De enda verktygen jag hade var Flash-knappar och kunskapen om följande funktioner:

 sluta(); // stoppar film på aktuell bildspel (); // återupptar film från nuvarande ram gotoAndStop (ram); // stoppar film på den angivna ramen gotoAndPlay (frame); // återupptar film från specificerad ram

Jag tänkte att jag kunde använda ovanstående verktyg för att skapa något som en "Välj ditt eget äventyr" bok. Spelaren skulle hoppa mellan sidor (ramar) genom att göra val (vad de klickade på), vilket skulle bestämma vilken sida (ram) de skickades till.

Till exempel var det 12 våningar i mitt spel, så varje våning skulle vara på de första 12 bildrutorna. Hissen som leder mellan golv var inget annat än ett index av knappar som leder till varje ram. För rummen som hade flera våningar tackade jag de extra rummen i slutet.

Detta system fungerade ganska bra för att utforska den värld som jag skapat, men jag hade absolut ingen aning om hur man skapade en inventering, vilket var där saker blev knepiga.

Inventory

Eftersom jag inte hade något inventeringssystem, var jag tvungen att bli kreativ med hur spelet faktiskt gick framåt. För detta gjorde jag något helt löjligt, men jag visste inte bättre - och hej, det fungerade.

Jag kopierade mina hela världen (alla ramar i mitt spel) till flera "scener", en för varje progression av spelet. Sedan gjorde jag små förändringar för varje scen, beroende på hur långt i spelet du var.

Om du till exempel börjar på scen 1 och det första objektet du samlar är en nyckel på våning 4, så när du klickar på skrivbordet för att "samla" den nyckeln skickar spelet dig till samma våning och ramar du var på , men i scen 2. I scen 2 är världen densamma, förutom nu har du nyckeln, och så kan du öppna dörren som den låser upp. Det finns inget system som håller reda på det faktum att du håller nyckeln: du är helt enkelt i scen 2, där skrivbordet är nu tomt och dörren kan öppnas.

Detta fortsätter för varje enskilt objekt som du samlar i hela spelet, vilket skapar en bra 20 till 30 kopior av nästan varje ram i mitt spel. Såvitt jag var medveten gjorde jag inte något fel! Och jag var redo att skapa ännu mer, trots hur lite jag visste.

Bekämpa!

När jag blev mer och mer upphetsad över mitt projekt blev jag ambitiös, och jag började undra hur mycket jag kunde skapa med det lilla jag visste. Vid ett tillfälle i mitt spel möter du så småningom medlemmarna i "Black Monks" och har en pistol duell; Det är här saker blir galen.

Du kanske frågar dig själv hur det här är möjligt med ingen programmeringskunskap. Tja, genom att ha några extremt invecklade raminställningar och olika knappar som leder dig till specifika ramar beroende på vad som händer, kunde jag skapa en väldigt snygg vapenstopp. Under den här stand-offen kan du trycka ner pilen för att dölja sig bakom en jätte kasse, tryck på pilen uppåt för att komma ur täcken och klicka på fiender utan att täcka för att skjuta dem. För att polera av sakerna gjorde jag varje kista i rummet en knapp som kunde klickas, vilket skulle utlösa en ljudeffekt och ändra sin grafik till en kista med ett kulahål (kulahålet var förutbestämt och inte på platsen du sköt ).

Senare med hjälp av mycket liknande tekniker skapade jag till och med en jätte tankschef som sköt missiler på skärmen och som hade en svag punkt som bara kunde skjutas när dess vakt var nere.

Gå aldrig till strid utan en vapen

Om du inte hade insåg än: mina metoder ovan är absolut löjliga på alla möjliga sätt. Hade jag känt de mest extrema grunderna i programmering, kunde jag ha skapat det här spelet mycket snabbare. Dessutom kunde jag ha gjort filstorleken mycket mindre, eftersom jag inte skulle behöva kopiera ramar om och om för varje steg av progression i spelet.

En grundläggande förståelse för arrays skulle ha gjort det möjligt för mig att skapa ett enkelt inventeringssystem, så att användaren kunde samla in saker som de hittade dem och för att spelet skulle veta vilka objekt som hölls vid en given tidpunkt. Kunskap av om uttalanden och booleaner skulle då ha tillåtit mig att utföra kontroller på alla mina dörrar, byråer, galler och så vidare. Dessa två kombinerade, tillsammans med några andra grunder, skulle tillåta mig att programmera spelet ordentligt, så att jag kan redigera och expandera som jag såg passformen. Som det var, varje gång jag lade till ett nytt objekt i början eller mitten av spelet, var jag tvungen att göra enorma ändringar, eftersom allt i spelet var ram- och scenspecifikt och de senare värdena ändras med tidigare tillägg.

Förhindra dig aldrig genom bristande kunskap

Den mest värdefulla sak jag lärde mig från detta spel är att du aldrig bör hindra dig själv genom bristande kunskap. Om du försöker lösa ett problem utan rätt verktyg är det bäst att du kommer tillbaka från problemet och förvärvar rätt verktyg först.

Om du har svaga punkter i dina programmeringsförmågor, gör vana att ta itu med en aspekt åt gången, och du kommer långsamt men säkert att få den kunskap som låter dig aldrig göra misstag som de jag gjorde.


Min Verklig Första spelet

Ett par år efter att jag skapat Omnigosha och släppte den på Newgrounds, befann jag mig själv i den lilla staden Moskva, Idaho. Det var här jag jobbade i en Pizza Hut för fem dollar en timme, och här bestämde jag mig för att mitt liv behövde förändras. Jag var helt trött på mitt jobb och ingen känsla av riktning i mitt liv. Jag hade tidigare köpt en Wacom grafikkort för att vidareutveckla mina animationsfärdigheter, men konst har aldrig varit min forté, och jag hade äntligen accepterat att min animering inte var mer än en hobby. Även om animering inte tycktes vara min kallelse var allt bra, för första gången i mitt liv visste jag vad som var: spelutveckling.

Jag visste att jag inte hade färdigheter för att göra det till en verklighet när som helst snart, men min motivation att slutligen lämna dagjobb som den jag hade i mitt förflutna var stark nog för att driva framåt. Några månader senare släppte jag mitt första riktiga, fullt programmerade spel - Stabika Episode 1: Escape.

Hur jag blev en del av projektet

Som en del av min resa för att förvärva de färdigheter som jag behövde bli en spelutvecklare, gick jag till det enda ställe jag visste kunde lära mig på den tiden, Newgrounds. Det är här jag spenderade otaliga timmar i Flash Forums, och frågade varje nybörjarfråga som man kände till. Jag läste självstudier, tittade på andras frågor och noterade svaren de fick. Medan det jag lärde mig inte var helt formellt eller bra, var det ett stort steg i rätt riktning, och inget som det som jag tidigare använde.

När min inlärning fortsatte blev jag allt mer ivriga att hjälpa alla jag kunde, eftersom det skulle visa mig att jag faktiskt lärde mig och det skulle vara bra för mig att ge tillbaka till samhället som lärde mig vad lite jag visste . En dag frågade David Mills en särskilt intressant fråga på Newgrounds-forumen om att skapa en gud av krigsliknande tidsbestämd sekvens, och till min förvåning fann jag mig faktiskt kunna svara på sin fråga. Medan kodningen bakom idén var mestadels logik som någon kunde räkna ut så hände det bara så att jag också hade fått förmågan att programmera den logiken.

Efter några svar fram och tillbaka tackade han mig starkt och lovade att kreditera mig i spelet. Några dagar senare var han tillbaka till forumet och visade en demonstration med koden jag gav honom och fick feedback. Inte för långt efter var han tillbaka för att ställa frågor om hur man skulle inkludera vad folk hade föreslagit, och jag var tillbaka för att svara honom ännu en gång. Innan vi visste det, samarbetade vi tillsammans, och jag skapade mitt första riktiga spel.


Om du är intresserad av att se den första utbyten, kan inlägget hittas här och här.

Detta den ursprungliga tekniska demo som jag levererade Mills med som ett bevis på konceptet att jag kunde dra av jobbet:

(Kudos till ImageShack för värd som SWF alla dessa år.)

Stabika Episode 1: Escape

Spelet själv spelade mycket som de tidsbestämda sekvenserna från God of War, som Mills nämnde i hans första inlägg. Det var mer eller mindre en animering med interaktiva stunder där tiden skulle sakta ner och spelaren skulle behöva mata in en slumpmässigt vald nyckel innan tiden löpte ut.

Dessa stunder var alltid ibland där faran var inblandad, så att slå den rätta nyckeln skulle leda till att animationen fortsätter framåt på något vansinnigt fantastiskt sätt, medan att slå fel nyckel skulle leda till en gory död. Spelet tog bara några minuter att slå om du var tillräckligt bra, men de flesta spelare var tvungna att träna om och om igen för att få reaktionstiden upp och att memorera när de tidsbestämda sekvenserna kom.

Oavsett den korta varaktigheten lade vi till en kontrollpunkt precis före den slutliga bossscenen, för att hålla spelet roligt och inte alltför straffande. För att avsluta spelet, gjorde vi en sista sekvens som hänvisar till Mortal Kombat: tiden skulle frysa helt och texten "Finish Him" ​​skulle spridas över skärmen. Spelarna fick då skriva in fem slumpmässigt genererade nycklar i rad för att landa det sista slaget. Medan spelare inte kunde rota upp den här sista sekvensen, var det en ganska dålig rutt för att avsluta spelet, och folk tycktes älska det.

Öppningsdörrar

Frigörande Stabika var ett stort framsteg mot mitt mål att bli en spelutvecklare. Jag hade framgångsrikt lagt in min programmeringskunskap för att använda, förfinade den kunskapen och bildade ett helt nytt partnerskap som ledde till många framtida spel, vilket i sin tur gav mig betydligt mer erfarenhet som utvecklare.

Medan vi kanske har släppt Stabika 1 bara för skojs skull, ledde uppmärksamheten och feedbacken till vår första sponsring med CrazyMonkeyGames, som öppnade oss för en helt ny värld av möjligheter.

Jag kan inte säga tillräckligt bra saker om att släppa mitt första spel och jag uppmanar dig starkt att arbeta mot det här målet om det är något du är intresserad av. resultaten kan överraska dig.


Slutsatser

Oavsett vilken nivå du är närvarande på, allt du behöver för att göra spel är passion.

Som du kan se varierar mina två matcher ganska mycket. Ett spel krävde nästan ingen kod alls, och den andra var mer avancerad, krävde viss programmering och var mycket mer polerad. Oavsett deras skillnader delar de en sak gemensamt: min önskan att skapa spel är vad som gjorde dem till liv.

Om du tar någonting ut av det här vill jag att du inser att oavsett vilken nivå du är närvarande på, behöver du bara skapa spel är passion. Enkla spel kan skapas med nästan ingen teknisk kunskap, och mer komplicerade spel ligger precis framför dig - om du tar dig tid att lära dig de nödvändiga färdigheterna. Om du skapar spel är något du verkligen vill göra, lovar jag dig att du är kapabel; du måste bara tänka på det.