Processamento paralelo com threads

Deixe um comentário

O motor do luawar consiste em processamento paralelo usando threads ( especificamente pThread) o qual não cria outro processo apenas faz o sincronismo em um mesmo processo. Este recurso é em alguns casos melhores do que utilizar outros processos pois o tempo de criacão (overhead)  é extremamente mais rápido pois compartilha o mesmo contexto de hardware e software do processo.  Para tornar nosso motor mais independente, rápido (sistema de renderizacão de vídeo) e mais controlável, utilizamos este recurso que até agora não ocorreu nenhum problema, pelo contrário tornou nossa aplicacão mais fácil de manipular, pois ficou bem dividido as partes do projeto em: Controlador de Eventos, Renderizador, Gerenciador de regras( RulesGame, que é a parte principal do motor),  IA ( a ser implementado).

o pThread permite que portamos nosso código para diversas plataformas sem precisar de alterar o código. mais tarde colocarei o diagrama de classes que detalhará todas as classes e permitirá visualisar a amplitude dos threads.

exemplo gráfico:

threads

até +;

Scrolling do mapa

1 Comentário

Após alguns dias inativo, voltei ao trabalho e coloquei scrolling no mapa, creio que tenho que corrigir alguns cálculos, mas olhando por cima está tudo ok com o scrolling. A implementacão dele é baseado no seguimento da camera ao personagem principal, ainda não é nenhum scrolling igual o Donkie Kong 3 mas não perde nada na visão, então creio que vai ser este mesmo até o fim.

veja você mesmo o vídeo:

Estrutura Gráfica

Deixe um comentário

A estrutura gráfica do projeto é baseada no conceito de lista de renderizacão, onde a cada momento um interador percorre uma lista de objetos registrados e imprime na tela.
As Classes existentes são:

Package: é uma classe que funciona como pacote que armazena uma superfície, um retangulo da imagem que vai ser impressa, um retangulo da imagem da tela (onde ficará impressa) e um numero de índice para que o renderizador possa saber as prioridades de renderizacão

RenderPriority: esta classe armazena em forma de lista e organiza todos os elementos Packages.

VideoRender: esta classe comtém uma RenderPriority, sua funcão é percorrer a lista que esta contida no priority e renderizar na tela todos os pacotes, ela é ma Thread que a cada momento determinado executa a funcao  de renderizar.

Video: esta classe fornece todas as funcões necessárias para a inicializacão e funcionamento do Vídeo.

Graphics Drivers

Colocando o bicho para andar!

1 Comentário

Estou colocando o lobisomen para andar, chega de ficar parado esperando um terreno para poder andar, já está na hora de andar mesmo sem chão para pisar. aqui vai um vídeo do lobisomen andando sobre o vento, vale lembrar que estão funcionando o script em Lua que faz referência à todas características do lobisomen, o qual utiliza a Classe Person que pode ser herdada por qualquer tipo dos personagens e até mesmo dos inimigos ( IA).

Qualquer novidade, postarei em forma de vídeo, rascunho, foto, números binários, ou qualquer outro meio propício.

Teste no Windows

Deixe um comentário

Gostaríamos de avisar que provavelmente ainda este mês a versão para windows do editor de mapas vai sair. Anteriormente havíamos testado com o Microsoft Visual C++ e não funcionou com o pthreads, pensamos em até usar o a API WIN32, mas sabemos que aquilo é muito mal documentado e nojento, sim ele é bom, mas é chato, enfim iria ficar muito difícil para implementar isso para plataformas diferentes, e eu sabia que pthreads funciona no Windows também (provavelmente até pelo Visual Studio). Então instalei o Code::Blocks, estou conseguindo portar o código belezinha…

Bom qualquer novidade eu postarei aqui.

Software Livre: apresentação

Deixe um comentário

Conceitos sobre Software Livre

E sua utilização no Brasil

História dos jogos e videogames

Deixe um comentário

Pessoal esse é um dos primeiros post sobre a história dos jogos eletrônicos e dos videogames aproveitem 😉

Older Entries