Domanda

Sono un programmatore hobbista con una buona conoscenza di Python e attualmente sto imparando C. Recentemente ho parlato con un collega che vuole anche imparare a programmare. Nel suo caso, vuole imparare il C ++ come percorso per la programmazione di giochi Windows usando DirectX. Personalmente, mi sento immerso direttamente nel C ++ poiché la tua prima lingua è un po 'troppo - è abbastanza difficile rimanere motivati ??in una lingua più semplice, e penso che sia meglio imparare un'altra lingua per girare la testa sulla maggior parte dei concetti di base, quindi andare in qualcosa come C ++.

Ho scoperto che Python ha funzionato bene come prima lingua poiché sono più interessato alla programmazione in rete e web su piattaforme Linux / Unix, ma per qualcuno principalmente interessato alla programmazione di giochi Windows pensavo che C # potesse essere una scelta migliore come poteva impara a usare Visual C # Express Edition e XNA, quindi passa a Visual C ++ quando è pronto per iniziare a imparare C ++ e quindi essere già in un ambiente familiare. Penso che la gestione della memoria sia molto da prendere, e C # almeno lo gestisce in modo da poterlo rimandare fino a quando non inizia a imparare il C ++.

Cosa pensano gli altri del C ++ come primo linguaggio di programmazione per questo tipo di applicazione? Dovrei raccomandare invece di scegliere C #?

È stato utile?

Soluzione

C ++ dovrebbe andare bene. Penso che sia meglio conoscere la gestione della memoria, i puntatori, ecc. PRIMA di saltare a C # perché capirà come il programma funziona meglio. Altrimenti, vedrà solo la memoria come una magia e il garbage collector non avrà alcun significato reale. È sempre bene avere una solida conoscenza dei linguaggi sottostanti (C, C ++, Assembly, ecc.) Per produrre il codice migliore.

Altri suggerimenti

C ++ è la lingua principale utilizzata per la maggior parte delle "serie" titoli di gioco. Se sta programmando per un grande studio di gioco, allora ha bisogno di conoscere i piccoli frammenti di C ++.

Iniziare con C ++ potrebbe essere un po 'troppo per un principiante completo. Consiglierei C come ottimo punto di partenza. Acquisisci familiarità con i concetti di gestione della memoria e le altre cose di basso livello prima di aggiungere la complessità del C ++.

Poiché C # è un codice gestito, non otterrebbe le intuizioni della gestione della memoria di basso livello. Ciò non gli servirà bene quando dovrà occuparsi di C ++. In questo caso, partire più vicino al metallo lo aiuterà a lungo termine.

La programmazione di giochi in C ++ è fantastica. Ma a meno che non ti piaccia il dolore totale mentre stai imparando a programmare, potresti iniziare con XNA. Ciò ti consentirà di lavorare sul contenuto e sulla logica del gioco invece di combattere con il codice del tuo motore.

Ora, se ti piace il dolore, inizia la rotta DirectX e C ++ per iniziare.

Penso che sia meglio imparare a fondo un linguaggio come Java o C # prima di affrontare C ++. Il motivo per cui dico questo è perché puoi facilmente impantanarti nei dettagli e nelle complessità del C ++.

Ho lottato con il C ++ on e off (per hobby) per alcuni anni, poi in Uni mi hanno insegnato Java, ho smesso di fare C ++, ho ottenuto un lavoro facendo Java per un paio d'anni, poi sono passato al C ++ dev. Ho raccolto tutto molto rapidamente perché sapevo già quali schemi e concetti volevo applicare ed era solo una questione di apprendimento della sintassi e delle stranezze e di abituarmi di nuovo ai puntatori. Dovevo solo imparare COME e non PERCHÉ. Affrontare il C ++ come prima lingua principale sta imparando COME e PERCHÉ allo stesso tempo e può essere molto confuso!

XNA è un buon suggerimento.

Python è bravo nella programmazione del gioco. Vedi i-want-to-learn-game -sviluppo-che-lingua-dovrebbe-i-use . Prendi in considerazione l'apprendimento di Pygame .

  

Pygame è un insieme di moduli Python progettati per scrivere giochi. Pygame aggiunge funzionalità oltre all'eccellente libreria SDL. Ciò ti consente di creare giochi e programmi multimediali completi in linguaggio Python. Pygame è altamente portatile e funziona su quasi tutte le piattaforme e tutti i sistemi operativi. Pygame stesso è stato scaricato milioni di volte e ha avuto milioni di visite al suo sito web.

Se vuole entrare nel settore, allora conoscere il C ++ è vitale, poiché la maggior parte dei motori di gioco usa il C ++. (Anch'io lo sviluppatore dovrebbe a un certo punto appoggiare C o C ++)
Tuttavia, se vuole scrivere giochi (come in, finire di scrivere un gioco), allora C ++ potrebbe non essere la strada da percorrere. È molto complesso e ha molte insidie ??che lo rendono un linguaggio lento in cui svilupparsi. Non è solo la gestione della memoria, ma cose come gli orribili errori di compilazione relativi a stl ecc. Che rendono molto difficile fare qualcosa al primo tentativo da programmare.
Guardare qualcosa come C # o Python sarebbe un'opzione migliore, in quanto sono linguaggi molto meno complessi e ognuno ha delle buone librerie di giochi.

Se decide che C ++ è la strada giusta da seguire, allora consiglierei almeno una libreria di rendering. Qualcosa come Ogre3D almeno. La ragione di ciò è trattata in questo articolo Scrivi giochi non motori . Mentre scrivere (o provare a scrivere) un motore da un'API di base sarà una buona esperienza, è improbabile che il gioco finisca.

Qualcosa che devi considerare sono gli SDK esistenti, probabilmente non vorrai programmare tutto da solo. Ad esempio, ci sono motori 3D piuttosto buoni con diversi tipi di licenze che potrebbero adattarti bene.

Quindi dovresti controllare tutte le librerie e gli SDK esistenti e le poche lingue con cui vuoi restare insieme allo stesso tempo. Adattarsi a C ++ o C # non è così difficile, il primo è più rigoroso e più impegnativo mentre ti dà un controllo più ampio sulla memoria, il secondo ti consente di concentrarti sulla principale area di sviluppo ma prende in carico la gestione della memoria (principalmente), ciò significa che potresti avere problemi in tempo reale.

Alla fine della giornata, quale aiuto puoi ottenere per costruire la tua applicazione supererà invariabilmente le piccole differenze tra quelle lingue OO (in una certa misura).

Esistono molti motori di gioco, la maggior parte sono elencati in questa pagina . Di particolare interesse sono, nel mondo libero:

I pacchetti non gratuiti includono Unity e altri.

Se non desideri nessuno di quei motori, ci sono ancora ottime librerie come Qt per C ++, che consente lo scripting - sebbene non direttamente Python, dovresti incorporarlo tu stesso - e altri per C #, ma l'elenco potrebbe diventare piuttosto lungo.

In genere, le persone finiscono il vapore prima di completare il loro primo gioco. Pertanto, a meno che il tuo amico non abbia una comprovata esperienza di essere determinato in modo ostile, consiglierei l'opzione di alto livello disponibile. Se scegli tra C ++ e C #, sarebbe C #.

Preferirei XNA e C # per un'introduzione rapida e indolore. Userei C ++ e una libreria come DirectX, per la programmazione di giochi dopo aver avuto qualche esperienza sull'argomento. La maggior parte dei giochi di maggior successo hanno scritto in C ++.

Se il tuo obiettivo è divertirti e in realtà finire i giochi da solo (o in piccoli team) di portata relativamente piccola, allora dico C # e XNA.

Se il tuo obiettivo è lavorare nel settore, su giochi a budget super con squadre giganti ... Quindi C ++ ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top