Posts com a Tag ‘desenvolvimento’

Feito em Casa: A introdução ao desenvolvimento de jogos

terça-feira, 10 de junho de 2008

Os Jogos “caseiros” e outros aplicativos que são criados para serem utilizados em plataformas portáteis ou vídeo-games são conhecidos como Homebrews. A idéia da coluna “Feito em Casa” é com nossas conversas semanais, dar dicas e passar conceitos importantes para que você leitor, seja capaz de criar seus próprios homebrews para sua plataforma game favorita.

Minha experiência com jogos é praticamente acadêmica, mas já desenvolvi jogos para diferentes plataformas (PC, celular e Nintendo DS) e em diferentes linguagens de programação (C++, Java e até Assembly) por isso acredito ter experiências muito interessantes para passar para vocês nessa área.

Pensei em várias formas de como iniciar essa coluna e como tentar ser o menos chato e técnico possível, mas cheguei a conclusão que é impossível iniciar nossa espécie de “curso” sem que o conceito de plataforma seja bem compreendido por todos.

No geral qualquer plataforma, seja ela um vídeo-game, um pc, um celular, possuem uma estrutura básica:

1 - Uma arquitetura física, ou seja um conjunto de componentes eletrônicos organizados de forma a realizar operações e realizar eventos físicos (por exemplo: tocar um som, exibir algo na tela).

2 - Um software básico, que permite uma camada de “abstração” (isso será um dos temas de uma futura edição desta coluna) fazendo com que não precisemos nos preocupar com os dispositivos eletrônicos, esse software condensa as operações que podemos usar, em computadores estes são chamados de sistemas operacionais. (por exemplo: toqueSom(temaPersonagem), exibaNaTela(personagem, posicaoX, posicaoY) )

Em cima dessa plataforma temos outros softwares, que rodam sobre os sistemas operacionais descritos acima, utilizando suas funcionalidades para um devido fim, aqui entram os jogos e os aplicativos.

Como podem ver fica difícil partir para os jogos direto, sem entender toda a estrutura por trás e outros conceitos que vêm associados a esta como limitações, kits de desenvolvimento e linguagens de programação. Todos esses temas serão melhor abordados no decorrer de nossa coluna, hoje vamos iniciar pela questão de como a plataforma influência no desenvolvimento de um jogo.

Quando eu era criança, no auge dos vídeo-games de cartucho, eu acreditava que um cartucho de Mega-Drive não rodava em um de Super Nintendo apenas porque os formatos não encaixavam. Não entendia que além disso ambos eram arquiteturas de hardware completamente diferentes, feitos de componentes diferentes, e com instruções de hardware diferentes.

Quando pensamos em desenvolver um jogo precisamos pensar em que plataforma iremos rodar o nosso jogo, ou se ele será um jogo multiplaforma. Existem duas formas de fazer um jogo para diferentes plataformas:

- A primeira é desenvolver ao mesmo tempo o jogo para todas as plataformas que o jogo vai ser lançado. Essa realmente não é uma abordagem muito usada porque encarece muito o desenvolvimento já que aumenta considerávelmente o número de pessoas que trabalham no jogo. É mais utilizada quando trabalha-se com plataformas muito diferentes (o que ocasiona jogos distintos e completamente diferentes), por exemplo, um jogo que sairá para PS3 e Nintendo DS. Neste caso geralmente as empresas tercerizam o desenvolvimento para a plataforma mais simples.

- A segunda é desenvolver para uma plataforma e no fim fazer um port (porta o código) para a outra plataforma. É a forma mais barata e utilizada para plataformas com um poder de processamento e características semelhantes. A desvantagem é que o jogo sempre ficará melhor na plataforma específica em que foi desenvolvido, pois seu código foi escrito para tirar toda a potencialidade do hardware daquela plataforma.

Como o objetivo aqui é demonstrar como podemos contruir nosso próprio jogos, vamos nos concentrar no desenvolvimento para uma plataforma específica já que isso torna o desenvolvimento mais simples.

Na próxima coluna vamos escolher a plataforma na qual vamos construir o nosso jogo e discutir que conceitos e idéias são importantes termos em mente antes de iniciar o desenvolvimento para valer, resumindo: Vamos começar a falar de Game Design.

Até a próxima.

PS: Essa coluna é colocada nos fins de semana no Video Games Boulevard e dois dias depois é colocada aqui.