O C ++ é necessário para saber se eu pretendo conseguir um emprego na indústria de jogos? Estou extremamente familiarizado com C # e tenho um domínio básico de criação de jogos 2D no XNA 4.0. No momento, tenho apenas 13 anos e adoro fazer jogos, e espero um dia conseguir um emprego em programação de jogos. Ouvi muitas pessoas dizerem que C ++ é o 'padrão da indústria' e que isso prejudicará sua carreira sem saber. Também estou tentando segmentar mais plataformas do que apenas janelas e estou ciente do Monogamemas, por algum motivo, estou tendo muitos problemas com os modelos do visual studio e encontro muitos bugs com o monogame. Desde que eu tecnicamente ainda não consegui um emprego, e provavelmente não consegui um emprego em programação até que eu tenha 22 anos ou algo assim (a menos que eu seja autônomo). E nesse período de mais de 9 anos, a indústria de jogos provavelmente mudará muito. Então, aqui estão algumas perguntas
- O aprendizado de C ++ não prejudicará minhas chances de conseguir um emprego em programação?
- Quando conseguir um emprego, o C ++ continuará sendo a linguagem de programação 'padrão do setor'
- Se eu sou um desenvolvedor independente, isso realmente importa se eu aprendo C ++ ou não e continuo com o que sei?
- Devo começar a aprender agora, já que tenho muitos anos antes de conseguir um emprego?
Também estou com uma preocupação de que, embora eu esteja familiarizado com a programação orientada a objetos, eu possa gastar muito tempo em C ++ e ficar muito frustrado e confuso, depois de parar de aprender e, a essa altura, já esqueci muitos XNA e Eu tenho que aprender tudo. Em resumo: devo aprender C ++ se quiser um trabalho de programação?
ATUALIZAR
Obrigado a todos por suas respostas e sugestões. Recentemente eu peguei SFML e C ++ e está indo muito bem. Estou pegando o jeito do C ++ e começando a abrir meus olhos para não me preocupar em aprender coisas novas, porque fui capaz de transferir todo o meu conhecimento em C # para facilitar o aprendizado do C ++. Obrigado a todos mais uma vez.
fonte
Respostas:
Quero me concentrar na sua terceira pergunta, porque ela está dentro da minha área de conhecimento (desenvolvedor independente):
Não escrevo uma linha de código C ++ há muitos e muitos anos. E, de fato, eu esqueci muitos detalhes detalhados (e em C ++ existem muitos ). Eu faço a maior parte do meu trabalho em c #. E você absolutamente não precisa aprender C ++.
No entanto , as habilidades que adquiri com o aprendizado de C ++ - particularmente as coisas de baixo nível, especialmente como a memória e os indicadores funcionam - se mostraram inestimáveis.
Além disso, houve várias ocasiões em que tive que ler o código C ++ de outras pessoas. Se você sabe programar em C # ou Java, provavelmente pode adivinhar o que está acontecendo - mas saber é muito melhor.
Minha recomendação para você , especificamente, é aprender C ++ agora. Na sua idade, você tem tempo de sobra para aprender. Dessa forma, você não precisará se preocupar em pegar C ++ enquanto estiver tentando desenvolver um jogo ou conseguir um emprego.
Não se preocupe em esquecer os detalhes, se você parar de usar C ++ por algum motivo (ou XNA ou qualquer outra coisa). Os conceitos são mais importantes. E você poderá recuperar os detalhes facilmente, se necessário.
Como suas outras perguntas sugeriram - não sabemos como será o setor em uma década. Embora eu ache que o C ++ ainda esteja em uso bastante comum. Falando agora - conhecer C ++ proporcionará um aumento substancial na empregabilidade - mesmo em uma loja que não seja C ++.
fonte
Se você quer ser um programador de jogos, provavelmente não pode evitar aprender C ++. Se você quer um emprego diferente na indústria de jogos, como produtor ou artista, não precisa de C ++.
C ++ é difícil. Muitas pessoas não aprendem até a faculdade. Você tem muito tempo. Trabalhe com outras linguagens para se familiarizar com os conceitos básicos de programação. Comece pequeno e dê um passo de cada vez.
fonte
Você ainda tem muito tempo para aprender, por isso não acho que deva se preocupar muito com o idioma que usa, mas vou declarar algumas coisas que podem ser úteis:
C ++ é uma linguagem enquanto XNA é uma estrutura. O XNA não será mais atualizado pela Microsoft, por isso acho incrivelmente difícil imaginar que ele será usado daqui a nove anos em uma capacidade séria. O C ++, por outro lado, existe desde sempre, tem um comitê ativo de padrões comprometido em aprimorá-lo e fornece aos desenvolvedores tanto controle sobre o hardware que seria necessário um grande salto no poder do hardware para tornar esse controle desnecessário e, assim, permitir que outro idioma o substituísse. como padrão padrão para jogos de alto desempenho.
Aprender os conceitos é a parte importante, não a linguagem na qual eles são implementados. Você pode "aprender" uma nova linguagem rapidamente, se já entender seus princípios básicos.
O C ++ exigiria que você aprendesse sobre ponteiros e problemas de memória em um nível muito mais profundo do que o C #, portanto, recomendo que você o aprenda em algum momento, independentemente de seu uso na indústria.
Sua preocupação em esquecer as coisas provavelmente não tem fundamento. É verdade que você esquecerá as coisas, mas as especificidades não são realmente a parte importante. Você não vai esquecer como criar um jogo alternando idiomas.
Você parece ter razões para não aprender C ++, acho que você está apenas tentando racionalizar sua vontade de não aprender algo novo.
Pense desta maneira: se você aprender C ++ e ele não for usado no futuro, você terá muitos anos para aprender o que é e eu garanto que ter aprendido C ++ o ajudará a fazer isso. Se você esquecer todo o seu XNA e não conseguir aprender C ++, seria melhor descobrir isso e seguir em frente do que se preocupar com as possibilidades. Eu não acho que ambos os casos sejam muito prováveis.
fonte
Conselho geral: não se concentre no que você precisa aprender ou no que deveria aprender. Apenas faça alguma coisa.
Para responder sua pergunta específica, a Microsoft não estará mais atualizando o XNA, portanto, é provável que não exista por muito mais tempo. O C ++ é um padrão da indústria bem estabelecido e não sairá tão cedo. Se você deseja trabalhar em jogos AAA, então sim. Experiência em C ++ será necessária.
fonte
Como a pergunta já foi respondida, deixe-me preencher alguns buracos aqui e ali ...
De onde você tirou essa idéia de que o C ++ era uma linguagem terrível para monstros? Não é! É realmente muito divertido.
É verdade que você pode se aproximar do hardware, que na verdade tem dois benefícios: você aprende muito mais sobre como o computador realmente funciona e, em segundo lugar, tem muito mais poder em suas mãos do que com, digamos, C #.
Mas, novamente, o C ++ apresenta ótimos métodos de abstração e possui bibliotecas muito úteis, portanto, não é como se você estivesse realmente se comunicando diretamente com a placa gráfica (você definitivamente pode) - será apenas abstraído.
Conhecer praticamente qualquer idioma é muito útil, tem uma boa chance de aumentar sua probabilidade de ser contratado e definitivamente faz de você um programador melhor.
Quando tiver tempo, consulte JavaScript e / ou Python. Outros provavelmente sugeririam o Lisp também, mas eu não sou tão conhecedor disso, então não vou dizer nada. Mas pode ser útil dar uma olhada de qualquer maneira, acho que é bem legal, mesmo com minha compreensão limitada de seus conceitos. Há Haskell também, mas borre.
Verdade. Mas adivinhe: em mais de 9 anos, ainda usaremos assembly, C ++ e C. Duvido que os desenvolvedores de jogos subitamente decidam que possuem recursos suficientes e parem de forçar os limites das máquinas. Claro, isso é apenas um palpite, mas todos esses idiomas são muito mais antigos que eu, então acho que estou certo.
Além disso, ao aprender C ++, você facilitará a transição para uma nova potencial linguagem de nível intermediário.
Tenho certeza que você está errado aqui. Você conseguirá um emprego daqui a alguns anos. Pouco significado 2 pelas leis do meu país, eu acho. Mas não é um trabalho de tempo integral.
Ainda existem opções para trabalhar quando a escola estiver fora, e se você é bom e provavelmente é, certamente haverá uma empresa de desenvolvimento que deseja contratar você. Uma empresa gamedev? Provavelmente não. Mas não há motivo para que você realmente queira trabalhar em um como iniciante, no AFAIK você pode ser pago melhor em uma empresa comum e trabalhar em um jogo no seu tempo livre.
Além disso, basta olhar para o seu nome, é quase como se você já estivesse familiarizado com a alegria da programação em C ++!
fonte
Ainda não estou no negócio (tenho 17 anos), mas acho que é realmente necessário descobrir novas linguagens e tecnologias. Enquanto você tem tempo agora, aprenda C ++, OpenGL e Java. Dominar isso leva algum tempo (levei 5 anos, então comecei na mesma idade que você tem agora), mas a experiência que você ganha é realmente incrível.
Uma boa coisa a tentar é criar um clone do Minecraft em Java e OpenGL. Isso lhe dará uma visão de várias técnicas de gamedev e aprenderá MUITAS técnicas de otimização. Foi isso que fiz aos 16 anos. Você pode dar uma olhada no resultado disso em: CraftMania . Por que eu recomendo iniciar com Java é porque é fácil programar. Existe um coletor de lixo e um tratamento de exceção limpo. Isso permite que você aprenda OpenGL com muita eficiência, sem incomodar todas as dificuldades que o C ++ vem para um desenvolvedor inexperiente.
Quando você sentir que domina o Java em combinação com o OpenGL, dê uma olhada no C ++ e tente fazer algumas coisas fáceis (ainda não há jogos). Depois de pensar que você entende como o C ++ está sendo compilado e funciona em tempo de execução e sabe como a memória é organizada em C ++, ENTÃO, observe o SDL para criar um jogo fácil.
Por que eu me concentro no OpenGL? Porque o OpenGL é executado em todas as plataformas, exceto no XBox360. Isto é: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP, etc ... Quando você domina apenas o Xna e o DirectX, você está vinculado ao Windows e ao XBox360. Eu acho que esse é um bom motivo para aprender OpenGL e C ++ se você deseja obter um emprego de programação na indústria de jogos.
fonte
Minha resposta seria que realmente depende do que você deseja fazer na indústria de jogos. No momento, se você quiser criar jogos de console AAA, C ++ é uma obrigação. Nenhum outro idioma permitirá que você aproveite os recursos limitados que você possui em um console.
Por um longo tempo, o C ++ foi a língua franca da indústria de jogos, mas com o advento do iPhone e do Unity agora é possível criar jogos decentes usando linguagens como C # e Objective-C. Até o HTML 5 é capaz de criar jogos agora. O simples fato é que existem muitas opções por aí.
Na sua idade, você ainda tem muito tempo para aprender e observar como o setor se desenvolve. Meu conselho para você seria o seguinte: não se concentre no idioma. Concentre-se em aprender como criar jogos e / ou fazer mods para jogos que estão por aí. Uma idéia pode ser obter o Minecraft e descobrir como fazer mods usando Java. Nada é melhor do que ver que você pode mudar a maneira como um jogo se comporta, mesmo que você não libere nenhum mod.
Na sua idade, eu estava fazendo jogos usando o Basic (no Commodore 64). RPG Maker e, posteriormente, usando Java para modificar jogos. Eu nem toquei em C ++ até os 18 anos, então você ainda tem muito tempo para crescer.
Para responder às suas perguntas reais:
Nesta fase, não há como dizer. Pode levar até 10 anos para você começar a procurar um emprego 'real' e a tecnologia avança extremamente rápido.
Veja a resposta acima.
Não. O que importa é quantos jogos você finaliza e lança.
Nunca é cedo para começar a aprender, nem é tarde demais.
fonte