Atualização inteligente é o que há!

By Tiago Frossard | 22/11/2007

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 ;) .

Cara, isso é GENIAL! O jogo já ta lá, prontinho: todo o núcleo, motor, engine ou funcionamento básico (chame como quiser) já está definido, sendo o jogo completamente funcional nessa versão. Porém, o software está tão bem estruturado que permite que você adicione coisas extras, como os 2 personagens citados. No caso do Marvel acima, basta descompactar uma série de arquivos no diretório raiz do jogo e adivinha: estão os 2 personagens lá, com todas as interações, falas, imagens, ataques e coisas do gênero.

“Ah Tiago, mas isso nem é lá grandes coisas. Por quê eu deveria ficar surpreso com mais 2 personagens no mesmo jogo?” Ih… você ainda tá preso ao exemplo do Marvel: Ultimate Alliance… Deixa só eu falar de um outro jogo, o Neverwinter Nights.

O Neverwinter Nights é um jogo de RPG da Bioware, a mesma que fez o Baldur’s Gate. A diferença é que ele, além de ser baseado no D20 (um sistema de RPG bem conhecido no mundo) é completamente 3D e, pasmem, também tem seu sistema de atualização inteligente. Inteligente não, GENIAL e explico o por que.

O Neverwinter é baseado em módulos. O jogo inicial conta com 2 partes: um servidor e um módulo de campanha. Esse módulo de campanha possui a história do jogo: todos os personagens, itens, magias, localidades, modelos, scripts e tudo mais que for necessário para seu funcionamento (em RPGs, chamamos a história de campanha, daí o nome). O problema é que isso tudo é inanimado: são dados crus, que sozinhos não interagem entre si. Fica a cargo do servidor interpretar esse módulo de campanha e trazer aquilo tudo à vida, finalmente rodando o jogo. À cada atualização, ao invés da fabricante REFAZER um jogo do zero, ela utiliza aquele servidor e lança somente um módulo novo, com novas histórias, itens, personagens, mapas, modelos, monstros e mais o que quiserem.

Por si só, isso já seria bom. Porém, não satisfeitos, fizeram isso ficar genial: o jogo vem com a ferramenta que eles utilizaram para fazer o próprio jogo, o Aurora Toolset. Sendo assim, a própria comunidade passa a popularizar o jogo, fazendo módulos novos que podem ser hospedados e baixados de graça na internet (a própria Bioware disponibiliza meios para tal). Como o jogo é feito em OpenGL e o Aurora Toolset é bem maleável, pode-se até criar novos modelos e animações de monstros em programas de modelagem 3D como o Blender para disponibilizar aos jogadores do mundo todo.

Entenderam bem do que se trata esse esquema de atualização inteligente? Quando queremos adotá-lo, fica IMPOSSÍVEL programar sem utilizar padrões de arquitetura e projeto de sistemas, o que pode se tornar um grande problema para quem não está acostumado a trabalhar com a Orientação a Objetos do jeito que deve ser feita. Seria impossível fazer isso em um meio engambiarrado como o do Action Script 2.0, porém a estrutura inteligente e robusta do Action Script 3.0 permite que façamos isso com 1 pé nas costas, desde que o programa seja inicialmente construído para tal.

Querem vantagens da adoção do sistema de atualização inteligente no seu projeto? Vou listar algumas:

  • Diminuição do trabalho a longo prazo

Grande parte do trabalho de longo prazo, mais especificamente as atualizações, é deixada para que a própria comunidade faça, permitindo que os desenvolvedores e foquem em bugtest e mudanças no núcleo do jogo. Isso está diretamente ligado ao…

  • Prolongamento da vida-útil do jogo

O Neverwinter Nights é lá de 2002-2003, mas até hoje você encontra coisas novas na internet criadas pela comunidade. Só de vez em quando (tendendo para raramente) o pessoal da Bioware (a fabricante) se dá ao trabalho de lançar uma atualização pela empresa, que eles chamam de “pacotes premmium”. É virtualmente impossível ter um jogo de sucesso quando a empresa não inunda o mercado de atualizações com material inédito quando ela não possui uma comunidade de qualidade. A adoção das atualizações inteligentes, facilita a …

  • Criação de uma comunidade rica e participativa

Se você tem um jogo multiplayer e não tem uma comunidade, então você não tem um jogo multiplayer. Se tem um jogo multiplayer e uma comunidade ativa, tem dinheiro por um boooom tempo, por mais mal que falem do seu jogo (vide CIPsoft). Agora, se você tem um jogo multiplayer que permite que a comunidade trabalhe por você, você tem dinheiro por um tempo muuuuuuito maior que a média do mercado.

É gente, ficamos por aqui. Ainda estamos pensando na resolução da camada de armazenamento, mas o Mário já me mostrou um subsistema de gerenciamento de persistência que ele tem em mente que deve resolver nossos problemas.  Se der tudo certo como a gente espera que dê, eu explico qualé que é a da parada.

Até a próxima, gente.

Artigos Relacionados:

Sem artigos relacionados.

2 Comments

  • By Karlisson, 27/11/2007 @ 02:47

    Eu particularmente acho a modularidade desses jogos uma coisa fantástica e invejável :P

    Muita gente trabalhando, altas equipes disciplinadas…queria trabalhar num canto assim…

    Excelente texto!

Links to this Post

  1. Fazendo seu projeto Cair na Real com o Getting Real | Nuss... E agora?!? — 08/11/2009 @ 12:19

RSS feed for comments on this post. TrackBack URI

Leave a comment

WordPress Themes

Rec6plug

Search engine optimization by SEO Design Solutions