Antes de começar a estudar desenvolvimentos de games ano passado eu não imaginava o que realmente era um jogo, do ponto de vista da programação. Quem está acostumado com a estrutura de um sistema, não consegue imaginar muito bem que tipo de programa é um jogo sem estudar sua estrutura básica.
Uma das coisas que tenho estudando bastante ultimamente, além da Unity e de C++, é o XNA. Por ser algo gratuito e bem difundido pela Microsoft, é bem fácil de encontrar ajuda na internet sobre qualquer coisa que você quer fazer ou algum erro estranho, principalmente no fórum oficial do XNA Creators Club, além dos exemplos e tutoriais que podem ser encontrados neste site. Mesmo assim, sempre existe aquele detalhe que você não consegue encontrar ou que simplesmente não funciona do jeito que deveria.
Programar um jogo 2D não é algo muito complexo, pois trabalhar com objetos em duas dimensões não exige muitos cálculos. Claro que existem exceções, mas, na maioria dos casos, a programação em um ambiente 2D é bem simples de fazer.
Já me questionei muito isso, pensando em como poderia começar uma carreira de desenvolvedor de games, mesmo que seja indie. Encontrei algumas respostas e muitas dúvidas, que foram exclarecidas pela minha professora de Produção de Games da pós-graduação. Depois de pensar sobre todas as informações que tinha, e levando em conta a indústria de games no Brasil, encontrei três perfis distintos de programadores de games iniciantes, e também indie: