Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Formação para desenvolvimento de jogos

Olá pessoal, tudo bem?

Sou novo aqui na plataforma e gostaria de saber qual o melhor caminho para aprender a desenvolver jogos e começar a trabalhar nesse mercado.

Já estudei programação durante uns 3 meses sozinho antes na linguagem de Python, já entendo os princípios básicos, não sou completamente novo nessa área.

Quem puder deixar passo a passo, ficarei agradecido!!

2 respostas
solução!

Oi, vou tentar responder o melhor que sei e não leve a mal algo que eu diga tenho tendência de ser muito direto.

Alguns pontos uteis:

  • Linguagens de programação são ferramentas, ficar preso a uma é o maior erro que faz. Foque nas bases fundamentais, que são universais. Tecnologia vai e vem, fundamentos base se mantêm.
  • E quando se fala em conhecimento, não é tipo " Ah sim conheço o Zé da esquina ali que dei bom dia uma vez 6 anos atrás". Mas, realmente conhecer e usar. Se precisar cair de paraquedas num projeto vc começa logo a põr a mão na massa n não ficar ali paralisado a olhar para o ecrã perguntado o que cada coisa é.
  • Universidade. Sim, sim, "ah e tal universidade n é necessário". Tudo bom e bonito. Mas vida real não é rede social.

Enfim. Desenvolvimento de jogos é um mercado muito competitivo e requer bom conhecimento de diversos tópicos. Algumas competências básicas caso queira carreira:

  1. Programação com linguagem C/C++ e a certo ponto C#, com menssões honorárias de Lua e Java, mas C/C++ é a base da área.
  2. Ter um profundo conhecimento de programação insira lista enorme de conhecimento aqui. 3 meses de python não é nada. Não leve a mal, apenas é o que é.
  3. Matemática. Algebra linear, Cálculo, por ai. Qual area da matemática usa mais vai depender do que está fazendo. Por exemplos programar shaders vai requerer bom conhecimento de matrizes. Simulação fisica requer cálculo etc....
  4. Um ponto extra sobre matemática. Lógica usada em progrmação é muiyto semelhante a Algebra. Se tem alguma matéria que nunca será desperdicio estudar mesmo no tempo livre sem compromisso com curso, é Algebra.
  5. Ter conhecimento profundo de uma game engine popular mercado Unity ou Unreal.
  6. Saber programar uma engine do zero ou ter conhecimento para criar uma e trabalhar com engines criadas inhouse pelos estudios. Maioria mesmo indies preferem algo criado do que usar Unity etc, por questões legais e burocráticas que não valem a pena mencionar aqui.

Mas isto é "competências básicas", trabalhar com desnvolvimento de jogos involve muita coisa não mencionada aqui. Isto é apenas uma lista resumida do que é esperado vc saber. Ao menos um ideal né. Boa noticia e obvia. Cargo de entrada não precisa de assim tanta coisa quanto eu fiz parecer, embora tb n é nada do tipo "hurr durr sei html css e js quero emprego". Leve as coisas com calma e como um hobby, mesmo que um hobby sério. E vá estudando uma coisa de cada vez sem pressas. Lendo a fase em que vc se encontra, penso que poderia seguir o seguinte para ter um norte do que fazer:

  1. Aprofunde seu conhecimento de programação e ciência de computação : https://github.com/Universidade-Livre/ciencia-da-computacao
  2. Linguagens de programação são ferramentas, ficar preso a uma é maior erro que faz. Digo isto para não ter medo de largar Python e expandir seu conhecimento. Foque nas bases fundamentais. Tente (com ajuda desse link acima) expandir para Java tb.
  3. Usando python que já tem algum conhecimento, comece projetos por conta, NÃO COPIE TUTORIAIS E VIDEOS E SAIA DIZENDO QUE SABE FAZER . Isto é a parte mais complicada onde muitos ficam com bloqueio mental sem saber o que fazer. Já que ao menos conhece Python, pode manter o Python e alguma lib ou framework como Pygame e seguir a progressão mais simples de ao inicio pode seguir tutorial de fazer Pong. Mas depois larga tutoriais, e com conhecimento do pong tenta fazer Snake. Depois com conhecimento de Snake e Pong, faz copia do Space Invaders. Depois Copia de Asteroids. E por fim, copia primeiro nivel do Super Mario. Dá apra entender que esta lista segue um sequência onde os elementos d eprojetos passados, são a base de novos projetos, apenas precisando de adaptar o conhecimento para resolver problemas um pouco mais complexos. E claro, pesquise documentação, não caia de volta no buraco de copiar tutoriais.
  4. Depois de ter concluido por conta algo de complexidade semelhante a Super Mario. Pode tentar uma game engine como Unity. Se estudou o que mandei e/ou segue uma trilha de estudos gerais já vai ter contato com Java. Java e C# são semelhantes o suficiente que o que vc aprende de Java se aplica a C# apenas troca a syntax. Logo Unity é escolha mais fácil.
  5. Se não quer uma game engine, e prefere investir mais no conhecimento técnico geral. Aprenda uma framework que não seja para Python. Uns exemplos: C/C++ tem https://www.raylib.com/ C# https://www.monogame.net/ Java https://libgdx.com/ Pode aplicar mesma ideia de seguir uma seqência de projetos com conhecimento partilhado como a que usei de exemplo acima para aprender qualquer coisa nova.

A partir daqui fica tudo em aberto. Caso realmente queira carreira na area, tente ir para Universidade de CC ou Engenharia seria a melhor opção. Mas novamente, pod elevar as coisas devagar e estudar por conta até ter maior conhecimento e pode tomar uma boa decisão sem tercerizar suas escolhas de vida.

Esclareceu bastante coisas, principalmente a parte de matemática, muito obrigado pelas dicas!!