domingo, 23 de dezembro de 2007

Já que o Ano Novo tá ae,...

... eu tô cheio de recessos no trabalho e ainda se bateu um desespero programístico sobre mim, resolvi implementar uma série de padrões de projeto com uma visão bem voltada para os jogos. Não vou colocar nada aqui ainda, pois estou trabalhando em outras pequenas surpresas que podem vir a aparecer ainda em Janeiro.

O ano vai começar com artigos no ritmo do artigo sobre o Singleton e o MVC: explicação do conceito + Diagramação UML + Código + comentários. Deixa só passar o ressacão do Reveillon prá gente sacudir isso aqui.

"Boas festas"; "se forem dirigir, não bebam", "Feliz Natal" e todos os outros clichês que estão nos dizendo. Aguardem o novo ano que vamos ter coisas boas por aqui! Até lá!

P.S.: Esqueci de dizer: caso alguém queira um padrão específico, pode pedir aí. Não garanto que eu consiga trazê-lo pro blog, mas vou fazer de tudo para dissecar o menino!

terça-feira, 11 de dezembro de 2007

Casos de Uso? Mas hein?

Tá, tá, foi vacilo meu, mas é que eu nem me toquei que o termo Casos de Uso pudesse significar interrogações pra vários de vocês. Pra resolver isso, ta aí: uma explicação sobre os Casos de Uso!

Esses tais Casos de Uso (CdUs daqui pra frente) não são nada mais que cada uma das diversas interações que o usuário vai ter com o seu programa. Na maioria das vezes, cada tela ou janela diferente significa um CdU diferente, mas como jogos são muito mais complexos, várias vezes tempos diversos CdUs na mesma janela. “Andar com o personagem”, “utilizar magia”, “selecionar alvo”, “pegar item” e “conversar” são diversos CdU que você realiza na mesma tela: a tela de jogo.

Devido à troca de endereço, a continuação desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/casos-de-uso-mas-hein/

quarta-feira, 5 de dezembro de 2007

Personalize seu Jogo!

Esse fim de semana consegui o Need for Speed: Carbon (valeu Willian). Velhinho, sim, mas mesmo assim eu instalei pra testar. Primeira impressão foi de estar jogando um GTA só com carros. Provavelmente a impressão veio da tela de jogo: essa engine aí da cidade gigantesca com o radar+mapinha, saca? Deixa tudo com a mesma cara. Porém, se uma coisa me incentivou a criar essa matéria, foi a personalização do NFS:C.


Devido à troca de endereço, a continuação desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/personalize-seu-jogo/

sexta-feira, 30 de novembro de 2007

Organizando os pensamentos com um Mapa Mental

Sabe quando a gente ta cheio de coisas na cabeça e precisa documentar, mas não sabe por onde começar? Sabe quando a gente tem um brainstorming em mãos e tem que organizar aquilo tudo? Sabe quando queremos mostrar o passo-a-passo de um jogo? Para esse tipo de coisas, vou mostrar-lhes o Diagrama de Mapeamento Mental, Mapa Mental, ou Mental Mapping Diagram. O nome é pomposo, mas o diagrama em si é a coisa mais simples de ser feita, pois não pode atrapalhar seu fluxo de raciocínio: é pensar numa coisa e inserir um nó relativo à ela.

Devido à troca de endereço, a continuação desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/organizando-os-pensamentos-com-um-mapa-mental/

quinta-feira, 22 de novembro de 2007

Atualização inteligente é o que há!

Eu estava completamente sem assunto. Esse problema do BD e a possível implementação do Database Broker ainda estão por ai (falando nisso, o Douglas acaba de pipocá no MSN), enchendo nossas cabeças atrás de uma solução viável. Quando eu cansei, fui jogar esse Marvel: Ultimate Alliance. Procurando na net sobre o tal jogo, descobri que a versão do PC, com o uso de um Patch, permite que joguemos com 2 personagens novos: Colossus e Moon Knight [EDIT] Como o blog já recebeu uma porrada de gente atrás desse patch, fiz questão de disponibilizar o link. Basta clicar aqui ;).

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/atualizacao-inteligente-e-o-que-ha/

quinta-feira, 15 de novembro de 2007

Mais problemas... E agora?!?

Nesse exato momento, estamos tentando resolver um problema meio chatinho. Até então, estávamos desenvolvendo o Jogo SEM a camada de Armazenamento, já que isso simplifica (e muito) o nosso trabalho. Para acessar as cartas do BD, usávamos métodos com lógica falsa que simulava um acesso ao Armazenamento, mas que, na realidade, construíam tudo o que era pra ser construído diretamente em código.

Eu vi um leitor ali com cara de “oO?”. Xô passar um exemplo: A gente tem um método BuscarCartas() que deveria ir à camada de Armazenamento e materializar todas as cartas para que a interface pudesse desenhá-las. DEVERIA, mas não está fazendo isso. Pelo contrário: BuscarCartas() está cheia de linhas de código que criam diretamente aquele monte de cartas que deveriam ter sido buscadas no Armazenamento.

“Ta Tiago, mas qualé o problema disso?”. O problema é que o exemplo cresceu demais. Antes isso funcionava perfeitamente, pois ainda estávamos acertando o funcionamento básico da interface e as interações dela com a lógica do caso de uso Batalhar. Agora que precisamos trabalhar corretamente com a diversidade de cartas entre os jogadores, o troço não dá vazão: temos que ficar criando métodos falsos um em cima do outro, o que tem me deixado com medo. No final, se esse monte de métodos continuar crescendo, pode dificultar muuuuito a inserção da camada de Armazenamento.

Ainda não está nada certo, mas o Douglas deu a idéia de utilizar um padrão chamado Database Broker (ou só DB Broker), uma Indireção entre a camada de Armazenamento e o resto do programa. Assim, uma vez criado o DBBroker, todos os acessos ao armazenamento vão ser realizados por ele, bem como funciona com a Controladora. Independente de como seja implementado o Armazenamento, basta trocar a lógica dos métodos do DBBroker que tudo está 100% funcional.

“E por que fazer isso?” Pois nosso BD vai ser inicialmente uma tabelona XML mesmo. Estamos tendo trabalho suficiente com a interface e a interação dela com a lógica para implementarmos um BD distribuído. Somos só 3, nada de inchar o design ;)

P.S.: Caso algum de vocês leitores já passaram por algum problema do gênero, agradeceria muito se rolasse uma ajuda com esse problema!

P.S.2: Desculpem pela falta de matérias, mas realmente não tô tendo muito sobre o que postar: graças à esse rolo, não muito tem acontecido no Jogo. Pelo menos, a solução vai virar um outro artigo.

P.S.3: Não não, realmente prefiro o Wii. - Já vi isso em algum outro lugar ;)

quinta-feira, 1 de novembro de 2007

MVC e o Linkage: O que se deve ou não fazer? (parte 3)

É gente, depois de um bom tempo enrolado com problemas e mais problemas (aparentemente, até o meu MAC foi clonado), eu consigo finalmente disponibilizá esse código (com a ajuda do Douglas, claro). É o que dizem: "antes tarde do que nunca". Falando sobre o código em si, tanto eu quanto o Mário achamos que ele ficou um cado complexo por causa da Controladora usando o Singleton. Pensei seriamente em tirar esse Singleton, mas resolvi deixá ela assim mesmo para que vocês tenham mais um exemplo do uso do padrão num programa. Basta deixar claro que o Singleton NÃO É NECESSÁRIO para o exemplo.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/mvc-e-o-linkage-o-que-se-deve-ou-nao-fazer-parte-3/

sábado, 20 de outubro de 2007

MVC e o Linkage: O que se deve ou não fazer? (parte 2)

Agora que todos já sabem como funciona o MVC, vou continuar com a 2a e última parte do artigo. Hoje vou mostrar os pontos positivos e negativos da implantação da arquitetura, além de finalmente mostrar o que isso tudo tem a ver com o Linkage.


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/mvc-e-o-linkage-o-que-se-deve-ou-nao-fazer-parte-2/

quarta-feira, 17 de outubro de 2007

MVC e o Linkage: O que se deve ou não fazer? (parte 1)

Eu acredito que muita gente vai me chamar de maluco depois desse artigo, mas espero que todos entendam. Pra começar, vamos falar do MVC (ou Model-View-Controller), uma arquitetura de software baseado na idéia de interações emtre camadas de alta coesão (fazem exatamente aquilo que se propõem a fazer e nada mais que isso) e baixo acoplamento (são o mais independentes possível entre si).

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/mvc-e-o-linkage-o-que-se-deve-ou-nao-fazer-parte-1/

sexta-feira, 12 de outubro de 2007

E por quê jogar o MEU?

Taí... Continuando a idéia do artigo anterior, onde encontramos quem jogará o nosso jogo, hoje tentaremos encontrar o que fará com que o jogador jogue o seu jogo, não o da concorrência. Não achem que esse artigo será uma revolução no mercado mundial, muito menos o segredo do sucesso do seu jogo. Com ele pretendo falar um pouco sobre o diferencial competitivo, que daqui pra frente chamaremos só de diferencial.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada no endereço http://nusseagora.blog.br/e-por-que-jogar-o-meu/

sexta-feira, 5 de outubro de 2007

Quem vai jogar?

Antes de pensar no design do seu jogo, é importante saber responder uma pergunta simples: Quem vai jogar? Saber a quem se aplica o design que você está criando é tão importante quanto fazê-lo de forma bem feita. Devemos encontrar o máximo de características que possam nos encher de idéias para esse design. Algumas delas (que serão abordadas aqui) são:


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/quem-vai-jogar/

sábado, 29 de setembro de 2007

E o que TE influenciou?

Hoje eu acordei com uma coisa na cabeça e vou fazer um artigo diferente. Artigo não, uma pergunta. Eu tava parado, pensando no design do Jogo e uma coisa veio em mente: esse jogo é um pedaço do Magic, um pedaço do Yu-Gi-Oh, um pedaço do Triple Triad, um pedaço de sei lá mais que jogo e, mesmo assim, não é nenhum deles: é algo novo, único... é o Jogo. Mas como uma cópia pode deixar de ser uma cópia?

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/e-o-que-te-influenciou/

segunda-feira, 24 de setembro de 2007

Singleton: Limitando e Distribuindo

O nosso Jogo tem uma característica muito especial: ele é traduzido dinamicamente, sem a necessidade de recompilação. Para isso, estamos colocando todo o texto em uma classe especial, a TIdioma. O problema é que, se nós estivéssemos utilizando um objeto simples, a cada “new” que déssemos, teríamos uma cópia inútil do objeto ocupando espaço inutilmente. Dessa forma, se tivéssemos 500k de texto, poderíamos estar ocupando vários megas da memória.


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/singleton-limitando-e-distribuindo/

quarta-feira, 19 de setembro de 2007

Se até a vovó viu, por quê não ver você também?

Hoje o artigo é diferente. Já que tenho grande acesso de estudantes aqui no Nuss... E agora?!?, vô deixá um link muito importante, o Vovó viu a Rede. Já faz um bom tempo que estou para falar dele, tá até linkado desde o início do Nuss..., mas antes tarde do que nunca.

O Vovó viu a Rede é do Mário, um cara q eu conheci na faculdade e se mostrou um dos melhores em Análise e Projeto que eu já vi. Hoje em dia ele está comigo e com o Douglas tocando o Jogo prá frente, penando com divisões de camadas, padrões de projeto e meus designs complicados. Autodidata como ele só, resolveu criar um blog contando tudo que aprendia enquanto estudava Redes de Computadores. E num é que o troço fez sucesso?

Sabe essa porrada de texto técnico que você acha na internet? Então cara, ESQUECE isso. O Mário pega a matéria, entende, picota, joga na água e deixa secá, postando tudo lá já recicladinho, numa linguagem simples e objetiva. Quer ver? Olha só a forma com que ele explicou o Modelo OSI e as redes peer-to-peer. Mais didático? Difícil, hein....

Recomendado prá pessoas que, como ele, queiram decifrar os mistérios desse assunto tão vasto que é a conexão entre computadores. Nota 10.

domingo, 16 de setembro de 2007

Padrões de Projeto: O que são e pra que servem?

Quando começamos o projeto em Action Script 2.0, começamos a ter problemas com o Flash, já que não tínhamos prática para montar um projeto mais robusto. Foi quando o Douglas (naquela época o Mário não estava ainda com a gente) começou a recorrer aos grandes fórums sobre o assunto, para resolver problemas de boa programação. Depois das 4 primeiras respostas, o meu mundo mudou completamente.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/padroes-de-projeto-o-que-sao-e-pra-que-servem/

quinta-feira, 13 de setembro de 2007

Os problemas de se focar na perfumaria.

Estava olhando projetos postados por aí quando notei um erro recorrente na maioria dos projetos: as pessoas começam pela perfumaria.


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/os-problemas-de-se-focar-na-perfumaria/

segunda-feira, 10 de setembro de 2007

Nuss... E agora?!? também no Orkut.

Pois é, resolvi fazer esse post só prá avisar que, agora, o Nuss também conta com uma comunidade no orkut, a Nuss... E agora?!? (tenho certeza que vocês não imaginariam tal nome!). A idéia dela é colocar os leitores em contato uns com os outros, permitindo a direta troca de informações. Dessa forma, estaremos expandindo o Nuss, trazendo para um ambiente mais próximo da maioria dos brasileiros.

O link está permanentemente no menu ali ao lado, "o Nuss... no Orkut", onde estará também o link para o meu perfil, caso alguém queira fazer um contato direto.

Então gente, é isso. Quem quiser entrar em contato, discutir matérias não só do Nuss... mas também de outros blogs, ou coisa do gênero, pode entrar e pedir para participar que eu confirmo a participação. Valeu gente!

domingo, 9 de setembro de 2007

O que torna um jogo um sucesso: Gráficos, Jogabilidade ou Enredo?

Nossa. Escrever sobre isso vai ser um tanto quanto polêmico, principalmente pois as pessoas têm opiniões definidas e inflexíveis quanto a essa tríade GJE. Como já li várias e várias discussões nos mais variados lugares, hoje Tiago vai expor seu pensamento.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/o-que-torna-um-jogo-um-sucesso-graficos-jogabilidade-ou-enredo/

sexta-feira, 7 de setembro de 2007

Princípio de Pareto: Como solucionar 80% dos problemas mexendo somente em 20% das causas

Título estranho, não? Como eu vou solucionar 80% dos meus problemas mexendo em somente 20% das causas?!? Isso é o que chamamos de Princípio de Pareto (ou regra 80/20). Ele foi sugerido por Joseph M. Juran, o mestre da qualidade, que deu o nome em homenagem a Vilfredo Pareto. Pareto era um economista sociopolítico que, no fim do séxulo XIX um economista italiano que viu que 80% da riqueza italiana ia para 20% da população.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/principio-de-pareto-como-solucionar-80-dos-problemas-mexendo-somente-em-20-das-causas/

terça-feira, 4 de setembro de 2007

- Pára tudo! 2 -

Novamente estou aqui para agradecer aos blogs que estão me dando uma força para fazer desse projeto um sucesso.

O primeiro me encheu o peito de orgulho. A CubaGames, fez uma matéria extremamente pé no chão sobre o Nuss... E Agora?!? aqui. Aconselho que vocês leiam a matéria como mais um estudo de caso de um Design Inchado. Até por quê sei que ainda tem gente aê que, mesmo depois de ler a matéria, continua achando que se começa a subir uma escada pelo topo.

O segundo foi o Blog do Nunes que me indicou como um dos 5 da sua lista do BlogDay 2007, nesse artigo. Fiquei muito feliz em estar na sua lista, Evandro. Muito obrigado pela vaga e espero que as matérias sejam de alguma forma úteis em seu curso de Ciências da Computação.

Por fim, uma surpresa. A professora Maria Lúcia linkou-me aqui como fonte para início dos estudos sobre Modelagem Orientada a Objetos e Diagramas UML. Fiquei MUITO FELIZ MESMO, principalmente pois é justamente essa a função do blog: ajudar aqueles que estão iniciando e não sabem por onde começar.

Professora, gostei muito da vontade de passar aos seus alunos a matéria de uma forma atrativa e, precisando, basta entrar em contato.

Voltemos agora à nossa programação normal

segunda-feira, 3 de setembro de 2007

Atraso em projetos de horas vagas (Ou "OIha... já tamo devendo quase 3 semanas...")

Lembram-se que eu fiquei de falar sobre os problemas com os quais nós iríamos nos deparar? Pois então, depois do Design Inchado e da Escolha do Flash, não acredito ter esquecido desse pequeno problema...


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://www.nusseagora.blog.br/atraso-em-projetos-de-horas-vagas-ou-oiha-ja-tamo-devendo-quase-3-semanas/

sexta-feira, 31 de agosto de 2007

Um por todos e todos por um: as diversas profissões necessárias para fazer um jogo (parte 3)

Por fim, vou listar alguns poucos profissionais que estão voltados para a interação do jogo com o mundo ao seu redor.


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/um-por-todos-e-todos-por-um-as-diversas-profissoes-necessarias-para-fazer-um-jogo-parte-3/

domingo, 26 de agosto de 2007

Um por todos e todos por um: as diversas profissões necessárias para fazer um jogo (parte 2)

Continuando o artigo, hoje falarei da parte técnica, o pessoal que ta em contato direto com o código ou programa. Esse grupo é composto por:

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/um-por-todos-e-todos-por-um-as-diversas-profissoes-necessarias-para-fazer-um-jogo-parte-2/

sábado, 25 de agosto de 2007

- Pára tudo! -

Agora pouco, quando eu visitava o servidor que controla as estatísticas de acessos do Nuss... E Agora?!? vi que tinha um link pelo qual 2 pessoas visitaram o blog.

Imaginem minha surpresa que, ao visitar o link, encontrei uma matéria sobre o Nuss! O blog é o do Rodrigo Flausino que, de uma forma muito amistosa, dedicou um pouco do seu tempo para falar bem desse trabalho que tenho realizado.

Flausino, estou aqui agradecendo muito à essa força que me deu, mesmo sem nunca termos conversado. Quero também parabenizá-lo pelos artigos sobre o mundo dos jogos, principalmente por esse sobre o efeito do clima em jogos, a divulgação do gamedevmap (genial essa idéia!), e, principalmente, essa resenha sobre a matéria da Veja sobre o crescente realismo dos jogos eletrônicos.

Teu blog já está permanentemente linkado e devidamente assinado. Recomendo que façam o mesmo, pessoal: tem muita coisa sobre entretenimento digital lá que não dá prá perder..

- Agora sim voltemos à programação normal

Um por todos e todos por um: as diversas profissões necessárias para fazer um jogo (parte 1)

Um GRANDE erro recorrente quando falamos em desenvolvimento de jogos é achar que basta aprender a programar para tirar aquela idéia da cabeça e trazê-la para a realidade.


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/um-por-todos-e-todos-por-um-as-diversas-profissoes-necessarias-para-fazer-um-jogo-parte-1/

quarta-feira, 22 de agosto de 2007

Orientação a Objetos: Q raios é isso!? (parte 3)

Voltemos ao exemplo anterior dos contêineres. Como vocês se lembram, quando eu joguei o método fechar() na classe Mãe, eu fiz com que ele fosse acessado por todas as classes filhas, por herança. “Claro, senão você não vai poder fechar nada” você diz. Concordo plenamente com essa observação, mas vamos parar pra pensar no seguinte: será que uma caixa, uma bolsa, uma garrafa e uma mala são fechadas da mesma forma?


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/orientacao-a-objetos-q-raios-e-isso-parte-3/

segunda-feira, 20 de agosto de 2007

Orientação a Objetos: Q raios é isso!? (parte 2)

Continuando o artigo anterior, o básico da Orientação a Objetos pode ser entendido como um conjunto de classes e objetos que se relacionam. Hoje vou definir essas relações, começando pelo mais importante de tudo:

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/orientacao-a-objetos-q-raios-e-isso-parte-2/

quarta-feira, 15 de agosto de 2007

Orientação a Objetos: Q raios é isso!? (parte 1)

Hoje eu vou falar do paradigma de programação que escolhemos para fazer o Jogo, a Orientação a Objetos. Ela começou lá pela década de 60 acompanhando uma tal Engenharia de Software, que falava, na época, sobre os problemas que os programadores teriam com a crescente complexidade dos programas.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/orientacao-a-objetos-q-raios-e-isso-parte-1/

domingo, 12 de agosto de 2007

Paradigmas de Programação: Estilos diferentes de escrever o mesmo texto

Lembram-se desse exemplo onde eu falei de um código como se fosse um texto? Pois então, bem como um texto, um código fonte pode ser escrito de diversas formas diferentes.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/paradigmas-de-programacao-estilos-diferentes-de-escrever-o-mesmo-texto/

quarta-feira, 8 de agosto de 2007

A Máquina Virtual

Entender o que é e como funciona uma Máquina Virtual é extremamente importante quando queremos entender conceitos como portabilidade e multiplataforma.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/a-maquina-virtual/

domingo, 5 de agosto de 2007

E por quê o Action Script 3.0?

Essa é uma pergunta curta de resposta longa. Poderíamos listar aí uma porrada de razões, mas acho que as principais foram:


Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/e-por-que-o-action-script-30/

sexta-feira, 3 de agosto de 2007

A Escolha do Flash

Lá atrás, há mais de 1 ano, quando abrimos mão de todas as alterações para retomar o design original, tínhamos que encontrar alguma tecnologia que nos permitisse refazer rapidamente tudo aquilo que já estava feito antes, tanto em código quanto em visual.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/a-escolha-do-flash/

Design Inchado: "Você está fazendo seu primeiro jogo, não seu último"

Lembram-se bem do início do jogo? Aquela coisa gigantesca, miraculosa, digna de bilhões de Euros e de uma revolução no mercado. Sim, pelo menos é isso que a gente acha quando está encabeçando um projeto e é justamente isso que causa o grande problema do Design Inchado.

Devido à troca de endereço, a versão completa desse artigo pode ser encontrada aqui: http://nusseagora.blog.br/design-inchado-voce-esta-fazendo-seu-primeiro-jogo-nao-seu-ultimo/

quinta-feira, 2 de agosto de 2007

O Jogo

Bom, anteriormente eu falei do Jogo mas não disse nada sobre ele. É por isso que esse post vai ser dedicado a esse projeto que tem teimado em acabar com os miolos.

O Jogo era, inicialmente, de estratégia estilo Worms ou GunBound: simples, mas podendo ser expandido quase que infinitamente. Mais do que isso, o Jogo estava fácil de implementar, de ser programado e ver o mercado. Isso era o q pretendíamos fazer, mas eu não estava satisfeito com sua simplicidade.

Foi aí que tive a idéia de transformá-lo em um tipo de estratégia diferente. Sabe aquela estratégia isométrica que o Final Fantasy Tactics popularizou? Pois então, resolvi que era aquilo que iríamos fazer. Criei vários sistemas de magias, ação/reação, árvore de profissões e toda a porrada de coisas que vocês possam imaginar. O jogo passou a ser para redes locais, na arquitetura chamada peer-to-peer, onde um computador se conecta diretamente com outro computados, como nos programas de transferência de arquivos Emule e KaZaA.

Aquele design inicial que estava simples e fácil de fazer virou um design complexo, muito profissional e complicado de ser implementado. Naquela época, o importante era que eu estava feliz com o que tínhamos em mãos, mesmo sabendo que seria difícil de ver o projeto alcançar a luz do dia.

Isso tudo aconteceu antes de cursarmos a matéria Projeto Final I. Estávamos adiantando o máximo que podíamos, já que a empreitada era mais complicada que o padrão na faculdade e sabíamos que teríamos que correr muito atrás por nós mesmos. No final desse mesmo semestre já tínhamos o design e toda a interação jogador-Jogo definidos. Faltava uma coisa: um membro no grupo.

No início do semestre seguinte, adicionamos esse membro extra, o que inchou ainda mais o design: O jogo, que era 2D, de sprites - desenhos, como nos jogos de Super Nintendo -, virou um jogo 3D, de vetores – imagens como nos videogames de última geração. Isso foi talvez a pior coisa que pudesse ter acontecido, pois descobrimos tarde demais que era IMPOSSÍVEL fazer uma coisa com metade da qualidade visual que conseguiríamos com sprites. Aquele design feito anteriormente foi pro espaço, sendo necessário refazer e repensar muito do que já tínhamos em mãos.

Passando 1 ano, terminamos por voltar ao grupo original. Aquele primeiro design foi buscado novamente, mas agora tínhamos também um servidor com acesso diferenciado para jogadores em determinados níveis. Tínhamos em mãos um jogo perfeito, mas será q ele era viável? Será que do alto de nossa nula experiência, conseguiríamos fazer um jogo assim?

Na próxima, vou falar sobre os problemas de um design perfeito, mas muito além daquilo que a gente consegue fazer. É o que eu chamo de um Design Inchado. Então gente, até lá.

quarta-feira, 1 de agosto de 2007

Nuss... E Agora?!?

Quando, há uns semestres atrás, eu me vi na reta que precede o Projeto Final da faculdade, não consegui pensar em mais nada que não fosse fazer um jogo. Desde criança eu sempre fui maluco por esse tipo de coisas, sempre entendi muito bem sobre o mercado, sobre as inovações. Sempre vi o que dava certo e o que dava errado, sempre procurei os porquês dos sucessos ou fracassos. Passei por centenas de jogos, do Atari ao PS2, tinha certeza que conseguiria fazer algo de qualidade. E isso martelou na minha cabeça até que eu reunisse o grupo e caísse dentro do trabalho.

Pois foi aí que eu vi que eu não sabia NA-DA. Ou melhor, eu sabia sim. O que me faltava era a EXPERIÊNCIA. Sabe aquele “Ih, isso já aconteceu comigo. Resolvi assim, assim e assim”? Sabe aquele “AAAAAAhhh não, mas isso não se faz assim, senão vai causar os problemas tal, tal e tal”? Pois então, era isso que eu não tinha. Eu sabia muito do mercado, mas não conseguia organizar esse conhecimento. Eu sabia muito de análise, mas não conseguia implementar aqueles diagramas todos. Eu sabia muitas coisas maneiras para colocar no jogo, mas não conseguia codificá-las. Eu sabia muito, mas não conseguia nada.

Se eu tivesse tido uma ajuda, um ponto de partida, tudo seria mais fácil. Se eu tivesse alguém pra me explicar como fazer uma Game Bible, como implementar o padrão Singleton ou como fazer o controle de uma arena isométrica, tudo teria sido mais rápido e fácil. Depois de um tempo pensando, me veio aquele estalo: “Já que ninguém fez por mim, por que não fazer por alguém?”

Foi assim que nasceu a idéia de publicar o Blog, um meio fácil de alcançar o pessoal que está tendo esse monte de problemas de iniciantes. Eu vou estar focado no desenvolvimento do meu jogo (que agora não é mais só meu), mostrando pra vocês todos os problemas que encontrarmos durante seu desenvolvimento e, melhor ainda, como resolvemos cada um deles.

Vou falar de códigos, de Flash, de Programação Orientada a Objetos, UML, de Padrões de Projeto, de Game Design, de eBusiness... Ou seja: tudo aquilo que paira ao redor do desenvolvimento do Jogo (vou chamar o projeto assim daqui pra frente) Sempre de uma forma descontraída e fácil de entender, pra que todos que leiam possam extrair o máximo possível.

Lembrem-se que as soluções podem até não ser as melhores práticas, mas aqui estaremos abertos à discussão das respostas. Por que você faria diferente? Adicionaria alguma coisa? Divida com todos nós o que você pensa sobre isso.

Aqui também falarei um pouco sobre o grupo que está apostando nesse sonho, além de comentar sobre Jogo em si: O que ele era e como ficou, que tipos de alterações pretendo fazer no design e como faremos isso funcionar. Mas isso fica para os próximos artigos. Até a próxima!