domingo, 30 de março de 2008

Usando o Project Upgrade Wizard

O Project Upgrade Wizard é uma ferramenta que tem o objetivo de converter e atualizar um projeto XNA Game Studio Express para XNA Game Studio 2.0.

É bem sabido que há algumas diferenças entre a nova versão 2.0 e a versão 1.0. Assim, é necessário uma conversão do projeto antes do carregamento no XNA Game Studio 2.0. Essas diferenças podem ser, por exemplo, certos arquivos do projeto e as referências de onde se encontram as classes (using "..."). Às vezes, também são necessárias algumas mudanças nos códigos-fonte do projeto. Essas mudanças o Project Upgrade Wizard não faz (caramba! Eu podia trabalhar num conversor de código... Vou pensar nas dificuldades que eu teria). Assim, tais mudanças têm que ser feitas manualmente após a atualização do projeto para o framework 2.0 -- o que não acho ruim, pois é uma maneira de "converter" também a sua mente pra nova versão do framework :)

Há um tópico na documentação oficial do XNA Game Studio 2.0, "Upgrade Guide: XNA Game Studio Express to XNA Game Studio 2.0", que explica em detalhes todo o processo de atualização do projeto.

Com relação as tarefas desempenhadas pelo Project Upgrade Wizard, as principais estão listadas aqui. Para fazer o download do Wizard, clique aqui.

Não há mistério para usar: basta iniciar o XNA GS 2.0, criar um novo projeto (File/New project...), e selecionar a opção Project Upgrade Wizard. Nomeie o novo projeto. Clique em OK. Depois, selecione o projeto antigo clicando em Browse (arquivo .csproj dentro da pasta do projeto) e clique em Upgrade. Pronto. Clique em Finish. Agora, é só atualizar o código, se for preciso.

Valeu!

sexta-feira, 28 de março de 2008

Mais sobre XNA no Zune

Recetemente postei a notícia que a Microsoft está preparando o XNA 3.0, sendo sua principal novidade até agora a possibilidade de desenvolver jogos pra a plataforma Zune, o tocador de mídia da empresa.

Aqui estão mais alguns detalhes que encontrei no FAQ:

1. Os jogos feitos para o Zune - através do XNA Game Studio 3.0 - funcionarão nos modelos Zune 4/8, Zune 30, e Zune 80. O desempenhos dos jogos serão parecidos, mas a diferença será que nas versões mais novas haverá suporte de mais controles, enquanto que nas versões antigas haverá apenas o controle Dpad. E isso pode levar a códigos diferentes. Como aqui no Brasil o Zune ainda não pegou (a menos que eu viva num mundo paralelo ao seu), isso não será problema.

2. Há a possibilidade de se gerar um pacote com o seu jogo. Este pacote, um arquivo CCGame, pode ser compartilhado mais facilmente. Veja aqui como isto pode ser feito. Por enquanto, não haverá suporte ao compartilhamento de arquivos CCGame com outros usuários na versão inicial do XNA GS 3.0. Só na versão final.

3. Não haverá possibilidade de transmitir um jogo de um Zune para outro. Somente de PC para Zune. Isso sugere que o XNA GS 3.0 fará algumas transformações nos códigos objeto para ser suportado no Zune.

4. Não será necessário uma assinatura do XNA Creators Club.

5. A conectividade wireless (principal diferencial do Zune em relação ao IPod) permitirá jogos multiplayer. No caso, todos os Zune terão que ter o jogo (óbvio, mas lembre-se que ele tem que ser transmitido a partir de um PC) e este, por sua vez, terá que ter sido escrito com suporte a multiplayer (óbvio, mas é pra enfatizar).

6. Uma possibilidade bastante interessante será o uso de suas músicas como trilha sonora durante as partidas, podendo inclusive ser trocadas durante o jogo. Teremos acesso completo às músicas (e também às fotos) armazenadas no Zune. A única limitação será que as músicas licenciadas não podem ter DRM.

7. As principais limitações dos jogos serão uma tela de 240x320 e ser jogado com apenas uma mão. Isso é meio estranho, mas acho que se acostuma. Por outro lado, vai exigir bastante criatividade dos programadores quanto a jogabilidade. Outra limitação é que não haverá jogos em 3D. Isso porque não teremos acesso total a API gráfica do framework XNA. E, finalmente, a memória máxima que os jogos poderão ocupar é de 16 MB.

8. Não haverá suporte a XBox LIVE. Todas as conexões terão que ser feitas independentemente pelos usuários. O bom será que a API para desenvolvimento de jogos em rede (multiplayer) será similar a API já presente no XNA Game Studio 2.0.

 

 

Lembrando que a possibilidade de densenvolvimento para Zune é a única novidade para o XNA GS 3.0 até agora, e não sei se terá outra, porque isso depende do quão difícil foi fazer o suporte. Ele também suportará Visual Studio 2008 e está prestes a ser lançado. Postarei aqui quando isso acontecer.

 

Valeu!

quinta-feira, 27 de março de 2008

Empacotando seus jogos

XNA_pack_utility

Um recurso interessante do XNA Game Studio é a ferramenta XNA Game Studio Package Utility (xnapack.exe), que já é instalada junto com o XNA GS. Como o próprio nome já diz, ela serve para empacotar nossos projetos e, assim, podemos distribuir nossos jogos sem medo de revelar nosso código-fonte.

Uma vez eu fui enviar um joguinho meu a um amigo. Ele tinha o XNA GS, mas não enviei os "content" do meu jogo. Não vi problema nenhum, uma vez que estava enviando para ele o executável do jogo. Ele retornou dizendo que não estava conseguindo executá-lo, que aparecia uma mensagem de erro. Foi pura inexperiência minha (nossa).

Com esta ferramenta, posso enviar para ele o executável junto com os "content" (sons, texturas, etc.), e tudo isto sem ele ver o código. Não que eu queira isso sempre, mas as vezes isso é necessário. Caso queira enviar tudo, incluindo o código-fonte, basta compactar a pasta do projeto e enviar.

A ferramenta pode ser acessada de dentro do Visual Studio ou via linha de comando.

Dentro do ambiente de desenvolvimento do VS, quando seu projeto estiver aberto, clique no menu Build e depois clique em Package [nome_do_projeto] as XNA Creators Club Game.

Na janela de output, aparece o status do empacotamento. Quando terminar o processo, o arquivo .ccgame estará dentro da pasta diretório_do_projeto\bin\x86.

Para desempacotar, basta clicar 2x no arquivo .ccgame e a XNA Game Studio Package Utility será chamada e fará todo o processo.

Para empacotar via linha de comando, vá no menu Iniciar, procure por Microsoft XNA Game Studio 2.0, clique em Tools, e finalmente em XNA Game Studio Command Prompt. Use o comando cd para ir até o diretório do projeto que você quer empacotar.

Para empacotar, a sintaxe é a seguinte:

> xnapack executável platforma [opções]

sendo o parâmetro "executável" o arquivo executável do seu jogo, sendo "plataforma" a plataforma que você quer pro seu jogo (Windows ou XBox360?) e "[opções]" são os parâmetros que setam algumas propriedades. Temos 4:

/nologo – nenhum logo ou mensagem de "copyright" é empacotada.

/output:arquivo – diz o caminho e o nome do arquivo de saída. Por padrão, o jogo é criado na mesma pasta que o executável está. (A forma contraída deste parâmetro é: /o: )

/quiet – retira todas as mensagens que não são mensagens de erro.

/thumbnail:arquivo – caminho para um "thumbnail" opicional. (A forma contraída é: /th: ) Para o Windows, este "thumbnail" aparece na janela de decompactação. Para o Xbox 360, o "thumbnail" também aparece na tela "My Games", localizada na lista Games Library.

Agora, pra descomplicar, vai um exemplo para empacotar um jogo para Windows chamado Shooter, sem mensagem de "copyright" ou logo:

> xnapack Shooter.exe Windows /nologo

O resultado será um arquivo .ccgame criado na mesma pasta que o executável do jogo.

Para desempacotar via linha de comando, abra o mesmo prompt, use o cd para ir até o diretório do projeto e digite o seguinte:

> xnapack unpack pacote [opções]

sendo "pacote" o arquivo .ccgame previamente criado. As opções podem ser:

/console:nome – Se for para descompactar um jogo para Xbox360, este parâmetro serve para identificar o console. Se nenhum for especificado aqui, o XBox padrão é usado. (Forma contraída: /c: )

/nologo – mesma coisa que no empacotamento.

/quiet – mesma coisa que no empacotamento.

/run – executa o jogo quando o mesmo estiver instalado. Só vale para o XBox360.

/showui – mostra um UI (user interface) para confirmação e cópia dos arquivos.

 

Claro que há outras formas de usar esta ferramenta, mas essas duas são as principais. Podemos, então, compartilhar nossos jogos (os arquivos .ccgame literalmente) com nossos amigos (que precisam ter o XNA GS). Eles estarão aptos a jogá-lo, mas não a modificá-lo.

Só uma observação: o Package Utility suporta apenas os projetos de jogos. Ele não suporta projetos de bibliotecas para jogos.

Aliás, duas: cuidado ao descompactar. Se o diretório destino da descompactação já existir, o XNA Game Studio Package Utility vai deletar a essa pasta e tudo que tiver dentro dela! Isso vale tanto para projetos para Windows quanto para XBox360.

Valeu!

quarta-feira, 26 de março de 2008

Benjamin Nitschke atualizou seus jogos para XNA 2.0

xna_racing

Benjamin Nitschke atualizou a maioria dos seus jogos para XNA 2.0. Para quem não sabe quem é o tal, na sua lista de jogos em XNA inclui o famoso XNA Racing Game! Além da mudança para a versão mais nova do framework XNA, Nitschke melhorou o controle do carro (ótimo, pois o controle era meio difícil mesmo...), além de outras coisinhas mais. Além deste jogo, na sua lista há também o XNA Pong, XNA Shooter, Dungeon Quest, XNA Tetris e muitos outros! Visite seu blog para mais detalhes dos seus jogos, das mudanças realizadas em cada um, etc.

Os jogos são tão bons que nem recomendo pra estudos, pois é "avançado" demais, com milhares de linhas de código em dezenas de classes. De qualquer forma, é bom pra gente testar o jogo e caso a pergunta "como ele fez isso?" saltar à cabeça, vamos lá e olhamos alguma coisa. Mas, se você for um expert...

p.s.: propaganda gratuita do livro dele.

Valeu!

terça-feira, 25 de março de 2008

Preços dos livros

Quero deixar aqui a minha insatisfação no que diz respeito aos preços dos livros. Veja o caso do livro C# Como Programar, dos Deitel, que custa hoje em torno de R$ 240,00, vide aqui, aqui, aqui e aqui.

É impressão minha ou os livros mais procurados estão um absurdo? Na verdade, nem sei se os caros são os mais procurados, porque têm uns que são bastante vendidos justamente pelo fato de serem na faixa de R$ 19,90. Mas no caso dos de computação/informática, pode ter certeza: os de maiores sucessos têm os seus preços elevados pela editora. Não cabe, neste caso, culpar os impostos, visto que o C# Como Programar estava por volta de R$ 150,00 "um dia desses". A mesma coisa é o Java Como Programar, também dos Deitel, que foi lançado por R$ 130,00 e hoje, em vez de baixar o preço, já passou dos R$ 200,00.

Sou a favor de comprar livros, mas assim fica difícil...

OK, isso foi meio off...

Microsoft XNA Game Studio 2.0 Express: Learn Programming Now!

learinng programming

A publicadora Microsoft Press lançou o livro Microsoft XNA Game Studio 2.0 Express: Learn Programming Now!, de autoria de Rob Miles, profissional da Microsoft e professor da University of Hull, Reino Unido, onde leciona Visual C#, entre outras coisas.

O livro tem 288 págs, o que parece pouco com relação a outros títulos, mas isso não é o mais importante, não é mesmo? O preço é ótimo: US$ 20,00 e já encontrei usados por US$ 11,00 aqui. Ele vem com 2 CD´s*, mas não importa, porque um vem com o XNA Game Studio Express e o outro com o Visual C# 2008 Express Edition.

Apesar de na descrição do livro constar "Visual C# 2008" e um dos CD´s conter o VS C# 2008, não se engane: o XNA não tem compatibilidade com esta versão -- apenas com a 2005.

* : segundo um comentário de um consumidor, ele não vem com os CD´s. Depois não bote a culpa em mim :) Segundo ele, também não é bom para iniciantes em C#. Apesar disso, ele afirma que conseguiu fazer programas interessantes com a ajuda deste livro, coisa que não conseguiu com outros.

É sempre bom termos mais uma opção...

Valeu!

quinta-feira, 20 de março de 2008

Entrevista com um desenvolvedor do XNA

Um dia desses eu postei sobre Nazeeh está fazendo uma série de entrevistas com o time de desenvolvimento do XNA. A primeira delas foi com Yuichi Ito, um dos desenvolvedores do Framework XNA. Nazeeh fez outras 3 entrevistas - são curtas, vale a pena ler.

Valeu!

quarta-feira, 19 de março de 2008

Um preview de 7 jogos em XNA

O site Sequelitis.com divulgou na GDC 2008 um preview sobre a comunidade de XNA. Vale a pena dar uma olhada e verificar a criatividade dos desenvolvedores: são 7 jogos demonstrados rapidamente neste preview e cada um melhor que o outro.

O que eu mais gostei foi o Dishwasher. Melhor do que eu explicá-lo é assistir este vídeo da então versão do jogo, entre outros vide "related videos". Ele é muito bem feito e certamente vai concorrer de frente com alguns jogos comerciais! Pena que ainda não foi lançado, mas está quase :)

dishwasher

ps.: não esqueça do preview que falei antes...

Valeu!

Jogos XNA para Zune

zune-xna-games

Gosto dos joguinhos de celular e de telinhas pequenas, mas não sou muito muito fã não. Já joguei beeem mais no meu celular. Agora, pelo menos hoje, estou só no PC mesmo, e além disso, sem tempo até pra isso. De qualquer forma, o XNA 3.0 está sendo preparado pela Microsoft e, segundo o XNA Team Blog, a maior novidade será a possibilidade de desenvolver joguinhos para a plataforma de entretenimento Zune, o tocador de mídia (MP3, vídeos e fotos) da Microsoft!

Vale lembrar que o principal diferencial do Zune é a conectividade wireless, o que permite desenvolver jogos multiplayer.

Nada melhor do que o aumento no leque de opções de desenvolvimento de uma plataforma. No meu caso, entusiasta de XNA, foi uma notícia muito boa! Assim, quando me dedico no estudo de XNA, o resultado vem em 3 plataformas: XBOX, Windows e, agora, Zune! :D

Visite este link para visualizar um vídeo de um Zune jogando um jogo feito em XNA.

Valeu!

sexta-feira, 7 de março de 2008

Voltando a postar...

Olá, amigos,

acho que vocês perceberam que fiquei sem postar um tempo. Algumas coisas foram responsáveis por isso, como uma viagem (20% dos motivos) e a minha monografia (os outros 80% restantes).

Não falarei da minha viagem, pois não é o intuito deste blog, mas da minha monografia, sim. Já postei algumas coisas sobre minha monografia, e posso dizer que ela vai muito bem. Além de estar no prazo e eu ter, na prática, dois orientadores bastante solícitos, o melhor de tudo é que ando bastante empolgado.

E é essa empolgação que andou atrapalhando (e muito provavelmente vai voltar a atrapalhar, ninguém sabe quando) a atualização deste blog, pois XNA é uma plataforma de desenvolvimento orientada a objetos e em C#. E minha monografia é estruturada em C. Não, não tinha como eu fazer a minha monografia sobre algo em XNA, pois só o descobri depois de tê-la iniciado, além dela ser um projeto que tenho na universidade (que pretendo terminar).

Enfim, esta semana eu me dediquei, em média, 6h por dia a minha monografia e não sobrou tempo pra mais nada. Mal dormi. Nesta semana que vem chegando, pretendo me dedicar menos tempo a ela, até porque o prazo pra entregar o que terminei hoje é só próxima sexta (eu disse que tava bem! :)  Daqui pra lá, vou realizar testes, corrigir alguns bugs que com certeza têm, além de diminuir a complexidade, o que é MUITO importante na área da minha monografia.

Com mais tempo sobrando, pretendo voltar à rotina: dividir melhor as tarefas, estudar outras coisas, como XNA, ler notícias que gosto (blogs, por exemplo), ler um bom livro, assistir filmes e minhas séries favoritas... e atualizar meus blogs.

Falarei da minha monografia mais em detalhes depois, pois estou esgotado.

Valeu!