Wild Witch Project - Um game que você nunca viu

Neste jogo você precisa ajudar uma bruxa adolescente a salvar seu mundo da Mortífera Bunda Assassina do Espaço Sideral

Novo mecanismo para troca de fases

Novo modelo de troca de cenas baseado em Controlers

Percebi que precisava de um método mais dinâmico para trocar de cenas (entre um arquivo blend e outro) e persistir os dados entre as cenas.
Uma coisa que nem sempre agente nota em jogos é que as vezes o mesmo cenário é usado mais de uma vez só mudando um pouco o roteiro dentro dele.

É o caso da minha taverna. E de cenas onde Cibele volta mais vezes.

Ao começar a fazer os scripts percebi que em vários momentos eu sofria por ter um trabalho excessivo ao trocar de um arquivo de teste para outro. E que muitas coisas tinham que ser repetidas sem usarem os mesmos valores iniciais.

Podem chamar de vício, afinal trabalho com isso todo dia, mas resolvi seguir a linha de frameworks de web e...


Pegando a nova roupagem que fiz para a API da OgreKit as funções de manipulação de objetos ficaram mais simples. E também estou usando a Lua LOOP uma biblioteca que monta um mecanismo de classes próximo ao sistema de Orientação a Objetos convencional.

Comecei a modular os componentes necessários para o sistema funcionar, até aqui foi muito importante eu ter feito as cagadas iniciais para ter aprendido o caminho.
1ª definição do código de configuração

Baseado em frameworks estilo Rapid Development como Ruby e Zendy eu montei um mecanismo que tem um arquivo de configuração que chama a primeira classe de controle.
Se eu precisar de outro .blend eu simplesmente troco o nome da classe.
Cada controle carrega seus valoes de inicialização, e pode usar o mesmo .blend de outro.

Tudo gerido por um SceneManager no nível do script mesmo. Esse SceneManager aproveita a troca de frames (ticks) e troca a imagem em cena, dando os avisos de “carregando”, etc.

Esse modelo de “encaixe” deve ser seguido de agora em diante ^^