Este blog esta em reforma no momento.

Mais rascunhos da interface de usuário (ui)

Este é o esboço de tela do status do personagem, pude reaproveitar a mesma tela de análise dos atributos nela (direita), elta tem acordions que mostram os elementos.
Mas estou pensando seriamente em deixar a tela com o boneco separada e esta como uma expansão.
De fato a maior conclusão que tenho é que preciso comprar um tabletpc com Android logo.

A ideia, ou devaneio melhor dizendo, é um modelo que as partes do corpo afetadas sejam mostradas separadas, por exemplo uma perna inutilizada já é o suficiente para reduzir a agilidade e destreza para zero.
No entanto esse raciocínio serve apenas para os membros inferiores, bloquear com escudos e outros recursos já não faria tanta diferença.
Traduzindo isto para uma linguagem de programador é assim: "Fudeu que o bicho vai pega feio!"
Então por enquanto isso fica no conceito. Pois no próprio manual do Daemon não encontrei nada que tratasse afundo o problema.

De fato acho que pegar a colisão pelas boundboxes dos bones e informar o dano do membro para o script e usar um número geral para mostrar na tela a saúde do personagem e tratar os eventos com uns "ifs" para verificar se o membro usado na ação pode ser usado parece uma saída óbvia, mas não creio que será simples.
Voltar a UML talves me ajude a solucionar o problema.

Outro elemento é o mostrador de eventos, indicando quais efeitos o personagem esta sofrendo (vantagens e desvantagens ativas no momento, venenos, buffs, etc) e as ocorrências.

Imagino no meio do jogo aparecer: "-10HP de dano, desconhecido".
Só pra fazer o jogador se virar e ativar os sentidos especiais para achar criaturas invisíveis.

Estética
Os ícones e outros elementos gráficos também estou com um pouco de dificuldade para manter a identidade.
O coração à esquerda foi um dos primeiros rascunhos que fiz, há uns 2 anos acho, com uma horrenda influência da moda. Lembram? Tudo cristalzinho como o iMac.
O ideal é chegar no conceito dos dois outros ícones retirados do set do Mattahan, um óptimo artista que achei no Deviant Art.

Textos
Já estou inserindo os textos em português na interface.
Eu optei por usar o Markdown para fazer os textos, se forem olhar pela Internet todos os RPG (MMORPG na verdade) usam textos simples, e Markdown oferece uma simplicidade muito grande de se trabalhar.
Notem que na imagem ainda falta alguns bugs na minha implementação. (não achei nenhuma implementação em AS3 pronta)

Recursos (Resources)
E por enquanto o melhor de todos os métodos para organizar os resurces do jogo é usar o "Gerenciador de Arquivo" XD
Simples e prático, organizo todos os elementos em pastas, e ainda tenho a vantagem do "Link Simbólico" deixando o sistema bem flexível.

Depois basta eu comprimir tudo num arquivo store.zip e incorpora-lo no SWF.
Assim basta eu usar:
GUIManager.addDica( WText.parse("strings/pt.br/ui/dicas/interface/dica001"), mpointer, 300,50 );


Enquanto OGRE e GameKit tem seus próprios gerenciadores de recursos (todo e qualquer elemento que compõe o aplicativo) eu não tinha a mesma opção dentro do Flash.
Mesmo o Away3D tendo o seu próprio eu achei melhor começar um customizado para o sistema de cargas do jogo.
Desenvolver um mecanismo que trabalhe simultâneo com o C++ não seria problema, mas decidir se o recurso será carregado de imediato ou será feito um download deixou a coisa mais confusa.
Resolvi testar dois métodos, um para download e outro de carga imediata.

Em elementos como imagens eu posso usar o carregamento tipo download, desenhando o mesmo no evento onLoad.

Já em casos como os scripts Lua a coisa é mais complicada, o ideal é que todos os arquivos já tenham sido carregados.
O sistema ainda não suporta múltiplas formas de recursos, como um ZIP e um SQLite juntos.

Uma coisa interessante no desenvolvimento de jogos é que você acaba sempre usando recursos que nunca imaginaria usar.
Eu por exemplo nunca dei bola para as Interfaces, mesmo porque bastava herdar classes e resolvia tudo. Criar interfaces sempre foi um processo extra de digitação que só come tempo.
Mas finalmente surgiu a necessidade de usá las. Em termos leigos crio um "template" de classe e crio classes para manipular arquivos ZIP, SQLite, downloads e etc e trabalho nelas como se fossem a mesma coisa.

Preparando ambiente de testes
Estou fazendo uns testes com o Logmein Hamachi, um bom mecanismo de VPN.
Imagino que com um Samba habilitado e um mecanismo de sockets eu consiga um bom sistema de comunicação.
Outras alternativas seriam a Dropbox, mas essa além de não ter um controle adequado, não gerência feedback.

Sim, é oque estão pensando, eu estou realmente pensando em preparar UI para testes com usuários.
Talvez eu use o Facebook para isso, afinal é um ambiente online que o povo esta acostumado, apesar de ter uma usabilidade porca para foruns.

Comentários