Da dove iniziare con lo sviluppo del gioco? [chiuso]


65

L'ho chiesto prima in questo thread su stackoverflow.com. Uno dei primi commenti mi ha reindirizzato qui su gamedev.stackexchange.com, quindi sto ripubblicando qui.

Cercando domande correlate ho trovato una serie di domande molto specifiche, ma temo che i dettagli si siano rivelati inutili per me e dopo 4 ore su Google non sono più vicino di quanto ho iniziato, quindi ho sentito che raggiungere una comunità potrebbe essere In ordine.

Primo, il mio obiettivo: non ho mai fatto una partita prima, anche se ho confuso la possibilità più volte. Ho deciso di sedermi finalmente e iniziare a imparare a programmare i giochi, utilizzare i motori di gioco, ecc. Tutto in modo che un giorno (si spera presto) sarò in grado di realizzare giochi funzionali (anche se semplici). Posso iniziare ad aggiungere complessità più tardi, per ora sarei felice di avere una telecamera controllata da tastiera che si muove in un mondo 3D senza alcuna interazione oltre a ciò.

Il mio background: ho lavorato in diversi linguaggi di programmazione che vanno da PHP a C ++, da Java ad ASM. Non ho paura delle sfide che derivano dall'apprendimento della nuova sintassi o delle limitazioni inerenti a una nuova lingua. Tutta la mia esperienza di programmazione passata, tuttavia, è stata strettamente non grafica e di solito con un'interazione scarsa o estremamente semplice durante l'esecuzione. Ho creato algoritmi estesi e brillanti per risolvere problemi logici e matematici, nonché problemi grafici. Tuttavia, in ogni caso l'input è stato definito in un file, passato da un modulo HTML o digitato nella console. L'interazione in tempo reale con l'utente è qualcosa con cui non ho esperienza.

La mia domanda: da dove dovrei iniziare a provare a creare giochi? Meglio ancora: da dove dovrei iniziare a provare a creare un ambiente 3D navigabile da tastiera? Nella ricerca online ho trovato diverse risorse collegate a motori di gioco, motori grafici e motori fisici. Ecco un breve riassunto delle mie esperienze con alcuni motori che ho provato:

Unreal SDK: i video tutorial presumono che tu abbia già una conoscenza approfondita della modellazione 3D, dei motori grafici, delle animazioni, ecc. La pagina "Guida introduttiva" non offre alcuna spiegazione formale dello sviluppo del gioco, ma spiega come Unreal può semplificare i processi che assume hai già familiarità con. Dopo aver scaricato l'SDK e averlo avviato per vedere se gli strumenti fossero intuitivi come hanno affermato, sono stato accolto con circa 60 pulsanti e un vuoto vuoto per la mia modellazione 3D. Facendo clic su "aggiungi volume" (per tentare di aggiungere un cubo di base) mi sono trovato con un menu di 30 opzioni. Nel panico, ho chiuso l'editor.

Crystal Space: il sito web sembrava piuttosto informativo, spiegando che Crystal Space era solo per la grafica e che il software associato, CEL, forniva la logica dell'entità per creare giochi. È stato fornito un gioco demo, che è stato creato utilizzando "CELStart", il loro semplice strumento per le persone che non hanno alcuna conoscenza della programmazione del gioco. Ho lanciato il gioco per vedere cosa non vedo l'ora di creare. Si è bloccato più volte, i menu erano buggy, c'erano migliaia di problemi grafici, i nemici non rispondevano ai danni e quando ho chiuso il gioco si è bloccato. Mi sono arreso su quel motore.

IrrLicht: il tutorial presuppone che io abbia Visual Studio 6.0 (ho Visual Studio 2010). Seguendo le loro istruzioni non sono stato in grado di importare correttamente la libreria in Visual Studio e non sono stato in grado di chiamare nessuna delle funzioni che hanno continuato a utilizzare. Copia manuale dei file di intestazione, dei file di classe e delle DLL nella cartella del mio progetto: la compilazione del progetto non è riuscita correttamente.

Chiaramente non sono partito bene e vado in cerchio. Qualcuno può indicarmi la giusta direzione? Dovrei iniziare scaricando un programma come Blender e imparando la modellazione 3D, o dovrei imparare come usare un motore grafico? Dovrei cercare un motore di gioco all-inclusive o è meglio provare a codificare la mia logica di gioco? Se qualcuno ha effettivamente creato i propri giochi, preferirei sapere come hanno iniziato.

Inoltre, prendere lezioni nella mia scuola non è un'opzione. Nulla è offerto.


3
+1 Buona conoscenza della programmazione alla ricerca di esigenze specifiche.
Will Marcouiller

6
+1, questa è una domanda ben ponderata e studiata su come iniziare lo sviluppo del gioco. Inoltre, provo dolore per l'SDK di Unreal.
James

Consiglio di dare un'occhiata ai tutorial di Raven67854 per l'UDK. Sono elencati sotto i video, alla gente sembra piacere.
Jesse Dorsey

Il mio consiglio è di iniziare a fare qualcosa. Di solito le persone che hanno posto questo tipo di domande vogliono aprirsi la strada in modo lineare (perché una volta ho posto lo stesso tipo di domanda). Tuttavia, dalla mia esperienza passata, la curva di apprendimento dello sviluppo del gioco è una curva non lineare. Di solito passo da un problema all'altro: se mi sono bloccato, allora chiedo / cerco una risposta. Pertanto, basta provare cose, imparare da prove ed errori. Di solito inizio con i tutorial. Tuttavia, questi tutorial non hanno mai fornito dettagli sufficienti, quindi devo chiedere / cercare / sperimentare le risposte.
user1542

Risposte:


38

Ho fatto una domanda del genere quando mi sono iscritto a GD. Ecco alcuni link che potrebbero interessarti che spero ti guideranno verso il tuo obiettivo.

In breve, vorrei andare XNA Game Studioa prendere confidenza con lo sviluppo del gioco. Quindi, andare avanti verso ciò che desideri ottenere come conoscenza / tecnologia. XNAmi ha insegnato a lavorare con gli sprite e mi ha permesso di applicare alcune delle mie conoscenze fin dall'inizio della mia curva di apprendimento in modo da essere stato in grado di capire abbastanza velocemente da capire come dovrei progettare il mio gioco per usare le classi mentre lavoro con iniezione di dipendenza e così via. Quindi, non ti sto più aspettando.

  1. Dove iniziare a scrivere giochi, tutorial o simili?
  2. Quali sono i fondamenti dello sviluppo del gioco? (Domanda interessante, IMHO)
  3. Separazione della fisica e della logica di gioco dal codice dell'interfaccia utente
  4. Spostare il mio sprite in XNA usando le classi

Perché XNA lo chiederai? Semplicemente a causa del tuo background Java. XNA usa C # che è simile a Java in diversi modi, ed è anche un semplice framework da usare che estrae il Game Loop e roba così che tu possa concentrarti su ciò che è importante.

Spero davvero che questo ti faccia iniziare. =)


1
Ci scusiamo per la risposta ritardata =) Stavo leggendo ciascuno dei post a cui mi hai reindirizzato (Inoltre, uno dei post collegati a una pagina MSDN su come creare giochi 3D con XNA, che mi interessava poiché la pagina del motore di gioco XNA inizialmente sembrava simile era strettamente per i giochi 2D). Penso sicuramente che questo sia un buon punto di partenza. Grazie. Stasera ho intenzione di scaricare XNA e andare a letto, quindi spero domani di provare a fare Pong o qualcosa del genere.
Stevendesu,

@Steven: nessun problema! Ho pubblicato questa risposta per aiutare uno sviluppatore entusiasta come me che ha chiesto una guida! Spero davvero che ti piacerà farlo! La mia prima e ancora sfida è quella di sviluppare un semplice gioco simile ad Arkanoid in cui devo lavorare per il rilevamento delle collisioni dopo aver scritto le mie classi una per ciascuna la nave spaziale, la sfera di energia e il mattone. Quindi, la mia Game1classe viene utilizzata come controller di gioco, che a mio avviso è la classe che controllerà e dirà alle altre classi cosa fare, ecc. Spiego un po 'questo aspetto il link 4 e 5.
Will Marcouiller

Potrei fare presto un'altra domanda (domani) xx XNA Game Studio 4.0 scaricato, installato ... E non c'erano istruzioni ovvie su cosa fare dopo. L'intero sito Web ufficiale di XNA dice semplicemente "crea giochi per Windows Phone 7" dappertutto, niente di tutto ciò che riguarda la creazione di giochi per Windows. Lo capirò la mattina o chiederò qui se non posso. Bed time =)
stevendesu

1
Crea un nuovo progetto usando Visual Studio, quindi scegli XNA da qualche parte per scegliere il tipo di progetto. Quindi, inizia a creare giochi per Windows! Il modello del progetto di gioco XNA (nuovo progetto) verrà compilato ed eseguito su Windows in modo nativo. XNA è la libreria Microsoft per lo sviluppo di giochi, in quanto tale, è possibile sviluppare giochi per Windows e XBox.
Will Marcouiller

1
Per il futuro, vale la pena sottolineare che XNA è sostanzialmente deprecato, ma Monogame sopravvive. Per la maggior parte, lo stesso codice funzionerà.
Magus,

8

Potresti provare Unity 3D , perché

  • può essere programmato in JavaScript, C # o Boo
  • ha un buon tutorial qui
  • la sua curva di apprendimento non è così ripida
  • c'è Unity Answers , dove trovi ancora più risorse.

(Dichiarazione di non responsabilità: non sono in alcun modo imparentata con i creatori di Unity, la uso da sola e l'ho trovata un ottimo strumento per apprendere le basi).

Ma sì - ti sei preparato per un bel po 'di compito. Ora sono nel mio sesto semestre a studiare il design del gioco e ancora non mi sento come se avessi graffiato più della superficie. Non sorprende che l'industria abbia specialisti praticamente per ogni aspetto del processo di creazione di un gioco.

Modifica: c'è stato un commento su Unity visto come non un motore di gioco "corretto", che potrebbe essere frainteso come me lo dico, generando quindi i commenti qui sotto. Al contrario, non intendevo suggerire che Unity non potesse essere utilizzato per progettare correttamente il gioco. Lo uso da solo e mi piace. ;)


3
Cosa c'è di sbagliato?
lathomas64

Sono anche curioso.
Jesse Dorsey

Forse il fatto che (come Flash o Java) richiede l'esecuzione di un programma contenitore, quindi lo considera "improprio" in quanto non può essere semplicemente compilato e distribuito a un vasto pubblico senza problemi? Ad ogni modo, sto esaminando XNA in questo momento. Potrei controllare Unity3D se XNA si rivela troppo difficile.
Stevendesu,

Bene, ho sentito la gente dire che per un design del gioco "corretto", Unity non deve essere preso sul serio. Come detto prima, lo sto usando da solo e ne sono abbastanza contento. In alcuni casi, Unity rende le cose semplicemente sospettosamente facili, immagino ...;) Mi stavo solo proteggendo, perché non sapevo come le persone avrebbero reagito qui citando Unity. Forse questo ha causato il downvote?
Xeophin

@steven_desu: In realtà, hai solo bisogno di un programma contenitore per il webplayer. I giochi compilati per essere eseguiti su Windows o Mac sono completamente autonomi.
Xeophin

2

Bene, se hai avuto problemi con irrlicht, dovresti provare anche Ogre3D; non è più facile, ma potrebbe funzionare meglio se ci metti del tempo. La cosa importante che devi capire sono cos'è un framelistener, come ottenere il tempo dall'ultima visualizzazione del frame, ed è praticamente l'unica cosa che devi capire se vuoi realizzare questa applicazione di cui stai parlando.

Ho anche avuto delle difficoltà con irrlicht, i tutorial non sono molto aggiornati, ma avresti dovuto provare i campioni!

Ho anche corso molto in cerchio all'inizio, giocando con panda3d e altre cose come pygame ecc. Cerca di concentrarti su qualche idea di gioco e implementare una cosa alla volta.

E prova a ricordare un po 'di matematica matric, avrà qualche utilità in 3D!


2

Di recente ho iniziato la tua stessa ricerca. Mi sono imbattuto in un puro motore Java chiamato jMonkeyEngine che mi ha guidato attraverso una fantastica serie di tutorial. Non so se spieghi davvero il design del gioco in larga misura, ma ti fa iniziare dal punto di vista grafico.

Suggerisce / collega a strumenti che è possibile utilizzare per la modellazione e ha esempi ben descritti che possono essere copiati e incollati per guidare l'utente a mettere una casella sullo schermo per configurare il motore fisico.

Sicuramente merita una lettura - Ho avuto una buona idea di cosa stavo facendo dopo solo diverse ore.


I tutorial meritano una lettura anche se non si utilizza il motore. Ci sono anche dei bei tutorial su alcuni calcoli 3D.
DMan,

2

Dovresti davvero provare Flixel http://flixel.org/ Ho realizzato il mio primo gioco "demo" usando flixel. Bella comunità, bei tutorial.

Non è 3D ma ha molte belle funzioni che rendono facili i tuoi primi passi nell'ambiente di programmazione del gioco.

In modo che: Visualizza migliaia di oggetti in movimento
Collisioni di base tra oggetti
Raggruppa gli oggetti per semplicità
Genera ed
emetti facilmente particelle Crea livelli di gioco usando le tessere
Visualizzazione testo, salva giochi, scorrimento
Input mouse e tastiera
Utilità matematica e colore

Ed è gratuito per uso commerciale, il che è fantastico.


1

Se non hai mai lavorato con la grafica, prima di iniziare basta imparare open gl o direct x. Ho programmato il mio primo gioco in quel modo. I motori della nostra azienda sono integrati e la maggior parte dei sistemi supporta open gl in qualche modo. Ho imparato durante il lavoro guardando il codice scritto prima di iniziare a lavorare. Potresti dare un'occhiata ad alcuni progetti open source per vedere come è impostata una struttura di gioco e iniziare a modificarli fino a quando non ti senti a tuo agio nell'avviare le tue cose. Suggerisco anche "Codifica di gioco completa" come ottimo riferimento a tutti i pezzetti di programmazione di gioco che non ti rendi conto che ci sono, come la corretta struttura dei file e la gestione delle risorse.


1

Prova Source Engine . È facile sviluppare giochi su di esso e puoi ottenere la piattaforma di distribuzione (Steam) e vendere il tuo gioco gratuitamente se firmi un accordo con Valve Corportaion.


1

Consiglierei di iniziare con i giochi in flash, dato che hai davvero tutto il necessario in un pacchetto per creare giochi semplici. Ci sono tonnellate di blog con procedure dettagliate, ad esempio di Emanuele Feronato . Ha persino pubblicato un libro con circa 10 giochi completi.

Sto usando FlashDevelop, che è sufficiente per lo sviluppo.

"Creazione di un gioco Flash di asteroidi" di Chris Moeller è un esempio eccellente, con un approccio passo-passo completo che utilizza lo sviluppo di flash.

Per i giochi basati su Tile, c'è un eccellente tutorial su Ironcoding .

Forte di tutto ciò, la mia raccomandazione è quella di trovare un posto dove c'è una sfida ai videogiochi, con una comunità di persone che costruiscono giochi. Costruisci un videogioco al mese, concentrandoti su qualcosa di piccolo che puoi finire, lucidare e presentare prima di passare al tuo prossimo progetto. Sto partecipando a una sfida mensile di videogiochi qui .

Tienilo piccolo in modo da poterlo finire e rilasciarlo.

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.