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

By Karlisson, 27/11/2007 @ 02:47
Eu particularmente acho a modularidade desses jogos uma coisa fantástica e invejável
Muita gente trabalhando, altas equipes disciplinadas…queria trabalhar num canto assim…
Excelente texto!