Header Image -

Category Archives

7 Articles

Algoritmos: Quick Union

by Bugan 0 Comments
Algoritmos: Quick Union

No ultimo post sobre algoritmos falei sobre o Union Find Problem e sobre o algoritmos que chamamos de Quick Find que resolve nosso problema, fazendo as ligações entre elementos dentro de um grafo. Porém a solução que encontramos era muito lenta para problemas reais onde podemos ter milhões de dados para serem processados. É por isso que estou aqui hoje, para falarmos de uma outra possível solução para esse problema, se você ainda não viu o post onde eu falo sobre Union Find é melhor você correr lá antes de continuar lendo esse texto.

Bom então vamos lá…

34 views

Algoritmos: Union Find

by Bugan 0 Comments
Algoritmos: Union Find

Estudar algoritmos é uma tarefa que todo programador deveria se propor a fazer regularmente. O fato é que existem muitos algoritmos já criados para uma enorme variedade de tarefas computacionais e conhecendo alguns desses códigos pode facilitar e muito a solução de um problemas dentro de seu jogo. Seja um problema de lógica ou um problema de performance. Então aqui estou eu voltando a escrever para a Paralaxy (depois de muitos meses sem dar noticias, eu sei….) e resolvi trazer fazer uma série de posts sobre algoritmos, então vamos lá!

 

63 views

Perlin Noise

by Bugan 0 Comments
Perlin Noise

Muitas vezes quando programamos um jogo precisamos utilizar um gerador de números aleatórios para dar dinamicidade ao jogo. E um bom gerador de números aleatórios deve nos fornecer uma sequência de números sem relações uns com os outros e que não tenha um padrão pré-estabelecido. No entanto, quando falamos de criar ambientes, texturas,etc… tentando nos aproximar de algo natural a aleatoriedade pura e simples não nos basta por criar justamente uma sequência sem padrão nenhum. Para isso existe um algoritmo conhecido como “Ruido Perlin” devido ao seu criador Ken Perlin que criou esse algoritmo para a criação de efeitos especiais do filme Tron, no inicio dos Anos 80.

59 views

Colisão 2D AABB

by Guest 0 Comments
Colisão 2D AABB

Hoje temos um pequeno artigo escrito pode Andre Kishimoto sobre colisão AABB ou box collision. Vocês podem ver o artigo original aqui se preferirem.

Um exemplo mostrando como detectar colisão entre dois AABB (Axis-Aligned Bounding Box) em 2D (usando HTML5/JS).

O exemplo pode ser encontrado funcionando no artigo original. Infelizmente não conseguimos traze-lo para a Paralaxy. Mas fique a vontade para baixar o código fonte no github.

A ideia

Dois retângulos alinhados nos eixos [XY] não colidem caso estejam separados em um dos eixos. Eles colidem caso se sobreponham em ambos os eixos.

O código

Breve explicação

Se o AABB (contorno do objeto alinhado nos eixos) de um objeto A estiver totalmente à direita ou esquerda do AABB de um objeto B, então os AABBs não colidem no eixo X. Quando o AABB de um objeto A estiver totalmente acima ou abaixo do AABB de um objeto B, ambos AABBs não colidem no eixo Y.
Somente quando estes quatro casos são falsos é que os dois AABBs colidem (há sobreposição).
Para uma versão 3D, basta incluir o eixo Z e você terá mais dois casos para checar (A está na frente de B, A está atrás de B).

Nota sobre o código

O código nesta página foi escrito para ser legível e não está otimizado (i.e. você não precisa salvar as checagens em variáveis). Você pode ver a versão modificada e optimizada no arquivo main.js assim como em KishiTechJS/aabb.js.

Gostou do tutorial? Assine nosso blog aqui embaixo e curta nossa página no Facebook para ser o primeiro a receber nossas atualizações.

45 views

Geração Procedural de Mapas

by Guest 2 Comments
Geração Procedural de Mapas

Reprodução Gabriel Seidi.


Uma exigência comum entre diversos grupos de jogadores nos dias de hoje, seja com relação a jogos AAA ou independentes é a quantidade de conteúdo apresentado pelo game em questão, que influencia diretamente a duração da experiência oferecida (numa única ou em várias partidas consecutivas).

Personagens jogáveis, NPCs, inimigos, itens, cenários, habilidades, modos de jogo são todos exemplos de diferentes tipos de conteúdo dentro de um jogo. Todo esse conteúdo é produzido por uma pessoa ou equipe, interna ou externa, logo quanto mais conteúdo temos que criar, maior o tempo de produção e assim maior será seu custo. Se pensarmos que temos jogos sendo produzidos por equipes de mais de 100 pessoas e durante vários anos, é fácil ver como qualquer adição de conteúdo pode comprometer facilmente o orçamento de um projeto.

 

367 views

Criando Ferramentas para seu jogo

by Bugan 0 Comments
Criando Ferramentas para seu jogo

Reprodução Gabriel Seidi.


Em alguns dos projetos que já trabalhei precisei criar ferramentas externas à engine  que estava usando com o intuito de ajudar outros membros da equipe a participarem mais ativamente do processo de desenvolvimento. Por exemplo, no começo de 2015 comecei a desenvolver um jogo que possuía uma interação baseada em dialogo, o jogador estava conversando com um NPC e deveria responder algumas perguntas feitas por ele; para cada resposta do jogador a conversa iria seguir por um caminho diferente. Como eu tenho maior facilidade em trabalhar com tecnologias Web fui procurar soluções para que pudesse criar a ferramenta que precisávamos e assim eu achei o Node-webkit conhecido agora como NW.js

 

89 views

Começando com a API de Canvas para HTML5

by Bugan 0 Comments
Começando com a API de Canvas para HTML5

Reprodução Gabriel Seidi.


No meu texto sobre “Como começar seu primeiro jogo” comentei que poderíamos utilizar a API de Canvas em HTML5 para desenvolver nossos projetos, mas você conhece essa tecnologia? Sabe por onde começar? Se não conhece nem sabe por onde começar, então esse artigo é para você. Aqui pretendo explorar um pouco do que é possível fazer com o Canvas, mostrando um pouco de como fazer as chamadas update draw, utilizando apenas vetores.

Sim, eu sei que é extremamente básico e que provavelmente você não vai utilizar vetores no seu jogo, mas com isso conseguiremos aprender um pouco de alguns conceitos importantes para sua criação. É também interessante para quem nunca programou, entender um pouco de como pensamos na hora de criar um jogo, assim esse é um artigo para quem é realmente iniciante nessa área.

60 views