Pergunta

Eu sou um programador amador com um aperto justo de Python e atualmente estou aprendendo C. Recentemente eu estava conversando com um colega que também quer aprender a programar. No seu caso, ele quer aprender C ++ como um caminho para a programação de jogos do Windows usando DirectX. Pessoalmente, sinto-me mergulhar em linha reta em C ++ como sua primeira língua é um pouco demais - é difícil manter o suficiente motivado em uma linguagem mais fácil, e eu acho que é melhor para aprender outro idioma para obter a sua cabeça redonda a maioria dos conceitos básicos, em seguida, entrar em algo como C ++.

Eu encontrei Python trabalhou bem como a minha primeira língua que eu estou mais interessado em rede e programação web em plataformas Linux / Unix, mas para alguém interessado principalmente no jogo do Windows programação Eu estava pensando C # pode ser uma escolha melhor que pôde aprender a utilizar o Visual C # Express Edition e XNA, em seguida, passar para o Visual C ++ quando ele estiver pronto para começar a aprender C ++ e, portanto, já estar em um ambiente familiar. Eu acho que o gerenciamento de memória é uma responsabilidade muito grande, e C #, pelo menos, alças que para que ele possa colocar isso fora até que ele começa a aprender C ++.

O que os outros pensam de C ++ como primeira linguagem de programação para este tipo de aplicação? Devo recomendar ele ir para C #, em vez?

Foi útil?

Solução

C ++ deve ser fino. Eu acho que ele é melhor fora de aprendizagem sobre gerenciamento de memória, ponteiros, etc. antes de saltar até C # como ele vai entender como o programa está funcionando melhor. Caso contrário, ele só vai ver a memória como sendo magia e o coletor de lixo não terá nenhum significado real. É sempre bom ter uma sólida compreensão subjacente línguas (C, C ++, montagem, etc.) para produzir o melhor código.

Outras dicas

C ++ é a principal língua utilizada para a maioria dos títulos de jogos "sérios". Se a programação para um grande estúdio de jogos, em seguida, ele precisa saber os pequenos pedaços sujos de C ++.

Começando com C ++ pode ser um pouco demais para um novato completo. Eu recomendaria C como um excelente ponto de partida. Você se familiarizar com os conceitos de gerenciamento de memória e as outras coisas baixo nível antes de adicionar a complexidade do C ++.

Uma vez que C # é o código gerenciado, ele não estaria ganhando as idéias de gestão de memória baixa nível. Isso não vai servi-lo bem ao ter que lidar com C ++. Neste caso, começando mais perto do metal vai ajudá-lo a longo prazo.

C ++ programação de jogos é grande. Mas a menos que você gosta de dor total enquanto você está aprendendo a programar, você pode olhar para começando com XNA. Isso permitirá que você para trabalhar no conteúdo do jogo e lógica em vez de lutar com o seu código motor.

Agora, se você gosta de dor ir a DirectX e C ++ rota para começar.

Eu acho que é melhor para aprender completamente uma linguagem como Java ou C # antes de assumir C ++. A razão de eu dizer isso é porque você pode facilmente se atolar nos detalhes e meandros do C ++.

Lutei com C ++ e fora (como um hobby) por alguns anos, então pelo Uni eu fui ensinado Java, parou de fazer qualquer C ++, tenho um trabalho a fazer Java por um par de anos, então se mudou para dev C ++. Peguei tudo muito rapidamente, porque eu já sabia o que padrões e conceitos que eu queria aplicar e era apenas uma questão de aprender a sintaxe e estranhezas e se acostumar ponteiros novamente. Eu só tinha de aprender e não o porquê. Levando em C ++ como primeira língua principal é aprender como e por que, ao mesmo tempo e pode ser muito confuso!

XNA é uma boa sugestão.

Python é bom em programação de jogos. Consulte i-quero-a-aprender-jogo -que-language -Desenvolvimento-deve-i-use . Considerar aprender Pygame .

Pygame é um conjunto de módulos Python projetados para jogos de escrita. Pygame adiciona funcionalidade no topo da excelente biblioteca SDL. Isso permite que você criar jogos com todos os recursos e programas multimídia na linguagem Python. Pygame é altamente portátil e funciona em quase todas as plataformas e sistemas operacionais. -se Pygame foi baixado milhões de vezes, e teve milhões de visitas ao seu site.

Se ele quer entrar na indústria, em seguida, sabendo C ++ é vital, como a maioria dos motores de jogo usam C ++. (Eu também desenvolvedor deve em algum ponto C magra ou C ++)
No entanto, se ele quer escrever jogos (como no acabamento escrevendo um jogo), então C ++ pode não ser o caminho a percorrer. É muito complexo e tem um monte de armadilhas que o tornam uma linguagem de desenvolvimento lento. Não é apenas o gerenciamento de memória, mas coisas como os erros de compilação relacionado STL horríveis, etc, que tornam muito difícil fazer qualquer coisa quando a primeira tentativa para o programa.
Olhando para algo como C # ou Python seria uma opção melhor, como eles são muito línguas menos complexas e cada um tem um bom jogo de biblioteca de.

Se ele decide que C ++ é o caminho certo para ir, então eu recomendaria pelo menos uma biblioteca de renderização. Algo como Ogre3D no mínimo. A razão para isso é abordado neste artigo Escrever jogos não motores . Ao escrever (ou tentando escrever) um motor de uma API de base vai ser uma boa experiência, é improvável que o jogo vai ter acabado.

Algo que você tem que considerar é existente SDK do, você provavelmente não quer programa tudo si mesmo. Por exemplo, existem muito bons motores 3D com diferentes tipos de licenciamento que podem servi-lo bem.

Então você deve verificar OutOs bibliotecas existentes e SDK do e poucas línguas que você quer ficar com juntos ao mesmo tempo. Adaptar-se a C ++ ou C # que não é difícil, a primeira é mais rigorosa e mais exigente enquanto lhe dá mais amplo controle sobre a memória, este último permite que você se concentrar na área de desenvolvimento principal, mas leva o gerenciamento de memória no comando (principalmente), que significa que você pode ter problemas em tempo real.

No final do dia, o que ajuda você pode começar a construir a sua aplicação será invariavelmente sobrelevar as pequenas diferenças entre essas linguagens OO (até certo ponto).

Existem muitos motores de jogo, a maioria são listados desta página . De particular interesse são, no mundo livre:

pacotes não-livres incluem Unidade , e outros.

Se você não quiser qualquer um desses motores, ainda há muito boas bibliotecas como Qt para C ++, que permite scripting - embora não diretamente Python, você teria que incorporá-lo a si mesmo -. e outros para C #, mas a lista pode ficar muito longa

Normalmente, as pessoas funcionar fora do vapor antes de completar seu primeiro jogo. Portanto, a menos que seu amigo tem um histórico de ser obstinadamente determinado, eu recomendo a opção mais alto nível disponível. Se você está escolhendo entre C ++ e C #, que seria C #.

Eu preferiria XNA e C # para uma rápida e indolor introduction.I usaria C ++, e uma biblioteca como DirectX, para programação de jogos depois de ter alguma experiência na topic.Most dos jogos mais bem sucedidos têm escritos em C ++.

Se o seu objetivo é se divertir, e realmente terminar jogos si mesmo (ou em pequenas equipes) que são relativamente pequenos em escopo, então eu digo C # e XNA.

Se o seu objetivo é trabalhar na indústria, no super-grandes jogos orçamento com equipes gigantes ... Então C ++ ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top