Todo desenvolvedor de jogos tem um projeto que volta. Para o Guima Games, esse projeto é o Pong. Ele apareceu numa aula de pós-graduação, ganhou uma versão para um concurso, foi parar no navegador em 2009, voltou ao ar em 2012, entrou no primeiro portal do estúdio em 2014 e hoje é o GG Pong, com multiplayer online.
Este artigo conta essa trajetória, versão por versão, e o que cada uma ensinou.
O Pong que não ficou pronto
A história começa mal. Na primeira aula de SDL da pós-graduação em Desenvolvimento de Jogos da Unicenp, em Curitiba, a turma recebeu cerca de uma hora para fazer um Pong. Das trinta pessoas na sala, só uma não terminou: eu. Quando o tempo acabou, meu Pong tinha uma raquete e a bolinha.
É uma lembrança engraçada hoje, mas ela explica muito do que veio depois. Pong parece trivial, e é justamente por isso que expõe tudo que você ainda não domina: o laço do jogo, a leitura do teclado, a colisão, o placar. Errar ali foi o melhor jeito de descobrir o que faltava aprender.
2009: o concurso dos 100 pontos e vírgulas
Em janeiro de 2009, o portal SharpGames lançou o concurso ROX, com uma regra curiosa: fazer um jogo em XNA, a plataforma de jogos da Microsoft na época, usando no máximo 100 caracteres ";", os pontos e vírgulas que terminam cada instrução em C#.
A regra obriga a pensar no que é essencial. Cada linha conta. O Pong era o candidato óbvio: poucas regras, poucos objetos.
Em XNA, o Pong que não ficou pronto na aula de SDL saiu numa madrugada. O resultado chegou a 206 pontos e vírgulas, o dobro do limite, todos numa única classe, a Game1.cs. Não ganhou o concurso pelo critério do tamanho, mas ganhou outra coisa: um jogo pronto.
No post-mortem que escrevi na época, a parte mais interessante não foi o código. Foi o que aconteceu depois: o jogo atraiu um artista e amigos programadores, e logo apareceram ideias de multiplayer e de trocar as raquetes por modelos 3D de tanques. Um jogo terminado, mesmo simples, vira um lugar onde as pessoas se juntam.
A crítica daquele post também envelheceu bem: o XNA exigia placa de vídeo com Shaders 2.0, e muita gente não conseguia rodar um jogo que só desenhava retângulos. A barreira de entrada não estava no jogo, estava na plataforma.
Abril de 2009: o Pong vai para o navegador
A solução para essa barreira apareceu em abril de 2009: o SilverSprite, uma biblioteca que fazia jogos escritos para XNA rodarem no navegador por meio do Silverlight, o plugin da Microsoft para aplicações web.
O primeiro porte deu trabalho:
- conflitos de namespace entre as duas plataformas;
- a caixa de colisão (
BoundingBox) não se comportava igual; - o jogo rodava a 24 quadros por segundo, bem abaixo do ideal.
Resolvidos os problemas, o Pong foi publicado no SilverArcade, um portal de jogos Silverlight, numa tela de 750 por 600. O que mais me marcou foi a rapidez do retorno do portal: em pouco tempo o jogo estava no ar, jogável por qualquer pessoa, sem precisar de placa de vídeo nem de XNA instalado.
Foi a primeira vez que um jogo da Guima Games rodou no navegador de outra pessoa. A ideia de "abrir e jogar", que hoje é o princípio do portal, começou ali.
Do Pong a uma biblioteca de peças
Em maio de 2009, o Pong já tinha passado do limite do concurso, chegando a 120 pontos e vírgulas na versão revisada. Mas ele deixou uma herança mais útil que o próprio jogo: classes reutilizáveis. Um gerenciador de sprites, um menu e um temporizador saíram do Pong e passaram a servir para os próximos projetos, como o Sudoku que eu queria portar de C++ para XNA.
Essa é uma lição que vale para qualquer pessoa começando: o primeiro jogo não precisa ser grande; ele precisa deixar peças. Cada jogo pequeno que você termina facilita o próximo.
O portfólio que montei em julho daquele ano mostra o Pong em três formas: a versão XNA, a versão web com SilverSprite e uma mais antiga, um Pong multiplayer cliente/servidor em C++ com DirectX DirectPlay 8. O multiplayer, que hoje está no GG Pong, já estava no caminho desde o começo.
2012 e 2014: o Pong continua no ar
O Silverlight foi perdendo espaço, mas o Pong não sumiu. Em fevereiro de 2012, ele voltou ao ar em outra hospedagem, com o título "Still alive". Em abril de 2014, quando o primeiro portal do Guima Games estreou, o Pong SilverSprite foi um dos jogos da lista, ao lado do Popcanvas e do Vimorize (Jogo de Memória para o Filho).
Cada mudança de hospedagem exigia algum ajuste. Manter um jogo antigo no ar ensina uma coisa que pouco se fala: jogo publicado é jogo mantido. As plataformas mudam, os navegadores mudam, e o jogo só continua vivo se alguém continuar cuidando dele.
Hoje: o GG Pong
O Silverlight deixou de existir nos navegadores, e o Pong precisou renascer em tecnologia web aberta. O GG Pong atual é feito com Phaser 3, roda em qualquer navegador moderno, no computador ou no celular, e traz as duas ideias que apareceram em 2009:
- Jogar contra o computador, com uma CPU que segue a bola na metade da sua velocidade, para ser vencível;
- Multiplayer online, agora peer-to-peer, com os dois navegadores conectados diretamente via WebRTC e PeerJS.
Algumas regras são as mesmas de sempre: partida até 10 pontos, e o ângulo da rebatida depende de onde a bola bate na raquete. Outras são novas, como a bola que acelera 5% a cada rebatida. Os detalhes técnicos estão no artigo GG Pong por dentro.
O que dezessete anos de Pong ensinaram
- Errar o simples é o melhor professor. O Pong inacabado da aula de SDL mostrou exatamente o que faltava aprender.
- Restrição ajuda a terminar. O limite de 100 pontos e vírgulas forçou a pensar no essencial.
- Jogo pronto atrai gente. O Pong de 2009 trouxe um artista e amigos para o projeto.
- O navegador é a plataforma que fica. De SilverSprite a Phaser, o objetivo foi sempre o mesmo: abrir e jogar, sem instalar nada.
- Jogo publicado é jogo mantido. O Pong só existe hoje porque foi carregado de plataforma em plataforma.
E por que sempre volta a idéia do PONG ?
Como foi um dos primeiros jogos que joguei na vida, em um Tele-Jogo, antes do Atari. Essa lembrança sempre retorna a mente, e é muito gratificante lembrar das origens. Esqueci até de comentar que tem uma versão para iOS, usando a Rede especial que a Apple permite usar, por proximidade... Roda bem para um grupo de amigos e não depende de internet. Interessante a pegada. Da pra explorar diversos jogos, em locais que vc não tem o acesso a internet por algum motivo.
