São muitas opções de linguagens
São muitas opções de linguagens

Série: Como escolher uma linguagem de programação para começar a estudar Desenvolvimento de Jogos em 2018? PARTE 1/3


Júlio Rodrigues ·

UPDATE: Inclusão de link para parte 2 da série.

Esta é facilmente a dúvida mais comum entre as pessoas que estão ingressando no mundo da programação e em particular no desenvolvimento de jogos. E não é por menos, para quem ainda não programa as linguagem parecem todas iguais, elas são crípticas, misteriosas e folclóricas.

Folclóricas? Por exemplo, é muito comum encontrar conselhos na internet de que você deve estudar C++ caso queira se tornar um programador de jogos de alta performance e sucesso no mercado.

Um conselho que fez muito sentido até a última década, nos tempos de hoje já não faz mais tanto sentido assim, principalmente porque C++ é uma linguagem extremamente técnica, projetada para profissionais que entendem muito bem as vantagens e os perigos do modelo computacional tradicional, digo isso mesmo sabendo que a cada ano que passa a linguagem vai absorvendo mais e mais recursos de outros paradigmas como o funcional.

Estes são os critérios os critérios que você deve buscar nas linguagens de acordo com o uso que você quer fazer delas no âmbito de jogos (mas não exclusivamente).

C1 — Repositório com bibliotecas úteis e modernas

Pra mim a grande dica ao observar uma linguagem de programação é isto aqui. Uma andorinha só não faz verão, e uma biblioteca só não faz jogão.

O número de dependências que uma aplicação de nível comercial tem é absurdo, e se você tiver dificuldade de buscar e usar essas bibliotecas, sinto lhe dizer que você vai perder um tempo gigantesco e vai sofrer bastante para resolver conflitos.

C2 — Compatibilidade entre diversos sistemas operacionais e plataformas

Você liga que o seu jogo rode apenas em uma única plataforma? Ou lhe é interessante a ideia de poder colocar o jogo em várias plataformas? A habilidade de compilar/executar o seu código em diversas plataformas é essencial.

C3 — Performance nua e crua

É sabido que jogos podem ser aplicações bem pesadas. Pode não ser muito interessante insistir em uma linguagem de programação que é lenta e de comunidade voltada para aplicações de servidor (ruby) para se fazer um jogo.

Mas, apesar de dito isto, sempre vão existir pessoas brilhantes para contestar estes fatos utilizando as mais diversas linguagens para fazer os mais diversos tipos de jogos.

Não é porque é possível e que existem exemplos de sucesso que devemos fazer.

C4 — Base de usuários

Assim como a questão das bibliotecas é de suma importância, a base de usuários, de preferência ascendente, é também um importante fator ao se escolher uma linguagem de programação.

Além de somente o número de pessoas é também preciso avaliar se esta comunidade é colaborativa, se existem pessoas debatendo sobre os problemas, ajudando umas as outras.

C5 — Vagas de emprego

E como ninguém quer estudar tudo isto à toa não podemos nos esquecer de dar uma conferidas nos principais sites de emprego:

  • Indeed

    Um dos melhores, fácil de se candidatar as vagas, design bem enxuto parecido com o da busca do Google.

  • Love Mondays

    Novo site da área. Bem interessante também, além de vagas ele também coleta e divulga diversos dados de empresas como os salários.

  • InfoJobs

    Como diria um amigo meu, InfoJobs SUPREMO. Tem muita vaga.

C6 — Uso em um studio independente

Um studio independente precisa de grande produtividade e uma linguagem que pode ser usada nas principais ferramentas do mercado. Pois a não ser que se possa treinar as pessoas do 0 com um novo ferramental o studio deve priorizar as ferramentas mais populares e que sejam acessíveis ao bolso dos sócios.


Além de ensinar a pescar aqui no Bladecast a gente dá o peixe. Vamos fazer o Top 4+2 das linguagens para ajudar você na sua busca.

Agora que já sabemos o que olhar em cada linguagem, vamos poder avaliar mais criteriosamente cada uma das opções de sentido no mercado de 2018.

Ranking das Linguagens

5ª — C++

Se formos somar desde o princípio dos tempos, pelo menos se falando de desenvolvimento de jogos, nenhuma linguagem consegue ultrapassar o número de recomendações de C++.

E não é por acaso, a linguagem é bastante flexível, rica em sua capacidade de criar abstrações, e seus compiladores foram evoluindo com o tempo a tornando a única linguagem orientada a objeto que realmente não apresenta penalidades na performance. Este na verdade é o grande lema da linguagem, você pode criar abstrações poderosíssimas sem ter que pagar os custos computacionais, sejam eles quais forem.

Infelizmente, para conseguir entregar essa promessa a linguagem se torna quase que "inaprendível" por iniciantes. É claro que existem cursos excelente de como se usar somente as partes mais seguras e modernas da linguagem, instruções explícitas do que não deve ser feito, mas no fim do dia você vai se ver tendo que manter algum código obsoleto ou vai acabar esbarrando em tutoriais que usam técnicas que hoje já foram abandonadas mas você como iniciante não vai saber disso.

Um outro problema é o tempo de compilação, o novo padrão da linguagem, C++17, vem com o conceito de módulos que vai resolver este problema, até lá todo tipo de truque ainda é necessário.


Repositório com bibliotecas úteis e modernas
Nota: 2 (1 a 5)

Existe, mas são diversos e nenhum é padronizado. Este problema é tão grave que parte da comunidade C++ adotou o padrão "single-file libraries", onde para se usar uma biblioteca basta copiar e colar um único arquivo dentro de seu projeto, simples e indolor para quem usa.


Compatibilidade entre diversos sistemas operacionais e plataformas
Nota: 5 (0 a 5)

Neste ponto não temos o que reclamar de C++, não chega a ser tão compatível quanto C, mas se estamos falando de jogos virtualmente todas as plataformas onde se pode querer jogar um jogo lançado em 2018. Inclusive este é um ponto forte da linguagem, são poucas linguagens que possuem compiladores em todas as plataformas importantes.


Performance nua e crua
Nota: 5 (0 a 5)

Para sermos justos tínhamos até que estourar a escala e dar um 8, ou 9 neste quesito. Chega a ser bizarra obsessão da comunidade C++ com performance.

Um exemplo, antes você era obrigado a usar mecanismos perigosos de programação como ponteiros crus sem tipos, hoje existem várias outras alternativas aos ponteiros, mas se você quiser/precisar eles ainda estão lá.

Quando se fala de alinhamento de layout de dados na memória, alocação (e consequentemente poder evitar alocação) e otimização de uso de cache de CPU realmente não é possível debater quem ganha em termos de produzir o assembly mais direto e eficiente.


Base de usuários
Nota: 2,5 (0 a 5)

Aqui que a linguagem começa a se complicar. Apesar de ser uma base gigantesca ela é muito heterogênea tanto em nível técnico como em campo de atuação da linguagem.

Muito material bom que você vai encontrar estará escondido em sites e blogs que possuem design horrendo. Essas pessoas realmente tem outras preocupações, o iniciante que se preocupa um pouco mais com a parte visual das coisas vai se sentir repelido.

E não só a questão visual, como a linguagem é antiga as pessoas assumem que você já leu todas as bíblias do assunto, e podem ser bastante impacientes. Além de que há muita divergência na comunidade o que pode ser observado na lentidão na qual o seu comitê reflete em avanços na linguagem.

A base de usuários tem convergido, com as novas técnicas e constructos, muitas questões que antes tinham diversas soluções e opiniões agora estão lentamente sendo adotadas pela linguagem em si e a biblioteca padrão.


Vagas de emprego
Nota: 0 (0 a 5)

Aqui C++ despenca. Não existem* empregos C++, você vai ver muitos anúncios listando desejar experiência em C/C++ (como se fossem a mesma linguagem) mas no fundo eles colocam isso apenas porque eles não sabem fazer anúncios de vaga e copiam e colam de outros além de que C++ ainda é dado em muitas faculdades.

* Uma vaga ou outra a cada 5 anos você vai ver, mas não me parece inteligente prospectar uma carreira em C++ no Brasil.
Uso em um studio independente de jogos
Nota: 0 (0 a 5)

Não faça isso. Não é mais necessário fazer isso. Esta linguagem é muito complexa para a escala de um estúdio independente. Suas ferramentas são pobres em usabilidade, apesar de que produtos como CLion tem chegado e revolucionado o mercado, um studio de jogos tem como sua principal preocupação lançar e vender os jogos, não vale a pena criar mais problemas.


Total
Nota: 14,5 de 30

Realmente não ficou uma nota alta, por isso ela se encontra no quarto lugar de nosso ranking.

Cadastre-se na nossa lista de email para saber sobre as outras linguagens

Nos próximos artigos você vai conferir a avaliação das linguagens:

  • C#
  • Java
  • JavaScript
  • php
  • python

Lista apresentada em ordem alfabética para manter o clima de suspense. Não reflete necessariamente a ordem que será indicada pelo autor.


Perguntas/Queries relacionadas
  • melhor linguagem programação 2018 2017
  • linguagem iniciantes
  • linguagem programacao de jogos
  • linguagem desenvolvimento de jogos
  • vantagens desvantagens c++
  • critérios de avaliação de linguagens
  • como comparar linguagens de programação
© Bladecast 2018. All rights reserved.