Introdução ao desenvolvimento de jogos: O XNA é uma boa escolha? [fechadas]

16

Leitor de longa data; Asker pela primeira vez:

Eu queria fazer parte da indústria de jogos por um tempo, mas meu currículo é 100% todo trabalho de back-end.

Sou um forte desenvolvedor de C ++ / C #, sem experiência prática em desenvolvimento de jogos. Minha experiência de back-end me torna um bom candidato para o trabalho de back-end (já que muitos jogos hoje em dia têm aspectos baseados em serviços), mas é um campo hiper competitivo e estou procurando maneiras de se destacar.

Como ninguém vai me procurar e me dar um emprego na indústria de jogos, eu decidi tentar meu chapéu escrevendo meus próprios jogos.

Entendo por que C e C ++ são as linguagens defacto no desenvolvimento de jogos, mas eu realmente gosto da filosofia por trás do XNA. Como afirmei anteriormente, sou especialista em C # e C ++, mas se bem me lembro, o XNA funciona apenas em linguagens compatíveis com CLR (talvez apenas em C #).

O foco no desenvolvimento de jogos usando XNA e C # em vez de C ++ prejudicará minhas chances de conseguir um emprego na indústria de jogos? O VB tem uma reputação injusta de não ser uma linguagem de programação real, e os programadores de VB são pegos nesse estigma. É o caso do uso de C # em uma comunidade que consiste principalmente de desenvolvedores de C ++?

Ou os fundamentos do desenvolvimento de jogos que podem ser aprendidos com a escrita de jogos, transcendem a linguagem e as tecnologias?

Alan
fonte

Respostas:

15

Eu não acho que isso prejudicaria suas chances. C # está se tornando mais popular, especialmente com XNA e SlimDX. Eu usei C # e C ++, e devo dizer que preferi o XNA significativamente. Era mais limpo trabalhar, mas não tanto que parecia que você não estava fazendo nada.

Na parte da carreira, você gostaria de mencionar que está acostumado ao XNA, embora eu não ache que isso prejudicaria suas chances. De fato, devido à maneira como é mais fácil de usar, as partes do seu portfólio podem ser melhores.

E os conceitos permanecem os mesmos, apenas a sintaxe se torna diferente. A menos que você esteja indo para um trabalho gráfico de baixo nível, o layout do que você precisa fazer seria o mesmo (não escrevendo código de carregamento do shader ou caches de malha, em vez disso, basta carregá-lo).

O Pato Comunista
fonte
+1: Boa resposta. Você acha que há uma expectativa de que sua carteira de peças deve ser melhor desde que você usou XNA? Por exemplo, em uma das minhas aulas de hardware, tivemos a opção de escrever nosso projeto de design na montagem HC12 ou usar C, mas com C, nosso projeto teve que ser significativamente mais interessante devido à facilidade de programação em C sobre montagem.
Alan
Eu realmente não acho que haveria. É uma ferramenta para uma solução, e a razão pela qual digo que o produto final seria 'melhor' é porque há menos tempo gasto na renderização do design e mais tempo gasto no trabalho real do jogo.
The Duck comunista
A menos que você esteja procurando especificamente um trabalho gráfico, a maioria das pessoas não procurará toneladas de polimento gráfico em uma peça do portfólio. Faça algo que pareça mais atraente do que bonito. A esse respeito, XNA vs. C não importa realmente, desde que seja divertido.
Codigoanger
Embora se você quer que fique bonito, usar um mecanismo de renderização como o Sunburn sobre o XNA pode ajudar bastante!
Chris Ridenour
10

Foi minha experiência que os mesmos conceitos usados ​​no XNA são transferidos entre diferentes bibliotecas e linguagens. Consegui pular efetivamente entre diferentes tecnologias de jogos e comecei com o XNA.

Trabalhar com C # e XNA me ajudou a manter o foco em um objetivo específico de aprendizado ("O que faz um jogo funcionar?"), Em vez de misturar objetivos ("Como aprendo X e faço um jogo ao mesmo tempo?"). Descobri que sempre que combinava metas, terminava com resultados bastante abismais. Começar na minha zona de conforto e me apoiar no XNA ajudou a fazer as coisas acontecerem.

Gabriel Isenberg
fonte
Eu realmente gosto da sua resposta. Com todas as linguagens de programação com estruturas semelhantes (objetos, estruturas de controle etc.), acho que você deve aprender os conceitos do que deseja fazer e do que se sente confortável. As principais diferenças nesse ponto, movendo-se de um idioma para outro, devem ser sintaxe, componentes principais e APIs.
John
3

Se você pode fazer um jogo divertido e é realmente um engenheiro talentoso, não precisa se preocupar com nada. Ninguém vai te enganar por como você fez o seu jogo.

Os jogos não são mantidos da mesma forma que muitos outros produtos de software. É feito menos código de descarte do que na indústria de efeitos especiais, mas ainda podemos escapar com muitos hacks por conveniência.

Apenas faça o trabalho. No final das contas, é disso que se trata o desenvolvimento de jogos.

Jonathan Fischoff
fonte
3

Foi-me dito que:

  1. O conteúdo é significativamente mais importante do que as ferramentas usadas com algumas exceções.

  2. Embora a base da maioria dos jogos maiores seja C ++, é porque as ferramentas são desenvolvidas em C ++. Se você não estiver codificando as ferramentas, é possível que você não esteja programando em C ++ de qualquer maneira.

Editar: Além disso, ter um projeto de demonstração concluído em qualquer coisa (C #, etc.) é significativamente melhor do que ter algo incompleto em uma linguagem mais difícil (C ++, etc.).

acmshar
fonte