Quali sono i pericoli dello sviluppo di giochi autodidattici? [chiuso]


58

Sto per intraprendere un viaggio nello sviluppo del gioco. Seguendo le risposte alla mia ultima domanda, userò C # e XNA.

Tuttavia, non conosco personalmente altri sviluppatori di giochi e non lavoro nel settore, quindi, come tale, sarà autodidatta. L'eccezione a questo è ovviamente la domanda e la lettura di informazioni online / stampate, ma classificherei comunque come autodidatta.

Con ciò, voglio essere preparato per i problemi che potrei incontrare non avendo qualcuno che mi "tiene sotto la loro ala".

Come analogia, quando mi sono autodidatta a suonare la chitarra, ho suonato l'accordo principale in modo tale da rendere più difficile il passaggio a un accordo che ho appreso in seguito.

Se potessi condividere le tue lezioni apprese e consigli su cosa potrebbe andare storto nel mio apprendimento dello sviluppo del gioco, ti sarei grato.

Sono ben consapevole del fatto che commettere errori è la parte più importante dell'apprendimento, ma se ci sono errori per cui posso essere preparato, ne sarei più felice.


Dai un'occhiata, la cosa delle lezioni condivise potrebbe trasformare la domanda in forma aperta e invalidarla, quindi potrebbe chiudersi.
Gustavo Maciel,

È un buon punto. Per tutti i visitatori, ho intenzione di accettare una risposta completa.
Ste

Ste, tieni presente che puoi spostare un segno di spunta su un'altra risposta, se pensi che una nuova sia migliore. Mi scuso con Gustavo, non cercando di costargli la reputazione :) Ma il punto di questi siti, e il voto e il segno di spunta, è quello di evidenziare la migliore risposta a una domanda. Inoltre, sebbene sia bello che tu abbia accettato una risposta, non è necessario accettarne una così in fretta - un'ora dopo la tua domanda postata, è un po 'presto. Di solito aspetto almeno un giorno, forse di più, prima di accettare una risposta. Guarda cosa si presenta.
Ciclope,

@Ciclope - sì, non mi aspettavo che la domanda si dimostrasse così popolare. Esaminerò la prossima settimana. Grazie a tutti per le ottime risposte finora.
Ste

Grazie per tutte le grandi risposte. Ho spostato la risposta accettata a quella con il maggior numero di voti. L'ho fatto per riflettere l'opinione della comunità. Spero che tu capisca @Gustavo
Ste

Risposte:


54

Lo sviluppo del gioco è come l'ingegneria strutturale

Esistono requisiti minimi per la funzionalità. I requisiti minimi non sono eccezionalmente impegnativi e molte persone possono imparare a soddisfarli. Questa è la parte della funzione . È la piccola parte. È qui che arrivano le decisioni su quale linguaggio usare, su quale piattaforma sviluppare o su quali librerie utilizzare.

La parte successiva è la parte grande. La parte del modulo . La forma è ciò che distingue davvero i buoni giochi dai grandi giochi. Questa è la parte che è l' arte dello sviluppo del gioco. Non sto parlando solo delle risorse sensoriali (grafica, suono, ecc.). Sto parlando di creare un'esperienza. Questa è la parte difficile.

La parte della funzione proviene da tutorial, librerie e un po 'di tempo. Chiunque può farlo.

La parte del modulo viene da te. È la passione che ti ha spinto a voler creare giochi in primo luogo. È come raccontare una storia, una storia inventata (o una storia vera che abbellisci, molto). Più racconti la storia, meglio diventa. Nello sviluppo del software lo chiamiamo iterante. La tua storia è il tuo codice. La prima volta che lo dici, non sarà molto bello. Le cose andranno fuori posto, ti renderai conto che questo pezzo dovrebbe andare lì e quello qui. Scoprirai che probabilmente le cose fluiranno meglio se le sistemassi in questo modo o le espandessi su questo bit. Quindi, proprio come una bella storia, la racconterai, misurerai quanto è buona e poi la modificherai. Questo richiede dedizione e questo richiede tempo. Non preoccuparti se la prima cosa che produci non è l'oro. Ho lavorato a lungo e duramente su molte parti del mio gioco solo per strapparle più tardi perché ci ho pensato moltomodo migliore di farlo. Non preoccuparti di questo, fa tutto parte del processo di apprendimento. Impari sempre dai tuoi errori e spesso fare questi errori è ciò che ti porta al modo migliore di fare le cose.

Quindi ciò che dovresti togliere da questo è questo:

  • Gioca spesso a test.
  • Non lasciarti sorprendere dalla funzione in questo momento. Non preoccuparti troppo dell'ottimizzazione, o quale libreria sarà la migliore a lungo termine. Ottieni solo la funzionalità minima, quindi esegui l'iterazione.
  • Una volta terminata la funzione, congratulati con te stesso, sei una piccola parte del processo.
  • Indossa una protezione solare
  • Questa è un'abilità che richiede tempo per svilupparsi, sai che dall'apprendimento di uno strumento musicale, questo non è diverso, migliorerai.
  • Ricorda per cosa ci sei, la gioia di creare! Se le cose diventano noiose, passa a qualcos'altro (prova alcuni inceppamenti di gioco per interrompere il tempo di sviluppo). Ma non smettere solo perché è difficile.
  • La comunità di sviluppo di giochi qui su SE è fantastica. Qui troverai tutto ciò di cui hai bisogno. Puoi pubblicare una domanda o saltare in chat e discutere le tue idee.

Internet è pieno di piume di informazioni nei post di blog, tutorial e comunità come questa. Collettivamente, direi che è un'ala abbastanza buona per essere sotto. Fondamentalmente i pericoli non sono gravi. Potresti fare le cose nel modo "sbagliato" o difficile per un po ', ma alla fine imparerai. Sembra che tu abbia molta esperienza di programmazione, quindi penso che riprenderai rapidamente la parte della funzione. Gli errori commessi nello sviluppo del gioco e nello sviluppo "regolare" si sovrappongono molto. La tua esperienza ti aiuterà a evitare molti dei problemi comuni che riguardano i nuovi sviluppatori di giochi. Penso che farai bene. In bocca al lupo.


6
+1 per la bellezza, tutto ciò che manca sul mio post si trova qui: D
Gustavo Maciel

1
"Indossa una protezione solare" Cosa intendi con questo? un linguaggio "Indossare la protezione solare"?
Lukasz Madon,

4
È uno scherzo basato su un articolo "Indossare la protezione solare" di Mary Schmich . Fondamentalmente, "I benefici a lungo termine della protezione solare sono stati dimostrati dagli scienziati, mentre il resto dei miei consigli non ha basi più affidabili della mia esperienza tortuosa". Forse più popolarmente conosciuto sotto forma di questa canzone .
MichaelHouse

4
Bene, la protezione solare non è poi così buona 2 . Rimani in casa e continua a programmare.
Bobobobo,

28

Sì, non avere qualcuno che è stato lì prima di dirti cosa fare, come riparare, ecc. Ecc. Potrebbe essere la cosa peggiore che passi. Ma niente paure! Puoi ancora leggere MOLTI blog di persone che sono state lì, condividono le loro esperienze nel settore, come hanno ottenuto il successo, come un gioco precedente è fallito e perché, ecc. Ecc.

Buoni esempi sono:

E molto altro!

Le mie ultime parole sono: non temere. Anch'io sono autodidatta, 4 anni mi hanno fatto conoscere gli sviluppatori di giochi, arrivano molte barriere, ma niente che non puoi risolvere con google e leggere alcuni testi. Buona fortuna per il tuo viaggio :)


3
Per aggiungere a questo, anche i professionisti hanno spesso questo problema. Finché puoi imparare e Google, puoi capire praticamente qualsiasi cosa.
ashes999,

Strano che colleghi 2Dboy. Per quanto ne so, hanno fatto poche cose, ma i porti di World of Goo su tutte le piattaforme che siano mai esistite negli ultimi due anni. È passato molto tempo da quando ho letto qualcosa di simile a Gamedev.
TravisG,

@TravisG Il processo di releasegioco non è solo legato allo sviluppo dopo tutto. È comunque una buona lettura. Ho pubblicato i collegamenti più come riferimento, per non seguire il blog. Se torni in archivio, ci sono alcuni esempi di prototipi e tutto ciò che li ha aiutati con il mondo di goo e altri prototipi "meno piccoli": D
Gustavo Maciel,

18

Questo atteggiamento Questo atteggiamento "non toccarlo, finché non sai come farlo perfettamente". Questo ti terrà davvero indietro.

Vedi questo atteggiamento tra gli sviluppatori principianti di tutti i tipi, non solo i giochi. Anche i siti web. Ehi, un sito Web è un database con un front-end HTML con alcuni javascript. Apprendi le tecnologie come puoi, metti insieme il tuo primo sito. Non sarà fantastico, ma dopo aver fatto le cose in modo non ottimale non è un grosso problema !! Se lo fai "la lunga strada" la prima volta, puoi sempre farlo meglio la seconda volta. Il punto è che non c'è pericolo. Tranne questo atteggiamento, forse. Questo atteggiamento è ciò che ti impedirà di fare qualsiasi cosa, perché ti manterrai sempre incerto e dirai "Non so come farlo ancora".

L'atteggiamento che esiste un "modo giusto" per fare le cose. Non c'è. Le cose sono esattamente come sembrano. Devi mettere i pixel sullo schermo ed emettere suoni quando le cose accadono.


3
Così vero. Questo mi trattiene ancora molto. Anche se in qualche modo non sono d'accordo, in termini ci sono alcuni "modi giusti" da fare e molti più "modi sbagliati", ma il perfezionismo e la paralisi dell'analisi sono certamente un problema. Bella risposta!
Petr Abdulin,

6

A seconda che tu voglia o meno rendere questa tua professione in seguito (suppongo che ci stai pensando e questo non è solo un hobby), ecco cosa ho trovato estremamente efficace:

  1. Inizia in piccolo

È stato detto prima, ma lo dirò di nuovo: inizia con piccoli pezzi, familiarizza con un motore, un framework, uno strumento o un programma. Una volta che hai capito le basi -> vai più grande.

  1. Impara TUTTO

Questo potrebbe sembrare un po 'estremo, ma quello che voglio dire è imparare il più possibile su OGNI aspetto dello sviluppo del gioco, indipendentemente dal fatto che tu sia un programmatore, un artista o un designer. Conoscere la pipeline è la chiave per costruire le cose nel modo più efficiente. Se stai implementando un'arma -> progettala, concepiscila, modellala, implementala, codificala! Ovviamente non è necessario essere un concept artist di grado A, un designer e un nerd di Pipeline, ma è necessario conoscere tutti gli strumenti del processo e comprendere ogni fase della creazione. Inoltre, dai un'occhiata ai siti Web di gioco per notizie e aggiornamenti nel settore: gamasutra.com, kotaku ecc. Hanno tutti ottimi articoli su argomenti sia commerciali che tecnici. Non limitarti a un solo campo di sviluppo: immergiti in TUTTE le conoscenze che puoi ottenere :)

  1. Fallire spesso, fallire duro.

Fai schifo per quello che stai facendo. All'inizio. È sempre così (credimi, lo so.: D), ma migliorerà solo se continui ad andare avanti e non smetti MAI di cercare modi per migliorare il tuo lavoro. Internet è un'ottima fonte di tutorial, riferimenti e aiuto. Non sarai mai veramente bloccato, quindi approfondisci le idee più folli, fallisci, impara dai tuoi errori e diventa più tosto con quel processo.

  1. Parlare alle persone!

Mentre Internet è un'ottima fonte, ottenere feedback faccia a faccia è qualcosa che dovrai affrontare MOLTO sul lavoro. Quindi è importante anche migliorare le tue abilità trasversali. Se non hai ancora un mentore o, in generale, non conosci troppe persone che lavorano nel settore, allora dovresti cercare nella tua zona incontri per sviluppatori indipendenti, andare alle convention e controllare altri eventi in cui puoi iniziare a costruire una rete personale di conoscenze e contatti. Aiuta anche a costruire qualcosa con altre persone - autodidatta è fantastico, ma lo sviluppo del gioco è un gioco basato su team, quindi controlla i forum per il progetto hobby - ad esempio il Forum epico per i progetti UDK, i forum Unity o persino i forum CryEngine -tutti e tre questi motori sono ampiamente diffusi, c'è un camion carico di persone di talento che lavorano su progetti secondari lì e loro "

Penso che sia praticamente tutto il consiglio che posso dare. Spero che questo ti abbia aiutato in qualche modo :)


Tutti i tuoi punti sono così importanti, sono al primo posto in questa lista! :)
bobobobo,

3

Non ho alcuna esperienza C # e XNA, ma penso che non mi sbaglierà nella seguente dichiarazione:

Va benissimo imparare la programmazione senza un insegnante. Se il tuo codice funziona *, non importa davvero come è stato codificato. Bene, lo fa per la programmazione collaborativa, ma poi non codificherai più da solo, vero? Potrebbe anche rendere il codice meno leggibile per te in futuro, rendendo difficile l'utilizzo di vecchi componenti o il debug di nuovi errori, ma a lungo termine tutti i tuoi errori saranno i tuoi punti di forza. La cosa più difficile nell'apprendimento della progettazione di OOP e MVC è capire perché dovrei fare "questo" in "quel modo". Se hai già esperienza nella creazione di programmi dannosi, conoscerai i punti di forza dei modelli e li utilizzerai a tuo vantaggio. Se hai sempre creato buoni programmi seguendo i modelli che qualcuno ti ha insegnato, allora continuerai a creare buoni programmi (nel senso di un codice valido), ma invece di trarre vantaggio dagli schemi ne sarai limitato, poiché non li capirai abbastanza da apportare utili modifiche. Alla fine, è molto importante che pratichi, non come, quindi in entrambi i casi prima o poi otterrai un'esperienza abbastanza simile.

* una cosa è importante però! In caso di sicurezza, dovresti chiedere a qualcuno esperto se il tuo codice è stato eseguito correttamente, poiché le falle di sicurezza non generano avvisi di errore.


3

In qualche modo questa è un'ottima domanda! :-)

Ho iniziato la mia attività su Gamedev non molto tempo fa, e sarà la seconda volta, quindi posso condividere i miei pensieri. In realtà hai ragione sul fatto che è una buona cosa avere un mentore. Questo mentore sarà Internet. Quindi più informazioni vengono condivise su Internet, più facile sarà imparare per te. Ecco perché XNA / C # è una scelta eccellente per cominciare. Ci sono molti indie gamingev amatoriali e professionisti che condividono articoli e nel web. Altre cose da menzionare:

  1. Vai open source! Codeplex, GitHub, Google.Code, Bitbucket. Ci sono MOLTE cose preziose lì.
  2. Vai alla community! Sei qui ed è una buona cosa. Ma c'è anche una grande comunità Microsoft XNA con alcune buone cose ufficiali . Codeproject è anche una buona risorsa (tuttavia l'attività di gamedev è piuttosto bassa lì).
  3. Probabilmente dovrai leggere / guardare molto. Già menzionato prima. Lo sviluppo del gioco non è solo codifica. Anche il design del gioco è importante. L'entusiasmo è importante.
  4. Come al solito, non provare a mordere troppo in una volta, scrivere una tua copia di tetris o breakout è in realtà una buona idea.
  5. All'inizio potrebbe essere difficile, lo sviluppo del gioco non è solo difficile, ma è anche molto diverso dalle app "enterprise". Ci sono molti nuovi aspetti, immagini, suoni, ecc. Più vai avanti, più diventa facile (come al solito).
  6. Scrivere un blog. Esprimi il tuo processo di sviluppo (in questo processo troverai le risposte alle tue domande), memorizza i collegamenti con i commenti ad articoli preziosi.
  7. Non pensare che il tuo codice sia la cosa peggiore che tu abbia mai visto. Il codice di gioco è più difficile da controllare, è sempre in qualche modo un po 'più sporco del cui grazioso codice "aziendale". Ma ti assicuro che lì ho visto alcune terribili creazioni (in termini di qualità del codice sorgente e organizzazione del gioco) che erano giochi indie di successo. Quindi, non essere duro con te stesso, esp. all'inizio.

1

Questo vale per qualsiasi disciplina relativa a un settore creativo:

Il pericolo più grande è cercare di costruire qualcosa di "troppo grande" o "epico" fuori dal cancello.

Ad esempio, se inizi a fare musica non inizieresti a provare a creare una sinfonia di 2 ore e 50 pezzi.

Nella progettazione dei livelli questo si manifesta come il tentativo di creare la "mappa più grande di sempre" o l'utilizzo del sistema di gioco per costruire la cosa più grande e complessa che il motore di gioco è in grado di gestire. Nella programmazione questo può cadere nel "fare da solo un intero gioco" a partire da zero codice sorgente. Hai davvero bisogno di molta esperienza e disciplina per iniziare con zero source, e anche allora è incredibilmente difficile e prendere decisioni di progettazione su tutto è difficile per tutto il tempo in cui stai elaborando il design di tutto. Anche un gioco semplicistico richiede una quantità abbastanza grande di programmazione in un moderno sistema operativo e linguaggio al giorno d'oggi. Inoltre, se inizi con il codice di qualcun altro, puoi imparare cosa funziona e cosa non funziona così bene, quindi lavorare con il maggior numero possibile di motori è un grande vantaggio.

Quindi all'inizio consiglierei qualcosa come i seguenti piani:

  • Level Design: costruisci una piccola stanza, costruisci mezzo edificio, costruisci un edificio completo ecc
  • Arte: crea un cappello per TF2 o qualcosa di simile, o sostituisci alcune trame per Skyrim o qualche altra attività di dimensioni del morso per iniziare, prima di entrare in maglie scheletriche o morph e capire come animarle o dipingerle bene con lo zbrush.
  • Programmazione: prendi un motore di gioco modificabile o opensource esistente e modificane una parte (come un'arma), quindi crea una nuova arma. Se alla fine non ti piace il codice di gioco, potresti iniziare a hackerare il motore grafico.

La cosa migliore da fare sarebbe prendere un motore finito esistente (uno modificabile o uno open source) e iniziare a hackerarlo, e farlo alcune volte su più motori diversi fino a trovare quello che ti piace.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.