Desde a época do Atari eu sempre sonhei em fazer jogos eletrônicos, mas sempre tive a impressão de que este seria um dos maiores desafios do mundo do desenvolvimento.
De fato é. Imagine o quanto é necessário dominar a física para fazer um simulador de futebol? Em um exemplo simples, basta imaginar que quando você chuta a bola, para calcular a trajetória é necessário medir força de impacto, direção da bola, direção e velocidade do vento e força gravitacional.
Longe de ser um bom aluno em física, com o XNA Framework da Microsoft (framework específico para desenvolvimento de jogos para computador e Xbox 360) e uma série de bibliotecas de física freeware existentes na internet até eu arrisquei a colocar a mão na massa e criar um joguinho, em 2D mesmo. Para quem se lembra da época do Atari, ficou muito parecido.
Em seguida, sem conhecer absolutamente nada sobre a tecnologia, optei por comprar um livro para usar como apoio (Professional XNA Programming) ? e com surpresa descobri que para fazer um jogo é preciso muito mais do que programação. É planejamento acima de tudo.
Percebi, obviamente, que não bastaria dominar as classes do XNA Framework e saber programar em C#; teria de criar uma boa história para dar sentido ao jogo, o que talvez seja o maior desafio para o desenvolvedor de games.
O roteiro precisa implementar desafios que tornem o jogo estimulante mas sem apelar para o lugar comum, senão o usuário não joga novamente. O desafio deve ser crescente (aumentar à medida em que o jogo avança) mas também o objetivo não pode ser impossível de ser atingido.
Bolar um roteiro dentro destes conceitos foi o maior desafio. Por muito tempo procurei uma história para fundamentar o meu jogo até perceber que ela estava na minha frente. Ou melhor, no passado, em uma empresa para a qual trabalhei há alguns anos.
A história é a seguinte: o analista de suporte técnico que atendia as ligações dos clientes fazia faculdade de Ciências da Computação e sonhava em chegar à área de desenvolvimento. O jogo então consistia no jogador controlar o analista de suporte e atender as ligações de suporte, preencher os requisitos CMMI e preencher as solicitações de chamados técnicos.
Sempre que o jogador falhasse, assim como na vida real, o gerente do produto apareceria para dar os chamados “feedbacks”. Sempre que o gerente aparece, o protagonista fica mais difícil de ser controlado, tornando assim mais difícil a jogabilidade (afinal, como na vida real, sempre que recebemos uma bronca ficamos irritados, não é mesmo?).
E a cada mês mais e mais trabalho aparece (lembrou o seu dia-a-dia?). Se você conseguir controlar o jogador por mais de 12 meses você o promove e vence o jogo.
Definido o roteiro do jogo, iniciei a criação do cenário. Como não possuo nenhum conhecimento de design, iniciei desenhando em um pedaço de papel. A partir daí, procurei algumas imagens na internet e fiz o meu plano de fundo. Desenhei o personagem, bolei alguns detalhes, como nuvens que passariam pela tela durante o decorrer do jogo e comecei a escrever as classes que utilizaria.
No meu caso a programação é C#. Ou seja, se você já está habituado com a linguagem e com os conceitos de orientação a objeto, não sentirá nenhuma dificuldade. Para fazer as classes de negócio não tive nenhum problema. Em relação a renderização do jogo, o framework apresenta classes prontas para trabalhar com imagens, sons, animações, objetos 3D e utilização da tela, além de temporizadores e controle de dispositivos de entrada como controles do Xbox 360 e teclado do computador.
Em muito pouco tempo, apenas sete dias de estudo e trabalhando apenas nas horas vagas, consegui finalmente chegar ao meu tão esperado jogo, ainda que bem simplório. Mas o importante é perceber que é fácil desenvolver um jogo simples para computador.
Claro, não podemos confundir a criação de um jogo caseiro com uma super-produção como o FIFA 2008 ou Halo 3, que envolvem meses de produção artística, modelagem 3D, planejamento e programação. Mas se você pretende chegar até lá, um bom começo é instalar o XNA Framework (gratuitamente a partir do site da Microsoft), adquirir um bom apoio, como o livro Professional XNA Programming (visite o site do autor, que oferece vários exemplos por lá) e começar a bolar o roteiro do seu jogo.
Confira abaixo uma tela do jogo que eu fiz. Não repare, o objetivo aqui era construir e não competir com profissionais.
Não me aprofundei muito com a tecnologia. Como disse, fiz apenas em minhas horas vagas, mas achei que foi bastante produtivo. Infelizmente não tive mais tempo para voltar a trabalhar com XNA, mas se você está realmente interessado em fazer jogos para computador utilizando esta tecnologia, deixe o seu comentário.
Você pode conferir o jogo pessoalmente, fazendo o download aqui. Será necessário instalar o XNA Framework Redistributable 1.0 refresh e atualizar o DirectX do seu Windows para rodar este jogo. [Webinsider]
.
Renato Ucha
Renato Ucha é formado em administração de empresas, especializado em gestão de projetos. Possui vasta experiência na área, além de dar palestras e escrever sobre o assunto.
7 respostas
É um absurdo dizer XNA está tornando isso uma realidade, quando ela nada mais é do que uma game Engine para Xbox 360.
Game Engines já existiam antes do XNA.
Para quem quer criar games caseiros, e profissionais podem escolher entre várias engines open source…
SIO2 – Iphone
http://www.sio2interactive.com
Pygame
http://www.pygame.org
Ogre3D
http://www.ogre3d.org
Cocos2D
http://cocos2d.org/
Panda3D
http://www.panda3d.org
JMonkey
http://www.jmonkeyengine.com/
Irrlicht
http://irrlicht.sourceforge.net/
Blender Game Engine – a game engine do Blender
http://www.blender.org
Ou podem usar algumas engines comerciais.
Torque
http://www.garagegames.com/products
Vicious
http://www.viciousengine.com/
Unity
http://unity3d.com/unity/
Game Maker
http://www.yoyogames.com/gamemaker/
3D Game Builder – Uma Nacional
http://www.eternix.com.br/pt/3dgamebuilder/index.php
Parabéns!
Eu também já tentei criar um jogo em flash e acho muito mais fácil e divertido. Sem contar que para minha área de propaganda e marketing, posso me aprofundar mais em questões mais técnicas como essa, e aprimorar meus conhecimentos.O mesmo vale para todos, o simples fato de nós querermos produzir algo sozinhos demonstra que somos interessados em saber algo além do limite do simples JOGAR.
abraço
e ótimo artigo
Murilo Bispo ( publicse@hotmail.com)
eu proucuro jogos mais virtuais que tenha bonecos virtuais
Olá amigos…
Conheci este blog a pouco tempo.
Vcs estao de parabens!
Atenciosamente
Henrique Andrade
http://www.grupovox.com.br
Mto bom seu artigo…porém acho que pra desenvolver jogos simples basta apenas um pouco de conhecimento em Flash e action script.
como nesse jogo que eu fiz e usa menos de dez linhas de programação. http://www.tunninghouse.we.bs/jogo_de_tiro.swf
Olá, realmente o artigo é bem legal e introduz o leitor à ferramenta XNA. É uma bela iniciativa da Microsoft, tanto já existem alguns jogos feitos por brasileiros na Live. Gostaria de saber se é essencial que o usuário seja programador hardcore, ou se dá pra se virar apenas com uma boa idéia na cabeça e um pouquinho de familiaridade com linguagem de programação.
Abraços!
Olá! Muito bom o artigo, sobre a ferramenta XNA da Microsoft. Estive lendo algumas coisas a respeito e realmente vi nela uma grande oportunidade para também realizar um sonho: desenvolver meu próprio jogo. Muitos viciados em jogos, como eu, também possuem este mesmo sonho e o XNA está tornando isso uma realidade (em parte). Um bom jeito de incentivar pequenos produtores amadores a criarem jogos interessantes e, quem sabe, conseguir chegar a trabalhar em uma empresa de produção de jogos eletrônicos!
Abraços.