Leben – Day 32

Hoje não foi tão produtivo,

estou implementando a AI nos npcs, ainda estou absorvendo os postsde referência.

Bom em resumo eu havia feito um código lá em meados de 2016, que já tem alguma base da AI,

Que cada entidade possui uma Entidade, e dela uma lista de tarefas.

Hoje essa estrutura mudou.

E agora essas tarefas são na verdade eventos que são pré-configurados com timeout que quando invocados algo determinado acontece.

Algo como:

HungerTick (1seg) > evento de subtrair o valor da fome.
TirenessTick (1seg) > evento de subtrair o valor da Cansaço.
ThirstTick (1seg) > evento de subtrair o valor da Sede.

acredito que ainda vou ter de pensar em uma forma de integrar a inteligência artificial, para tomar uma decisão e deixar uma tasklist.

Penso em algo parecido como The Sims, acho muito agradável essa idéia.

mas por enquanto não é um roadmap, estou desenvolvendo e descobrindo o que é Leben.

Leben – Day 31

Bom…

Li bastante conteúdo e não… eu não li o livro inteiro ou todo conteúdo que postei recentemente, pois estou procurando técnicas, mas achei outros conteúdos bem pertinentes.

Encontrei esse post: Coffee Brain Studios – Finite State Machine vs Behaviour Tree, A True Story.

o que me chamou atenção é: eu pensei usar Finite State Machine (FSM), mas Behaviour Tree (BT), mas quero deixar a AI Complexa, independente e Extensível, pra isso acredito que terei de tomar a mesma decisão, implementar minha própria Behaviour Tree.

Gostei bastante desta implementação: Libgdx-AI,A Conclusão é interessante, mas a explicação extensa é de grande valia pra mim.

continuarei pensando

inté.

Leben – Day 30

Nem sempre conseguirei adicionar imagens ou algo visível de como está andando o projeto.

hoje estou lendo alguns conteúdos de AI

O Livro que estou lendo como referência, pra não ter de reinventar a roda.

Inteligência artificial para jogos

outras referências: Wiki e Um Post do Chris Simpsom sobre como funciona AI

é redundante ler a mesma coisa, porém tem graus de complexidade onde eu posso escolher em qual deles me aprofundar e quando.

sou autodidata faz muito tempo e desta forma eu controlo quanto e como, fico mais inclinado á aprender.

Ainda acho que hoje crio um Arcabouço para apresentar algo, se ficar claro eu posto.

Leben – Day 29

Juntando todo o trabalho feito até o momento, temos esse resultado:

Ainda há ajustes de animação, a animação também “trava”, o Pathfinding dá um bug quando entro em certos localizações.

Mas, já existe esse “sandbox” pra começar colocar itens e testar e fazer algumas coisas.

ainda é necessário fazer o código do behaviour tree, sendo algo muito complexo, não acho que vou adicionar no jogo.

Vou preferir isolar a AI, testar direto num console, depois passar pro HTML ou WPF, e depois que estiver razoável, quero criar ferramentas pra manipular, depois crio uma forma de portar essa instruções pra engine, até o momento essas foram as melhores formas de trabalhar que percebi.

Toda vez que tentei fazer tudo de uma vez, direto na Engine a quantidade de coisas que eu precisava fazer e aprender era overwhelming…

bom é isso, sim, duplo post hoje, mas ontem não deu pra postar e não fiz muita coisa.

Leben – Day 28

ainda estou desenhando a parte de AI, e como vou sub-dividir as os pensamentos de npcs.

Por enquanto estou adicionando mais recursos para conseguir ter os recursos pra AI, um exemplo delas é o pathfinding:

TODO? bom.. as animações não estão correspondentes pro sentido que está o npc está caminhando.

Leben – Day 27

Bom, finalmente terminei a detecção de objetos no mapa, ainda precisa de muito polimento, ma está bem rápido,

ainda penso que o angulo deve ser maior, porém quero fazer outras coisas, então por enquanto é o suficiente.

Vou começar trabalhar na AI agora.

Leben – Day 26

Ontem de noite eu não consegui postar,

mas não houve grande mudanças visuais,  atualizei as dependências do projeto, implementando o fov da maneira correta, já fiz umas 4 versões.

estou começando fazer testes unitários, pra impedir que bugs durante o jogo sejam detectados, a pior parte não é escrevê-los, mas ter que separar em pequenas partes alguns comportamentos e introduzir isso no jogo, é muito bom pra exercitar programação.

estou começando adicionar BDD pra testar, um exemplo dos testes:

tests

acho que de noite terei mais updates

Leben – Day 25

Bom,

continuando meu trabalho no Leben, consigo compreender o que acho mais desafiante em desenvolver um jogo. Usar a criatividade pra criar código e dar vida pra um jogo, é algo bem parecido com o que faço no trabalho e não há grandes diferenças.

Mas sendo um jogo preciso fornecer instruções pra um computador que até então nunca foi necessário.

Estou voltando estudar álgebra, especificamente trigonometria.

leben-trigonometry

Qual motivo? simples, preciso detectar se determinado objeto está em um raio da visão do personagem, poderia implementar de qualquer forma e sim, funcionaria, MASSSS… eu procuro não fazer de qualquer jeito, afinal quero jogar um jogo que não tenha queda de fps.

Até agora já fiz funcionar, usando uma técnica chamada dot product.

dotproduct

Quando o raio fica vermelho, significa que o arbusto no jogo foi detectado.

porém quero utilizar apenas 120º-130º, afinal o personagem não tem olho nas costas.

continuarei no meu reforço de trigonometria, pra fazer isso funcionar e posteriormente os primeiros passos pra AI.

Leben – Day 24

Estive estudando e pesquisando sobre design.

 

encontrei alguns programas promissores, estava usando Piskel gostei muito de usar, mas tento me forçar usar outras ferramentas só pra saber as possibilidades, estive vendo vários vídeos de artistas desenhando, designers discutindo sobre arte.

encontrei bons programas, como:

  • Aseprite:  (que é pago, então vou deixar pro futuro).
  • Krita:  esse eu comecei usar ontem, eu odiei… Mas depois de ver alguns tutoriais, dicas e metodologias melhores das que usava, comecei gostar bastante, só preciso me adaptar, ainda mais que estou usando a wacom.
  • Tiled: ainda não usei, mas parece facilitar testar os tilesets, ainda preciso de muito trabalho na engine pra precisar realmente montar um cenário dos tilesets, só deixarei no meu toolbox.

Depois de estudar consegui desenhar o que está na imagem abaixo.

ref

 

ainda levará um tempo pra deixar top-notch, mas estou sem ansiedade, então será uma iteração interessante.

 

bush

e comecei criar o processo de desenvolvimento da flora.
é isso, continuarei amanhã.

Leben – Day 22

Hoje estive trabalhando ainda na geração de mapa,

ainda não me habituei usar a engine pra renderizar, na verdade acho que perderia mais tempo checando o resultado do que fazendo como fiz.

eu peguei as coordenadas e o valor perlin, organizei e fiz um display no html.

lá eu faço as adequações de environment.

o resultado foi este:

 

Untitled

 

ainda preciso fazer definições melhores, por exemplo o pico das montanhas, transição de floresta pra montanha, montanha pra deserto.

por enquanto estou satisfeito,

acho que isso é o suficiente pra montar no mapa e começar colocar outros elementos no jogo.