Mostrando postagens com marcador XNA. Mostrar todas as postagens
Mostrando postagens com marcador XNA. Mostrar todas as postagens

terça-feira, maio 25, 2010

Vehicle Cleaner

Em meados do ano passado eu fui convidado por um colega do mestrado para ajudar no desenvolvimento do jogo Vehicle Cleaner, semifinalista da Imagine Cup 2009. O jogo já havia sido desenvolvido e passado pela primeira fase quando eu entrei na equipe. O objetivo era ajudar no polimento final e na adição de novas fases e recursos para levá-lo adiante na competição, o que infelizmente não aconteceu.

Aproveitando que o autor do jogo, o José Ricardo, postou o vídeo abaixo no Youtube, eu resolvi falar um pouquinho dele aqui também.


Seguindo o tema da Image Cup, o jogo propõe um ambiente onde uma bateria pode ser utilizada para reduzir a poluição emitida pelos veículos e cabe ao jogador fazer a conversão nos carros, ônibus, caminhões e motocicletas que passam pelas ruas. É preciso tomar cuidado para converter apenas os veículos poluentes e também atentar para o uso da bateria correta. O jogo acaba caso o nível de poluíção chegue ao limite.

Esse foi um dos jogos com a interface mais bacana que eu trabalhei. O menu principal com um robô gigante em meio à cidade era composto de três fundos diferentes que mudavam aleatoriamente, alterando também a disposição dos botões. A tela do mapa que aparece antes das fases também ficou muito interessante, levemente inspirada no jogo Captain Commando, ela mostra a fase atual, as concluídas e as que estão por vir.

O jogo se passa em diversas localidades espalhadas por uma visão futurista da cidade do Rio de Janeiro. As fases crescem em dificuldade à medida que novas pistas são adicionadas (incluíndo trânsito nas duas direções) e novos veículos ficam disponíveis.

Como não avançou à final, não chegamos a terminar todas as fases do jogo, mas ele estava bem promissor. Nós nos empenhamos bastante pra fazer o jogo interessante e divertido, tanto do lado da programação, desenvolvida por mim e pelo José Ricardo, quanto da arte, feita pelo David Siqueira.

Enfim, quem sabe em algum momento não conseguimos retomar o projeto... Enquanto isso, mais detalhes e uma galeria maior de imagens estão disponíveis aqui.

quinta-feira, janeiro 07, 2010

XNA Freeway - Remake

Quem acompanha o blog já deve ter percebido que eu gosto de fazer remakes. Que eu me lembre, já foi o Frogger, Pong, Breakout, Space Invaders (mais de um, na verdade), Pacman e Glug Glug. O motivo é bem simples: os remakes me permitem focar o estudo em uma linguagem, ferramenta ou técnica sem ter que passar por toda a parte de planejamento e game design. Como o meu foco sempre foi muito mais no desenvolvimento do que na criação, essa é uma boa maneira de aprender.

[Ainda assim a área de criação me atrai, com o tempo eu gostaria de criar mais jogos originais (como é o caso do Gosmotrix, feito em parceria com amigos da faculdade, e do Paraquedismo).]

Nos últimos dias eu criei um remake do jogo Freeway, do Atari, utilizando o XNA. A idéia foi recriar o jogo original e fazer somente algumas modificações menores que eu achei necessárias (como o menu na parte de baixo da tela para configuração do jogo). Se bem me lembro, comecei o projeto no último sábado e na terça-feira ele já estava praticamente concluído. De lá pra cá fiz apenas correções de uns bugs e a documentação do código.


Bem, para o desenvolvimento eu usei como base o original (jogado no emulador Stella), e o manual e o FAQ do jogo, que me ajudaram bastante a entender alguns de seus detalhes (especialmente o FAQ, que detalha a velocidade dos veículos, seu espaçamento, direção...).

Foram feitas somente as quatro primeiras fases. Segundo o FAQ, as fases seguintes são repetições das primeiras, apenas com diferença na velocidade dos veículos, portanto eu não cheguei a desenvolver esta parte.

Neste projeto deu pra brincar com algumas coisas legais do XNA, como o uso de GamePads, a utilização de GameComponentCollection e seus eventos, e alguns detalhes legais sobre como tirar screenshots usando Threads e o método EndDraw, baseado no código de Nick Gravelyn. Por isso só já vale a pena ter perdido umas horinhas no seu desenvolvimento.

Pra quem tiver interesse, eu estou disponibilizando juntamente com o jogo seu código-fonte completo. As instruções de como jogar estão em um arquivo de texto dentro do zip. O download pode ser feito aqui e comentários são sempre bem-vindos.

Por fim, uma questão filosófica: Por que mesmo a galinha atravessou a rua?! Talvez pra ganhar uns pontos...

quinta-feira, dezembro 31, 2009

Glug Glug - Remake

Em agosto deste ano eu fiz um remake do jogo Glug Glug (um jogo originalmente lançado na década de 80 para o ZX Spectrum) utilizando o XNA Game Studio. Para quem não conhece, no jogo você controla um mergulhador que deve ir até o fundo do mar resgatar alguns baús com tesouros e trazê-los de volta ao navio. Isto, é claro, evitando ser atacado por piranhas, tubarões e outras criaturas marinhas.

Menu principal do jogo. Clique para ampliar.
O jogo é bastante simples, mas tem uns conceitos legais (como o tubo de oxigênio ser cortado caso seja atingido por um tubarão). Ao invés de repetir as fases originais, eu criei uma forma das fases serem geradas aleatoriamente, onde cada tipo de inimigo tem uma chance diferente de aparecer. Nas últimas fases a porcentagem dos tubarões, por exemplo, é bem maior que nas primeiras. Ao todo foram criadas sete fases, mas é bem fácil adicionar novos níveis.

Eu me preocupei em fazer um jogo simples e rápido. A implementação de todo o jogo levou cerca de duas semanas, em seções esporádicas de programação, já que eu estava a todo vapor com o mestrado e o projeto da Direção Defensiva na época. Por isso mesmo, fora da tela de jogo a interface é bem pobre, ao invés de botões pressionáveis com o mouse, o usuário apenas tem que apertar os números correspondentes às opções. Não há grandes configurações possíveis, apenas se o jogo deve rodar em modo janela ou tela cheia.

Tela de jogo. Clique para ampliar.
Os gráficos foram todos reaproveitados do jogo original, tirados deste link, mas eles foram redimensionados (no Paint mesmo) para permitir trabalhar com uma resolução mais alta. É claro que são gráficos bem pobres, mas eu acho que esses jogos antigos pixelados têm seu charme. Segue um vídeo do jogo, feito durante seu desenvolvimento.



Ficaram faltando alguns detalhes, especialmente uma música e outros efeitos sonoros (atualmente só o tiro faz algum barulho). Também seria interessante colocar algum tipo de ranking, mas eu não cheguei a mexer nessa parte.

O download, para quem se interessar, pode ser feito aqui. O arquivo inclui o executável do jogo e seu código-fonte completo. Qualquer observação que queiram fazer sobre o jogo, sintam-se à vontade.

Importante: para jogar, é preciso ter ao menos o XNA 3.1 Redistributable instalado. Quem não tiver, pode fazer o download aqui.

terça-feira, agosto 04, 2009

Iluminação

Bem, o jogo que eu comentei no post anterior continua sem nome. Mas isso não importa por enquanto. Tenho novidades.

Eu integrei a demonstração anterior ao protótipo do jogo e a iluminação já funciona sobre o personagem e o cenário. É claro que estes componentes são só pra testes, mas dá pra ver que a luz funciona.

Pra fazer esse efeito, eu desenho toda a cena em um RenderTarget do XNA (uma espécie de backbuffer) sem o shader e depois aplico o shader diretamente na textura que será jogada na tela. Dessa forma o pixel shader só é processado sobre uma textura, eliminando o processamento desnecessário que ocorreria se uma imagem fica na frente da outra, por exemplo.

A idéia é que a luz siga o personagem, como se estivesse presa a um capacete. Nos vídeos aparece uma lâmpada só pra ter uma idéia de onde está a fonte de luz.

Abaixo a mesma cena com e sem o shader de iluminação.



sexta-feira, julho 31, 2009

Meu novo projeto

Nesses últimos dias eu estive bastante ocupando terminando o último trabalho do mestrado pra esse semestre. Tratava-se sobre um estudo sobre bump mapping em GPU.

Pra implementar o trabalho eu tive que aprender programação de shaders, algo que até então eu nunca tinha feito. Posso dizer que valeu a pena escolher esse tema, porque deu pra aprender uma tecnologia nova que eu pretendo usar no meu próximo jogo.

O trabalho em si eu vou publicar aqui assim que o professor liberar a correção e a nota final. Daí publico aqui o artigo e a demonstração que eu fiz com meu grupo.

Enquanto isso, quero falar do meu novo projeto. É um jogo que eu estou criando e pretendo mandar pro Festival de Jogos Independentes do SBGames, se der tempo. Ainda falta muita coisa a se definir, mas ele fará um bom uso da iluminação.

Abaixo um vídeo de um shader que eu implementei (em HLSL + XNA) pra iluminar um cenário em duas dimensões. A idéia é atenuar a iluminação à medida que o objeto se afasta da fonte de luz. No vídeo o raio de iluminação aumenta e diminui conforme o alcance da luz é modificado via teclado.



Vou tentar fazer um diário de desenvolvimento desse jogo. Vamos ver se dá certo. Mais detalhes em breve.

domingo, março 22, 2009

Gosmotrix

Este jogo foi originalmente criado em um fim de semana durante o I Global Game Jam (link), mas na ocasião foi entregue em uma versão bem simples.

Nesta nova versão foi incluído o conceito de fases, que dá um maior sentido ao jogo. Também foram corrigidos uns bugs existentes na parte de som. Enfim, o jogo está pronto e pode ser testado por todos.

Esse foi um projeto particularmente interessante de participar porque me fez estudar algumas coisas que eu desconhecia, não foi só sentar e fazer o jogo. Por exemplo, eu estudei como criar Content Processors no XNA (pra importar os arquivos das fases e transforma-los em .xnb) e como tocar arquivos .wma diretamente no código, sem a necessidade de usar o XACT (diga-se de passagem, esse recurso ficou muito bom no XNA 3.0).

Descrição: neste jogo você controla uma pequena lesma que deve agrupar peças da mesma cor para fazer pontos. O objetivo de cada fase é destruir todas as peças pré-existentes no começo da fase, marcadas em amarelo. Deve-se também tomar cuidado com a sua lesminha amiga que mais atrapalha do que ajuda...

Ferramentas utilizadas:
- Visual C# 2008 Express Edition
- XNA Game Studio 3.0
- CorelDraw Graphics Suite X4

Autores:
- David de Siqueira Alves Pereira (Arte)
- Diego Cordeiro Barboza (Programação) [eu]
- José Antônio Raposo de Rezende (Programação)

Download: aqui

Imagens:




Obs.: como o jogo foi feito em XNA, será necessário instalar o .Net Framework e o XNA para rodá-lo. O arquivo 'Instruções.txt' contido no instalador lista os links de download destes dois arquivos.

Fico aguardando a opinião de vocês.

sexta-feira, fevereiro 20, 2009

2° lugar no concurso de minigames em XNA

Eu sei que já postei sobre isso no GamedevBR, mas aqui eu posso falar de uma maneira mais pessoal. Então lá vai.

Meu jogo Paraquedismo ficou em 2° lugar no concurso de minigames da Revista Oficial do XBox 360 (em conjunto com o Sharpgames, ABRAGAMES e Microsoft Brasil). O nome dos outros vencedores e mais detalhes foram divulgados no Sharpgames.

Abaixo segue um vídeo com imagens dos jogos participantes:



O jogo é uma versão beeem modificada do jogo que eu inscrevi ano passado pra concorrer na categoria mobile do game contest do PDJ.

A diferença deste jogo pra versão de celular é que agora o jogador deve direcionar os paraquedistas de uma forma indireta, através do controle de um ventilador que os jogam para um lado ou para o outro, dependendo do sentido do vento.

O jogo foi feito em um total de 93 linhas de código de um total de 120 permitidas pelo regulamento (incluíndo as 20 linhas incluídas por padrão ao se criar um Windows Game no XNA). Eu fiz altos malabarismos pro código ficar pequeno (como o uso abusivo de atribuições múltiplas), mas no final esse esforço nem foi tão necessário, já que sobrou um bom número de linhas.

Como parte da premiação, eu irei receber uma cópia do livro "Beggining XNA 2.0 Game Programming - from Novice to Professional" e assim que ele chegar eu comento por aqui o que achei.

Enquanto isso, curtam uns screenshots abaixo e baixem o jogo (com o código) aqui.

Menu principal do jogo. Clique para ampliar.
Tela de instruções do jogo. Clique para ampliar.
Tela principal de jogo. Clique para ampliar.Espero que curtam o jogo. Até a próxima.

sábado, dezembro 15, 2007

XNA Game Studio 2.0

Esse blog tem andado meio abandonado ultimamente, mas eu pretendo voltar à ativa agora que o período na faculdade terminou e minha cabeça tá mais tranquila.

Enquanto isso, foi lançado dia 13 a versão final do XNA Game Studio 2.0. O download tem quase 100MB e pode ser conferido aqui.

Via: XNA Team Blog.

Aguardem novidades...

domingo, dezembro 09, 2007

XNA Dream Build Play 2.0

Foi anunciado pela Microsoft a 2º edição do Dream Build Play, concurso de criação de jogos com o XNA.

Poucos detalhes são conhecidos por enquanto, mas parece que a fase de aquecimento vai lidar com a Inteligência Artificial nos jogos.

A prêmiação para as cinco equipes finalistas já pode ser conferida aqui e agora, além do prêmio em dinheiro, há uma entrevista para concorrer a uma vaga num centro de pesquisa da Microsoft. Nada mal né?

Para mais detalhes, não deixe de olhar o site oficial.

Via: Ziggyware.

quinta-feira, novembro 22, 2007

XNA Game Studio 2.0 Beta

A Microsoft tá cheia de novidades essa semana. A bola da vez é a aguardada versão beta do XNA Game Studio 2.0.

Eu não testei ainda, então não posso dizer se essa versão está realmente melhor que a anterior, mas quem tiver curiosidade pode dar uma olhada no XNA Team Blog que lá tem muitas informações sobre o lançamento.

Para saber mais sobre o XNA 2.0, obter conteúdo e exemplos na nova versão, e fazer o download em si, confira o XNA Creators Club, ou ainda acesse o download direto aqui.

terça-feira, outubro 16, 2007

XNA Breakout

Esse é um joguinho no qual eu venho trabalhando nos últimos dias. Sim, trata-se de mais um Breakout, mas meu objetivo não é fazer o jogo em si, mas sim estudar a parte 3D do XNA pra um outro jogo que vou fazer com a galera da faculdade pra Imagine Cup 2008.

Falando sobre os estudos, o XNA é muito bom, mas dá pra ver que o Framework ainda é muito cru e ainda tem bastante pra evoluir. Eu tive dois grandes problemas na criação do meu jogo, um na parte das colisões e outro com os sons.

Primeiro, por mais estranho que pareça, o XNA não oferece uma maneira prática de se calcular uma caixa de colisão para objetos 3D. Você pode usar uma colisão por círculo, ou se virar pra encontrar outro jeito.

Bem, aqui vemos o lado positivo de um produto da Microsoft. A comunidade abraçou o XNA e já existem centenas de boas fontes de informações sobre o Framework por aí. Uma delas, o Andy's Blog, publicou uma maneira simples de se escrever um Content Pipeline personalizado que guarda informações sobre Bounding Box na hora de carregar o modelo. Não deve ter nem 50 linhas de código e aí fica a pergunta, porque a Microsoft não colocou isso direto no XNA?

Está com o mesmo problema? Veja a solução aqui.

O outro problema é ainda pior. Até o momento o XNA aceita somente sons no formato Wave (ou Aif o que dá na mesma) e sons nesse formato são enormes. Se um dos objetivos do XNA é atingir os jogadores casuais, ainda há muito trabalho para torná-lo viável. Um jogo que poderia ficar facilmente com uns 2 ou 3MB acaba ficando com dez ou mais graças aos arquivos de som. O jogador casual quer ter acesso rápido ao jogo, se ele precisar ficar horas baixando o arquivo, provavelmente vai buscar um site de jogos em Flash onde cada jogo demora só alguns segundos pra carregar.

Pra se ter uma idéia do exagero que o formato Wave causa no tamanho final do jogo, o Catapult é um minigame disponível no Creators Club com código-fonte completo, voltado para o aprendizado. É um jogo muito simples, mas tem 33,4MB sendo 30,2MB gastos somente por 9 arquivos de audio e o pior é que esse tamanho ainda aumenta quando os arquivos são transformados para o formato padrão compilado pelo XNA.

Como alternativa, se o desenvolvimento focar somente o Windows, pode-se usar uma biblioteca externa, como o IrrKlang, mas o XNA deveria empacotar esse tipo de solução nativamente.

No fim das contas eu ainda acho que o XNA é uma ótima plataforma de desenvolvimento, o suporte da Microsoft e da comunidade realmente fazem a diferença, mas vamos torçer para que a versão 2.0 do Framework traga mudanças relevantes em relação a estes problemas.

O jogo ainda não está disponível pra download, mas libero ele em breve. Enquanto isso, alguns screenshots do XNA Breakout 3D:

Menu principal do jogo. Fiz um Game Component bacana que quando você passa o mouse por cima do botão ele muda a imagem.

domingo, setembro 30, 2007

Conteúdo novo no XNA Creators Club

A equipe do XNA Team Blog liberou mais uma rodada de conteúdo novo no XNA Creators Club.

São muitas novidades, entre exemplos, utilitários e artigos. De todo o material novo, destacam-se um exemplo de colisão com heightmaps, uma classe Model personalizada e um editor de curvas.

A lista completa pode ser conferida aqui ou aqui.

sábado, setembro 22, 2007

Artigo sobre XNA na CoDe Magazine

A CoDe Magazine publicou um longo artigo fazendo um apanhado geral sobre o XNA, falando sobre suas principais características, aceitação no mercado e colhendo a opinião de vários profissionais da área de jogos.

O artigo pode ser conferido na página da CoDe aqui ou a versão para impressão aqui.

sexta-feira, setembro 14, 2007

XNA-tube?

Segundo Chris Satchell, gerente do time de desonvolvimento do XNA, a Microsoft planeja lançar um serviço de armazenamento e compartilhamento de jogos desenvolvidos usando o XNA.

Chris Satchell faz uma analogia interessante para justificar o serviço. Com as ferramentas do XNA é como se a Microsoft estivesse fornecendo uma forma dos desenvolvedores criarem suas músicas, mas ainda se faz necessária uma rádio onde as músicas possam ser ouvidas. O serviço proposto faria exatamente isto, expor os jogos criados pela comunidade.

Pelo que pude ver, a idéia é bem parecida com o serviço prestado pela YoYo Games para o Gamemaker. O diferencial provavelmente estará na possibilidade de compartilhar os jogos não só no Windows, mas também pela rede XBox Live.

Via: Develop e Kotaku.

sábado, setembro 08, 2007

Imagine Cup 2008


As inscrições pra Imagine Cup 2008 já estão abertas e a competição já está rolando. Desta vez a final será na França (ano passado foi na Coréia).

Pra quem tiver interesse em participar, existem várias categorias, sendo que uma das novidades desta edição é a categoria Game Development usando o XNA Framework.

Podem se inscrever na Imagine Cup qualquer estudante que esteja regularmente matriculado no segundo grau ou no ensino superior no mundo todo (exceto alguns países listados no site).

Vale a pena se inscrever mesmo que não for pra participar a sério, já que a Microsoft disponibiliza para download gratuito vários softwares (entre eles o Windows XP Profissional, o Windows Vista Business, o Visual Studio 2005 e o SQL Server 2005) para os participantes.

Confira a categoria Game Development aqui e a página oficial da competição aqui.

sexta-feira, setembro 07, 2007

Os campeões do XNA Dream-Build-Play


Foram anunciados os vencedores do concurso Dream-Build-Play promovido pela Microsoft. Houve um empate e foram eleitos dois campeões, além de mais dois segundos lugares e outros dezesseis jogos na terceira posição. Os quatro primeiros jogos poderão ser publicados na Xbox LIVE Arcade como parte da premiação.

Sobre os vencedores, o Blazing Birds é um jogo de peteca 1-contra-1 (aparentemente) bem parecido com um antigo jogo de vôlei de minhocas que tinha por aí. O outro, The Dishwasher: Dead Samurai (Remix) é um jogo de aventura com movimento lateral.

Confira mais detalhes e imagens dos jogos vencedores na página oficial do concurso: http://www.dreambuildplay.com/

segunda-feira, julho 30, 2007

Reconhecimento Internacional

Eu estava vasculhando as estatísticas do blog e me supreendi ao ver alguns visitantes vindos de sites estrangeiros. Fiz uma pequena investigação e descobri dois posts sobre meu joguinho do Frogger, sendo um deles o Ziggyware, um dos maiores sites sobre XNA que tem por aí. Tô todo bobo :)

Aí vão os links pra quem quiser conferir pessoalmente:
Mykres Space
Ziggyware

Edit: já ia esquecendo... está no Digg também: http://digg.com/pc_games/XNA_Version_of_Frogger