Este blog esta em reforma no momento.

Madrugada de tablet

Cibele vs Pedobear
Um pouco de insonia.

Referências, esboços, café, coisas and coisas

Quase meio dia, uma crise mortal de rinite e eu ainda nem começei a passar o aspirador de pó na bancada ou jogar água-sanitária na cozinha... preciso de uma diarista ~_~
To com um post no GDocs quase pronto sobre a nova estratégia de marketíngue mas vamos começar o dia bunitinho.
Referências:
Esses são caras são o regaço do panteão olimpico dos filmes de ação, humilha até as cenas de ação do Avatar:

Eu tenho que por esta camiseta no iventário! Tenho tenho tenho
Rascunhos (sketches)
Bom, segue-se um rascunho que fiz esta manha.
As sacerdotisas da Lua são um potêncial inimigo, Cibele tem que invadir o templo e recuperar um artefato.
Não dispenso as sainhas, todas são homenagem discarada ao anime Sailor Moon.
Referências:
Nem todos os insetos são dotados de beleza, mas todos são realmente muito legais!
Categoria Nada a Ver com o Game :P
Juliete, minha ramster, ja esta comigo a 2 anos. Sim esta aqui des-de que o projeto começou, é uma hilander!
 
Clarice me chegou aqui miando numa noite dessas. Falei pra ela, se quizer entrar tu entra. Fiz um café e deilhe um pouco d'água. No dia seguinte ela ainda não tinha partido, ai fui no supermercado compra comida pra gato.
Eu sempre preferi mil vezes os cachorros, mas chegada assim do nada, não contrario certas coisas do destino.
Ha! Clarice é a razão pra'quele grilo estar com uma antena quebrada.

Fim de semana pouco proveitoso

To no stress pela correria, projeto pra entregar amanhã e casa pra encontrar, e uma planilha de orçamento caseiro que não sai do vermelho.
Esta manha na revolta fiz esse teste doque pode ser o indicador de "vida" da personagem.
(ok, eu gastei um bom tempo só aprontando o swf pra por aqui, confesso. Mas é bom pra relaxar)
(quem tiver acessando do IE, sinto muito mais to cansado demais hoje pra me preocupar com ele. Usem o firefox)
Fiz de manhazinha esse rascunho e comecei a puchar umas coisas. É um Lagarto-morto-vivo-infernal. Bichinhu básico.
Nem liguei o scanner vai na foto mesmo, pobrezinho do meu Benq, ta lá encostado a meses e meses... na verdade nem ao menos me lembro de ter ligado ele des-de que comeei este projeto!
Fiz este rascunho do Lindomar e Cibele quando estava moscando numa cadeira com um reibo na mão e uma caneta na outra.

Monstro do Armáro terminado


Claro, falta rigar, mas agora é só copiar algum esqueleto de outro modelo.

O resultado pode ser visto aqui www.8arte.net/wwpvisualizador/index em 360 graus!

Eu fiz um exibidor diferente, desta vez com Flex e Zend framework no servidor. (Javascript esta me irritando por demais).

O link dos personagens agora fica permanente no header do blog.

Alterações no Blog e finalmente DOWNLOADS!


dl.dropbox.com/u/270587/wwp/downloads.html
Bom, aqui esta uma coisa inusitada, a primeira versão do Game Wild Witch.
Foram vários os motivos de eu ter abandonado esta versão.
Entre eles o trabalho, e os estudos de 3D que na época estavam simplesmente engatinhando. E percebi que o Max não estava me agradando, muito recurso pra pouco uso.
Há também outros porêns como o fato da engine escolhida ser ótima, mas como todas as engines da época não faziam tudo, e havia o agravante da dificuldade de implementar oque eu queria em momentos especificos (na verdade esta dificuldade ocorre até hoje).
Curioso é pegar os arquvos e lembrar, na época o pessoal ja achava que eu era meio louco porque estava usando o Windows XP (que eu carinhamente/rizonhamente chamava de Windows Xuxa Parquê). O pessoal não acreditava que um tijolo daquele que ninguem sabia mecher ou configurar podia ser melhor que o 98.
O uso do 3D&T é algo que abandonei. O jogo tomou proporções mediunicas e não é bom usar um sistema comercial, mesmo que o jogo seja free.


Finalmente o novo header esta pronto. Falta por alguns links apenas.
Agora finalmente eu acertei a mão e consegui um jeito da javascript funcionar sem os páus do Blogger interromperem.
Os filmes Flash agora chamam uma função javascript que diz se o respectivo filme está na área visivel do navegador ou não (culling swf ^_~).
Mas mesmo com esse cuidado o swf ainda pesa pra caramba, curiosamente apenas quando testo o mesmo on-line! Localmente roda normal.
Inicialmente pensei que isso se deve a algum compartilhamento de buffer de memoria do player que obviamente roda capenga em 64-bit ainda, ou à algum bug do Firefox pra Ubuntu.
Mas abri no meu IE6 que estava sem plugin do flash... e "bingo"!

Só sei que o Blogger é um bom serviço, infelizmente ele carrega a página com tanta coisa que você fica realmente perdido, tem muita API em javascript aqui de muitos serviços que nem tenho ideia de praque servem. Talvez seja impossivel migrar pra outro serviço de blog, mas nunca foi minha intenção.
Tentarei mecher mais tarde desmontando as estruturas de widgets e diminuindo seus numeros.

Monstro do Armário em uma tarde de domingo


Como vocês podem ver este é um monstro-do-armário bem convencional, do tipo que se encontra em qualquer armário de criança de cinco anos.
Foi uma tarde de domingo bem proveitosa. Tem 1040 triângulos e uma textura normalmap 1024x1024. O sculpt ficou com uns 70 mil poligonos.

Nada como um bom "folclore urbano"

Acho que uma pintura com uns tons de verde-musgo-nojento e marrom-esgoto-fedorento irão dar um toque de classe pro bichu.


Estava eu pensando em como por quests adicionais no sistema, e jogando Dragon World, quando percebi que é uma coisa bastante comum encontrar dungeons cheias de monstros demoniacos e esqueletos em qualquer porão de vilas medievais. Então como eu gosto de fazer coisas novas, resolvi mudar um pouco as coisas.

A idéia é que Cibele vai achar um muleque na rua que vai pedir pra ela ajuda com o Monstro-do-Armário do quarto dele oferecendo seu cofrinho (de dinheiro seus mente-suja). Com Cibele torta de fome e sem dinheiro, o jogador vai poder escolher:
A) ajudar o moleque (pontos de bondade)
B) manda ele toma no zóio (neutro)
C) ou dar um cuecão nele (pontos de maldade)
Se ela escolher a primeira alternativa ira falar com o pai do muleque, que não acredita em monstros do armário e vai mandar ela tomá no @$. Assim o jogador tera que esperar até anoitecer pra entrar escondido na casa (pontos ladinos ++) e confrontar o monstro no quarto do muleque.

E tenho idéia para outras dungeons não menos curiosas...

Começando 2010 no FIGHT!!! ò.ó


Sai do serviço ao meio-dia, todos meus amigos ou estavam viajando ou com suas donas marias, com apenas 5 pessoas no msn, mais o rento da pdj fazendo companhia no forum... final de ano de nerd é fogo... resolvi começar a estudar que nem gente a questão de animação.

O resultado da Firefox estava muito pouco satizfatório, agora descobri onde eu errei o rig dela.
Depois de rever essa animação + de 100 vezes talves, eu notei que ainda errei, no ultimo movimento ele junta os pés mas usando o pivo como apoio, onde o certo no mundo real a pessoa estaria usando o "pé" como apoio!
O segundo erro me lembrou a Cartilha Básica de Desenhos Animados: EXAGERO. Pois no angulo de câmera o soco não ficou muito evidente. Isto quer dizer que no cinematic terei que animar a camera também com mais caltela.

Bom, FELIZ 2010 AI GALERA!!!!

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