Il C ++ è necessario per sapere se voglio mai trovare un lavoro nel settore dei giochi?


17

Il C ++ è necessario per sapere se voglio mai trovare un lavoro nel settore dei giochi? Conosco molto bene C # e ho una conoscenza di base della creazione di giochi 2D in XNA 4.0. In questo momento ho solo 13 anni e adoro fare giochi, e spero un giorno di ottenere un lavoro di programmazione del gioco. Ho sentito molte persone dire che il C ++ è lo "standard del settore" e che danneggerà la tua carriera non saperlo. Sto anche cercando di indirizzare più piattaforme rispetto a Windows e sono a conoscenza di Monogamema per qualche ragione sto riscontrando molti problemi con i modelli di Visual Studio e trovo molti bug con il monogame. Dal momento che tecnicamente non riesco ancora a trovare un lavoro, e probabilmente non potrei ottenere un lavoro di programmazione fino a quando avrò 22 anni o qualcosa del genere (a meno che non sia un lavoratore autonomo). E in quell'arco di oltre 9 anni l'industria del gioco molto probabilmente cambierà molto. Quindi, ecco alcune domande

  • L'apprendimento del C ++ non danneggerà le mie possibilità di ottenere un lavoro di programmazione?
  • Quando riuscirò a trovare un lavoro, C ++ sarà ancora il linguaggio di programmazione "standard di settore"
  • Se sono uno sviluppatore indipendente, importa davvero se imparo o meno il C ++ e seguo quello che so?
  • Dovrei anche iniziare ad impararlo ora visto che ho molti anni prima ancora di riuscire a trovare un lavoro?

Ho anche il timore che, anche se ho familiarità con la programmazione orientata agli oggetti, potrei passare molto tempo su C ++ e diventare molto frustato e confuso, quindi smettere di impararlo e a questo punto ho dimenticato un sacco di XNA e devo imparare tutto dappertutto. Quindi in breve: dovrei imparare il C ++ se dovessi mai desiderare un lavoro di programmazione?

AGGIORNARE

Grazie a tutti per le vostre risposte e suggerimenti. Recentemente ho scelto SFML e C ++ e sta andando abbastanza bene. Sto imparando il C ++ e sto iniziando ad aprire gli occhi per non preoccuparmi di imparare cose nuove perché sono stato in grado di trasferire tutte le mie conoscenze in C # per rendere il C ++ più facile da imparare. Grazie a tutti di nuovo.


4
Va notato che ci sono in realtà più lavori nel settore dei giochi che non codificano di quanti ce ne siano. Artisti, project manager, tester black-box, designer, vendite, ecc. Inoltre, ci sono molti più posti di lavoro in altre lingue combinati rispetto a quelli del solo C ++. Quindi, statisticamente parlando, no, non è necessario imparare il C ++ per ottenere un lavoro nel settore.
MichaelHouse

1
Non danneggerà sicuramente le tue possibilità. La società per la quale lavoro per ora utilizza C # e Unity per lo sviluppo di giochi e non richiede C ++. Tuttavia, C ++ è ancora considerato un vantaggio perché insegna molti concetti utili che possono essere applicati altrove. Ti consiglierei di concentrarti su una lingua che conosci per il tuo progetto indipendente, ma prenditi un po 'di tempo per imparare il C ++ quando puoi (solo per l'esperienza).
Benjamin Danger Johnson,

2
Se sei uno sviluppatore professionista, non puoi sempre scegliere i tuoi strumenti. Ad esempio, odio Java e MATLAB con passione. Tuttavia, ogni tanto devo solo trattenere il respiro e riprenderlo. Quindi, basta smettere di piagnucolare e imparare C ++. Impara anche qualche altra lingua mentre ci sei.
drxzcl

Impara C ++ mentre puoi.
jcora,

Sento che questo post è una lettura importante per questa domanda.
Andrew Russell,

Risposte:


23

Voglio concentrarmi sulla tua terza domanda, perché rientra nella mia area di conoscenza (sviluppatore indipendente):

Non ho scritto una riga di codice C ++ per molti, molti anni. E, in effetti, ho dimenticato molti dei dettagli chiacchieroni (e in C ++ ce ne sono molti ). Faccio la maggior parte del mio lavoro in C #. E assolutamente non si deve imparare il C ++.

Tuttavia , le competenze acquisite con l'apprendimento del C ++ - in particolare le cose di basso livello, in particolare il funzionamento della memoria e dei puntatori - si sono dimostrate preziose.

Inoltre, ci sono state diverse occasioni in cui ho dovuto farlo leggere il codice C ++ di altre persone. Se sai come programmare in C # o Java puoi probabilmente indovinare cosa sta succedendo, ma sapere è molto meglio.


La mia raccomandazione a te , in particolare, è di imparare il C ++ ora. Alla tua età hai un sacco di tempo da dedicare solo all'apprendimento. In questo modo non dovrai preoccuparti di raccogliere C ++ mentre stai cercando di sviluppare un gioco o ottenere un lavoro.

Non preoccuparti di dimenticare i dettagli, se smetti di usare C ++ per qualche motivo (o XNA o qualsiasi altra cosa). I concetti sono più importanti. E sarai in grado di riprendere facilmente i dettagli se necessario.


Come hanno suggerito le altre tue domande, non sappiamo come sarà l'industria tra un decennio. Anche se immagino che C ++ sarà ancora in uso abbastanza comune. Parlare per ora - conoscere C ++ ti darà una spinta sostanziale nell'occupabilità - anche in un negozio non C ++.


7

Se vuoi essere un programmatore di giochi, probabilmente non puoi evitare di imparare il C ++. Se desideri un lavoro diverso nel settore dei giochi, come produttore o artista, non hai bisogno del C ++.

Il C ++ è difficile. Molte persone non lo imparano fino al college. Hai un sacco di tempo. Lavora con alcune altre lingue per aggiornarti sui concetti di base della programmazione. Inizia in piccolo e fai un passo alla volta.


2
Discuterei il contrario. Il C ++ è un linguaggio considerato vicino all'hardware al giorno d'oggi e impari necessariamente alcune cose sull'architettura del computer che non impareresti con un linguaggio di livello superiore come C #, principalmente sull'allocazione e sull'indirizzamento della memoria. Se avessi imparato prima C # e ti fossi abituato, probabilmente saresti alienato dai cerchi aggiuntivi che devi passare con C ++ in confronto.
Hackworth,

6

Hai ancora molto tempo per imparare, quindi non penso che dovresti essere troppo preoccupato per quale lingua usi, ma indicherò alcune cose che potresti trovare utili:

  1. C ++ è un linguaggio mentre XNA è un framework. XNA non verrà più aggiornato da Microsoft, quindi trovo incredibilmente difficile immaginare che venga utilizzato tra 9 anni da oggi con qualsiasi seria capacità. C ++ dall'altro ed è in circolazione da sempre, ha un comitato per gli standard attivo impegnato a migliorarlo e offre agli sviluppatori un così grande controllo sull'hardware che farebbe un balzo in avanti della potenza dell'hardware per rendere questo controllo non necessario e consentire quindi a un'altra lingua di soppiantarlo come standard defacto per giochi ad alte prestazioni.

  2. Imparare i concetti è la parte importante, non la lingua in cui li implementi. Puoi "imparare" una nuova lingua abbastanza rapidamente se ne comprendi già i principi di base.

  3. Il C ++ ti richiederebbe di conoscere i puntatori e i problemi di memoria a un livello molto più profondo di C #, quindi ti consiglierei di impararlo a un certo punto indipendentemente dal suo utilizzo nel settore.

  4. La tua preoccupazione di dimenticare le cose è probabilmente infondata. È vero che dimenticherai le cose, ma i dettagli non sono davvero la parte importante. Non dimenticherai come progettare un gioco cambiando lingua.

Sembra che tu abbia motivi per non imparare il C ++, penso che in realtà stai solo cercando di razionalizzare il tuo desiderio di non imparare qualcosa di nuovo.

Pensala in questo modo: se impari il C ++ e si scopre che non verrà utilizzato in futuro, hai molti anni per imparare cos'è e ti garantirò che avere imparato il C ++ ti aiuterà a farlo. Se ti capita di dimenticare tutto il tuo XNA e non riesci a imparare il C ++, sarebbe meglio scoprirlo e andare avanti piuttosto che preoccuparsi delle possibilità. Non credo che entrambi i casi siano molto probabili.


4

Consiglio generale: non concentrarti su ciò che devi imparare o su ciò che dovresti imparare. Basta fare qualcosa.

Per rispondere alla tua domanda specifica, Microsoft non aggiornerà più XNA, quindi è probabile che non ci sarà più a lungo. Il C ++ è uno standard industriale ben consolidato e non uscirà presto. Se vuoi lavorare su giochi AAA, allora sì. Sarà necessaria l'esperienza C ++.


Ottimo consiglio, +1. Anche se penso onestamente che l'apprendimento di nuove lingue sia molto importante.
jcora,

Yannbane: Ma questo non è secondario? Man mano che l'OP fa le cose, scopriranno ciò di cui hanno bisogno per imparare e apprenderlo nel processo. Una volta che conosci bene una lingua, impararne altre è generalmente abbastanza facile.
Zach Latta,

Err, no, non lo è. Hai bisogno di un po 'di entrambi o di un corso, ma imparare le lingue è più importante che avere progetti. E no, solo perché conosci C # non significa che conosci C ++. E se fosse facile vedresti regolarmente persone che conoscono più di 6 lingue.
jcora,

1

Dato che alla domanda è già stata data una risposta, vorrei solo riempire alcune buche qua e là ...

Ho anche il timore che, anche se ho familiarità con la programmazione orientata agli oggetti, potrei passare molto tempo su C ++ e diventare molto frustato e confuso, quindi smettere di impararlo e a questo punto ho dimenticato un sacco di XNA e devo imparare tutto dappertutto. Quindi in breve: dovrei imparare il C ++ se dovessi mai desiderare un lavoro di programmazione?

Da dove hai preso l'idea che C ++ sia un terribile linguaggio mostruoso? Non è! In realtà è molto divertente.

Vero, tu possibile avvicinarsi al hardware, che in realtà ha due vantaggi: si impara molto di più su come il computer in realtà funzioni, e in secondo luogo si ha molto più potere nelle vostre mani che con, ad esempio, C #.

Ma ancora una volta, C ++ offre ottimi metodi di astrazione e ha librerie molto utili, quindi non è come se in realtà comunicherai direttamente con la scheda grafica (sicuramente puoi) - verrà semplicemente sottratta.

Conoscere praticamente qualsiasi lingua è molto utile, ha buone probabilità di aumentare le probabilità di essere assunto e sicuramente ti rende un programmatore migliore.

Quando avrai tempo, dai un'occhiata a JavaScript e / o Python. Altri probabilmente suggerirebbero anche Lisp, ma non sono così ben informato quando si tratta di esso, quindi non dirò nulla. Ma potrebbe essere utile verificarlo comunque, penso che sia abbastanza pulito anche con la mia comprensione limitata dei suoi concetti. C'è anche Haskell ma Bleh.

E in quell'arco di oltre 9 anni l'industria del gioco molto probabilmente cambierà molto.

Vero. Ma indovina un po ': tra 9+ anni, utilizzeremo ancora assembly, C ++ e C. Dubito che gli sviluppatori di giochi decideranno improvvisamente di avere risorse sufficienti e smetteranno di spingere i limiti delle macchine. Certo, questa è solo una supposizione, ma tutte quelle lingue sono molto più vecchie di me, quindi penso di avere ragione.

Inoltre, imparando il C ++ ti renderai più semplice la transizione verso un potenziale nuovo linguaggio di medio livello.

Dal momento che tecnicamente non riesco ancora a trovare un lavoro, e probabilmente non potrei ottenere un lavoro di programmazione fino a quando avrò 22 anni o qualcosa del genere (a meno che non sia un lavoratore autonomo).

Sono abbastanza sicuro che ti sbagli qui. Sarai in grado di trovare un lavoro in pochi anni in realtà. Pochi significano 2 secondo le leggi del mio paese, penso. Ma non un lavoro a tempo pieno.

Ci sono ancora opzioni per lavorare quando la scuola è fuori, e se sei bravo, e probabilmente lo sei, allora sicuramente ci sarà una società di sviluppo che vorrebbe assumerti. Una compagnia gamedev? Probabilmente no. Ma non c'è motivo per cui tu voglia davvero lavorare in uno come antipasto, AFAIK potresti essere pagato meglio in una compagnia normale e lavorare su un gioco nel tuo tempo libero.

Inoltre, basta guardare il tuo nome, è quasi come se ti fossi già familiarizzato con la gioia della programmazione C ++!


1

Non sono ancora in affari (ho 17 anni), ma penso che sia davvero d'obbligo scoprire nuove lingue e tecnologie. Mentre hai tempo in questo momento, impara C ++, OpenGL e Java. Padroneggiare questi richiede un po 'di tempo (mi ci sono voluti 5 anni, quindi ho iniziato alla stessa età come sei ora), ma l'esperienza che guadagni è davvero sorprendente.

Una buona cosa da provare è fare un clone di Minecraft in Java e OpenGL. Questo ti darà un'idea di molte tecniche di gioco e ti imparerà MOLTE tecniche di ottimizzazione. Questo è quello che ho fatto all'età di 16 anni. Puoi dare un'occhiata al risultato di questo su: CraftMania . Il motivo per cui raccomando di iniziare con Java è perché è facile programmare. C'è un garbage collector e un'accurata gestione delle eccezioni. Ciò ti consente di imparare OpenGL in modo molto efficiente, senza disturbare tutte le difficoltà che C ++ comporta per uno sviluppatore inesperto.

Una volta che hai la sensazione di padroneggiare Java in combinazione con OpenGL, dai un'occhiata a C ++ e prova a fare alcune cose facili (ancora nessun gioco). Una volta che pensi di capire come viene compilato C ++ e funziona in fase di esecuzione e sai come è organizzata la memoria in C ++, ALLORA dai un'occhiata a SDL per rendere un gioco semplice.

Perché mi concentro su OpenGL? Perché OpenGL funziona su ogni piattaforma tranne XBox360. Questo è: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP, ecc ... Quando si padroneggia solo Xna e DirectX, si è legati a Windows e XBox360. Penso che questo sia un buon motivo per imparare OpenGL e C ++ se vuoi ottenere un lavoro di programmazione nel settore dei giochi.


0

La mia risposta sarebbe che dipende davvero da cosa vuoi fare nel settore dei giochi. Al momento, se vuoi creare giochi console AAA, C ++ è un must. Nessun'altra lingua ti consentirà di sfruttare le risorse limitate che hai su una console.

Per molto tempo il C ++ è stata la lingua franca dell'industria dei giochi, ma con l'avvento di iPhone e Unity è ora possibile creare giochi decenti usando linguaggi come C # e Objective-C. Anche HTML 5 è ora in grado di creare giochi. Il fatto è che ci sono molte opzioni là fuori.

Alla tua età hai ancora molto tempo per imparare e guardare come si sviluppa l'industria. Il mio consiglio per te sarebbe questo: non concentrarti sulla lingua. Concentrati sull'imparare a creare giochi e / o creare mod per i giochi disponibili. Un'idea potrebbe essere quella di ottenere Minecraft e capire come creare mod usando Java. Niente è meglio che vedere che puoi cambiare il modo in cui un gioco si comporta, anche se in realtà non rilasci alcuna mod.

Alla tua età stavo facendo giochi usando Basic (sul Commodore 64). RPG Maker e successivamente l'utilizzo di Java per i giochi mod. Non ho nemmeno toccato C ++ fino a quando avevo circa 18 anni, quindi hai ancora molto tempo per crescere.

Per rispondere alle tue attuali domande:

  • L'apprendimento del C ++ non danneggerà le mie possibilità di ottenere un lavoro di programmazione?

In questa fase non c'è modo di dirlo. Potrebbero essere necessari fino a 10 anni prima di iniziare a cercare un lavoro "reale" e la tecnologia sta avanzando in modo estremamente rapido.

  • Quando riuscirò a trovare un lavoro, C ++ sarà ancora il linguaggio di programmazione "standard di settore"

Vedi la risposta sopra.

  • Se sono uno sviluppatore indipendente, importa davvero se imparo o meno il C ++ e seguo quello che so?

No. Ciò che conta è quanti giochi finisci e rilasci.

  • Dovrei anche iniziare ad impararlo ora visto che ho molti anni prima ancora di riuscire a trovare un lavoro?

Non è mai troppo presto per iniziare l'apprendimento, né è mai troppo tardi.

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.