01 julho 2006

Programação de Games parte 2 – O que é necessário para fazer jogos de computador?

Desenvolvimento de games precisa de 3 coisas: motivação, tempo e talento. Sem motivação, você não terá tempo para desevolver jogos. E sem tempo, talento é inútil. Mas sem talento, você poderia ser o mesmo que uma cenoura.


Além do óbvio, é necessário: Lógica do game, arte, som e conteúdo.


A lógica do game (geralmente, código-fonte) é o mais essencial para um jogo complete, pois você pode ter um jogo sem arte e som (jogos baseados em textos). A parte visual do jogo incita e atrai as pessoas para fazerem download do jogo e também aumentam o “fator diversão” do jogo. Som não deve ser subestimado, pois a música pode influenciar dramaticamente a sensação que o jogo passa, e efeitos sonoros baratos podem arruinar um jogo. A importância do conteúdo (níveis, diálogo, quests) é óbvia.


No desenvolvimento comercial “de peso” há várias pessoas e cada uma delas possui um papel diferenciado. Mas se você está desenvolvendo como um hobby, pode criar tudo (talvez conseguindo efeitos sonoros da web) ou pode criar uma modificação um jogo existente (vários projetos em código aberto permitem isso) ou pode se juntar a uma equipe pequena. A seguir, vou focar em cada um dos trabalhos.


Projetista: Então quer ser o homem das idéias? O fato é que todo mundo que desenvolve jogos tem suas próprias idéias e possuem pouco tempo, então a chance de encontrar programadores, artistas e músicos para fazer seu jogo é mínima, a menos que você pague, é claro.


Algumas vezes equipes de desenvolvimento irão pedir por sugestões, então se sinta livre para dar sua opinião em vários fóruns. É possível encontrar fóruns de “projetos de jogos” onde as pessoas discutem suas idéias. Não tenha vergonha de dizer sua idéia a outras pessoas, há chances de que não seja tão revolucionário quanto você pensa. Mas tenha certeza de que pensou bastante na idéia, pois os outros usuários do fórum poderão fazer perguntas e procurar por falhas na sua idéia.


Programador: Quer ser a pessoa que faz tudo funcionar? Há muitas e muitas escolhas de como fazer o computador realizar as tarefas que você quer. A decisão é baseada em muitos fatores, que poderão ser discutidos mais tarde. Basicamente, a decisão é de “que software vou usar para me ajudar a desenvolver?”, que acaba indo para uma linguagem de programação na maioria das vezes.


Artista: Quer criar mundos fantásticos, personagens e efeitos especiais? Há muitas ferramentas prontas para auxiliar nesse processo, mas o tipo de arte que um jogo necessita é muito dependente de como o jogo é projetado. Para arte 2D, pode ser que seja necessário ter uma “cor chave”, tamanho, número de cores, ou transparências. Para arte 3D, pode ser ainda mais complicado fazer os modelos, animar, texturizar e “exportar” para um formato que o jogo possa usar.


Músico: Neste ponto, não posso ajudar muito pois entendo pouco. Se alguém quiser complementar, sinta-se livre para comentar.



Powered by Qumana


21 junho 2006

Programação de Games

Vou começar aqui uma pequena série de artigos sobre desenvolvimentos de jogos. Mas o que é programação de jogos?

Hoje em dia, jogos são coisas a serem levadas a sério. São usados com seriedade por profissionais da área de saúde e ciências sociais. Em saúde, por exemplo, nos Estados Unidos, jogos como Dr. Mario são usados para ajudar crianças com diabetes a se adaptarem a sua situação. A Europa está com uma iniciativa para criar um ambiente de jogos que permita a interação entre pessoas de diversos países, usando várias tecnologias diferentes, que vão desde computação móvel a realidade virtual.

Muita gente viu programas como Halo, ragnarok e a maioria das pessoas jogam. Mas de onde eles vêm? Há algum gênio do mal em uma sala escura os inventando? Ou eles simplesmente aparecem no seu computador durante a noite? Não, são pessoas como eu e você que escrevem jogos. Desenvolver jogos é uma arte, e uma que vem com apenas muita prática, mas no fim é recompensador.

Nos Estados Unidos, por exemplo, é possível conseguir um emprego na indústria dos games. Empresas como Microsoft, Rare e outras oferecem estágios para estudantes que tem um interesse em programação de videogames. Existem universidades que incluem desenvolvimento de games no seu currículo escolar.

No Brasil, o desenvolvimento de jogos nacionais é uma realidade que está em andamento. Existem muitos jogos bons desenvolvidos por empresas nacionais, inclusive com incentivo do ministério da cultura, que está realizando a segunda edição do concurso de jogos eletrônicos (jogosbr). Para os interesados em desenvolver jogos, estes concursos são uma boa oportunidade para iniciar. A Abragames (Associação Brasileira das Desenvolvedoras de Jogos Eletrônicos) se propõe a fortalecer a indústria nacional de jogos, promovendo produtos, serviços e eventos sobre desenvolvimento de jogos.

Desenvolvimentos de jogos envolve, entre outras coisas, um suprimento infinito de café, sentar no seu quarto escutando música com fones de ouvidos porque é uma da manhã e todo mundo está dormindo. Programação de games envolve detecção de colisões, vetores, matemática. Desenvolver um jogo, a sério, significa passar noites acordado, não obter lucro (para a maioria) mas é divertido.

Nota: NÃO é um requisito da programação que você pratique hábitos como dormir pouco, nem é recomendado. Não se esqueça de dar um tempo longe do computador e dormir corretamente.

23 maio 2006

Texto para Refletir


Há algum tempo recebi um convite de um colega para servir de árbitro na revisão de uma prova. Tratava-se de avaliar uma questão de Física, que recebera nota zero. O aluno contestava tal conceito, alegando que merecia nota máxima pela resposta, a não ser que houvesse uma "conspiração do sistema" contra ele. Professor e aluno concordaram em submeter o problema a um juiz imparcial, e eu fui o escolhido.

Chegando à sala de meu colega, li a questão da prova, que dizia: "Mostre como pode-se determinar a altura de um edifício bem alto com o auxilio de um barômetro." A resposta do estudante foi a seguinte: "Leve o barômetro ao alto do edifício e amarre uma corda nele; baixe o barômetro até a calçada e em seguida levante, medindo o comprimento da corda; este comprimento será igual à altura do edifício." Sem dúvida era uma resposta interessante, e de alguma forma correta, pois satisfazia o enunciado. Por instantes vacilei quanto ao veredicto.

Recompondo-me rapidamente, disse ao estudante que ele tinha forte razão para ter nota máxima, já que havia respondido a questão completa e corretamente. Entretanto, se ele tirasse nota máxima, estaria caracterizada uma aprovação em um curso de física, mas a resposta não confirmava isso. Sugeri então que fizesse uma outra tentativa para responder a questão. Não me surpreendi quando meu colega concordou, mas sim quando o estudante resolveu encarar aquilo que eu imaginei lhe seria um bom desafio.

Segundo o acordo, ele teria seis minutos para responder à questão, isto após ter sido prevenido de que sua resposta deveria mostrar, necessariamente, algum conhecimento de física. Passados cinco minutos ele não havia escrito nada, apenas olhava pensativamente para o forro da sala. Perguntei-lhe então se desejava desistir, pois eu tinha um compromisso logo em seguida, e não tinha tempo a perder. Mais surpreso ainda fiquei quando o estudante anunciou que não havia desistido. Na realidade tinha muitas respostas, e estava justamente escolhendo a melhor. Desculpei-me pela interrupção e solicitei que continuasse.

No momento seguinte ele escreveu esta resposta: "Vá ao alto do edifico, incline-se numa ponta do telhado e solte o barômetro, medindo o tempo t de queda desde a largada até o toque com o solo. Depois, empregando a fórmula h = (1/2)gt^2 , calcule a altura do edifício." Perguntei então ao meu colega se ele estava satisfeito com a nova resposta, e se concordava com a minha disposição em conferir praticamente a nota máxima à prova. Concordou, embora sentisse nele uma expressão de descontentamento, talvez inconformismo.

Ao sair da sala lembrei-me que o estudante havia dito ter outras respostas para o problema. Embora já sem tempo, não resisti à curiosidade e perguntei-lhe quais eram essas respostas. "Ah!, sim," -disse ele - "há muitas maneiras de se achar a altura de um edifício com a ajuda de um barômetro." Perante a minha curiosidade e a já perplexidade de meu colega, o estudante desfilou as seguintes explicações. "Por exemplo, num belo dia de sol pode-se medir a altura do barômetro e o comprimento de sua sombra projetada no solo, bem como a do edifício". Depois, usando-se uma simples regra de três, determina-se à altura do edifício. "Um outro método básico de medida, aliás bastante simples e direto, é subir as escadas do edifício fazendo marcas na parede, espaçadas da altura do barômetro. Contando o número de marcas ter-se a altura do edifício em unidades barométricas". Um método mais complexo seria amarrar o barômetro na ponta de uma corda e balançá-lo como um pêndulo, o que permite a determinação da aceleração da gravidade (g). Repetindo a operação ao nível da rua e no topo do edifício, tem-se dois g's, e a altura do edifício pode, a princípio, ser calculada com base nessa diferença. "Finalmente", - concluiu, - "se não for cobrada uma solução física para o problema, existem outras respostas. Por exemplo, pode-se ir até o edifício e bater à porta do síndico. Quando ele aparecer; diz-se: "Caro Sr. síndico, trago aqui um ótimo barômetro; se o Sr. me disser a altura deste edifício, eu lhe darei o barômetro de presente.".

A esta altura, perguntei ao estudante se ele não sabia qual era a esposta 'esperada' para o problema. Ele admitiu que sabia, mas estava tão farto com as tentativas dos professores de controlar o seu raciocínio e cobrar respostas prontas com base em informações mecanicamente arroladas, que ele resolveu contestar aquilo que considerava, principalmente, uma farsa.



Este texto circula há muito tempo por aí em e-mails, livros e sites, o estudante é Niels Bohr e o professor convidado é Rutherford. Apesar de antigo, o texto ainda levanta muitas questões sobre as formas de ensino atuais. Muitos dos educadores desejam que os alunos entreguem a resposta "esperada" em vez de exercitar a própria criatividade. Uma pena...


Powered by Qumana


17 maio 2006

Code Man

Existe uma certa preconcepção de uma pessoa que trabalha com programação. Como mostra a música de Jonathan Coulton (um ex-programador), Code Monkey. Pessoas anônimas, que vivem de escrever códigos, discutir decisões dos chefes... Que sentem que suas habilidades estão sendo sub-utilizadas


Bem, em geral, esses conceitos estão corretos. Mas mostram apenas o lado corporativo da informática. Existem várias outras atividades, que, infelizmente, não são reconhecidas, como a pesquisa, simples e pura. Por trás de toda tecnologia usada, sempre teve várias pesquisas envolvidas até que a tecnologia se tornasse o que é hoje.


Em homenagem a estes programadores, analistas e pesquisadores anônimos, estou colocando aqui uma pequena letra de música (retirada de http://www.inktank.com/):



Coder man, coder man
Gets his powers from a coffee can.
Surfs the web all the time
Catches bugs so the code is fine
Look out!
Here comes the coder man!
Is he wired? Listen bud
He´s got caffeine addicted blood
Can he ditch? Catch a flick?
He can always say he´s sick.
Hey there!
There goes the Coder man!





Powered by Qumana


11 maio 2006

Jogos Nacionais

O desenvolvimento de jogos eletrônicos é uma atividade que influencia a sociedade em muitas formas, especialmente nos tempos atuais. No Japão, por exemplo, filas enormes de pessoas de todas as idades se formam no lançamento de jogos como Zelda e Final Fantasy. Feiras de games como a E3 têm cobertura ampla internacionalmente.


Mas e no Brasil? O desenvolvimento de jogos nacionais é uma realidade que está em andamento. Existem muitos jogos bons desenvolvidos por empresas nacionais, inclusive com incentivo do ministério da cultura, que está realizando a segunda edição do concurso de jogos eletrônicos (jogosbr). Para os interesados em desenvolver jogos, estes concursos são uma boa oportunidade para iniciar. A Abragames (Associação Brasileira das Desenvolvedoras de Jogos Eletrônicos) se propõe a fortalecer a indústria nacional de jogos, promovendo produtos, serviços e eventos sobre desenvolvimento de jogos.


Os sites jogosdaqui e made in Brasil Games apresentam informações sobre jogos nacionais, caso você queira divulgar seu jogo ou mesmo apenas conhecer os jogos feitos no Brasil, estes sites são os recomendados. Uma observação porém, não são aceitos jogos feitos com rpgmaker, mugen e flash.


Entre os jogos que fazem sucesso hoje em dia, uma linha vem se destacando, que é a de MMORPG (Massive Multiplayer Online Role-Playing Games), como ragnarok e world of warcraft. Existe um jogo neste estilo 100% nacional, que é o erinia, baseado em personagens do folclore nacional. No momento eles estão oferecendo um período de testes de 30 dias, caso queiram conhecer como ele é.


Powered by Qumana


22 abril 2006

O Caminho da Programação

Na ciência da computação, há uma combinação de características da matemática, engenharia e ciência natural. Assim como na matemática, o estudante de computação usa linguagens formais para expressar idéias. Como engenheiros, ele projeta coisas, juntando componentes para formar um sistema e avaliando alternativas. E como cientistas, ele observa o comportamento de sistemas complexos, forma hipóteses e testa previsões.

A habilidade mais importante para um estudante de computação é a solução de problemas. Por solução de problemas, refere-se à habilidade de formular problemas, pensar criativamente em soluções e expressar uma solução de forma clara e precisa. Aprender a programar é uma forma excelente de praticar habilidades de resolução de problemas.

Mas o que é um programa? Um programa é uma sequencia de instruções que especificam como realizar uma computação. A computação pode ser algo matemático, como resolver sistemas de equações ou encontrar a raiz de um polinômio, mas também pode ser uma computação simbólica, como procurar e substituir texto em um documento ou até mesmo compilar um outro programa.

Basicamente, todo programa, não importa o quão complicado, é feito de um conjunto de instruções que envolvem ações de entrada de informações, saída de informações, operações matemáticas, execuções condicionais e repetições. Desta forma, é possível descrever a programação como o processo de "quebrar" uma tarefa grande e complexa em subtaredas cada vez menores até que as subtarefas sejam simples o bastante para serem executadas com essas instruções básicas.

Outra habilidade aprendida durante o curso é o debug (eliminação de erros). O processo de debugs, de algumas maneiras, é como o trabalho de um detetive. Você é confrontado com pistas, e deve inferir os processos e eventos que levaram aos resultados que você vê.

O debug também é como uma ciência experimental. Uma vez que você tem uma idéia do que está errado, você modifica o programa e tenta novamente. Se sua hipótese era correta, então você pode prever o resultado da sua modificação, e você se aproxima mais um passo de um programa funcional. Se sua hipótese estava errada, você deve elaborar uma nova. Citando Sherlock Holmes, "Quando você elimina o impossível, o que sobra, por mais improvável que seja, deve ser a verdade." (Arthur Conan Doyle, O Signo dos Quatro)


Powered by Qumana

14 abril 2006

Novidades sobre o futuro da Televisão Digital brasileira.

Algumas notícias veiculadas no Diário do Nordeste e na Folha Online trazem novidades sobre o futuro da TV Digital no Brasil. Para o padrão Japonês, temos a seguinte notícia:



O chanceler brasileiro, Celso Amorim, e seu colega japonês, Taro Aso, firmaram na quinta-feira em Tóquio um memorando pelo qual o Japão se compromete a ajudar na implantação no Brasil de um sistema de TV digital baseado no padrão japonês ISDB-T, mas aberto a futuras inovações técnicas brasileiras. [...] Para firmar o memorando, o Brasil obteve o compromisso da empresa japonesa Toshiba de construir uma unidade de produção de semicondutores no território brasileiro



Após a divulgação da assinatura do memorando, a resposta da Europa:



As indústrias européias (Siemens, Philips, Thales, Nokia, Rohde & Schwarz e ST Microelectronics) que formam a "Coalizão DVB", que tenta convencer o governo brasileiro a adotar o padrão europeu (DVB) de televisão digital, foram para o contra-ataque. Ontem, após a assinatura do memorando entre os governos do Brasil, a coalizão européia disse estar disposta a fazer uma proposta firme para a construção de uma fábrica de semicondutores no Brasil. Também ofereceu incluir aplicativos desenvolvidos por universidades brasileiras na segunda fase de modernização da tecnologia DVB. Segundo o diretor de Tecnologia da Philips, Walter Duran, "a Comissão Européia, assim como as seis empresas que participam da "Coalizão DVB", já convidou as autoridades brasileiras para ir à Europa, ocasião em que se propõem a assinar uma proposta firme de construção de uma fábrica de semicondutores no Brasil". A proposta seria assinada pela Philips e a ST Microeletronics.



Isto mostra algumas coisas interessantes. Primeiro, ambos estão altamente interessados em instalar a TV Digital no Brasil, se mostrando abertos às exigências. Isso porque, nas palavras do ministro japonês da Economia, Comércio e Indústria, Toshihiro Nikai:



"Se o padrão japonês for adotado no Brasil, nossa tecnologia digital poderá ser difundida em outros países da América Latina"



Ambos estão considerando o Brasil como uma porta de entrada para o restante da América Latina, pois vários países mostraram estar aguardando uma decisão brasileira. A segunda coisa, que acho que é mais interessante, é o fato de ambos estarem aceitando futuras alterações a partir dos estudos feitos no Brasil. Considerando isto, e o fato de que será instalada uma fábrica em território nacional, me leva a crer que este é apenas o primeiro passo, a base a partir da qual poderão ser feitas inovações e alterações, rumo a um padrão mais adaptado e adequado à realidade de nossa nação. Porém, A decisão final sobre o padrão deve ser tomada pelo presidente Luiz Inácio Lula da Silva, que deverá escolher entre o europeu DVB-T, o americano ATSC e o ISDB-T.


Powered by Qumana