Este blog esta em reforma no momento.

Game Design


Acho que ate agora não postei sobre game design neste blog.
Todos que tem acompanhado o projeto viram que ele é, alem de audacioso, bem louco. E que até agora oque se tem destacado é a história do game em si. Sendo que de jogabilidade so se espera o convencional.

Como combinar história com jogabilidade?
Uma vez, quando eu dei um workshop de Blender, vi um TCC muito interessante com um jogo de luta. O que mais chamou a atenção foi um dos métodos de "caso de uso" do criador: ele listou TUDO que não gostava num game e tirou fora.Ficou bem simplista, mas bem eficiente e divertido.

Como isto aqui é um RPG o buraco é mais em baixo. Então estou montando uma lista mais ampla, com as coisas que gosto e as que não gosto. Quem quiser participar e sugerir um item ficarei grato.
Basta acessar este documento, que esta aberto para editar basta ter conta no Google.

Bom, vamos a lista preliminar:
Coisas que gosto:
  • História
  • Personagens
  • Quebra-cabeças legais (onde as peças tem sentido com alguma história, ex.: combinar itens)
  • Ficar apreciando o cenário
  • Ação continua e dinâmica
  • Voar
  • Dungeons
Coisas que não gosto:
  • Quebra-cabeças chatos (do tipo acerte uma combinação)
  • Animações que não se pode pular
  • Plataformas em que você sempre cai por causa da diferença de 1 pixel
  • Quando você tenta evoluir um item e ele quebra e você PERDE ele
  • Quando você tem pressa de andar de um lugar para outro e o sistema insiste em encher de inimigo no caminho
  • Labirintos que você demora pra achar a saida
  • Não ter o bendito pergaminho de "voltar pra cidade"
  • Lutar, lutar e lutar... e ganhar um "up" de 3%
Listas lembram bastante agile, pena que não dá pra fazer scrum com um homem só :P

Lua, threads, café e calmante


Fiquei com quase nenhuma capacidade imaginativa nessas festas. Então me dediquei à não menos extressante atividade de programar, afinal com "clica e arrasta" só se faz joguinho de primário.

Criei coragem e comecei a incorporar Lua ao projeto. Consegui resolver sem ter que reconstruir TODO o diagrama de classes. E talvez ainda tenha que fazê-lo, pois as classes de instanciação ainda são muito "chupinhadas" do famoso ExampleApplication da OGRE.

A classe que agrega Lua deve precisar de umas interfaces com as classes de objetos e recursos. E já esta funcionando em uma Thread separada.
Foi uma manha inteira relembrando a PThread, mas valeu a pena.
Linkei o código fonte da Lua 5.1 diretamente, assim posso reescrever certas coisas como o método print para exibir mensagens na tela e não no terminal.
E se alguém se lembra, criei um projeto separado testando a inclusão de SQLite com Lua, e é este que esta rodando agora.
Então resolvi dois problemas de una vez ^_^
O próximo passo é introduzir alguns mutex (qual será opkural disto?) para não empepinar as chamadas.

E haja café e calmante... 

Progressos outubro 2009

Um bocado de coisas agora, vamos por partes.

 Agora fasso parte da equipe do RPG Vale, um blog voltado à produção de games e rpg do Vale do Paraiba - SP. Então espero que minhas aventuras de game-maker ajudem no site.


Comecei a detalhar a vegetação. Ainda estou com uns problemas de render do material transparente. E um gigantesco problema, que eu ja havia previsto des-de antes do inicio do projeto: Flora Brasileira.
Cheguei até a pensar em usar um sistema de particulas estático para derar folhas nas arvores, que serão inumeras. Bom, isto foi um dos motivos da escolha de OGRE.

Arvore ainda com Amiente Oclusion.

Tree-from-curves, o script do Blender inserido durante a produção de Big Buck Bunny é realmente uma excelente ferramenta. O resultado fica bastante natural.

Agora algo a se pensar:

Hora de pensar em inserir algum tipo de frame-skip no thread principal. Não há necessidade de rodar o jogo a mais de 60 fps.

Mais Personagens under-construction

Leviatã, um demônio marinho. O começo do estudo de personagens gigantes.
Ele ainda é um modelo low-poly, e será um dos obstáculos para "Lindomar - O Sub-Zero brasileiro".

Porquê Leviatã e não Kutulu?
Kutulu é com certeza o ícone preferêncial, todo fã de Metallica conhece e faz parte da cultura metaleira. Mas o demônio criado por H. P. Lovecraft é muito cheio de tentáculos e reêntrancias pra ser apenas um quadjuvante.


Essa é a base do Sábio Nerd das Montanhas, ainda lhe falta deixar mais magrinho e o sobretudo e óculos.


XMind, tem um excelente pacote de recursos mesmo em sua versão Free.
Eu precisava de uma boa ferramente, e um editor de Mind-Map vem bem a acalhar, sendo uma IDE para você jogar idéias, deve se tornar um excelente ambiente de produção dos dialogos.

Feed-Back
Estes dias tive uma experiência interesante, fui achado por um grupo de alunos de Sistemas de Informação me achou e pedirão ajuda com um modelo. Um modelo até simples, mas como sempre o professor superestimou os alunos.
O curioso foi a palavra chave que eles usaram pra me encontrar... "guarda-chuva".
Curioso, bom, são coisas a se pensar, geralmente o jogo de palavras que um usuario comum usa é bem diferente do nosso que estamos acostumados com um jargão técnico se embrenhando no português coloquial.

Ícones e sua identidade visual


Mattahan (Paul Davey) com certeza é um desses milhares de artistas que passam desapercebidos pelo Deviant Art.

mattahan.deviantart.com/
Um pintor digital da Jamaica, com paixões por video games 2D e corpos femininos. Tem uma arte com cores fortes, gosta de brincar com proporções (e surrealismo) nas pinturas, tem um colorido forte e cativante e explora emoções não convencionáis em seus trabalhos, oque fica evidente neste set de icones que estou usando no projeto.
Estava eu fazendo os icones do sistema quando percebi que era um lastimável saco fazer isso.
Então resolvir esplorar um pouco a área de icones do Deviant Art (não que "um pouco" no Deviant Art seja algo menor q 2 ou 16 horas).
Usar icones prontos é algo que faz qualquer designer se contorcer, mas bem vindos ao mundo da Creative Commons, o mondo da cooperação mutua entre individuos de povos, raças e credos diferentes! Apostei que em algum lugar acharia alguém com uma forma de pensar parecida e "bingo"! Nosso artista tem até um chapéuzinho de bruxa escondido na galeria.

As caracteristicas de pintura de tintas águadas deu um tom natural e manual ao set de icones e encaixa em muitas ideias que ando tendo em termos de gráficos e cenários.

KDenlive decepcionando

Speedy-paint do Zé Caju

Pois é, o irritante foi perder a cabeça obscecado pra descobrir o porque do problema.... tentei inumeras vezes até ficar puto com o negocio. Nem sei como consegui esse resultado e ainda assim os titulos estão flicando!
Na grande maioria o problema principal se dava porque ao renderizar todo o video o Kdenlive simplesmente... dessincronizava o video com o audio e o video terminava cortado.
Fora as travadas nervosas.
Infelizmente terei que esperar alguns releases para voltar a testa-lo. Bom, de fato, alem desses videos de speedy-paint eu não tenho muita coisa a fazer com ele por enquanto.

Incorporando banco de dados

Pra quem pensou que apenas de personagens se faz um jogo ^_^

Pensei muito na real necessidade disso. E cheguei à conclusões interessantes.
Durante a implementação fiz uma pergunta ao Mauricio que também esta desenvolvendo um projeto similar, e descobri que ele também estava pensando na mesma coisa. E, talves pelo fato de eu te-lo lembrado, ele começou a implementar no proprio projeto ao mesmo tempo que eu comecei a integrar os testes no meu.

Bom, resumindo aqui as caracteristicas que pesaram em função do uso de uma base de dados no projeto:
Atomicidade do arquivo
  • Um arquivo único, ou um número menor de arquivos, é mais portavel que uma sequência enorme de arquivos. Compare com um pen-drive onde é mais rápido copiar um arquivo de 1GB doque 100 arquivos de 1MB. E eu quero que ele rode num pen!
  • Isolamento da media, podendo aplicar criptografia na mesma (lembrem-se que até aqui meu projeto é free e não open).
  • Melhor controle de save-games, e informações decorrentes do jogo.
  • Isto também resolveu meu problema de lógica autocontida, onde para cada cenário rodo um código Lua. (buffer por buffer acredito que não será muito diferente de eu ter uma tag INCLUDE ou uma seção CDATA num XML)
Velocidade e Flexibilidade
  • O light do SQLite não é apenas pela falta de recursos, ele é light também no peso rodando pouco abaixo da velocidade de uma abertura de arquivos normal (supondo-se que eu modele bem esse banco)
  • Ele também permite que eu monte um sistema de update automático. Não pretendo fazer nada que chegue próximo a um MMORPG, mas corrigir bugs e passar os fixes para os usuários, sem que ele tenha que baixar tudo de movo, é um vicio de todo usuário de Linux.
Conforto, rapidez e segurança
  • Um BD por menor que seja propicia sempre ótimas ferramentas, que seriam arduamente desenvolvidas "na mão". Por exemplo: reindexação dos dados e segurança de salvamento.
Detalhes da implementação

Ainda tenho que estudar com calma, mas possívelmente terei relações assim.
Como necessáriamente todas as consultas serão seriais, os relacionamentos devem ser poucos. Pretendo ainda rodar isso em um ambiente de thread separado. Garantindo que não haja transtornos na logica do jogo.


Indices, Indices... ó salvadores da pátria. Esse SQLite eu olharia ele com nojo ao ver suas limitações (e ainda olho).

O DB Designer é um pouco "bombado" demais pra produzir material pra ele, mas é ótimo p eu

Eu ainda não abandonei o XML de saida no Blender, ele é um importante método de gerar experimentaçao.


Um sistema de saida para arquivo foi o primeiro recurso utilizado e testado. No entanto todos que ja trabalharam com issu sabem a dificuldade, onde você difine a ordem que os bytes são salvos, o comprimento dos dados, e eu ainda tive o cuidado de projetar um sistema de blocos indentificavel, para que uma nova versão do sistema salva-se os arquivos de uma forma que a versão anterior não tivesse problema e ignorasse o bloco sem suporte.

Não que eu tenha totalmente abandonado o formato .8art (o que eu havia criado para a GE)... afinal estruturas de bancos de dados são passiveis de proteção por direitos autorais ^_~
(sim pequenos padawans, bancos de dados não são apenas depositos onde você consulte e salva, são "engines" completas com técnicas e manhas de performance e funcionalidade)

Outra conclusão

C++ é uma linguagem fodássstica e lindona. Pena que tudo que agente faz nela leva de 10 a 50 vezes mais tempo que nas outras.

Sim, eu ainda me atrapalho com esses ponteiros, ou coisa do mau!!!
Passei até no blog do BCSanches pra rever aquele artigo de memory leakes... e com certeza ainda terei muitos.
Mesmo tendo dedicado 30% do tempo num engenho de ponteiros com a biblioteca vector.h

Experiência do usuário


Curioso pois a muito tempo eu aplicava minhas estratégias em elementos de media social dando menor atenção aos efeitos como forma de interação do usuário. No entanto surgiu a ideia da "tag cloud".
Literalmente "nuvem de tags" pela forma abstrata que as palavras tomam, resolvi usar uma variação bastante comum nos blogs de Wordpress, uma nuvem em 3D.


Com isso espero conseguir uma melhor interação do visitante no blog de projeto.

Ferramentas
Adobe Flex SDK, Adobe AS3 Language Referênce, Inkscape, My Paing, Gimp, Firefox, JQuery, Ubuntu Studio, Café

Artwork
Uma waccom na mão e uma idéia na cabeça

A arte final foi a parte mais demorada

De resto é speedy-paint puro.

Eu descobri depois de pronto que morguei...

Eu deveria ter feito um screen-cast, pensei que eu fosse começar e parar, mas fiz tudo numa sentada só.


Exportada para o Gimp é só acertar alguns detalhes, como o alpha das camadas, pois ao pintar rapidamente no programa de pintura as vezes deixamos umas áres meio translucidas (com pouca tinta). Até ai tudo bem, o importante é o programa agir como um pinciel de verdade.

E alguns retoques.

Salvei Cibele e uma imagem extra com a parte que pintei com luz (tudo foi pintado em camadas)


Um excelente programa para optimizar png é o opitpng... infelizmente o Gimp é pau-a-pau com ele, e quase sempre se mostra irrelevante aplica-lo.


Solucionei o problema do tamanho com algo que muitos não tem coragem de fazer... usei uma paleta de poucas cores na imagem. Alguns pixels evidentes, mas isso acaba deixando com mais cara de desenho animado e no carnaval da animação quase não é notado.

Essa questão é importante, pois muitos animadores web fixam seus olhos na qualidade e esquecem que muitas vezes aquele pequeno detalhe vai passar desapercebido do espectador. Mas a lentidão da carga não.

Coding
3D na unha, 3D por API nativa, 3D por biblioteca?
Entre as escolhas que eu iria fazer haviam essas 3.
3D na unha é uma das técnicas mais interesante para se aprender, onde você calcula a escala do objeto na tela apartir de calculos de projeção. Parece difícil, mas não é, o calculo é simples.
3D por biblioteca, Papervision3D é a solução pra todos os males, mas.... pesada em termos de uso de memória e kbytes adicionais.
3D por API nativa? Apartir da versão 10 o player do flash ja suporta transformações com eixo Z. E é leve pra rodar já que usa aceleração de hardware.
Escolhendo este ultimo, comecei a lembrar de meus estudos de matrizes, quaternions, vetores... o mais legal é que o o Flash 10 tem essas classes todas, não com o mesmo nome, e na verdade em versões simplificadas.

Matematica

Bom, a dificuldade estava agora em distribuir as tags ao longo da esfera, a primeira ideia foi calcular o volume da esfera que receberia as tags dividi-lo polo toal de tags e extrair-lhe a raiz quadrada. Assim eu teria um valor linear que poderia usar para ter o angulo fixo de distribuição. Demorei 1 hora para fazer o algoritimo e testar o calculo.


Como o primeiro método flhou completamente resolvi sair comer algo na cozinha respirar. Ai eu resolvi o problema em 15 min!!!!
Bastava dividir o raio da circuncerência (360º) e pela raiz quadrada do numero de tags! Assim eu teria um angulo fixo para repeti-las!


Em seguida determinei um raio mínimo para elas rotacionarem quando o mouse estiver fora do stage e um raio máximo  e depois notei que precisava também de um raio mediano para quando extivessem expandidas. Dá-lhe conta: v.z = t.min+t.med*f+t.adi*f;

Optimizando o sistema
Bom, tentei usar várias técnicas. A principal é o uso de opaqueBackground, oque não resultou muito certo. No fundo por exemplo, ficou uma borda preta quando dei o blur, ai deixei o default.
CacheAsBitmap em tudo que não for animado.
Outro recurso é nos filtros como o do rastro das tags. Ele trabalha com um buffer de acumulação que mede 1/4 do tamanho real do stage, como é um efeito de rastro ofuscado, isso não compromete a qualidade.

Paus insanos e inexplorados
Ao rodar pela primeira vez com Cibele tive a infeliz constatação que o sistema de desenho do movieclip tem uma falha com a transparência do PNG. Assim o rastro das tags ficava marcado na imagem sem ser apagado. Obviamente algum conflito com o color-filter que entende a imagem como um retângulo.
Descori também que manusear um sprite dinamicamente usando removeChild e addChild ocasionam um perdimento no sistema de desenho!


Assim tive que criar duas copias de Cibele, uma abaixo das tags e outra dentro.



A copia de dento é renderizada quando as tags extão expandindo e passam atraz dela. A que fica atráz das tags é renderizada quando elas se encolhem.
Eu tentei antes disso fazer com ela completamente dentro da nuvem de tags, mas issu resultou um efeito indesejado com o glow das tags

Até aqui eu desprendi 450% de tempo acima doque eu havia planejado! Só por causa desses inconvenientes.
E achei outro, um dos buffers de desenho que eu desenho a imagem das tags pra gerar o rastro não desenhava as tags com a escala visivel! Issu sim é um pau grave.
Fiz uma experiência, deixei o desenho do buffer em tamanho 1x1 com o stage, e vi que o problema estava na hora de desenhar no buffer, a matriz de transformação aplicada não computava os Sprites das tags em escala. Mas se fosse 1x1 funcionava (vai entender!)


Ai passei a usar um segundo buffer que desenho a imagem 1x1, apenas em memória, e em seguida desenho no buffer de saida em escala reduzida. E não apresentou perda de performance, que justificasse pensar em não usar.

Agora restou acertar detalhes.
Eu tinha planejado usar um sprite preto e branco com a iluminação. Mas como esse esquema falhou pelo problema de transparências citado acima fiz dois dezenhos de Cibele.


Com a luz externa e a luz interna concentrada.


Java Script

O Flash conta com uma poderosa API de conexão com o host do player e com JQuery bastou olhar no código gerado pelo Blogspot dos marcadores.
Infelizmente o Blogspot é terra-de-ninguem quando o assunto é estrutura de código legivel, por issu fui bastante meticuloso ao mandar pro flash a seção com a lista de nomes, por sorte este estava dentro do padrão: < ul >< li >elemento< /li >< /ul >

Para garantir performance recori à uma pratica pouco praticada (apesar de que o Youtube usa bastante).
Montei um script para enviar um sinal ao swf quando este não estiver em área visivel. Ele é acionado por scroll.
Agora como todos que trabalham com jogos sabem renderizar um objeto fora de tela é disperdicio de processador. É uma pratica comum em jogos, mas vejo pouca gente se preocupar com isso na web. "Mau costume" seria a melhor explicação, do culpar "prazo de entrega".
O player do flash não é burro, e automaticamente o ENTER_FRAME não desenha o resultado fora de tela, no entanto o swf continua processando as informações para que quando o usuário de scroll na janela do navegador o conteúdo do swf esteja atualizado.
Assim o sinal da java script faz o player pular qualquer processamento em background.
var wwp_tag_cloud_top = 0;

function wwp_tag_search()
{
var cont = $("#Label1 ul");
var xml = cont.html();
return xml;
}

function wwp_tag_cloud_getTop()
{
return String(  Number($("#wwp_tag_cloud_div").offset().top) - Number($(window).height()) );
}

function wwp_scroll_screen(e)
{
var top = (window.pageYOffset)?(window.pageYOffset):(document.documentElement)?document.documentElement.scrollTop:document.body.scrollTop;
try {
var wwp_tag_run = wwp_tag_cloud_obj().updateScroll(top);
} catch( e ) {}
$("#info").html( top + " / " + wwp_tag_run );

}

function wwp_tag_cloud_obj() {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window["wwp_tag_cloud"];
} else {
return document["wwp_tag_cloud"];
}
}

$(window).scroll(wwp_scroll_screen);
Tanks
Valew pela ajuda na PDJ e apesar de eu concordar com o FenrirBR sobre o problema de ordenação de valores vou manter o sistema em select-sort pois meu sentido de aranha diz que vou preisar desse conhecimento mais para a frente no sistema de jogo. E quem sabe eu consiga usar o Alchemy em reverso, afinal estou começando a estudar-lhe.
Se issu ainda estiver no ar podem ver a diferença aqui: http://www.8arte.net/testes/tagcloud/project.com.htm

Winderfáu Haroldo

Winderfáu Haroldo, grande arqui-mago-muito-fodão. Herói das guerras de Ardron, de Romanzon, de Fligbhordan e do Bar da Esquina do Seu Zé. Sua longevidade só sera superada por sua fama, e seus poderes nenhum outro usou de tal maneira que tanto bem espalhasse pelo mundo. Amigo de muitos povos, humanos ou não. Viajou e conheceu toda a terra, e muitos corações de donzelas deixou ao léu.
Winderfáu era para ser chamado Vencesláu, mas filho de um carpinteiro, com uma empregrada-doméstica, recebeu seu nome de pia graças à adoração da mãe pelo som do nome dos seus patrões, uma família alemã, muito antiga, de rostos rozas, corpos gordos e mulheres bigodudas, mas de um humor e compaixão fenomenais, que apadrinharam o nosso herói, dando-lhe ensino e possibilidades para estudar magia.
Ainda jovem se enamorou da filha deles, tendo caído em escandalo quando foi pego com ela em estado intimo. Nesse instante Winderfáu teve que partir da casa de seus padrinhos, e lutou sozinho contra monstros e espiritos do mau em busca de sustento. Ganhou uma bolsa na escola de alta-magia de Harcon e lá, com muito esforço dos bicos de aventureiro, concretizou seu sonho. No entanto, infeliz foi o destino, sua amada havia falecido de pneumonia no colégio de freiras para onde tinha sido mandada. Nesta épocaWinderfáu começou a suspeitar que seus atos com a menina haviam rendido mais doque constrangimento, pois soube ele, que este colégio, era lugar para onde as famílias escondiam as meninas que engravidavam fora do casamento. MasWinderfáu , mesmo possesso, não levantou a mão para seus padrinhos afim de arrancar-lhes a verdade. Saiu pelo mundo em buscas de pistas, e nessas andanças muitos lugares visitou, muitos heróis conheceu e muitos reinos salvou da danação total.
Em fim, cansado de andar e triste de coração ele parou e passou a estudar meios e mais meios de atingir seus objetivos. Construío uma forte torre, sobre os rochedos da lagoa de Yukingh-Tratooth (não eu também não sei como pronunciar isso), e lá ficou. Com seus olhos mirava o mundo, ouvindo e vendo tudo, em alguma reminiscente esperança de lá de cima ver seu filho e ao mesmo tempo sempre correndo em auxílio de algum infeliz e defendendo a justiça. Sem dúvida, um herói completo, como o que se vê em histórias emquadrinhos, amargurado e maravilhoso, para um mundo onde só se vê tristezas é quase um ser utópico mas existente!



Este personagem venho ensaidado a muito tempo, e hoje além de fechar a historia ainda deu uma louca e amarrei ele com a historia de outro personagem que pode vir.
Tá ai minha lembrança de tempos imemoriais, quem curte Atari vai ter uma surpresa ao ver este mago aparecer na tela.
Sua função é guiar Cibele na busca dos itens mágicos para sua poção que destruira Narghbasthartazhen. Para tanto conta com um portal de teletransporte que vai usar para joga-la envia-la para todos os lugares do mundo.
É bem audacioso, mas troquei as cores e o nome do personagem deixar caracterizado a sátira. E lembrem-se este é Winderfáu Haroldo e não é, ou foi, ou tem intento além de omenagear Pitfall Harry (R). Ok ^_~
Pensei em arrumar uma cor que o Atari não exibisse, mas procurei as especificações dele na net e descobri que ele éra bem parrudinho pra época:
Atari 2600 - Console hardware. CPU: MOS Technology 6507 @ 1.19 MHz Audio + Video processor: TIA. 160 x ~192 pixel, 128 colors (16 on screen), 2 channel mono sound. RAM (within a MOS Technology RIOT chip): 128 bytes (plus up to 256 bytes built into the game cartridges) ROM (game cartridges):  4 KB maximum capacity (32 KB+ with paging) Input (controlled by MOS RIOT): Two screwless DB9
Uma coisa chamou a atenção, é a memória RAM dele, não sei como Asteroids conseguia rodar ehhehe. Pra quem não sabe 128 BYTES é:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Issu tudo, 128 caracteres! Ou seja, seu pc neste exato momento usou no mímino 60 vezes mais memoria apenas para exibir esta tabela na tela. Se alguem contou direito vai notar inclusive que qualquer tweetada é bem mais que isso (140 caracteres). E issu guardava posição do jogador, dos inimigos e dos tiros!!!


Outro hardware interesante, é o Cray, fiquei impressionado nas pesquizas ver o real poder dele, em 1985~94, eu ouvi seu nome, e achava que era muito over-power. Bom, realmente acho que na época era... bom, é um 386 grandãum!
Outra lembrança de tempos altamente esquecivéis é o fato de Winderfáu ter programado o sistema de teletransporte todo em FORTRAN e ter usado GOTO... o comando mãe da destruição dos programas antigos e pai do cáos das analizes. Este fato sera exibido por outro personagem que em breve irei revelar.
De qualquerforma Winderfáu gastou uma grana do cassete pra comprar esse super-computador e não quiz mais gastar com upgrades.
Entre algumas falhas no teletransporte podemos citar... o fato de Cibele ricochetear em dezenas de dimensões paralelas, aparecer em lugares nem um pouco acolhedores... aparecer sem roupas ^_^ etc.



A modelagem de Winderfául foi bastante complexa. E exigiu uma certa dediação de minha parte. Mas acho que cheguei à um polycount aceitável
Um aspecto interesante é a facilidade do OGRE de se criar um material, basta setar off todos os filtros mais avançados e pronto.

^_^

Aracne em SD

Pensaram que eu tinha esquecido dela heim?

Bom, enquanto o paralax mapping não funciona vou treinando meu 2d.
Pois é, to horrivel ainda. + agora vo forçar a pratica

NPCzim p discontrair

Bom, acredito que meu senso crítico impessa de usar esse desenho no produto final, mas meu senso de "vontade de ver tudo pronto" fala o contrário, em todo caso estou descorindo o formato Open Raster, bem interesante, e simples.
Cada vez que olho ele da vontade de mecher mais. Bom, não era pra ser bonito, mas ao menos simpatico. De fato tenho que me organizar pra desenhar mais e sem preocupação de produção, estou destreinado demais.

O dialogo a seguir pode chocar algumas pessoas, eu sei porque vi a reação de uma rodinha de amigos ao saber de sertas caracteristicas de Cibele ^_~
-Cidade 1 - Cibele encontra seu amigo de infãcia, agora um padeiro obeso
P> Oi, a quanto tempo!
C> ... num to te reconhecendo bem. Peraeh... Joãozinhu! XD Nossa, vc "cresceu" heim.
P> Você também... e como! Você desapareceu, da ultima vez que fui la no vale te ver nao achei ninguem.
C> Você parou de vir por quase um ano, minha mãe morreu e tive que ir em bora a procura de ajuda.
P> Porque você não veio aqui?
C> Não, na época eu era muito boba, sua mãe não gostava de mim. E eu estava com raiva, você e Ana Lucia sumirão. Por falar nissu, onde ela anda? Casou com ela? XD
P> Casar? Ela é que nem você não gosta de meninos, quando cresceu ficou pior passou a detestar. E naquela época eu não podia mais ir, quebrei minha perna, fiquei seis meses sem força pra andar.
C> Então ta explicado porque você sumiu. Mas então Ana Lucia virou sapata radical? Nossa! Agente só brincava de "marido e mulher"... ficavamos apostando qual de nois duas ia casar com você quando cresce-se, eu não esperava por issu.
P> Eu nunca cheguei a namora-la, ela saiu com algum cara forasteiro. Infelismente engravidou e tudo mais, nessa cidade pequena esse tipo de coisa pesa muito. Ela fugiu ha dois anos com um circo, parece que se amarrou com a trapezista. Nem sei como contar isso pro filho dela.
C> Perai, você que ta tomando conta do filho "DELA"?
P> Sim. O pobrezinho não tem mais ninguem.
C> Porra! Mas que puta que ela virou! Além de não liberar pra você ainda deixa o filho de outro na sua mão.
P> Depois de nossa época, acho que, ela não teve muitas alegrias. Acho que nem todos fomos afortunados com uma vida normal. O pequenino talvez mais que agente. Só espero que quando crescer não escolha o outro lado que nem vocês duas.
C> Outro... XD eu nunca disse que não gosto de meninos. Eu só "brincava" de marido e mulher com ela, éra normal na nossa idade... claro, agente ficava se esfregando peladinha pra parecer que nem os pais dela. Nossa, lembra quando agente foi nadar e você pegou nois duas se beijando no mato. Nós tres sempre nadavamos peladinhos, mas você nunca tinha visto agente se beijar... foi a primeira vez que seu pipi ficou durinho não?
P> oO
C> Hehe. Desculpe.
P> Sabe, fico bastante feliz, a vida inteira achei que você não curtisse meninos.
C> ... eu não serviria pra esposa. Não me dou bem com sua mãe e não sou nenhuma mocinha pura. Eu tive que me virar des-de os 7 sozinha, acho que você deve imaginar, né.... Além doque, eu sempre sou conduzida por forças maiores, e hoje acho que elas tão me arrastando pra algo naum muito baum. :(
P> Você esta bem mudada mesmo. Mas ainda tem o mesmo sorrizo. Dou graças a Deus por ele não ter sido maculado. Eu vou na missa logo mais, porque não vem me acompanhar?
C> Que convite! Eu sou sacerdotiza da natureza. Seu Padre não vai gostar de mim por perto.
P> Desculpe, eu não queria te desrespeitar. Acho que não sei conviver com gente de fora.
C> É, precisamos nos re-conhecer. Aparece la em casa, faz tempo que nós não nadamos juntos.
P> Nadar....? oO
- Final desta conversa Cibele além do que comprou ainda leva uma série de ítens a mais (também com um convite subentendido desses o padeiro tava locaum). é uma das manhas do jogo

Mais algumas texturas parte 4 ou 5

Estava eu andando na cidade quando derrpente ví que umas duas ou trez lojas não estavam mais lá! Na verdade nem lembro oque tinha naquele lugar, curioso é que agente só se dá conta que nunca tinha reparado em alguns detalhes só quando eles "somem".
Bom, não resisti as texturas que apareceram, ruínas e bem no meio da cidade ^_^
Foi um bélo domingo chuvoso que tive que ficar brigando com o Sol pra bater estas fotos!
Aiai... como eu queria uma dessas cameras novas da Nicom ou da Cannon, com GPS embutido! Mas enquanto o dinheiro não dá:

Visualizar R. Cel. José de Castro, 200 em um mapa maior

Pelo Poder Do Prisma Lunar

"Os guerreiros selenitas são também conhecidos como "templarios negros", são valentes golens que surgem sob evocação nos templos da deusa da Lua.
Apesar de servirem à uma entidade noturna os selenitas podem caminhar sob o sol e lutar fora dos templos. Sua constituição única e vitalidade no combate os tornam excelentes para a infantaria como falanges.
Sua arma preferida é a espada curta. Em combate são rápidos e destrutivos.
Diz a lenda que estes guerreiros de força bruta e vigor, muito distantes da formosura e agilidade simbolizadas pela deusa que servem, foram um presente do deus do Metal à Selene em uma noite de amor e cerveja imensuráveis. No entanto, devido ao calor da carne e o alto nível de alcool, o deus do Metal se esqueceu que havia prometido entregar-lhes ao deus dos confeiteiros como força especial para proteger algum templo ou padaria. Iracundo o deus dos confeiteiros lançou uma maldição aos selenitas que constitue-se seu único ponto fraco: eles tem uma alergia praticamente letal à bolinhos confeitados e doces, sendo o mais mortal o brigadeiro!"
Os selenitas, nome interesante diretamente tirado dos livros de Julio Verne.
Eles simbolizam a adoção de Lua como linguagem script em meu jogo, eu os fiz como mascotes pro projeto de I.A. separado.
Copiei bastante a ideia da logo da Lua na concepção do mascote e usei uma versão modificada da logo como emblema. Afinal como mencionei lá atraz na oficialização do projeto, irão aparecer inúmeras homenagens descaradas.
Vou tentar enumerar algumas das razões pro uso de Lua no sistema:
  1. Terra Brasilis, produto 100% nacional
  2. Sintaxe simples e boniteza pra programar
  3. Velocidade e performance
  4. Facilidade imensa em ser integrada ao projeto
  5. Portabilidade, se eu migrar pra C# ja tem Lua na área
  6. Usada em outros games de peso e até pela NASA
  7. Mitologia, a personagem principal é uma bruxa, e bruxas sempre estão relacionadas com a Lua
A ideia de usar eles no jogo veio do nada. Afinal ficou bunitinho o bichu.
Ah! As sacerdotizas do templo da Lua irão usar uniforme de marinheiro com um micro-sainha, é de lei. XP