Ponto-a-ponto: jogo em Java!
Olá pessoal! Faz algum tempo que eu não posto nada por aqui. Bem, isto é fruto de um agitado final de semestre na faculdade. Vamos ao que interessa! Desta vez mostrarei passo a passo a criação prática em Java de um simpático jogo que batizei de ponto-a-ponto! Apesar de ser um jogo bem simples que provavelmente não irá lhe render seu primeiro milhão na indústria de jogos, é um bom caso de estudo para aqueles que ainda não tiveram contato com a criação prática de um jogo em Java. Ao final desta postagem está o link para download de todo o código-fonte que vou apresentar aqui. Vamos começar?
Um jogo, três inteligências
Parte de um jogo ser classificado como divertido é ter uma boa implementação de inteligência artificial. É claro que há exceções em que temos jogos sem necessidade de tal tipo de inteligência, porém em grande parte deles ela se faz necessária. Antes de partir para o código e começar a pensar em termos programáticos, temos de entender as três inteligências básicas presentes em um jogo: o jogador, o inimigo e o narrador.
Desengessando códigos: interfaces
Interfaces são ferramentas poderosas em qualquer linguagem. É fácil logo de cara pensarmos na palavra-chave interface de uma linguagem, mas elas vão muito além disto – muito mesmo! Programar para interfaces é inocentemente menosprezado e ignorado por muitos programadores, principalmente pelos iniciantes. Grande parte desta falta de interesse é por conta do não completo entendimento do grande benefício e talvez até do conceito em si da programação para interfaces. Temos de parar de engessar código: a melhor maneira de fazer isto é entendendo interfaces!
Erros, bugs e você
Erros são na maior parte gerado por falta de um conhecimento sólido e/ou vícios que adquirimos ao longo do tempo. Seja por não termos uma teoria a respeito do que estamos trabalhando ou porque já estamos tão habituado a realizar uma tarefa que passamos a fazê-la roboticamente, é fácil nos depararmos com uma situação com um bug que simplesmente parece não ter solução. Mas como evitá-los? Há algumas (más) práticas que notei ao longo das minhas experiências como programador que falarei sobre nesta postagem em uma tentativa de não mais reproduzí-los e também de alertar outros programadores quanto a elas.
O Primeiro Jogo!
Quando ainda não temos uma experiência prática na área de Game Design e na área de programação como um todo, é comum congelarmos ao tentar iniciar um novo projeto. Mesmo que seja um jogo trivial de se implementar com relação à lógica, não há bem uma base de arquitetura em questão de código formada ainda na nossa cabeça. Acredite, isto é perfeitamente normal e acontece. Para dar este primeiro impulso, vou descrever a criação de um jogo da velha em questões estruturais.
Java 7
Desenvolvedores: o Java 7 chegou! Há poucos dias comprei a revista MundoJ (que eu não conhecia até então) e como reportagem de capa veio trazendo justamente isto – as novidades do Java 7. Mas como isto afeta a nossa maneira de programar? Aliás, o que realmente mudou e que pode impactar no modo em que diariamente nós escrevemos os nossos códigos e mais códigos?
Ação!
Expressões como jogar contra o computador são comuns de serem ouvidas no mundo dos jogos. Após iniciado o seu estudo na área de Game Design você verá que, de certa forma, essas pessoas não estão erradas em utilizar tal expressão. Esta é uma das características que pode estar presente em um jogo: desafio contra uma inteligência artifical. Mas pensando de um modo mais generalizado, quais são as peculiaridades de um jogo frente a uma aplicação genérica? Este texto procura trabalhar conceitos iniciais e fundamentais de programação inerente aos jogos.
Onde Começar?
Esta é a primeira dúvida que surge na cabeça de alguém que quer começar a se aventurar no mundo do Game Design. Por onde começar? Devo partir para a prática ou me afundar em livros e mais livros? Saiba que você não está sozinho! Aqui esboçarei um caminho para aqueles que estão perdido neste mundo.
Motivacional
É isso. Você acorda um dia e constata o óbvio, talvez o pensamento mais comumente compartilhado por pessoas ávidas pelas meias-luas pra frente, botões analógicos e afins: por que não tornar disto minha profissão? Rapidamente sua mente é encharcada por possíveis logomarcas de sua futura empresa e de mil e uma idéias revolucionárias que dominarão o mercado com apenas alguns meses. Você está pronto para colocar tudo no papel.
Papel e caneta.
É tudo o que você precisa para começar. Rabiscos aqui, outros ali, algumas inovações esboçadas e pronto. Frustração coletada. Está tudo debaixo de suas mãos, pronto para se tornar realidade, mas então você descobre que, infelizmente, Game Design não acontece por mágica.

Ricardo Gadótti Bedin é um estudante de graduação do curso de Ciência da Computação pela UFMT. Criou este site no intuito de compartilhar e adquirir conhecimento da área de programação, tendo como foco o Game Design. Apesar de acreditar que este é um ramo promissor, não se limita a falar e estudar apenas ele. Para maiores informações, visite a página "Sobre". 