Qual é o conjunto de habilidades básicas que um Programador Profissional de Jogos precisa ter? [fechadas]

11

Eu tenho uma pergunta muito geral que me incomoda, mas quero adicionar alguns detalhes primeiro. Eu sou um programador Java principal. Criei independentemente alguns jogos pequenos em Java por diversão. Agora, quanto mais eu estou estudando o desenvolvimento profissional de jogos, mais fico confuso. Isso ocorre porque, sempre que procuro no Google sobre alguns tópicos de desenvolvimento de jogos ou visito fóruns, etc., encontro sugestões diferentes.

Alguns dirão que C ++ é bom, enquanto outros dirão que JAVA pode ser melhor, enquanto outros ainda dirão que outra linguagem é a linguagem ur, como Python, Lua, UnrealScript, etc. Também é sugerido que se deva ter conhecimento de mecanismos de jogo como Unreal, Torque, Blender, Panda, etc, e conhecimento de OpenGL, AI, detecção de colisão é necessário. Eu até criei um jogo usando o Android SDK.

O que eu quero perguntar é:

  • Qual é o conjunto de habilidades básicas que um Programador Profissional de Jogos precisa ter? É 1 linguagem de programação + 1 linguagem de script + 1 conhecimento de mecanismo de jogo + OpenGL? (Ufa !!)
  • Se eu quiser entrar na indústria de jogos como programador de jogo ou programador de IA, posso entrar com minhas habilidades e portfólio atuais (como mencionado acima)?
  • Aprender uma linguagem de programação é suficiente para o desenvolvimento de jogos?

Qualquer orientação será útil.

GamDroid
fonte

Respostas:

6
  1. Você deve ser proficiente e competente com pelo menos uma linguagem de programação. Isso ajudará você a escolher outros idiomas com mais facilidade. O tipo de trabalho ao qual você está se candidatando depende do idioma que você provavelmente já deve conhecer antes. A maioria dos títulos triplos A lançados no PC e no console provavelmente será desenvolvida em C ++. Aplicativos e jogos para dispositivos móveis, por outro lado, provavelmente usarão Java (Google Android e outros telefones) ou Objective-C (iPhone). Se você der uma olhada nas listagens de empregos dos engenheiros de software nos sites dos desenvolvedores, geralmente ele mencionará a experiência no idioma que você precisa ter. Por exemplo, "Proficiente e experiente em C ++" ou "Experiência com C ++ por pelo menos dois anos". Aprender uma linguagem de script não vai machucá-lo. Isso só vai beneficiar você. Aprender sempre se beneficia, e nunca é demais. Você não precisa ter um conhecimento prático de qualquer mecanismo de jogo, mas se estiver se candidatando a uma empresa que usa esse mecanismo específico, provavelmente o ajudará a retomar. Se você é um especialista no mecanismo Source, mas se aplica ao software de identificação e não sabe nada sobre os mecanismos de tecnologia de identificação, isso não é realmente muito útil (mas o aprendizado benéfico da causa é sempre benéfico).

  2. Se você concluiu os projetos do início ao fim e mostra que sim, acho que isso ajudaria a impulsionar seu currículo. Não tenho certeza sobre uma infinidade de demos de tecnologia. Muitas pessoas parecem estar fazendo demonstrações de tecnologia e não têm nenhum ou poucos projetos de jogos concluídos. Programador de jogabilidade tende a ser um jr. posição de nível, então sim, dependendo do seu currículo, você poderá encontrar um emprego em algum lugar.

  3. Eu acho que conhecer um idioma e ser capaz de usá-lo de maneira eficiente e competente é melhor do que conhecer cinco idiomas e mal saber como usá-los.

Isenção de responsabilidade: nunca trabalhei na indústria, essas são apenas minhas opiniões que foram formadas após a leitura de vários tópicos e artigos sobre trabalhos de programação de jogos, com base no que eu pensava serem os artigos / opiniões mais sensatos que li.

Camarão Crackers
fonte
7
Eu aumentaria o ponto 1 com "conhecimento de uma linguagem de programação que usa ponteiros ". Os ponteiros são um requisito tão fundamental para entender o que está acontecendo com um idioma que nunca ter experiência com eles pode ser uma grande desvantagem ao ir para um idioma que precisa deles. O C ++ é extremamente prevalente para jogos que não são da Web, então é melhor começar por aí.
Tetrad
@ShrimpCrackers Você sabe que pode criar "Bullet Points" reais usando o editor, certo? ;)
Ben
Você deve mostrar pelo menos uma linguagem de programação que não é amplamente usada na indústria, mas que tem alguma peculiaridade interessante: isso comunica que você aprende por causa do interesse pela oportunidade, que é um poliglota que entende diferentes filosofias / abordagens e pode (espero ) mesclam o melhor dos dois mundos.
FXIII
2

Quanto mais eu pesquiso sobre este tópico e converso com desenvolvedores profissionais de jogos, mais acho que isso se resume a algumas coisas. Em nenhuma ordem particular:

  • Capacidade de trabalhar bem juntos em um ambiente de equipe. Construir jogos exige uma quantidade extraordinária de pessoas, apenas ler os créditos em alguns dos jogos AAA hoje em dia leva mais de 10 minutos, se você não pode trabalhar bem com pessoas e seu objetivo é trabalhar com outras pessoas para criar um ótimo jogo, então eu temer que este não seja o setor certo. Essa é uma daquelas habilidades sociais que geralmente são desenvolvidas ao longo do tempo ao trabalhar em projetos com outras pessoas.
  • Encontre o que você gosta de fazer. Isso é meio aberto, mas descubra o que você gosta no desenvolvimento de jogos e quais habilidades você precisa para conseguir isso. Eu sei que essa é a resposta que você está procurando, mas eu poderia recitar todas as habilidades necessárias para ser um desenvolvedor de mecanismos, desenvolvedor gráfico ou desenvolvedor de jogos, mas você pode encontrar muitas dessas informações facilmente online. Suas habilidades precisarão se aproximar muito daquilo em que você está interessado. Ex: Não se preocupe em conhecer as entradas e saídas do OpenGL e DirectX se você estiver realmente interessado no desenvolvimento do servidor e vice-versa.
  • Seja proficiente em um idioma de baixo nível Com o que foi dito acima, concordo com os outros pôsteres de que um idioma de baixo nível é uma boa idéia para aprender. Sei que, quando passei do C # para o C ++, aprendi muito sobre como a mágica do C # funciona. Esse é um conhecimento que fornece uma boa compreensão de como se comunicar efetivamente com um computador, independentemente do idioma.
  • Entenda a arquitetura de computadores - Com isso, não quero dizer que você deve ter um diploma em CE ou EE para realmente entender todas as partes de uma arquitetura de computadores, mas conhecer o básico de como a memória, a CPU e a GPU funcionam. Independentemente da área de desenvolvimento do jogo, será benéfico ter pelo menos uma idéia de como elas funcionam. Se você quiser pular para a programação de gráficos ou programação de mecanismo, precisará entender ainda mais neste espaço.
Kyle C
fonte
5
você realmente sentir velho quando as pessoas chamam C ++ uma linguagem de baixo nível
dreta
@dreta Eu não sou tão velho e também não o vejo como uma linguagem de baixo nível. Provavelmente tem a ver com C ++ sendo o primeiro idioma que eu usei.
Paul Manta
2

Depende muito dos seus objetivos de carreira. Se tudo o que você quer é "um trabalho para fazer jogos" antes de executar os 5,5 anos necessários e esgotar-se e sair, acho que você olha as vagas de nível básico e procura o que elas querem, aprende e se inscreve. Simples. (Mas então, se sua pergunta realmente se resume a "qual é o esforço mínimo que preciso fazer para conseguir um emprego?", A resposta é "se você fizer o mínimo de esforço, conseguirá o emprego mínimo!" ")

Mas a longo prazo, acho que não se trata tanto de conhecer um número de idiomas ou de aprender um idioma específico. Os idiomas mudam - há dez anos, ninguém usava Objective-C ou XNA ou C # ou AS3 e, daqui a dez anos, tenha certeza de que qualquer idioma que você aprende hoje estará obsoleto de qualquer maneira.

Portanto, uma coisa para se preparar para o futuro é não apenas "aprender um idioma", mas aprender COMO aprender novos idiomas. Depois de se tornar proficiente em três idiomas, você descobrirá que escolher um novo não é tão ruim. De qualquer forma, a maioria dos componentes principais é a mesma - todo idioma possui variáveis, matrizes, loops, condicionais e assim por diante, portanto, trata-se apenas de aprender a sintaxe.

A outra metade disso é entender os conceitos principais de programação e ciência da computação. Entenda o gerenciamento de memória, ponteiros, recursão e assim por diante. Se você entende os conceitos, pode aplicá-los em praticamente qualquer idioma.

Se você deseja tornar-se mais comercializável, aprenda uma especialidade de programação relevante para jogos, o que for do seu interesse ... IA, bancos de dados, redes, ferramentas, o que for.

Ian Schreiber
fonte
1

Há outra habilidade muito importante necessária que parece ser um pouco esquecida. Você precisa saber como se encaixar e trabalhar com uma equipe de pessoas, indo de outros desenvolvedores de jogos, a designers, gerentes de projetos e outras coisas. Não é uma habilidade técnica, mas ainda é muito importante, pois você pode ser o melhor desenvolvedor da casa e, se não conseguir se relacionar com as pessoas, fazer jogos grandes será um problema!

Além disso, como o ShrimpCrackers conhecendo bem um idioma é melhor do que conhecer aproximadamente cinco idiomas, e entender o que acontece sob o capô daquele idioma em que você estuda é ainda melhor, quanto aos jogos, você precisa saber como obter o melhor desempenho fora do idioma.

Por último, mas não menos importante, sabendo um pouco sobre hardware, a GPU em particular não fará mal!

dotminic
fonte
0

Para a programação de jogos sociais, existem as principais habilidades necessárias.

  1. Script de ação do programa (você pode usar um ambiente elipse e um svn), usado para o front end do jogo (a página da web)

  2. O programa java (que também pode ser feito no eclipse e use svn), é usado para ações do lado do servidor a serem executadas nas solicitações da página da web.

mariana soffer
fonte