Devlog #06

Olá, primeiro devlog de 2016!

Desta vez focado em audio. Nesses dias aproveitei o tempo em alguns projetos secundários, um deles é o DvnSfxMaker!

O DvnSfxMaker é um plugin VST/AU para criar efeitos sonoros para jogos. É inspirado no Bfxr, logo possui algumas de suas características, mas não é meramente uma cópia dele. O meu objetivo é obter um maior controle sobre os parâmetros, ter alguns recursos novos e mais presets. Confiram no vídeo abaixo.

Espero terminá-lo até o dia 20. Falta pouco!

Outra novidade é que iniciei outra seção aqui na página: Samples&Patches. Lá você poderá encontrar um patch de violino solo para o sampler Structure e as respectivas regras de playback para software de notação Notion.

Até a próxima semana! (Espero que com notícias do Our Worlds :D)

Devlog #05

Olá pessoal! Mais um sábado, mais um devlog!

Nesta semana achei que fiz pouca coisa do projeto.. afinal só me recuperei da Ludum Dare na quarta.. hehe. Então, vejamos… o que foi feito… Incorporar e refatorei  alguns códigos feito na Ludum Dare dentro da DPEngine que é o meu framework base para os meus jogos.

Também fiz um update na DPLoadScreen para suportar a mudanças introduzidas versão 5.3 da Unity e temos uma nova feature: agora é possível fazer telas de carregamento com aquele “Carregamento Completo! Pressione qualquer tecla para continuar”. Logo estará na Asset Store este update!

É isso, de volta a programação normal e espero amanhã trabalhar mais no jogo. Até a próxima semana!

Project 0807 – Portmortem

Olá pessoal! No final de semana não teve updates no blog porque participei da Ludum Dare, uma tradicional competição de desenvolvimento de jogos.

Sshot02

Jogar AGORA!

Sempre quando participo de uma jam entro num modo berserker, em que o tempo se dilata e o sono não existe.

Passei dois dias, cerca de 43 horas só programando, criando sprites e sons apenas de placeholder. O sábado foi basicamente para criar o sistema combate com combos e o domingo passei criando a IA, evolução do personagem, sistema de insanidade, menus e outras coisinhas.

LD

Como estava o jogo 24 horas depois depois do início

Na madrugada de segunda-feira os principais componentes do jogo já estavam prontos, comecei a fazer o level design, e horas depois fui dormir pensando em fazer a arte quando acordar.

LevelDesign

Level Design feito no Photoshop Elements!

Quando acordei nem abri a Unity, senão poderia perder tempo programando algo e abri o Clip Studio Paint para fazer os sprites. Lá eu já tenho preparado meus brushes de pixel art. Então, fiz uma listinha de animações a serem feitas.

526775538b8d907236c93921c3381e6b

Fazendo as animações no Clip Studio Paint junto com a PSDAnim

Ainda bem que não parei para contar quantos sprites eu teria que fazer, senão desistido! Só de animações do jogador e de um inimigo foram quase 300!! Se juntar com os outros assets, são mais de 300!! Para fazer todos esses assets tive que simplificar bastante a arte dos personagens. Mais uma vez, a PSDAnim foi extremamente útil! A PSDAnim não é apenas visualizar, ela foi pensada também para exportar os frames prontos para serem usados. Depois de pronto todos os sprites, todos os arquivos foram processados de uma vez só, por um script em python que estava incluso nas versões antigas da PSDAnim. (na versão atual há um menu para exportar apenas o arquivo carregado).

QUADROS2

Frames exportados de uma vez só!

Quando terminei a arte já eram 7 horas, e precisava integrar todos esses sprites dentro da Unity. Agora outro ponto que preciso automatizar é a criação de Animations e e do AnimationController dentro da Unity! Aí sim, ficará uma toolchain perfeita! Quando terminei essa parte, já eram umas 22 horas. Então foram os detalhes finais: adição da DPSpritePalette para efeitos de mudança de paleta (diferentes tipos de inimigo, quando sobre dano, e efeito de transformação).

Finalmente os últimos minutos foram de play test, e ajustes no level design. Não tive tempo de fazer os  efeitos sonoros finais e de criar as músicas… Mas é isso. Gostei do resultado final, talvez ainda tenha algum bug aqui ou acolá. :P. Agora preciso de mais alguns dias para descansar e voltar com a programação normal do blog! Até!

 

 

DEVLOG #04

Devlog time!

Nesta semana me distanciei um pouco da programação e acabei focando em alguns aspectos de audio. Segunda recebi o serial do Strummed Acoustic que havia comprado na sexta e resolvi passar um tempo brincando com ele. Abaixo você pode ouvir a primeira trilha que fiz com ele. Mas depois descobri alguns usos mais efetivos. É melhor combinar patterns simples e alternar rapidamente entre eles dentro do mesmo compasso.

No dia seguinte, por não ter comprado o Solo Violin da Eastwest, resolvi criar meu próprio patch de violino solo usando samples que estão no freesound.org. Baixei os samples, abri o Structure e depois de 2 dias criando patchs para várias articulações, keyswitches, round-robins, ajustando a posição, volume e afinação de cada sample, cheguei a um resultado que me surpreendeu! Ficou melhor que qualquer patch de violino solo da Miraslov Philharmonic, do Notion e da própria Structure!! Valeu a pena perder esses dois dias com isso. Já tenho planos para fazer outras sample libraries. hehe

structure.png

Por fim, passei mais um dia para fazer uma limpeza dos plugins que eu havia instalado no Reaper. Fui testando cada um e classificando melhor até chegar num número reduzido de plugins.

structure2.png

Bom, é isso. até a próxima semana!

Desafio Semanal GAME ART #02 – TEMA

Chegou o dia!  E o tema é:

Escola / Tower Defense

Você deve criar a arte para um jogo Tower Defense com a perspectiva Planométrica Oblíqua e limitações do Megadrive (256×224 com 16 cores por sprite), que se passa numa Escola.

Bem simples, as mecânicas de um tower defense, na maioria dos casos, são bem simples e claras.

Bom… é só isso! Até o próximo post deste desafio!

Desafio Semanal #01 – Processo

Agora o post que prometi na semana passada. O passo a passo!

1) Comecei definindo a grade (tiles de 16×16) e coloquei o cubo do tutorial #00 para ajudar a determinar a escala da altura. Também coloquei logo a região correspondente ao tamanho da tela.

Passo01

2) Como o tema precisa de espaços urbanos, tratei de elaborar um tileset para as ruas, e montei um mapa para verificar a escala. Achei que ficou bom dessa forma. Nessa etapa ainda não estava me preocupando com detalhes e com relação às cores, só me preocupei com os valores para mostrar uma certa iluminação.

Passo02

Passo02_2

3) Com base numa referência, comecei a elaborar o primeiro prédio. Decidi que cada andar terá altura de 4 pixels. Ainda sem detalhes no objeto, apenas o valor.

Passo03

4) Continuei fazendo outros prédios, baseados nas referências, seguindo as formas retas e quadradas da época que se traduzem bem em pixel art.Passo 4

5) Depois já estava atrasado com o desafio, e comecei a pensar apenas no mock up. Resolvi criar uma determina região da cidade. Defini algumas ruas, onde terá água e um pequena região num nível mais elevado.

Passo04

6) Pensei em colocar alguma textura no tile para as calçadas das ruas. Essa textura só tem 3 cores. Usei modo tiling da PSDAnim para verificar como ficaria a repetição dos tiles. Todos os tiles tem esse mesmo padrão. Para evitar copiar o padrão para cada tile, usei os patterns do Photoshop. Defini o tile como um pattern, selecionei a região da calçada de cada tile e dei um Fill Pattern.

Passo05

7) Depois pensei nas cores finais. Como foi definido que terá um efeito sépia na tela. Resolvi usar um cheat. Criei um Adjustment Layer do tipo Gradient Map e ajustei as cores do degradê. Nesse ponto não estava satisfeito com as valores do asfalto e da água.

Passo06

8) Comecei a fazer os tiles para representar a mudança de nível do terreno. Sempre me preocupando com a perspectiva e os valores.

Passo07

9) Apliquei uma textura ao prédios da mesma forma que foi feita com as calçadas.

Passo08

10) Tendo já boa parte do material, comecei a montar o mapa. Combinei alguns tiles de prédios para fazer um prédio maior. Nesse ponto eu já tinha ajustado os valores da água e do asfalto. Outro detalhe importante são as sombras dos prédios. No fim, não gostei da legibilidade em geral dos prédios.

Passo09

11) Então resolvi colocar um outline para separar mais.

Passo10

12) Então chegamos no resultado final:

Passo11

13) Ficou faltando adicionar a água para representar a inundação. Para isso, foi bom ter separado cada os elementos em camadas desde o início. Os tiles das ruas e calçadas estão numa camada e os prédios em outra camada. Então bastou criar uma camada entre eles e preencher com os tiles de água. Em seguida foi só criar outra camada por cima para representar a água que aparece na frente dos prédios.

Passo12

É isso. Espero que tenha gostado. Amanhã começa o segundo desafio! Até lá!

DesafioSemanal01_result

DEVLOG #03

Sábado é dia de devlog!

Nesta semana me distanciei da programação de mecânicas do jogo e foquei em aspectos como documentação, preparação para o level design, persistência e comecei a programação do menu quando o jogo é iniciado. Haverá uma tela de seleção de número de jogadores (1 ou 2), configurações de controle e personalização de cada personagem.

Também comecei a pensar na música tema do jogo, que será tocada no final da fase tutorial. E falando em música, sempre fico atento a alguma promoção em efeitos ou instrumentos virtuais e como é Black Friday, promoções não faltaram. Passei a quinta e sexta pesquisando vários produtos que coubessem no meu orçamento de $50… hehe. Fiquei em dúvida entre o Strummed Acoustic, Sessions Strings, Sessions Horns da Native Instruments, Quatum Leap Solo Violin da EastWest e, finalmente, os Renassance Channel e PuigTec EQs da Waves. No final decidi pelo Strummed Acoustic. Queria poder comprar mais… hehe.. Mas pelo menos temos algo grátis! A Waves deu o TrueVerb, um reverb algorítmico muito bom. Ele junto com o Inverse Reverb da IK Mulmedia (que também peguei grátis meses atrás) me deixam satisfeito no campo dos reverbs algorítmicos. Só falta um bom reverb de convolução true stereo…

Enfim, uma semana sem muitas novidades para mostrar… Até a próxima!

PSDAnim 0.3.2

Mais um update da PSDanim! (Se você ainda não a conhece, clique aqui).

Durante a elaboração dos tiles do desafio semanal, tive a ideia de adicionar o suporte a tiling na PSDAnim.

Novidades:

  • Conserto de alguns bugs que foram introduzidos na versão anterior.
  • Zoom até 8x.
  • Nova visualização: tiling.

Gostou? Baixe aqui!

 
psdanim3.png

Se tiver alguma dúvida, deixe seu comentário. É isso!

Em breve novas features!

Devlog #02

Mais um sábado, mais um post de devlog!

Nesta semana adicionei várias coisas! Comecei testando a implementação de um reconhecedor de padrões para ser utilizado em alguns puzzles do jogo. Como foi feito? A base de entrada era composta por 6 classes, contendo 8 amostras cada. Em seguida, criei dois classificadores usando o algoritmo k-NN (com k=3 ou 5), sendo que o primeiro utilizaria momentos de Hu para o vetor de características e o segundo apenas o histograma. Escolhi estas características, pois são rápidas de implementar e não tem uma grande complexidade para serem computadas em tempo-real (as imagens utilizadas no jogo são de 128×128 px). Posteriormente, os resultados dos dois classificadores são combinados e classe com o maior número de indicações (os classificadores faz k1 e k2 indicações) é a escolhida. Porém, se ela não atingisse mais da metade dos votos ((k1+k2)/2), o padrão de entrada seria rejeitado. Pois bem, depois de vários testes fui ajustando o classificador, mas a taxa de acerto não estava sendo suficientemente boa. Fim do primeiro dia…

No segundo dia, fiz mais experimentações, e nada satisfatório… Talvez outras características?… Por fim, acabei eliminando este método, pois pensei em outro mais familiar para os jogadores. Imagine a tela de bloqueio do seu celular. Dividi a imagem em zonas, e em seguida calculo o histograma de cada zona. Se o valor dos pixels preenchidos for maior que um limiar, significa que aquela zona foi marcada. Ter um limiar  é importante, pois o jogador pode pintar sem querer alguma zona ao deslocar o cursor de pintura. Outro ponto importante desta forma é valorizar traços retos e diagonais, já que o controle do cursor é preferencialmente feito por um joystick. Então, nada de desenhos complexos.

Reconhecerdor de Padrões

Nos dias seguintes, foram basicamente de implementações de mecânicas para jogos de plataforma: botões acionáveis, plataformas móveis, escadas, itens coletáveis, etc.

Enfim, uma semana de bastante trabalho e muitas ideias para a próxima semana… Até o próximo sábado!

Desafio Semanal #01 – Resultado!

Olá! Aqui trago o meu resultado do desafio semanal! Como fiquei meio focado nesses últimos dias no Our Worlds e em outras coisas, o tempo planejado para o desafio acabou sendo menor do que eu imaginei… Em breve terei esse tempo disponível novamente! Outro ponto, é que escopo planejado acabou sendo muito grande, deixei de fazer muitas coisas da lista que elaborei..  (me empolguei com a ideia do jogo). Mas chega de mimimi! Na imagem acima você pode ver o meu resultado. Foi um bom aprendizado. Utilizei essa perspectiva pela primeira vez par fazer uma arte de jogo e achei satisfatório para o tempo alocado. Enfim… Durante a próxima semana, criarei um post detalhado do processo de criação e o próximo desafio começa no dia 29/11! Até lá!