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.

Leben – Day 21

Bom,

Até agora esse engine foi o que achei mais agradável de descobrir e desenvolver.

estive fazendo alguns samples pro terreno, na última postagem deu pra ver, mas agora estou criando umas ferramentas pra pra gerar o terreno randomicamente, com algumas variações, como tudo é placeholder ainda está feio, mas o importante é a ideia por enquanto.

Untitled

esse terreno já foi gerado randomicamente, ainda existe alguns erros de transição, mas isso é porque eu não estou acertando transição ainda, mas ela funciona, as variações já estão funcionando também.

E implementei o FOV do personagem, ainda penso em aumentar o range, mas por enquanto está como placeholder, assim como todo resto :p

 

vamos ver o resultado daqui algum tempo

Leben – Day 20

Eae,

 

voltei desenvolver de novo o Leben, fazia algum tempo que não tinha mais vontade de programar ele, mas agora voltei.

Como eu já estava sendo organizado somente atualizei minha engine que eu já havia construído,  continuei testando outras engines, finalmente achei uma que fico confortável, gostei muito do Godot, agora com a possibilidade de usar C#.

estou há alguns dias já portando o que havia feito e o resultado:
2020-05-14-22-55-38

 

ok… concordo, não é bonito, mas por enquanto não estou querendo deixar bonito, quero programar a idéia, ver se eu consigo me divertir se conseguir, ai sim acho que fará sentido gastar tempo em deixar bonito.

 

vamos ver até onde vou desta vez :p

 

Inicio de pathfinding e outras coisas

Bom, ontem eu melhorei como funciona os eventos de npcs (mais detalhes abaixo) e  iniciei o pathfinding, não ficou bom, na verdade ficou muito estranho, mas funciona.

acredito que vou ignorar essa parte de fazer eles andarem e apenas teleportar as unidades por enquanto, não é que seja difícil fazer, mas é muito trabalhoso, e meio frustrante, porque depois de horas e horas escrevendo e polindo você percebe que ficou estranho, então vou meio que ignorar o pathfinding, ouvi falar em uma biblioteca que posso utilizar, mas precisarei portar e adaptar ao mundo de leben, bom é isso sobre pathfinding.

Acredito que já falei isso, mas eu quero que o Leben possa ser modificado quase que plenamente, pra isso eu preciso criar todo um framework pra suportar isso, preciso que todas as apis necessárias pro jogo estejam expostas e trazendo algum tipo de retorno pra quem estiver fazendo o mod, uma dessas api’s são os eventos de npcs, onde tem a responsabilidade apenas de ter saber os eventos daquele NPC, o framework possui um timer que conforme o jogo passa vai atualizando os eventos e quando estes chegam ao seu limite chamam um callback para o registro do evento,  que a origem pode ser do próprio jogo ou de algum mod que está nele.

 

bom vou terminar por aqui, tenho ainda muito trabalho com o leben.