Finalmente, após quase 23 horas de projeto, divididas em alguns meses, terminei minha própria versão do Pong da NoneClass.
No curso de GameMaker do None, o primeiro modulo onde desenvolvemos um game, aborda o Pong. A tarefa final do modulo é recriar o jogo em no máximo dois dias.
Admito que fiz minha própria interpretação desta tarefa. Assumi dois dias como 48 horas, e resolvi fazer minhas próprias artes para o game.
Sei que não foi isso o que o None quis dizer, mas foi o que fiz, e na real, não me arrependo, gostei do resultado.
No geral durante o desenvolvimento tive poucos problemas. Apenas dois, me fizeram querer arrancar alguns fios de cabelo.
O primeiro foi causado por eventos concorrentes. Precisava que o game reiniciasse quando a bola batesse no gol, ao mesmo tempo precisava que o gol computasse um ponto no placar. Como estava usando dois eventos e colisão, um em cada objeto, o game estava reiniciando primeiro, impedindo que a colisão do lado do gol fosse computada, e o placar mudasse. Resolvi isso, apenas alterando a função de reiniciar o game, para a de reposicionar a bola em sua posição inicial,
O segundo problema foi causado por um if mal feito. Queria que se algum jogar alcançasse os pontos máximos, aparecesse uma mensagem, e o game voltasse para a tela de título. Acontece que se o player 1 vencesse o game não estava reiniciando. Não sei bem o porquê, mas a mudança na forma de escrever o if resolveu o problema.
Um problema subsequente ocorreu, porque quando a mensagem de vitória aparecia, ela não sumia mais, e o game não andava. Isso porque a mensagem estava em um evento que era executado a cada freme. Eu não tinha zerado a pontuação, então a cada freme do jogo, a condição para que a mensagem aparecesse, continuava verdadeira. Foi só zerar o placar que se resolveu.
Isso não foi um problema, mas sim, não saber como fazer. Não quis copiar do curso. Queria criar a inteligência artificial da raquete, então tive que aprender a usar uma função por conta própria, mas que no fim, deu certo.
Gostei do resultado, muito embora exista espaço para melhora. Conforme for aprendendo, posso ir aprimorando a coisa.
Abaixo seguem os links para baixar o game, que está disponível apenas para Windows, bem como os links para comprar os cursos de GameMaker e Pixel Arte da NoneClass.