Arquivo de junho de 2008

Feito em Casa - As Plataformas de Desenvolvimento

quinta-feira, 26 de junho de 2008

Os Jogos “caseiros” e outros aplicativos que são criados para serem utilizados em plataformas de portáteis ou vídeo-games são conhecidos como Homebrews. A idéia da coluna fazendo 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.

Dando seguimento a coluna, hoje vamos destrinchar um pouco mais as plataformas indo ao nível de desenvolvimento. Vou descrever um pouco de cada uma para que vocês leitores da coluna decidam em que plataforma vamos desenvolver nosso protótipo de jogo. Na coluna passada citei que as três principais plataformas para construção de jogos hoje em dia são a PC, celular e Vídeo-Game, então vou explicar como podemos iniciar nosso desenvolvimento para cada uma delas e o que vamos precisar para isso.

Primeiro um conceito importante,é que para programar precisamos no mínimo de um compilador e um editor (até o notepad serve), mas existe algo chamado IDE (Integrated Development Environment ou Ambiente Integrado de Desenvolvimento) que permite não só como diz o nome, integrar compilação e edição de código, como tem funcionalidades que dão apoio ao desenvolvimento como verificação de sintaxe de linguagens de programação, indicação de erros, entre outros. Uma das desvantagens das IDEs é que elas podem consumir muito dos recursos do computador e as vezes precisamos de máquinas razoáveis para poder utilizá-las. Mas uma IDE facilita muito o nosso trabalho “braçal” de desenvolvimento e para cada plataforma de desenvolvimento abaixo eu também comentarei sobre IDEs que podem ser utilizadas.

Iniciando a descrição das plataformas, vou iniciar pelo PC, que é uma das plataformas mais democráticas para construção de jogos. Existem inúmeras bibliotecas que podem ser usadas para criar abstrações (olha essa palavrinha mágica de novo aqui) que permitem criar jogos sem precisar conhecer um nível muito grande de detalhes de como o os componentes eletrônicos realizam as tarefas, além do uso de diversas linguagens de programação. No caso dos PCs temos o desafio das placas de vídeo e som, já que podemos utilizar vários modelos de diversos fabricantes, por isso o uso de um conjunto de funcionalidades padrão se torna muito importante. Para resolver esse problema uma das bibliotecas, conjuntos de funcionalidades, mais utilizada é o DirectX que permite com que o desenvolvedor faça o seu jogo e ele seja compatível com diferentes tipos de placas de vídeo e som.

Ultimamente uma plataforma de desenvolvimento interessante é a XNA da Microsoft, ela permite que se crie jogos que possam rodar tanto em PC quanto em Xbox 360. Ela utiliza c# como linguagem de programação e se integra ao o Visual Studio (uma IDE paga, mas que existe uma versão sem tantos recursos que pode ser utilizada de forma gratuita). Devido as inúmeras funcionalidades que a plataforma XNA têm e sua dupla utilização PC e Xbox, ela será a opção usada para construir nosso jogo se formos fazer para PC.

A segunda e bastante abrangente plataforma é o celular. Quando falamos em desenvolvimento de jogos para celular temos duas frentes principais: a plataforma Java ME (Micro Edition) e Brew. Como a plataforma Brew é paga, eu nunca tive oportunidade de fazer nada com ela, Java ME por outro lado é aberta e será nossa opção caso façamos nosso jogo para celular. Temos várias IDEs que podem ser usadas para desenvolver em Java, como o Eclipse e o Netbeans, ambas se integram a emuladores onde podemos testar nossa aplicação rodando e depois é só passar para uma celular. O desenvolvimento para celular tem como ponto positivo ser um pouco mais simples devido as limitações da plataforma, e como ponto negativo (de Java nesse caso) o fato de não termos acesso as funcionalidades do celular de forma direta, usamos apenas aquelas que a máquina virtual de java permite, isso é chamado de Sandbox (ou seja só podemos “brincar” dentro da caixa de areia).

A terceira é a plataforma gamer e aqui surge nosso grande desafio e problema. As plataforma de vídeo-game geralmente são fechadas e o desenvolvimento restrito a quem tem grana para pagar muito por um kit de desenvolvimento (o do PS3 por exemplo no início custava 20 mil dólares, hoje está por 10 mil). Esse cenário, principalmente para quem quer apenas fazer um jogo caseiro, torna inviável o desenvolvimento de uma jogo nosso para vídeo-games, e agora?

Para isso existem os Hacks de bibliotecas que exploram as funcionalidades do sistema, como já expliquei na coluna anterior tudo é uma questão de hardware e um software básico que permite usar esse hardware, mas não há o que fazer o que fazer quando você não sabe que funcionalidades pode usar a não ser… entender de alguma forma como o hardware funciona…

Alguns processadores como o do Nintendo DS (da linha AMR) já são bem conhecidos pela indústria e isso permite que suas funcionalidades sejam utilizadas em kits de desenvolvimento “não oficiais”. Os mais famoso destes é o devKitPro que permite o desenvolvimento para as plataformas: Nintendo Ds, GBA, PSP e Game Cube. Se a escolha da plataforma for para vídeo-game, devido a minha experiência com Nintendo DS essa seria a escolha certa para fazermos o jogo. Para isso utilizaríamos como linguagem C/C++ utilizando o devKitPro + Palib + Visual Studio.

Agora é com vocês, são os leitores desta coluna que vão decidir para qual plataforma vamos desenvolver nosso jogo. Temos essas 3 alternativas e vocês devem deixar seus votos nos comentários da coluna, para isso terão até a quinta-feira do dia 26/06/2008 quando farei a contagem.
Como nosso papo hoje se extendeu demais fica para próxima semana a discussão sobre o conceito e a organização de um Game Design, ou seja como definir a proposta do nosso jogo e organizar todas as idéias sobre ele, como objetivos, jogabilidades, personagens, história, etc.
Até semana que vem!

PS: Pra quem não sabe essa é minha coluna no Video Games Boulevard, acabei esquecendo de postar aqui a da semana retrasada (sorry). Esse final de semana passado, com o São João aqui (no Nordeste é um senhor feriadão) acabei não publicando, mas acredito que no Domingo publicarei a mais nova edição. Ah os votos computados nos comentários aqui também valem, desde que sejam de pessoas diferentes.

Firefox 3.0

terça-feira, 17 de junho de 2008

Acabei de baixar e instalar o novo Firefox (você pode baixar aqui). Baixem! Ajudem a Mozilla a bater o record de Software mais baixado em um dia e em troca tenham um excelente navegador, os novos recursos da barra de endereço são sensacionais!

Por exemplo, você esqueceu o link de uma página que visitou, consideremos este blog, mas lembra que era Diário alguma coisa, então você digita diário e ele vai mostrando todos os links que se relacionam ao assunto de uma forma genial. Tô babando mesmo aqui!

Recomendo de com força.

Rapidinhas da Sexta-Feira

sexta-feira, 13 de junho de 2008

- O Ixpó (conhecido por alguns como Sport) foi campeão da Copa do Brasil na quarta. como torcedor do Náutico parabenizo os rubronegros pela conquista. O ruim é ter que aguentar essas cores horríveis por toda a cidade, mas fazer o quê!

- Sobre isso, a transmissão da quarta-feira da rede globo de televisão foi uma das coisas mais patéticas que já vi, alguém precisa dizer lá que não existem apenas torcedores do Corinthians no mundo e proibirem o Kléber Machado de narrar jogos do Corinthians. Fiz uma reclamação formal no site da Rede Globo, se você torcedor de outras equipes do Brasil está cansado disso eu aconselho a fazer o mesmo que eu fiz.

- Por sinal confirmado o extermínio, extinção total por parte dos humanos de uma primeira espécie de foca. GO Caçadores FPD GO, espero que um dia vocês tenham um morte bem triste e dolorosa!

- Não sou Jabazeiro, mas ontem vi uma edição especial bem legal da Super Interessante sobre a 1° Guerra Mundial, comprei na hora e estou terminando de ler. Ao chegar em casa e contar pra minha irmã (que faz vestibular esse ano) e ver a cara de desprezo que ela fez, tive uma ótima idéia para um post amanhã: “Como fazer Adolescentes Imbecis se interessarem por algo” ou algo desse tipo. Não percam!

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.

Blog sobre games

quarta-feira, 4 de junho de 2008

Pessoal, fui convidado a participar de um novo blog de games que algumas pessoas do fórum de quadrinhos que frequento, o Multiverso Bate Boca, fizeram.

O nome da minha coluna vai ser “Fazendo em Casa” e vai abordar como o qualquer jogador pode construir seus próprios games e outros aplicativos para várias plataformas. Eu topei porque achei a idéia bem bacana é uma coisa que realmente não se vê por aí em sites ou blogs sobre o assunto.

Espero conseguir passar dicas e ensinar detalhes um pouco técnicos sem que fique chato.  Publicarei aqui também as colunas, a primeira estréia no sábado mas já vou logo deixar aqui o link para o blog, já tem muita coisa bacana lá:

Video Games Boulevard

Meu filho vai ser jogador de futebol

terça-feira, 3 de junho de 2008


Uma das coisas que mais lembro da participação da minha mãe na minha infância (já que ela trabalhava muito e tinha pouco tempo para mim) era ela me falando que eu precisava estudar para ser alguém, para ter as coisas que ela não podia me dar e pra não precisar me matar de trabalhar como ela se matava.

Eis que eu estudei, sempre fui um dos melhores da sala, passei numa universidade federal com um dos melhores cursos de computação do País, senão da américa latina. Trabalho 8 horas por dia (ou mais, porque algum projeto sempre está atrasado nessa área) me mato de trabalhar e ganho pouco, até tenho condição de ter as coisas que ela não podia me dar na época, mas não tenho tempo para usurfruir delas então nem adianta. Claro, eu ganho bem mais do que a maioria das pessoas desse país que ganham 1 salário mínimo (o que é um absurdo). Mas comparado pelo tempo e esforço que dediquei em toda a minha vida para chegar onde estou, eu ganho pouco.

Hoje olho para minha mãe e digo a ela: “Mãe, você estava errada, devia ter me incentivado a jogar bola”.

Sim amigos, meu filho vai ser jogador de futebol, antes dele aprender a andar direito já quero fazer ele chutar as primeiras bolinhas. Lição de casa ele só vai fazer (se der tempo) quando terminar de treinar, vou o matricular em escolinha de futebol de campo e futsal e o que mais for preciso. E claro quando ele estourar vou ser seu empresário e ficar com minha vida ganha também =D

O Brasil não precisa de engenheiros, cientistas, médicos, precisa de jogadores de futebol. Mesmo os mais medíocres não ganham menos que 10 mil reais, entram de graça nos lugares e tão cheios de mulheres gostosas dispostas a qualquer coisa para tirar uma casquinha $$$ deles.

E agora depois do jogo Náutico x Botafogo desse fim de semana eu descubro que jogador de futebol pode fazer um bocado de merda, e até desacatar policiais, que a polícia é que fez errado em prender porque ele não é marginal é jogador de futebol.

Jogador de futebol não é simplesmente chutar e correr atrás de uma bola, é status. Quantas vezes numa roda de senhores alguém já não bateu no peito com o maior orgulho e disse:

- Eu joguei no juniores do Íbis

- Ohhhh, nossa, sério?

Ser jogador de futebol é poder bater seu carro, atropelar alguém na segunda, dar autógrafos para os policiais do trânsito, pegar umas piriguetes na sexta, fazer dois gols no jogo do sábado e está tudo certo.

Meu filho vai ser jogador de futebol, preciso já ir pensando em um nome que fiquei com “inho” no final e fique legal. Alguém tem uma sugestão?