Crea il tuo primo gioco Matt Porter's Early Experiences

Ci sono due giochi che considero il mio primo: uno che ho realizzato prima di poter codificare (che era più difficile di quanto fosse necessario, ma non impossibile), e uno che ho realizzato in collaborazione con un artista dopo aver appreso le basi di programmazione. In questo articolo, condividerò le mie esperienze con te, per dimostrare che non importa a quale livello di abilità ti trovi attualmente, tutto ciò che ti serve per fare giochi è la passione - nessuna scusa!


Il mio gioco di pre-programmazione

Prima di essere uno sviluppatore di giochi, in particolare un programmatore, mi sono dilettato con l'animazione usando Flash 4. Avevo solo 12 anni, ma mi sono divertito molto imparando le basi attraverso combattimenti con i bastoni, che sono stati fortemente ispirati dalle mie innumerevoli ore speso roaming Newgrounds. Questo alla fine mi ha portato a realizzare brevi animazioni, tra cui pre-caricatori, pulsanti di riproduzione e Stop() funzione (posizionata sul fotogramma finale del film per evitare il looping).

Avevo sempre desiderato creare giochi, ma sembrava completamente al di là delle mie capacità, cioè fino a quando non mi sono reso conto che quei pochi strumenti che stavo già usando mi hanno dato il potere di farlo.

Incontra Omnigosha

Il nome del mio primo gioco in assoluto è stato Omnigosha. Fino ad oggi non ho assolutamente idea di dove sia venuto fuori con quel nome, ma all'epoca suonava figo, quindi l'ho bloccato.

Omnigosha era un'avventura point-and-click, che si svolgeva in una grande città in cui un sindacato criminale non poteva fare nulla di buono. Il gioco era per lo più privo di storie, ma dalle poche lettere e libri che trovi nel corso del gioco, si impara che un gruppo che si definisce "Black Monks" sta importando pistole giapponesi illegali ed è governato dal loro leader Don Etello (io ero un bambino intelligente, lo so).

Esplorerai l'edificio principale (l'edificio A, poiché è stato l'unico edificio mai completato per questo ambizioso progetto), raccogli oggetti e prosegui la tua strada. Dato che non avevo conoscenze di programmazione, non c'erano inventari, quindi il gioco aveva una progressione di oggetti lineare, il che significava che dovevi progredire nel gioco in un ordine specifico. (Sebbene ci fosse un combattimento mini-boss opzionale, che si è verificato se si è attivato un allarme tentando di raccogliere un oggetto da un armadietto sicuro troppo presto nel gioco.)

Un gioco con (quasi) nessun codice

Anche se può sembrare assolutamente ridicolo, in effetti ho realizzato la mia intera idea, e poi alcuni, quasi senza alcun codice. Gli unici strumenti che avevo, erano i pulsanti Flash e la conoscenza delle seguenti funzioni:

 Stop(); // interrompe il film sulla riproduzione fotogramma corrente (); // riprende il film dal frame corrente gotoAndStop (frame); // ferma il filmato sul fotogramma specificato gotoAndPlay (frame); // riprende il filmato dalla cornice specificata

Ho pensato che avrei potuto usare gli strumenti di cui sopra per creare qualcosa come un libro "scegli la tua avventura". Il lettore salta tra le pagine (frame), facendo delle scelte (su cosa hanno fatto clic), che determinano quale pagina (frame) sono state inviate a.

Ad esempio, c'erano 12 piani per il mio gioco, quindi ogni piano sarebbe stato sui primi 12 fotogrammi. L'ascensore che portava tra i piani non era altro che un indice di pulsanti che portavano a ciascun fotogramma. Per le stanze che avevano più piani, ho attaccato le altre stanze alla fine.

Questo sistema ha funzionato abbastanza bene per esplorare il mondo che avevo creato, ma non avevo assolutamente idea di come creare un inventario, che è dove le cose sono diventate difficili.

L'inventario

Dal momento che non avevo un sistema di inventario, dovevo diventare creativo con il modo in cui il gioco progrediva davvero. Per questo, ho fatto qualcosa di assolutamente ridicolo, ma non sapevo niente di meglio - ed ehi, ha funzionato.

Ho copiato il mio il mondo intero (tutti i frame del mio gioco) a più "scene", una per ogni fase di progressione del gioco. Poi, ho apportato lievi modifiche a ciascuna scena, a seconda di quanto lontano nel gioco eri.

Ad esempio, se inizi su Scena 1, e il primo oggetto che raccogli è una chiave al piano 4, quando fai clic sulla scrivania per "raccogliere" quella chiave, il gioco ti manda allo stesso piano e inquadratura in cui eri , ma nella scena 2. Nella scena 2, il mondo è lo stesso, tranne che ora hai la chiave, e quindi puoi aprire la porta che sblocca. Non esiste un sistema che tenga traccia del fatto che hai in mano la chiave: sei semplicemente nella Scena 2, dove la scrivania è ora vuota e la porta può essere aperta.

Questo continua per ogni singolo oggetto che raccogli durante il gioco, il che crea da 20 a 30 copie di quasi ogni fotogramma del mio gioco. Per quanto ne sapevo, non stavo facendo niente di male! Ed ero pronto a creare ancora di più, nonostante quanto poco sapessi.

Combattimento!

Diventando sempre più entusiasta del mio progetto, sono diventato ambizioso e ho iniziato a chiedermi quanto avrei potuto creare con quel poco che sapevo. Ad un certo punto del mio gioco, alla fine incontrerai i membri dei "Monaci Neri" e avrai un duello con la pistola; è qui che le cose impazziscono.

Potresti chiederti come sia possibile anche senza conoscenze di programmazione. Bene, avendo alcune impostazioni di frame estremamente complesse e vari pulsanti che ti portano a frame specifici a seconda di quello che stava succedendo, ero in grado di creare uno stand-off molto preciso. Durante questo stallo, puoi premere la freccia verso il basso per nasconderti dietro una cassa gigante, premere la freccia su per uscire dalla copertura e cliccare sui nemici mentre sono fuori copertura per sparargli. Per levigare le cose, ho trasformato ogni cassa nella stanza in un pulsante che poteva essere cliccato, il che avrebbe innescato un effetto sonoro e modificato la grafica in una cassa con un foro di proiettile (il foro di proiettile era predeterminato, e non nel punto che hai sparato ).

Più tardi, usando tecniche molto simili, ho persino creato un boss gigante che ha sparato ai missili sullo schermo, e che aveva un punto debole che poteva essere sparato solo quando la sua guardia era giù.

Non andare mai in battaglia senza un'arma

Nel caso non l'avessi ancora realizzato: i miei metodi di cui sopra sono assolutamente ridicoli in ogni modo possibile. Se avessi conosciuto le basi più estreme della programmazione, avrei potuto creare questo gioco molto più velocemente. Inoltre, avrei potuto ridurre le dimensioni del file, poiché non avrei dovuto copiare più fotogrammi per ogni fase di avanzamento del gioco.

Una conoscenza di base degli array mi avrebbe permesso di creare un semplice sistema di inventario, che permettesse all'utente di raccogliere gli oggetti così come li trovavano, e che il gioco potesse sapere quali oggetti erano contenuti in un dato momento. Conoscenza di Se dichiarazioni e booleani mi avrebbero quindi permesso di eseguire controlli su tutte le mie porte, cassettiere, inferriate e così via. Questi due elementi combinati, insieme ad alcuni altri elementi di base, mi avrebbero permesso di programmare correttamente il gioco, permettendomi così di modificare ed espandere come ritenevo opportuno. In ogni caso, ogni volta che aggiungevo un nuovo oggetto all'inizio o al centro del gioco, dovevo apportare modifiche enormi, poiché tutto nel gioco era specifico per frame e scene, e i valori successivi venivano modificati con eventuali aggiunte precedenti.

Non ostacolare mai te stesso attraverso una mancanza di conoscenza

La cosa più preziosa che ho imparato da questo gioco è che non dovresti mai ostacolarti attraverso una mancanza di conoscenza. Se stai cercando di risolvere un problema senza gli strumenti giusti, è meglio che torni indietro dal problema e acquisisci prima gli strumenti giusti.

Se hai punti deboli nelle tue capacità di programmazione, prendi l'abitudine di affrontare un aspetto alla volta e acquisirai lentamente ma sicuramente le conoscenze che ti permetteranno di non commettere errori come quelli che ho fatto.


Mio Vero Primo gioco

Un paio di anni dopo aver creato Omnigosha e averlo pubblicato su Newgrounds, mi sono ritrovato a vivere nella piccola città di Mosca, nell'Idaho. E 'stato qui che ho lavorato in una capanna della pizza per cinque dollari l'ora, e qui che ho deciso che la mia vita aveva bisogno di cambiare. Ero completamente stufo del mio lavoro e nessun senso dell'orientamento nella mia vita. Avevo acquistato in precedenza una tavoletta grafica Wacom per migliorare le mie capacità di animazione, ma l'arte non è mai stata la mia forza, e alla fine ho accettato che la mia animazione non era altro che un hobby. Anche se l'animazione non sembrava essere la mia vocazione, tutto andava bene, perché per la prima volta nella mia vita sapevo cosa fosse: lo sviluppo del gioco.

Sapevo che non avevo le capacità per farlo diventare presto, ma la mia motivazione a lasciare alla fine lavori come quello che avevo nel passato era abbastanza forte da andare avanti. Pochi mesi dopo, ho pubblicato il mio primo vero gioco completamente programmato: Stabika Episode 1: Escape.

Come sono diventato parte del progetto

Come parte del mio viaggio per acquisire le competenze di cui avevo bisogno per diventare uno sviluppatore di giochi, sono andato nell'unico posto che sapevo mi potesse insegnare in quel momento, Newgrounds. È qui che ho trascorso innumerevoli ore nei forum di Flash e ho fatto tutte le domande per principianti che conoscevo. Leggo i tutorial, sfoglio le domande degli altri e prendo nota delle risposte che hanno ricevuto. Mentre quello che stavo imparando non era del tutto formale, o best practice, è stato un enorme passo nella giusta direzione, e niente come la mostruosità delle pratiche che avevo usato in precedenza.

Man mano che il mio apprendimento continuava, diventavo sempre più desideroso di aiutare qualcuno di cui ero capace, poiché questo mi avrebbe dimostrato che stavo davvero imparando, e sarebbe bello per me dare indietro alla comunità che mi insegnava quel poco che sapevo . Un giorno, David Mills ha posto una domanda particolarmente interessante sui forum di Newgrounds sulla creazione di una sequenza temporale simile a God of War e, con mia sorpresa, mi sono effettivamente trovato in grado di rispondere alla sua domanda. Mentre la codifica dietro l'idea era per lo più logica che chiunque poteva capire, è successo che avevo anche acquisito la capacità di programmare quella logica.

Dopo alcune risposte avanti e indietro, mi ha ringraziato molto e ha promesso di darmi credito nel gioco. Pochi giorni dopo, è tornato al forum, mostrando una demo con il codice che gli ho dato e ricevendo feedback. Non molto tempo dopo, era tornato a fare domande su come includere ciò che la gente aveva suggerito, e io ero tornato a rispondergli ancora una volta. Prima che ce ne rendessimo conto, siamo stati associati insieme e stavo creando il mio primo vero gioco.


Se sei interessato a vedere lo scambio iniziale, i post possono essere trovati qui e qui.

Questa è la demo tecnica originale che ho fornito a Mills, come prova del concetto che ero in grado di concludere il lavoro:

(Complimenti a ImageShack per aver ospitato quel SWF in tutti questi anni.)

Stabika Episodio 1: Fuga

Il gioco stesso ha giocato molto simile alle sequenze temporizzate di God of War, come menzionato da Mills nel suo post iniziale. Era più o meno un'animazione con momenti interattivi in ​​cui il tempo rallentava e il giocatore doveva inserire una chiave scelta a caso prima che scappasse il tempo.

Questi momenti erano sempre nei momenti in cui il pericolo era coinvolto, quindi colpire la chiave corretta avrebbe comportato l'animazione continuando in avanti in qualche modo incredibilmente fantastico, mentre colpire la chiave sbagliata si tradurrebbe in una morte cruenta. Il gioco impiegava solo pochi minuti per battere se eri abbastanza bravo, ma la maggior parte dei giocatori dovevano allenarsi più e più volte per ottenere il tempo di reazione e per memorizzare quando le sequenze temporizzate stavano arrivando.

Indipendentemente dalla breve durata, abbiamo aggiunto un checkpoint poco prima della scena finale del boss, al fine di mantenere il gioco piacevole e non eccessivamente punitivo. Per finire il gioco, abbiamo fatto un'ultima sequenza riferendosi a Mortal Kombat: il tempo si sarebbe congelato completamente e il testo "Finish Him" ​​sarebbe stato sparsi sullo schermo. I giocatori dovevano quindi inserire cinque chiavi generate casualmente in fila per far atterrare il colpo finale. Mentre i giocatori non potevano rovinare questa sequenza finale, era un modo piuttosto brutto per terminare il gioco, e la gente sembrava amarla.

Apertura delle porte

Il rilascio di Stabika è stato un enorme passo avanti verso il mio obiettivo di diventare uno sviluppatore di giochi. Ho utilizzato con successo le mie conoscenze di programmazione, ho perfezionato le mie conoscenze e creato una nuova partnership che ha portato a numerosi giochi futuri, che a loro volta mi hanno dato molta più esperienza come sviluppatore.

Anche se forse abbiamo rilasciato Stabika 1 solo per divertimento, l'attenzione e il feedback ricevuti hanno portato alla nostra prima sponsorizzazione con CrazyMonkeyGames, che ci ha aperto a un nuovo mondo di opportunità.

Onestamente non posso dire abbastanza cose positive sul rilascio del mio primo gioco, e ti esorto vivamente a lavorare per raggiungere questo obiettivo se è qualcosa che ti interessa; i risultati potrebbero sorprenderti.


Pensieri di chiusura

Non importa a quale livello di abilità ti trovi attualmente, tutto ciò che serve per fare giochi è la passione.

Come puoi vedere, i miei due giochi variano un po '. Un gioco non richiedeva quasi alcun codice e l'altro era più avanzato, richiedeva un po 'di programmazione ed era molto più lucido. Indipendentemente dalle loro differenze, condividono una cosa in comune: il mio desiderio di creare giochi è ciò che li ha portati alla vita.

Se togli qualcosa di tutto ciò, mi piacerebbe che ti rendessi conto che non importa a quale livello di abilità sei attualmente, tutto ciò che serve per fare giochi è la passione. I giochi semplici possono essere creati senza conoscenze tecniche e giochi più complicati sono proprio di fronte a te - se ti prendi il tempo necessario per apprendere le competenze necessarie. Se creare giochi è qualcosa che vuoi veramente fare, ti prometto che sei capace; devi solo metterti in testa.