Este blog esta em reforma no momento.

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

Um testezinho de trailer

Como agente perde tempo as vezes com coisas sem muita importância. Mas é bom, pra distrair.

Eu sei, eu sei, esse video é so um rascunho de Hello World! de video. Imagens de esboço, sem sincronismo com audio, tematica pouco trabalhada, corte-seco demais, etc. Estou começando a realmente estudar o editor de video não-linear do Blender. Já usei ele em algumas coisas simples, até em comerciais da TV regional daqui, mas nunca me aventurei a fundo.
youtube

Usei o MyPaint para produzir algumas das imagens, e agora tenho um novo wallpaper na seção de wallpapers. Lógio, que qualquer hora volto e desenho ele de novo, mais bonito e em qualidade alta. O MyPaint tem um bom desempenho de memória, testei ele com um arquivo de produção dos bem ignorantes e ele é muito rápido (bom, no meu 64-bit o pinciel nem lerdeou, nos sistemas de 32-bit a coisa fica um pouco lenta, mas ele ainda assim é excelente). Infelizmente ainda faltam muitas "features" pra ele ficar adequado pra produção.

Há, antes que me perguntem, este dirigível é um player que irei colocar em meu site pessoal. Preciso de um portifólio mais constante, não.
www.8arte.net

O video que aparece no player aqui tem audio, mas no site não tera. O crédito do áudio vai para este cara aqui no FreeSounds.Link

Religando os sistemas

Há tempo não posta aqui. Coisas como a chegada do meu iPod, a volta ao serviço indo de zero a 100, e uma gripe monstruosamente fenomenal me atrapalharam bastante.
Entre as coisas que pude fazer estão uma pequena caça à ajuda na PDJ, que motivou alguns membros, é bom ver que tem-se cooperação dos outros: ver o forum. Até anexei o RSS do DominuZ à meu sidebar.
Mexi, com um pouco mais de calma, na Firefox, acrescentei um corte a mais nas pernas para deixar a curva mais suave. E acho que irei por mais vértices também na região do joelho. Estas medidas realmente mostraram-se necessárias. Apósrigar a personagem não obtive um efeito muito bom como no desenho de esboço.
Também baixei uma versão de testes do Blender 2.50. Nossa, muito linda! Dá gosto olhar pra essa tela, a única coisa chata é que ficou um arzinho de 3D Max quando as paletas de ferramentas somem da tela obrigando agente a dar scroll . O novo sistema de janelas e eventos reescrito permitiu a junção de ferramentas com funcionalidades idênticas, economizando atalho pra cabeça do pessoal.
Pena que não dá pra começar a usar ela no projeto. Mas fica aqui a imagem da nova e bonitona tela.
Bom, com a alteração na malha da FireFox vou ter que reorganizar o UV-Map.

Também fiz a transferência do projeto filho de Inteligência Artificial do jogo para o GitHub. Ainda não sei se extingo a página do Google Code, afinal o Google Code é uma referência muuuto maior que o GitHub. Mas o GitHub alem de ser simplezinho de usar tem uma aparência melhor de rede de relacionamento.
Matei a saudade de fazer hot-sites, fazendo um pro projeto. Bom, acabou-se que um site que era pra ser feito em 2 horas levou umas 12! Mas também não me contive e fui colocando cada vez mais e mais embelezamentos, como a ilustração do "guerreiro selenita" (esse nome saiu direto dos livros de Julio Verne) e do Feed RSS que usa aceleração 3D do Player10 do Flash.
O projeto usara Adobe Alchemy para rodar Lua dentro da AVM, assim devo ter um ambiente de testes próximo ao definitivo ^_^ ow tecnolgia!!!!

Outras coisas ambiciosas, que surgiram do nada:
O estudo do iPod, OGRE ja tem um "port" pra iPhone, mas ainda não consegui fazer funcionar. Bom, esse aparelinho foi um bom investimento (espero).
E a criação de uma classe para manipular a curva de Bézier. Infelizmente a OGRE tem apenas "pretensão de suporte" à Bézier que o pessoal esta estudando. Enquanto não sai a versão bombada, achei alguns algoritimos mais humanamente compreensiveis na web e estou tentando aplicar. Assim espero obter um movimento mais suave principalmente na classe Camera.

Firefox 0.9aRC

Firefox é o bichinhu de estimação do Over-lho Nerd das Montanhas, ela vivia feliz e contente nos campos de North-Bridge, só que ela só se alimenta de memória. No entanto quando Naghdabasdarthen A Mortifera Bunda Assassina do Espaço Sideral atacou, todos os recursos do sistema foram para o firewall, assim com a falta de memória Firefox surtou pela fome e fugiu. Levando com sigo, um cartão micro-sd preso à coleira, neste cartão esta a senha de root do Over-lho Nerd das Montanhas.
Dessa vez fiz um rascunho da personagem, de forma normal. apenas para ter as proporções.
A ferramente Grease Pencil é ótima, mas poderia ter alguns refinamentos, como redução de nós e pós edição de nós... ai Blender seria usado pra desenhos em 2D (na verdade já até pode).
Comecei Firefox com ideia de ter um número um pouco desprepeocupado de poligonos, estou testando a malha para oque sera depois a malha de Cibele. Lógico Cibele vai ter mais curvas acentuadas. Até que consegui uma economia boa, ela ficou com 1530 triangulos. Com issu sei que Cibele tera dedos mais redondos e mais edge-loops.

E além do número de poligonos, Firefox ainda irá usar sistema de particulas, então em cena ela vai pesar um pouquinho a mais que o normal... nada injusto, afinal ela come memória do sistema!
Firefox tem menor volume de seios, resolvi variar um pouco, e deixar a sensualidade mais na cintura.
No final acabei optimizando bastante. Mas sempre ficam duvidas, nessa imagem esta a optimização das pernas, tirei umas duas fileiras que não estavam dando angulo acentuado. Visualmente na tela issu não sera muito importante, qualquer coisa o normalmap resolve. Mas fico me perguntando sempre até que ponto realmente tem-se que optimizar (Meu iPod touch chega essa semana, quem sabe ja posso fazer testes nele ^_^)
Fiz alguns edge-loops simples no rosto para ela ter mais expressão.
Pensei em não fazer boca, mas como as fotos de referência mostravam sempre focinhos mais compridos achei melhor deixar uma.
Por fim, após o oclusion puchei novas faces na malha e atribui-lhes outro material. Este sera usado com alpha-map, sera os cabelos e detalhes flamejantes.
Bom, como minha filosofia é "mangá na veia", resolvi puchar 8 folhas próximo a calda, em anime sempre tem uma raposa de 9 caldas, no meu jogo não pode faltar!!! Essas folhas também irão aparentar asas para ela ficar com um visual mais bombado.

Essas faces tentarei usar como referência para a criação de particulas. OGRE possui um potencial muito bom pra particulas, então não deve ser dificil apenas passar as cordenadas dos vertices.
Espero ser fácil pegar as informaçoes de vertices pelo material, se não vou ter que dar "split" na malha e render separado.

Irei começar os testes com Parallax Mapping e molho de tomate agora...
Enjoy

Referências bibliográficas ou não?

Hoje vou só mostrar um pouco de referências do projeto!

Rhapsody The Magic of Wizzard's Dream


Golimmar - indian triller ^_~


Shaun of the Dead - Todo mundo quase morto
Esse filme ganhou até uma refilmagem de uma das cenas por alunos da USP: http://www.youtube.com/watch?v=ejJLTUH9PHk


Stephen King It "A obra prima do medo"


Hammer Fall - Hearts on Fire


Grind House!!! um super projeto de filmes B
Planet Terror

Fake Trailes (infelizmente são trailers falsos que rolaram dentro dos filmes, mas cojitaram filmar mesmo Machete)
Machete - um assassino profissional mechicano traido por seus patrões

Werewolf Wommans of the SS - Mulheres Lobsomens da SS - Sex Apeal totalmente sem sentido ^_^
Destaque para Nicolas Cage como Fu Manchu


Ursinhos Gummy !!!!! huhuuuuwww


Uma noite aluinante II - clássico supremo! Quantos sustos levei e quantas risadas dei ao assistir


Sailor Moon =^.^= oh! quantas coxas


Final Fantazy Adventure Children! Obra prima da Square, pena que eles não estão animados pra fazer outro filme


American McGee's Alice - Uma versão Dark de Alice no Pais das Maravilhas


MD Geist!


Hellsing - AMV com Helloween do A.F.I. banda punk com um nome quase melódico: A Fire Inside


Dom Drácula - Maravilhoso desenho, até hoje ninguem supera ele! Eu tenho uma fita VHS original, uma das 3 que foram lançadas no Brasil.


Fantomas! O nome é engraçado, em japonês o titulo era Ogon Batto (Morcego Dourado), mas na época que foi lançado no Brasil havia uma mania, mais uma mania retardada dos publicitários, de usar um nome ja conhecido num produto novo. E na época havia um programa de luta livre onde figurava um mascarado chamado Fantomas!



Perry Rhodan, curioso é que esta é uma série de livros da década de 1970! E a maior até hoje, acho que são mais de 140 livros. E eu estou louco p conseguir ler todos.


Bom, são alguns elementos de minha infãncia e adolescencia que pretendo passar aqui no jogo.
Vamos ver se consigo.