terça-feira, 18 de setembro de 2012

Museu de Jogos no 3º MAG / 3º WDJA

Realizei mais uma exposição do Museu de Jogos durante o 3º WDJA (Workshop de Desenvolvimento de Jogos da Amazônia), que ocorreu no dia 15 de setembro de 2012 no IESAM (Instituto de Estudos Superiores da Amazônia). Os eventos MAG (Mostra Analítica de Games) e WDJA são organizados pelo Beljogos e o IESAM em Belém do Pará.

Segue abaixo as fotos dos itens do Museu que levei para a exposição.








O Filipe Mendes do Beljogos aproveitou para levar alguns dos seus livros de arte de jogos. Ele levou também um xadrez do Super Mario que fez sucesso no evento. Vejam as fotos.



Filipe Mendes e Lucas Romero jogando o xadrez do Super Mario.

segunda-feira, 17 de setembro de 2012

Lucas Romero no "Liberalzinho"

O Lucas Romero apareceu no Liberalzinho, no dia 16 de setembro de 2012. O Liberalzinho é um caderno infantil do jornal "O Liberal" (Belém do Pará) que vem aos domingos.

A foto do Lucas está relacionada aos Jogos Escolares Católicos (JEC) onde ele participou representando o Colégio Gentil Bittencourt no esporte Karatê.


terça-feira, 11 de setembro de 2012

A lógica do jogo de labirinto (Game Maker)

Esta postagem irá comentar sobre a implementação do jogo de labirinto no Game Maker que disponibilizei no blog nesta postagem:
Jogo de Labirinto no Game Maker

O foco do artigo será na lógica dos Eventos e Ações dos Objetos do jogo.

O principal Objeto é o "jogador". A imagem abaixo mostra os Sprites que o "jogador" utiliza, sendo um Sprite para cada direção.


Cada um desses Sprites possui quatro quadros de animação (subimagens), como pode ser visto no "Sprite Editor":


Os eventos do "jogador" são os seguintes:


O movimento do "jogador" é baseado nos blocos de 32x32 do labirinto. Sendo assim, as setas do teclado só irão responder quando o jogador estiver alinhado ao labirinto. A imagem abaixo mostra as ações que são executadas quando a Seta para Direita é pressionada.


A ação "Change Sprite" possui os seguintes parâmetros:


O valor "-1" no campo subimage, significa que o valor atual da subimagem não deve ser alterado para que não atrapalhe a animação do personagem.

O valor "1/3" no campo speed representa a velocidade da animação. Se o valor fosse 1 então a cada passo (step) a subimagem do sprite seria modificada. Como temos poucos quadros na animação do sprite, queremos que a subimagem seja alterada a cada 3 passos, ou seja, a velocidade de animação será 1/3. É bem mais simples representar a velocidação de animação usando frações ao invés de usar o ponto como em: "0.3333".

O evento "Alarm 0" do jogador foi criado por dois motivos. Um dos motivos é reunir em um único lugar as Ações que devem ser executadas no final do jogo, ao invés de repeti-las em diversos outros Eventos. O outro motivo é fazer com que a tela do jogo seja desenhada pelo menos uma vez após a derrota do jogador, para que imagem do jogador seja trocada antes do jogo parar.

No jogo, os Eventos que acionam o "Alarm 0" são as colisões com os objetos "monstro" ou "explosão". Ambos iniciam o "Alarm 0" com o valor de 1, para que já seja executado no próximo passo.

As ações que são executadas no "Alarm 0" são as seguintes:


Quando o jogador pressiona a barra de espaço, é colocada na tela uma instância do objeto "dinamite". No evento Create, a dinamite cria um Alarme com o valor de 100 passos. Como o jogo está rodando a 30 passsos por segundos, o tempo que irá demorar para a dinamite explodir será de 3,33 segundos. Quando o Alarme dispara, são criados 5 instâncias do objeto "explosão", sendo uma no centro e mais 4 nas posições adjacentes. A imagem abaixo mostra as ações.


Com um propósito didático criei um objeto chamado "pai_destrutivel". É um objeto bem simples que possui apenas um evento de colisão com o objeto explosão. Neste evento a instância atual é destruída. A idéia é que todos os objetos do jogo que possam ser eliminados por uma explosão (exceto o jogador) sejam filhos do objeto "pai_destrutivel", herdando todos os eventos criados no objeto "pai_destrutivel". Este conceito é chamado de "Herança" e é muito utilizado na Programação Orientada a Objetos.

Como exemplo temos o objeto "Monstro". Na propriedade "Parent" está atribuído o objeto "pai_destrutivel". A imagem abaixo mostra as propriedades do objeto "Monstro".


Quando um "Monstro" colide com um bloco, parede ou dinamite, ele precisa escolher uma nova direção para se mover. É atribuída uma nova direção para o "Monstro" e logo em seguida é verificada se a posição para onde o "Monstro" iria se mover no próximo passo está livre. Se estiver livre então o evento é encerrado com o uso da ação "Exit this Event". Caso não esteja livre, são testadas outras direções. A imagem abaixo mostra estas ações.


Estas mesmas ações são repetidas em 3 eventos: Colisão com objeto bloco; Colisão com objeto parede e Colisão com objeto dinamite. Esta é uma boa opção para converter essas ações em um script que seria apenas chamado nos 3 eventos.

O cenário do jogo é feito de uma forma bem simples. É desenhada uma cor de fundo azul e são usados os objetos parede (nas bordas) e bloco para montar o labirinto. A edição do cenário é feita com o uso da grade que foi configurada para a dimensão 32x32. Todos os objetos estão alinhados a esta grade.


sábado, 8 de setembro de 2012

Filme Detona Ralph (Wreck-It Ralph)

A Disney está produzindo um filme que irá homenagear os games antigos. O filme conta a estória de Ralph, que é o vilão de um jogo de arcade (fliperama) chamado "Fix-it Felix Jr." (Conserta Felix Jr.). Ralph já estava cansado de sempre ser o vilão por 30 anos e queria provar que poderia ser um herói nos games.

Durante o filme, diversos personagens clássicos de games aparecem, como na imagem abaixo onde estão reunidos diversos vilões de games para desabafarem sobre a dura vida que eles levam.


A estréia do filme será no dia 04 de janeiro de 2013 no Brasil. Já está disponível um trailer em português que pode ser acessado na página: Trailer Detona Ralph.

O mais interessante foi que eles criaram realmente o jogo "antigo" que aparece no filme e disponibilizaram para o público jogá-lo na Internet. O jogo pode ser acessado no link: Jogo Conserta Felix Jr.


quinta-feira, 23 de agosto de 2012

Shadowrun Returns



Shadowrun é um livro de RPG que apresenta um mundo fictício em um futuro próximo. No mundo de Shadowrun estão presentes a força das armas, os mistérios da magia e as maravilhas da tecnologia.

Já foram desenvolvidos 3 jogos de videogames baseados em Shadowrun. O primeiro foi em 1993 para Super Nintendo, o segundo em 1994 para Mega Drive e o último em 2007 para XBox 360/Windows.

Jordan Weisman, que foi o criador original do livro de RPG do Shadowrun, conseguiu readquirir os direitos sobre o universo Shadowrun que estavam com a Microsoft.

Harebrained Schemes, que é a empresa liderada pelo Jordan Weisman, colocou um projeto no Kickstarter para obter fundos da comunidade com o objetivo de construir um novo jogo de RPG baseado no universo Shadowrun. Este jogo será para Windows/Mac e Tablets e se chamará Shadowrun Returns.

A resposta da comunidade foi imediata e rapidamente eles conseguiram os fundos necessários para a criação do jogo. A previsão de lançamento do jogo é para o 1º semestre de 2013.

O lançamento do Shadowrun Returns me interessa muito por dois motivos. O primeiro é que em 1993, quando comecei a programar jogos em linguagem C, eu estava jogando o Shadowrun do Super Nintendo. Fiquei muito empolgado com o ambiente e a estória do jogo, de forma que naquela época o meu sonho era um dia conseguir programar um jogo de RPG como o Shadowrun do Super Nintendo. O segundo motivo é que o Shadowrun Returns virá com um editor que permitirá aos usuários criarem suas próprias aventuras e disponibilizá-las para a comunidade.

A imagem abaixo é uma arte conceitual do Shadowrun Returns. Os desenvolvedores alegaram que a qualidade gráfica do jogo ficará semelhante a esta arte conceitual. Para acompanhar as novidades do projeto, acesse a página: http://harebrained-schemes.com/shadowrun/