Mão na massa
As razões que me fazem escolher Javascript como linguagem de jogos
Publicado por Tarso em 04/01/2018
Como já falei por aqui, comecei a jogar video games desde criança, quando ganhei um Atari. Já adulto aprendi a programar, e pelas circunstâncias a primeira linguagem de programação que aprendi foi QuickBASIC (mais sobre isso aqui). Depois de um tempo descobri que QuickBASIC tinha um conjunto de funções e procedimentos que serviam para desenhar coisas na tela: pontos, linhas, formas geométricas, cores. A partir daí já comecei a tentar aprender a criar pequenos jogos.
Depois lembro que consegui com um amigo meu uma apostila de C e Allegro, que me ensinou muitos conceitos básicos de jogos que ainda uso até hoje. Daí terminei um curso técnico de programação onde aprendi Delphi e Java, e continuei fazendo experiências com essas duas linguagens. Alguns exemplos de jogos que eu (re)desenvolvi ao longo dessas experiências foram:
-
PONG: fiz em Java, como atividade de uma disciplina de Programação Distribuída que paguei na faculdade. Ele tinha uma arquitetura cliente-servidor que permitia que duas pessoas jogassem em rede através do protocolo UDP.
-
Batalha Naval: foi feito em Java também. Eu tinha a intenção de permitir que duas pessoas jogassem em rede uma contra a outra, assim como em PONG. Porém acabei implementando uma experiência single-player mesmo.
-
Trilha: esse jogo eu fiz em Delphi para uma discipina de Programação Avançada da faculdade. Basicamente a IA do jogo implementava o algoritmo Minimax com alfa-beta pruning, e o resultado ficou muito bom na época.
Tá, mas onde entra Javascript nisso?
Bom, não faz muito tempo que eu ainda tava usando Java pra essas brincadeiras. Mas a partir de um certo momento passei a usar Javascript para escrever jogos que rodam em uma página HTML, e tenho ficado bastante satisfeito com essa decisão pelas seguintes razões:
-
Eu adoro Javascript! Hehe… Sim, verdade. Desde que vi Javascript pela primeira vez - quando ainda estava copiando e colando código pronto da web pra poder colocar efeitos em sites HTML - me senti atraído pela linguagem. Sei que Javascript tem muitas características e funcionalidades que a fazem ser bastante odiada por desenvolvedores aí afora, e eu entendo completamente o porquê. Mas sei lá, eu simplesmente consigo ignorar toda essa parte ruim e focar apenas na parte que eu acho legal.
-
O elemento
<canvas>
. Quando eu ouvi falar que a versão 5 do HTML incluiria uma tag que renderizaria uma área na página para desenho livre usando um objeto com uma API sólida de desenho 2D, um alerta ligou na minha cabeça. Comecei a ler artigos e a fazer pequenas experiências, e percebi que esse novo recurso me atenderia perfeitamente. -
Praticidade. Todo computador/tablet/celular hoje em dia tem um programa capaz de rodar jogos em Javascript, que é o navegador web. E o fluxo de desenvolvimento é muito prático: muda o arquivo, salva, dá refresh. Fora que navegadores como o Chrome e o Firefox hoje em dia fornecem um excelente ferramental de desenvolvimento para depurar código, fazer modificações on-the-fly, dentre outras coisas.
-
Github pages! Se o jogo roda em uma página HTML estática, lançá-lo no Github Pages é uma ótima maneira de disponibilizá-lo para outras pessoas jogarem. Basta criar um repositório Git para o código do jogo, fazer push pro Github e configurar uma página do projeto que vai rodar o jogo. Daí é só distribuir o link pra galera jogar. E é de graça!
No meu Github tem um joguinho 2D que fiz chamado Rescue Landing. Basicamente você controla uma navezinha para resgatar pessoas perdidas em cavernas, e precisa otimizar o combustível da nave de maneira que seja possível entrar e sair do estágio com todas as pessoas resgatadas. Em posts futuros vou discutir alguns conceitos e técnicas que aprendi e usei no desenvolvimento desse jogo.
E quanto a você? Também se interessa pelo assunto? Tem alguma coisa interessante pra mostrar?
Ninguem comentou este post ainda.