2009-11-27 15 views
6

quale linguaggio/lingue di programmazione usano per produrre giochi lik Dragon Age Origins di Bioware e alcuni altri giochi 3-d come Call of Duty?Programmazione 3-d del gioco

Se mi piacerebbe fare la programmazione in 3D, da dove comincio? Ci sono anche semplici tutorial per questo? Mi piacerebbe fare una programmazione di gioco 3-d per giochi per PC :)

+8

Basta essere avvisati che quei giochi sono prodotti da un team dedicato di professionisti per un periodo di 1-2 anni ciascuno, quindi è improbabile che tu possa fare qualcosa di simile. Non impossibile, però, quindi non mollare mai! – RCIX

+5

@RCIX: dovresti riformulare quello: "è dubbio che sarai in grado di creare qualcosa di simile DA TE". Giochi come Diablo o mod come Counter-Strike sono stati creati da gruppi di persone altamente motivati. Se hai un po 'di persone con la stessa mentalità che lavorano su qualcosa, sei (secondo me) più propenso a fare qualcosa. Puoi ancora fare qualcosa di fantastico lavorando da solo, ma penso che sia più divertente lavorare con gli altri! – Pwninstein

+4

RCIX e Pwninstein fanno punti eccellenti. Call of Duty: Modern Warfare 2 ha coinvolto oltre un centinaio di persone in quasi 2 anni e hanno iniziato con il già funzionante motore Modern Warfare. Dragon Age era in fase di sviluppo dal 2004. Tenetelo presente quando iniziate e non paragonatevi a loro, poiché persino fare un clone 2D di Tetris è un risultato degno. – Drakonite

risposta

6

Non voglio essere scoraggiante, ma non voglio mentire neanche io. Creare anche il più semplice gioco 2D è un'impresa importante. Qui ci sono alcune cose che probabilmente dovrete imparare, se avete intenzione di codificare un gioco da soli:

  • Concetti generali e le tecniche utilizzate in computer grafica.
  • Programmazione di rete (se applicabile)
  • Teoria della programmazione audio e del segnale digitale.
  • Algebra lineare, rami trigonometrici e geometrici in matematica
  • concetti AI come logica fuzzy, macchine a stati finiti o reti neurali.

Per non parlare del bisogno di un solido background in programmazione. La maggior parte degli sviluppatori di giochi più grandi usano C++, che è una scelta decente quando le prestazioni sono essenziali. Ma una taglia non va bene per tutti. Ti consiglio di guardare C++, Python e Java e capire quale ti piace usare.

Ora, questo potrebbe venire come una delusione, ma deve essere detto. Se hai appena iniziato con la programmazione, non realizzerai un gioco 3D per molto tempo. Ho imparato C++ nel 2002 e ancora imparo nuovi modi di usare il linguaggio di programmazione. Esistono molti libri con il nome Insegna te stesso al linguaggio di programmazione X in Y settimane. Non credere alla menzogna. Non c'è modo in cui si possa imparare qualcosa di così complesso in quel periodo. Quello che sto cercando di dire è, non avere fretta! La pazienza è tutto, e non esiste un pranzo gratis.

E quando finalmente hai le conoscenze per fare un gioco, inizia semplice. Anche la codifica di un clone Nethack che utilizza la grafica ascii art ti offre una nuova esperienza che puoi estendere. E i tuoi primi giochi dovrebbero essere in 2D. Lavorare in due dimensioni è molto più semplice e molti aspetti matematici si estendono piacevolmente a tre dimensioni quando si è pronti ad avanzare ulteriormente.

6

C++ è un inizio solido.

Game Institute ha corsi decenti (a pagamento). Questo non è affatto banale. Inizia con le basi (programmazione orientata agli oggetti, animazione 3d, threading, ecc.) E otterrai da qualche parte.

Ricordarsi di divertirsi. Rende l'apprendimento più facile.

+6

C++ non è il modo migliore per iniziare da zero con la grafica. Suggerirei un linguaggio gestito e poi andare in C++. Sì, sono d'accordo, il C++ darà la velocità necessaria, ma non è il modo più semplice per iniziare. – monksy

+1

Non sono d'accordo. C++ è davvero un inizio molto solido se vuoi imparare come codificare. L'OP no, vuole creare un gioco. Immagini e suoni abbastanza commoventi. L'interesse per la programmazione è solo un effetto collaterale, perché questo è il modo in cui i giochi vengono creati. Ciò di cui l'OP ha bisogno è qualcosa di rapido e semplice per aumentare la sua fiducia. Dopo il suo primo gioco in un linguaggio "semplice e gestito", può scegliere di ricrearlo "per davvero". – Mizipzor

+0

steven e mizipzor fanno punti eccellenti entrambi, anche in disaccordo. Il C++ è un posto difficile da cominciare, ma è il nucleo. Il rapporto facilità/potenza non migliorerà con altre lingue, IMHO. Se Ygam si dà da fare per creare il suo primo "Hello World", leggendo un primo carattere inserito dalla console, facendo un primo clic del pulsante fai qualcosa, c'è ancora speranza per lui! – MPelletier

6

La maggior parte dei giochi principali sono scritti in C++. Questo non significa che devi usare C++. Per i giochi indy puoi anche prendere in considerazione il C# con XNA se ti è più familiare (o vuoi riprodurre le tue eventuali creazioni sulla tua Xbox 360 relativamente facilmente). XNA ha anche il vantaggio di essere libero.

GarageGames fa anche una serie relativamente rispettata di motori di gioco (che non sono gratuiti, ma sono molto convenienti rispetto alla maggior parte), tra cui uno che aggiunge le funzionalità standard di XNA in modo da non dover scrivere tutto da zero.

Il consiglio di MPelletier è buono, però. Lo sviluppo del gioco è molto complesso e anche un semplice gioco è un'impresa enorme. Prendi in mano le basi per prima cosa e ti suggerirei vivamente di iniziare con i giochi 2-D.

+1

Forse sto fraintendendo, ma anche C++ è gratuito. – GManNickG

2

C++ è la lingua standard, ma nessun progetto di grandi dimensioni utilizza solo una lingua. Il personale senior utilizzerà l'assembly in alcuni punti, i programmatori di grafica useranno spesso qualsiasi linguaggio shader appropriato per il sistema. Chiunque stia lavorando su strumenti o sul sistema di generazione utilizzerà in genere linguaggi di scripting come Python, Perl, Bash/Batch scripting o altri. In genere i programmatori di giochi utilizzano un linguaggio di scripting in game che può variare da standard come Lua, Python o UnrealScript, ai linguaggi di scripting in house creati appositamente per quel motore.

Game Institute - Ho sentimenti contrastanti su questo posto ... Offrono un curriculum specializzato che non riesci a trovare altrove; tuttavia un amico mi ha mostrato alcuni test da questo posto che avevano risposte che erano nel migliore dei casi obsolete o, nel peggiore dei casi, sbagliate. Non vorrei suggerire contro di loro, ma essere di mentalità aperta in seguito.

Gamedev.net - IL sito Web di programmazione del gioco. Grande comunità, tonnellate di articoli. Hanno alcuni ottimi post sui forum su come iniziare. Anche come professionista continuo a visitare questo sito.

+0

Gamedev ha ottimi articoli sul nitty grintoso. – gath

0

Per sviluppare questi tipi di giochi sono necessari linguaggi object oriented con librerie grafiche potenti.

Quei giochi può essere fatto con:

  1. C++: DirectX (con VC++), OpenGL, SDL
  2. C#: DirectX, OpenGL C# binding (non voglio raccomandare questo)
  3. Java: Java3D (che ha attacchi a OpenGL), JOGL (Java OpenGL)

Se siete interessati a conoscere la grafica 3D e C++ prendere a look at this.

2

Se si vuole andare via gestito, provare il XNA Game Studio da Microsoft. Penso che sia un buon punto di partenza, e potresti non scoraggiarti (come ho) con alcune delle tecnologie più potenti e complicate, come la pura programmazione DirectX o OpenGL con C++/WIN32. Gran parte di quella roba viene sottratta e puoi concentrarti sulla creazione di qualcosa. Diamine, potresti persino creare qualcosa che può finire su Xbox Live. È libero di iniziare a svilupparsi e ci sono sicuramente molte risorse disponibili per iniziare.

2

Dai un'occhiata allo irrlicht. È un ottimo motore di gioco, è facile da usare e soprattutto gratuito. Il motore è in C++ ma ricordo di aver visto anche un wrapper .net.

Probabilmente non è il motore più potente di quelli utilizzati da Call of Duty, ecc. Ma assumendo che si stia avviando solo lo sviluppo del gioco, non sarà mai necessario disporre di tali funzionalità avanzate. Puoi costruire giochi molto decenti usando irrlicht. Il sito ha anche pochi tutorial e community attiva.

1

Ci sono alcuni ottimi framework di programmazione per giochi in C++ per iniziare. DarkGDK è fantastico, l'ho usato e ci vuole un po 'di fatica per creare un gioco in C++.

2

Dai uno sguardo allo Unreal Development Kit. Lo stesso motore utilizzato per potenziare Unreal Tournament e Gears of War è disponibile gratuitamente per sviluppatori indipendenti e si prende cura del lavoro davvero estenuante per creare un gioco.

È un ottimo modo per imparare la terminologia e i concetti, adattandoti gradualmente al regno dello sviluppo del software attraverso lo scripting. Una volta che ti senti a tuo agio con la geometria, le trame, gli effetti particellari e l'illuminazione, allora avventurati nel territorio di XNA. Sia nel caso di UDK che di XNA, troverai sia eccellenti community che dozzine di tutorial disponibili.

+0

+1, io voglio evitare la nitidezza grintosa del gioco di programmazione della matematica e della fisica ... – gath

3

Posso suggerire un approccio diverso? Im assumerò che la grafica 3D non sia essenziale. Credo che se sei davvero agli inizi, andare direttamente al rendering 3D può essere un po 'complesso. Il 2D è molto più semplice.

Perciò, seguire questi semplici passi, si aspettano che duri circa due ore o giù di lì:

  1. Download (e installare) Python
  2. Download (e installare) PyGame
  3. Download (e installare) Notepad++, si intende utilizzare questo per scrivere il codice, salvarlo con l'estensione .py (non txt)
  4. oltre al capo del Line By Line Chimp Tutorial (ottimo tutorial!)

Dopo aver letto e sperimentato, dovresti essere in grado di creare qualcosa di tuo con un livello di complessità, ad esempio, Tetris. Ho creato uno asteroids clone.

Non esitate a tornare qui su Stackoverflow per chiedere aiuto in caso di problemi. Ho aiutato alcuni amici attraverso quel tutorial che voleva "provare la programmazione del gioco" e dovrei essere in grado di aiutarti con qualsiasi cosa tu riesca a rimanere bloccata.

Ora impazzisci sulla tastiera! Prima che tu lo sai, avrai creato Dragon Age 2!

1

In genere i giochi professionali sono sviluppati principalmente in C++. Tuttavia, a meno che tu non sia uno sviluppatore veterano del C++, ti consiglio di scegliere una lingua con cui hai più familiarità mentre apprendi le sfumature dello sviluppo del gioco, altrimenti potresti trovarti a combattere la sintassi e la natura generale del C++ più dei particolari concettuali relativi al gioco programmazione. C# e XNA, o anche l'ormai defunto Managed Direct X, sono un ottimo modo per iniziare come alcuni hanno già menzionato. Una vasta gamma di informazioni sullo sviluppo del gioco in C# è facilmente reperibile sul Web e in stampa e esiste un gran numero di community che forniscono supporto durante l'apprendimento, quindi approfittane.

Inoltre, mentre XNA è un framework di sviluppo del gioco più completo, ci sono molte altre librerie disponibili come Ogre, OpenGL e Irrlicht che coprono tutto, dall'audio alla fisica.

Cercare di comprendere i fondamentali del gioco e sviluppare la propria esperienza attraverso progetti sempre più complessi. Questo non vuol dire che sia impossibile intraprendere un grande progetto come il tuo primo, ma nella mia esperienza i progetti più piccoli tendono ad essere completati con maggiore regolarità. Ogni partita finita creerà la tua sicurezza, esperienza e abilità.

Si consiglia di verificare http://www.GameDev.net, le risorse sono inestimabili. Riemers.net contiene anche alcuni fantastici tutorial su XNA e Direct X.

Infine cerca di non scoraggiarti dalla vastità di comprensione che richiede lo sviluppo del gioco. Le cose possono sembrare travolgenti quando inizierai sul campo, ma cerca di tenere a mente che anche i guru del settore non hanno iniziato a conoscere a un certo punto. Con perseveranza, passione e pazienza potrai padroneggiare le abilità necessarie per creare giochi davvero divertenti.

Buona fortuna.

0

Prova a guardare i giochi open source. This game è appena diventato open source di recente ed è piuttosto avanzato. Impiega già una grande fisica, effetti visivi e scene tagliate, quindi questa potrebbe essere una grande opportunità di apprendimento.