2009-11-01 12 views
5

Sono interessato alla programmazione per i giochi. Attualmente sto costruendo un gioco per iPhone con Shiva che usa Lua come linguaggio di scripting. Dopodiché, non sono sicuro di cosa dovrei fare o quali lingue dovrei imparare. Il mio obiettivo è continuare a costruire giochi, ma voglio anche creare la mia console di gioco. Certo, non sarà per anni ma ho bisogno di imparare qualcosa di giusto programmazione ora. So che i giochi di programmazione e le applicazioni sono completamente diversi ed è per questo che ho bisogno di aiuto. Quali lingue o cose mi consigliate per imparare? Voglio anche essere in grado di creare applicazioni, ma programmare applicazioni e giochi di programmazione è una cosa completamente diversa.Programmazione giochi e applicazioni/OS

+0

Che lingue conosci attualmente? – Jonathan

+0

Le basi di C e sto facendo un po 'di Lua. –

risposta

2

Dopo aver lavorato nel settore da diversi anni, questa è la migliore sintesi posso trovare:

http://gamesfromwithin.com/so-you-want-to-be-a-game-programmer

Il mio consiglio:

Imparare C++ dentro e fuori. Programma in esso ogni giorno. Se sei già configurato per lo sviluppo di iPhone, impara OpenGL. Non sarebbe male imparare Direct3D anche se hai accesso a un PC (dai anche un'occhiata a XNA). Se la grafica non fa per te, assicurati di sapere come funziona il rilevamento dei percorsi (algoritmo A *) o il rilevamento delle collisioni.

Continua a costruire i tuoi progetti e trova una buona comunità online in grado di supportarti in caso di domande. I datori di lavoro vogliono vedere che sei intelligente, ma soprattutto, che sei dedicato - la programmazione del gioco è molto difficile, non permettere a nessuno di dirti diversamente.

È possibile scaricare gli strumenti di sviluppo gratuito per Windows qui: http://www.microsoft.com/express/download/

Quello che si vuole è Visual C++ 2008 Express Edition.

+0

Bene per imparare OpenGL hai bisogno di conoscere l'obiettivo c? Su mympac ho windows xp, è bello programmare in C++? –

+0

Hai bisogno di un po 'di Obiettivo C se sei su iPhone: puoi fare OpenGL su PC, iPhone o Mac. Puoi usare C++ su PC, iPhone o Mac. Su iPhone e Mac puoi combinare C++ e Objective C, cosa che rende le cose confuse per un principiante. Ho aggiornato la risposta con gli strumenti di sviluppo di Windows. – Justicle

+0

posso usare gli strumenti pc dev sul mio mac, ho windows xp sul mio mac. O??? –

2

Forse controllare alcuni dei collegamenti programmazione del gioco qui: http://lazyfoo.net/SDL_tutorials/index.php

Quei tutorial presuppongono C++ che viene utilizzato molto nei giochi di programmazione in modo da può valere la pena di apprendimento.

Oppure si potrebbe verificare questo tutorial se il vostro interessato a Java http://www.cokeandcode.com/node/6

Adam

+0

Sono d'accordo con Adam, C++ è il defacto se vuoi fare giochi seri. – Jonathan

+0

Voglio anche essere in grado di creare applicazioni, ma programmare applicazioni e giochi di programmazione è una cosa completamente diversa. –

1

Si consiglia di verificare Unity3D website. Ora hanno una versione gratuita (denominata Unity) per uso personale e commerciale. È possibile utilizzare lo scripting con C# (eventualmente qualsiasi linguaggio .NET), JavaScript e Boo.

XNA sarebbe una buona misura anche.

+0

Attualmente sto usando Shiva –

+0

Rispetto a ShiVa, Unity è il Nirvana. – Stringer

+0

hmmm, beh mi piace Shiva perché puoi programmare Lua in esso. Se dovessi usare l'unità, non saprei come programmarla. –

6

Il primo gioco che abbia mai scritto è stato un gioco di serpenti scritto in Turbo Pascal. Stavo armeggiando e sono riuscito a ottenere (usando una serie di punti) una linea che si muoveva sullo schermo. Una volta fatto ciò, ho fatto in modo che la linea cambiasse direzione. L'ho collegato ai tasti freccia e mi sono emozionato. Due ore più tardi avevo ottenuto un punto colorato diverso come "cibo" sullo schermo ed era un gioco di serpenti. Ogni gioco che ho scritto mi ha spinto ulteriormente e mi ha costretto a imparare cose nuove (le idee tendono a rotolare l'una dall'altra.)

  • Prova e segui i giochi in stile arcade. Breakout, Pong, Snake, ecc. La quantità di tempo che ci vorrà per costruire Halo non porta il calcolo!
  • Non preoccuparti della lingua che impari. Imparerai molti nel corso degli anni.In questo momento è il momento di chiedere quale è più facile per iniziare a scrivere giochi con. Se hai già le basi di C, allora questa è la tua risposta immediatamente.
  • Se non hai idea da dove iniziare, inizia a fare animazioni invece di giochi. Le idee verranno dopo che ti sarai abituato ai tuoi strumenti.

Scrivere un programma che disegna una faccina nel mezzo dello schermo. Cambiare le modalità dello schermo e usare grandi motori grafici potrebbe essere eccessivo per questo. Mantienilo semplice. Prendi quella faccina per muoverti, cambia colore, trasformala in una faccia infelice, ecc. Prima che te ne accorga, otterrai un buon slancio.

La domanda da porre è come scrivere una faccina sul centro dello schermo anziché solo sulla riga successiva nella console. Nel mio primo gioco di serpenti, la risposta era scrivere un carico di personaggi nello spazio finché non sono arrivato dove volevo. La risposta migliore, a quanto pare, è ncurses. Se si utilizza Windows XP, il compilatore MingGW è gratuito è possibile ottenere la libreria (non standard) conio.h. Questo è quello che ho usato nel mio secondo gioco di serpenti e ti farà iniziare molto velocemente.

Buon viaggio!

5

Cerca nel modding.

Ho trovato QuakeC (come sono state fatte le mod Quake1) per essere davvero facile da raccogliere, e hai già una base molto ricca di contenuti di gioco da usare in modo da poterti concentrare sul gameplay e così via. Ho trovato molto più facile rimanere interessati quando si inizia con un gioco divertente e si aggiunge la propria svolta ad esso, piuttosto che iniziare a creare demo di box 3d o altre semplici ma necessarie fasi di programmazione a basso livello.

Quake1 è piuttosto vecchio ma ha il lato positivo di praticamente tutto ciò che è implicito in esso open source e libero di estendere. Potresti facilmente iniziare a modificare i giochi più nuovi là fuori.

Un sacco di negozi di giochi di grandi nomi di oggi hanno iniziato a fare mod Quake o Halflife.

0

Quando state appena iniziando, C, C# e C++ potrebbero essere un po 'complessi per iniziare. Se sei serio sullo sviluppo del gioco, probabilmente avrai bisogno di imparare il C++ alla fine, ma se vuoi solo fare qualcosa in fretta, sei già sulla strada giusta con Lua.

Javascript è un'altra lingua che è molto simile a lua in molti modi (e molto diversa in altri). Uno dei vantaggi di javascript è che tutti nel mondo hanno javascript installato sui loro computer. Un altro vantaggio è che è molto facile da imparare. Ci sono anche degli svantaggi, ma non sono così male come pensano molti programmatori "seri". Javascript ottiene un immeritato rap negativo.

Ecco un ottimo tutorial per imparare javascript: programmazione http://eloquentjavascript.net/

Esso non copre i giochi, ma lo fa Sfortunatamente- concetti di copertura che sono rilevanti per entrambi i giochi di programmazione e di programmazione delle applicazioni.

Ecco un tutorial per javcascript che fa la programmazione Games Copertina:

http://billmill.org/static/canvastutorial/index.html

avrete bisogno di un browser web, al fine di seguire quel tutorial. Questo non include Internet Explorer, quindi probabilmente vorrai usare Safari, Firefox o Opera.

Una volta che hai dimestichezza con i giochi in un linguaggio facile come javascript o lua, allora non sarà così difficile imparare a fare giochi in un linguaggio difficile come C o C++.

D'altra parte, potresti essere felice di creare giochi in un linguaggio semplice, e va bene, non ci sono regole che dicono che devi imparare C o C++ per fare buoni giochi. I buoni giochi vengono dalle buone idee, non dalla programmazione difficile.

0

Ordine di priorità per un programmatore di giochi.

Qualsiasi argomento che richiede il pensiero analitico e la risoluzione dei problemi logica. Conoscenze necessarie nei seguenti domini.

  • Matematica
  • strutture dati
  • alla grafica
  • Fisica
  • Intelligenza Artificiale
  • Reti di Calcolatori
  • Web Technologies