Qual è una buona piattaforma di partenza per un programmatore di giochi per adolescenti? [chiuso]


32

Mio figlio (15) ha deciso di voler intraprendere la carriera di programmatore di giochi. Ho detto che ora dovrebbe iniziare con un semplice gioco. Non ha ancora esperienza di programmazione, ma io sono un programmatore (app aziendali, non giochi), quindi posso insegnargli la programmazione, ma quale sarebbe una buona piattaforma per lui da cui iniziare? Inizialmente sto cercando qualcosa che possa fornire risultati rapidi, per mantenere alto il suo entusiasmo.

Che cosa suggeriresti?


13
Chiuso? Stai scherzando! Ho fatto questa domanda l'anno precedente, ha avuto almeno 19 voti, le sue risposte votate hanno avuto almeno 86 voti, 5 persone l'hanno contrassegnato come preferito. E le risposte implicano fatti, riferimenti o competenze specifiche. Infine, è stato incredibilmente utile per me e, suggerirei, anche ad altre persone. Come posso fare per appellarmi a questa decisione?
Gkrogers,

1
Puoi fare un post al riguardo su meta se lo desideri davvero. meta.gamedev.stackexchange.com
Tetrade

Risposte:


30

XNA è una buona soluzione per un programmatore abbastanza fiducioso. Sarebbe un buon obiettivo a cui puntare in futuro.

Il kit di sviluppo di Unreal è un modo per ottenere risultati molto più rapidamente e facilmente, e potrebbe essere un buon punto di partenza. I commenti hanno indicato che l'UDK è in realtà un'alternativa piuttosto negativa , quindi non posso raccomandarlo.

Unity è un'alternativa, funzionerà su telefoni che è qualcosa che UDK non può fare (per quanto ne so). Quindi, se è interessato alla programmazione di giochi per telefoni, forse l'unità sarebbe meglio?


4
Sono d'accordo con questo. L'unità è un'alternativa all'UDK, anche se penso che sia un po 'più difficile da capire. Vedi se riesci a fargli pasticciare con UnrealScript (il linguaggio di scripting di Unreal Development Kit). XNA è sicuramente il primo vero linguaggio di programmazione di gioco da zero che dovrebbe usare, comunque; è il più semplice (relativamente parlando; non per i principianti assoluti) e lo adoro per la prototipazione perché puoi iniziare abbastanza rapidamente a disegnare cose sullo schermo.
Ricket,

2
+1 per il suggerimento XNA. Se si sforza di impararlo bene e ha buone idee, può facilmente guadagnare qualche soldo vendendo giochi per Zune / WP7 / XBOX 360.

2
Unity funziona su iPhone e nel browser, quindi è un buon modo per distribuire il gioco affinché le persone possano testarlo e abituarsi a essere infiammato all'inizio
Chris S,

4
Evitare l'UDK. Può essere molto potente, ma è anche un dolore enorme. È pieno di "trucchi" e restrizioni non documentate.
Peter Ølsted,

4
Anch'io ho 15 anni, ho imparato prima Pascal a 10, poi C, poi C ++. Ho provato a programmare alcuni giochi in C ++ e allegro a 12+ -, non molto successo, potevo fare molte cose, ma non riuscivo a pensare a come costruire un intero gioco. Mi ha tenuto al passo. Con XNA le cose erano molto più semplici e, inoltre, la facile gestione degli errori delle eccezioni C # mostrate al momento del debug aiuta molto a aiutarti a capire dove stai facendo qualcosa di sbagliato. ovviamente, anche altre lingue hanno, ma penso che Visual C # abbia il miglior strumento di debug in circolazione.
Gustavo Maciel,

20

Ho anche 15 anni, quindi immagino che possa essere d'aiuto? : P

Di recente ho iniziato a studiare Python (sto facendo C ++ da circa un anno) e sto trovando molto più facile da imparare rispetto al C ++. Ci sono molte meno insidie ​​e hai bisogno di poco codice per ottenere qualcosa sullo schermo - quello che trovo ti fa venir voglia di continuare.

E ci sono wrapper come Pygame e Pyglet su SDL / OpenGL per il lato grafico.

Prima che inizi a creare giochi semplici, consiglierei di imparare una lingua per almeno un paio di mesi. (Naturalmente, giochi basati su testo come indovinare il numero e l'impiccato sono buoni esercizi durante questo periodo)


9
Python e Pygame sono stati una boccata d'aria fresca per me dopo aver scritto giochi in C per molti anni. Ho pensato di poter fare la stessa cosa in circa il 10% delle volte in Python a causa dell'aspetto di livello superiore a tutto.
dash-tom-bang,

Lo so, mi sento lo stesso (e faccio C ++ da un anno).
The Communist Duck,

+1. Devo dire che, nonostante abbia solo un po 'di familiarità con Python, è la mia prima raccomandazione per i programmatori principianti. Ora abbiamo solo bisogno di un robot pitone! Anche buoni suggerimenti per es. Boia. =)
magro

Amico dovresti imparare un linguaggio .net (mi piace C #, F # non tanto, vb.net è ok. Boo non è supportato negli studi visivi :(). Le lingue sono meno soggette ad errori rispetto a C ++ e ottieni eccezioni quando fai qualcosa sbagliato (una cosa molto buona. C ++ dovrebbe fare di più). Puoi imparare a usare lo stack di chiamate, guardare le variabili, i punti di interruzione (suppongo che i punti di interruzione funzionino in un IDE python?) e sarai in grado di eseguire il debug rapidamente Il che è fantastico quando scrivi un codice per principianti instabile

13

Un po 'di una risposta non ortodossa qui:

Starcraft II Galaxy Editor.

Puoi creare quasi tutti i giochi in Starcraft 2.

Insegna anche la maggior parte dei costrutti di programmazione come i loop e le istruzioni if ​​in modo incentrato sulla GUI.

Una volta che è fiducioso con le basi, puoi avere roba da sceneggiatore.

Se è bravo a farlo, e lo trova interessante, adorerà la corretta programmazione del gioco.


3
Stavo per suggerire Warcraft III. Iniziare con un semplice linguaggio di scripting è davvero un bel modo di procedere. Sia Warcraft III che Starcraft II hanno una GUI che puoi usare per metterti comodo e una funzione per visualizzare il codice come script non elaborato, per vedere i meccanismi interni.
William Mariager,

2
Pista giusta . Iniziare con QUALSIASI editor di livelli è il modo migliore di procedere. Può saltare tutte le impalcature e le difficoltà e arrivare alla parte interessante della trama di uno scenario e la progettazione di un livello.
Bobobobo,

Di gran lunga una delle migliori risposte che abbia mai visto per questo tipo di domanda, ho iniziato a creare giochi quando ero molto piccolo con MS powerpoint tramite hyperlink e giocando a un gioco chiamato "il club dei robot"; che nel suo gameplay ti insegna molte nozioni di base sulla programmazione di giantbomb.com/the-robot-club/3030-29776
Jim Jones

10

Dividerei approssimativamente gli strumenti di sviluppo del gioco in tre grandi categorie:

  1. Facile da imparare e usare, ma limitato. Game Maker, Game Salad, RPG Maker, Adventure Game Studio rientrano tutti in questa categoria.
  2. Potente, ma con una ripida curva di apprendimento. C ++ e altri linguaggi di programmazione "hardcore" si adattano qui.
  3. Linguaggi intermedi, in genere linguaggi di scripting come Lua, Python e ActionScript, che dividono la differenza richiedendo che tu scriva effettivamente del codice ma ti prenda cura dei dettagli più oscuri come la gestione della memoria per te.

Per le persone senza esperienza di programmazione, di solito consiglio di iniziare nella prima categoria, solo per iniziare a fare QUALCOSA. Quando si sentono a proprio agio con un determinato strumento di creazione ma si sentono davvero come se i limiti superino i benefici, è tempo di imparare qualcosa nella prossima categoria.


9

So che questo mi uscirà un po ', ma crescendo mi è piaciuto molto P-Robots . C'è un obiettivo davvero semplice (battere gli altri robot), una semplice API e un breve lasso di tempo tra le modifiche al codice e la visualizzazione dei risultati. Segue l'intelligenza artificiale, i modelli di progettazione e persino una struttura di codice su larga scala (alcuni di questi robot possono diventare piuttosto grandi - e che dire della condivisione del codice tra robot?). Se riesci a trovare qualcosa di simile ma più recente, sarebbe un buon modo per ottenere la parte "iniziare a programmare". suggerimenti:

Una volta fatto, prendi in considerazione uno sparatutto a scorrimento 2D, un platform o un gioco simile in stile arcade molto semplice: puoi usare SDL o XNA o qualsiasi altra cosa ti sia familiare. Anche far funzionare un clone di pong non è del tutto banale. Questo ti dà una piccola eco di come sia costruire qualcosa di "radicato".

Dopodiché, esplora: una mod per un gioco 3D esistente (un nuovo oggetto, un bot o qualcosa del genere) per dare una visione d'insieme dei motori più grandi.

Le chiavi, da quello che ho visto, sembrano essere:

  • iterazione rapida: la capacità di vedere rapidamente i risultati
  • prototipi: molti piccoli esperimenti per ottenere ampiezza di esperienza e sicurezza (ok, come faremmo un gioco in marmo? E gli invasori spaziali? ecc.)
  • esplorazione: imparare ad amare esaminando come sono costruiti i giochi degli altri, modificandoli, ecc

2
+1 per i brainstorms, ma userei ROBOCODE ( robocode.sourceforge.net ) invece di P-Robots.
Callum Rogers,

@Callum: geniale, aggiornerà la risposta =)
magra

Vorrei usare LegoMindstorms con NXC
Joe the Person il

6

Il mio consiglio è di creare giochi basati sul web. Perché? Bene, prima di tutto, JavaScript è un bellissimo linguaggio che gli insegnerà tutti i concetti di base della programmazione e in realtà puoi creare un gioco fantastico, competente e multipiattaforma con esso. Lo qualificherà anche per molte altre cose oltre alla semplice creazione di giochi ... Se, per qualche motivo, non ti piacerebbe che tuo figlio entrasse nello sviluppo web, allora ti suggerisco di usare Python, con un modulo chiamato PyGame. Ho anche esperienza con questo, ed è fantastico. Quello che non suggerisco è di iniziare con C / C ++, è quello che ho fatto ed è terribile e potrebbe farlo non motivare per la programmazione del tutto.

In un'altra nota, probabilmente sei un padre fantastico, congratulazioni!


1
Buoni suggerimenti. Detto questo, ho iniziato con C (non che c'erano delle vere alternative allora) e in realtà non era così doloroso; ovviamente, non è un motivo per usarlo ora che ci sono lingue di livello superiore.
o0 '.

1
Grazie! Inoltre, non ho iniziato con i giochi e il mio punto era che, dopo aver appreso un linguaggio di livello superiore, avrebbe una migliore comprensione del concetto generale di programmazione e non si sarebbe esaurita la sua motivazione. E ovviamente - mi stavo esagerando un po 'lì;)
jcora il

1
A quell'età, essere in grado di condividere facilmente le mie creazioni con gli amici era una motivazione. I giochi Web sono più facilmente condivisi. Pubblica il tuo URL su Facebook e chiedi ai tuoi amici di provarlo. Actionscript / Flash o Javascript / HTML5 sono probabilmente le tue migliori scommesse per poter condividere facilmente, con Java o Unity al secondo.
tra il

5

Mindstorms Roboter sono davvero fantastici. Abbiamo ricevuto alcuni NXT a scuola e la settimana scorsa abbiamo iniziato a programmare cose come seguire una linea e quella roba. Puoi ottenere facilmente risultati.

Inoltre ho trovato www.3dgamestudio.de qualche tempo fa. Non ci ho pensato più, ma è stato davvero interessante. Puoi programmare con Lite-C che è:

Lite-C è un linguaggio di programmazione per applicazioni multimediali e giochi per computer, che utilizza un sottoinsieme di sintassi del linguaggio di programmazione C con alcuni elementi del linguaggio di programmazione C ++

Al http://tutorial.3dgamestudio.net/ ci si entra. E ci sono anche un editor di livelli, modelli e terreni.

ps: ho 16 anni e ho iniziato con un amico che programmava un sito Web e personalizzava un server di gioco programmato. Quindi questo potrebbe anche essere interessante per lui.


+1 Documentazione molto semplice su come, sembra davvero molto facile da gestire.
Prix

4

Non posso suggerirlo abbastanza, ma costruendo i suoi livelli per il suo gioco preferito preferito .

Per qualcuno di quell'età / livello di abilità, dovrebbero iniziare costruendo livelli nel loro motore di gioco preferito .

Molti grandi giochi sono dotati di un editor di livelli che consente molti gradi di libertà.

RPG : serie di strumenti elettronici NWN 2 di Obsidian , Elder scrolls

RTS : Il redattore di livello di Warcraft III è un fantastico editor di RTS e si è persino distinto dal suo stesso gioco ( lega di leggende ed eroi di nuova generazione ).

FPS : Hammer per emivita 2. Counterstrike era originariamente un emivita mod.

Inizia qui . Costruire livelli per il tuo gioco preferito è probabilmente il posto migliore per iniziare.



3

Sebbene tutte le informazioni qui siano utili, volevo menzionare che lo STEM Challenge (una competizione di gioco nazionale promossa dalla Casa Bianca e dall'ESA) ha alcuni suggerimenti sulle piattaforme http://www.stemchallenge.org/about/Default.aspx

Gamestar Mechanic, Gamemaker, Kodu, Scratch, PBS KIDS Pronto a imparare Stream

Ho la sensazione che ci siano risorse della comunità su queste piattaforme in particolare per quanto riguarda STEM.

Vedi anche questo eccellente tutorial su python e pygame (che è anche un libro online) http://inventwithpython.com/chapters/ ecco il PDF del seguito del libro specifico su pygame http://inventwithpython.com/blog/making -Games-con-python-pygame /

Ecco un altro articolo di NYT http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1 & SCP = 1 & adxnnlx = 1.322.489,239 mila-tMp1Wjl9FUcI8rLaJ6cbOw

Aggiornamento: ecco una discussione su slashdot http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games


2

Game Maker è una scelta eccellente per le persone senza esperienza di programmazione. Ha una versione gratuita e una versione a pagamento relativamente economica. Ti consente di creare rapidamente giochi con un'interfaccia drag-and-drop, ma include il supporto per script più avanzati.


5
Non ho intenzione di sottovalutare questo, ma GameMaker e Visual Basic sono entrambi strumenti che insegnano la sintassi errata (VB) e GameMaker non è davvero eccezionale. Per uno, non hai accesso a IDE piacevoli come VS, la creazione di giochi Drag-and-Drop non insegna davvero nulla.
Joe the Person,

1
Non sono sicuro del motivo per cui stai citando VB; Game Maker è approssimativamente basato su C. Indipendentemente da ciò, Game Maker è un buon modo per progredire dal non sapere nulla alla comprensione del tipo di pensiero necessario per gli sviluppatori di giochi. Rispondere agli eventi, mantenere un circuito di gioco, utilizzare le relazioni tra risorse grafiche e codice, portando un progetto dall'idea alla pubblicazione; queste sono tutte cose che puoi imparare con lo sviluppo del trascinamento della selezione. Sono d'accordo sul fatto che GML sia un linguaggio limitato, ma il sistema nel suo insieme è un buon punto di partenza.
Gregory Avery-Weir,

1
Sto citando VisualBasic a causa di DarkBASIC, che è l'ennesimo orribile strumento di programmazione.
Joe the Person,

Game Maker è sicuramente un buon modo per insegnare orientato ai risultati. Non c'è bisogno di imparare la fisica o il rendering. Usa le funzionalità integrate. E il passaggio al C ++ è semplice, poiché puoi iniziare creando dll e usandole in Game Maker e, successivamente, abbandonare completamente Game Maker.
William Mariager,

Mai, mai, suggerire GameMaker a qualcuno di età superiore agli undici anni ... Se ha quindici anni, potrebbe anche avvolgersi nella programmazione.
jcora,

2

Come ha detto Martin, l'UDK è probabilmente il modo più veloce per far funzionare qualcosa in quanto viene fornito con così tante cose preimpostate come AI, modelli e anche una vasta gamma di libri. Ha un ottimo editor di mappe e il linguaggio è Java-esque (e script ECMA come).

Un'alternativa potrebbe essere provare a fare giochi in Flash o Silverlight: iniziare con semplici giochi 2D. Qualunque genere di giochi gli piaccia, detta il toolkit.


1
No! Non nel Regno Unito! È: buggy, lento, soggetto a errori, complesso, ecc. Vai invece con Unity.
Joe the Person,

@ buggy UDK firedude67, soggetto a errori? prendere in giro?
Quazi Irfan,

bene nella mia esperienza è rimasta incredibilmente indietro, tutto ciò che ho creato ha dato a BSOD e non sono riuscito a trovare alcuna documentazione utile. Nemmeno i progetti di esempio hanno funzionato.
Joe the Person,

1
Non ho mai trovato un buggy UDK, ma NON lo consiglio vivamente a un programmatore di giochi. Un artista, sì, ma un programmatore, no. La "documentazione" è una barzelletta e per trovare quali classi devi sottoclassare, devi effettivamente aprire la classe genitore, poiché hanno deciso di non fornirti un riferimento API. Inoltre, è necessario molto lavoro per creare diversi tipi di giochi, poiché è un motore FPS a cuore.
DMan,

1

Venendo da un bambino di 14 anni, questo consiglio potrebbe essere utile. Trovo che il modo migliore per scegliere una piattaforma sia la piattaforma più adatta allo scopo. Ho pubblicato questo post molte volte prima.

Da Reddit -

Scegli una lingua adatta al tuo scopo. La maggior parte dei giocatori non si preoccupa della lingua in cui è programmato il gioco. A loro importa se possono giocarci o no. A loro importa se funziona veloce sul loro computer. A loro importa se il gioco non ha una dimensione di 10 GB. A loro non importa se è un exe o un barattolo.

Guarda giochi come Minecraft. Certo, è scritto in Java, un linguaggio che ha una quota di mercato estremamente ridotta nel settore degli sviluppatori di giochi. I consumatori si preoccupano però? No. Si preoccupano della funzionalità.

Tuttavia, poiché tuo figlio non ha alcuna esperienza nella programmazione, ti suggerisco di imparare un linguaggio veloce da programmare come Python o di utilizzare una piattaforma esistente, come XNA. Personalmente adoro Slick2D con Java, ma credo sia la mia preferenza ...


0

Mi è stata introdotta la programmazione in giovane età (meno di 15 anni) e mio padre ha deciso di utilizzare VB (1.0). Abbiamo realizzato una versione contorta di pong usando un oggetto timer e un disegno GDI. Mi è piaciuto perché abbiamo iniziato con una tela bianca e siamo stati in grado di imparare le basi delle strutture di programmazione mentre cercavamo di rendere divertente qualcosa.

Oggi, penso che sceglierei XNA e scegliere un semplice gioco 2D. C # e XNA sono piuttosto semplici e ti lasciano molto spazio per crescere, e sono gratuiti.


-4

Se vuole solo creare giochi, allora dovrebbe usare XNA, Unreal, Unity ecc. Se vuole essere un programmatore di giochi, dovrebbe prima imparare C / C ++ e OpenGL / SDL o D3D.

XNA, Unreal, Unity ecc. Sono fantastici per creare giochi, ma davvero cattivi nel fare troppo per te. Sono sicuro che la gente non sarà d'accordo con me su questo, ma questi fondamentalmente ti trasformano in un programmatore pigro e quando arriva il momento di imparare cose come i punti in C ++ sarà più difficile perché hai scelto prima le opzioni più semplici.

Peronalmente non suggerisco mai altro C / C ++ come prima lingua da imparare se vuoi essere un programmatore di giochi. Il motivo principale è che anche se vai a imparare C # / XNA, se stai seriamente diventando uno sviluppatore di giochi, dovresti conoscere C o C ++ ad un certo punto perché nessuno ti assumerà altrimenti. Quindi, se sono seri riguardo alla professione, allora stai solo ritardando l'apprendimento di ciò che ci si aspetta da te.


10
Quando un quindicenne è pronto per un impiego professionale (tra otto anni), non vedo alcun motivo per ritenere che tutti useranno il C ++. Otto anni fa, il C ++ stava appena iniziando a entrare in uso nei giochi e ottenendo il suo primo standard davvero pratico, e quasi tutti spedivano con C. Otto anni prima che il C ++ fosse in uno stato ridicolmente cattivo per lo sviluppo del gioco e l'ordine del giorno era C e asm. Tra otto anni, la maggior parte della programmazione di gioco probabilmente assomiglierà molto più a XNA che al C ++ 03 che fa adesso. (cont.)

8
L'elemento chiave è diventare un buon programmatore , che è indipendente da ogni singola lingua. Per i nuovi programmatori, C # li renderà più motivati ​​più rapidamente. Torneranno indietro e impareranno le cose più dettagliate se vogliono essere buone, ma devi agganciarle abbastanza a lungo per arrivare a quel livello.

5
I dettagli importanti nella programmazione del gioco sono SIMD, non SSE; linee di cache, non il layout standard C ++; hashing, non std :: unordered_map; polimorfismo, non funzioni virtuali. Queste ultime cose sono minute , e sono casuali, non fondamentali. Quando conosci il primo, il secondo tende a seguire banalmente.

2
Iniziare con C ++ è generalmente una cattiva idea. È una lingua difficile e moreso come prima.
The Communist Duck,

4
Ho iniziato il C ++ a 15 anni, e mentre sono contento di dove sono ora, iniziare con qualcosa di più facile sarebbe stato probabilmente molto meno doloroso e mi avrebbe permesso di concentrarmi sugli sviluppatori di giochi reali, piuttosto che su puntatori e segfault ...
Riley Adams,
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.