[Livros] XNA 3.0 para desenvolvimento de jogos no Windows, Zune e Xbox 360

A mais aguardada versão traduzida do livro “Beginning XNA 3.0″ criado pelo pessoal do portal brasileiro Sharpgames saiu pela Brasport! Vejam mais em http://www.brasport.com.br/index.php?Es … vro=L00347.

Ainda não comprei esta versão do livro pois tenho a versão em inglês. Mas ouvi falar que a versão em português acompanha um CD com todos os exemplos e vários códigos de jogo como exemplo para estudos. Então fica ai minha recomendação para se obter a versão em português.

Resenha: XNA é uma brincadeira com a frase “XNA não é um Acrônimo”. O mundo da Microsoft é tão cheio de acrônimos (siglas de produtos com três ou mais letras) que o grupo responsável pela biblioteca resolveu criar um nome que parece um acrônimo, mas não é, apenas de brincadeira.

Mas o XNA é muito mais do que isso. O conceito inovador de trazer aos desenvolvedores não profissionais o poder de criar seus próprios jogos e jogá-los no Xbox 360 é uma grande inovação tecnológica, que vem sendo apoiada por diversas iniciativas da Microsoft em criar uma ativa comunidade de criadores de jogos, unindo desenvolvedores das plataformas Windows, Xbox 360 e Zune. O CD-ROM que acompanha o livro contém os códigos fonte do livro e o que é necessário para começar a usar o XNA. Inclui o Visual Studio 2008 Express, o XNA Framework e uma série de exemplos e projetos criados por brasileiros.

O objetivo do livro é apresentar ao leitor a visão geral da arquitetura XNA e o processo de desenvolvimento de um jogo completo. São apresentadas técnicas de programação de jogos, desde o planejamento do projeto ao desenvolvimento de jogos 2D, inserindo funcionalidades de som e rede e, por último, o desenvolvimento de um jogo 3D em primeira pessoa do início ao fim, implementando um framework básico que poderá ser utilizado em seus jogos, com suporte a sistema de iluminação e shader, cenário outdoor com skydome e terreno, animação de personagens 3D e técnicas simples de inteligência artificial e física.

Sobre os autores:

Alexandre Santos Lobão – bacharel em Ciência da Computação pela UnB. Trabalha para o Governo Federal na área de TI. É escritor de produção eclética. Foi empresário, funcionário da Microsoft, colunista sobre XNA para a Revista Oficial do Xbox no Brasil e professor de pós-graduação na área de jogos eletrônicos. Aos 12 anos descobriu duas paixões: jogar e criar jogos de computador (em um TK 2000); e criar histórias. Participou de diversos concursos de desenvolvimento de jogos como concorrente e como jurado. Produziu diversos roteiros para cinema, quadrinhos, desenhados por artistas de diversas partes do país, e livros.

Bruno Pereira Evangelista – Bacharel em Ciência da Computação pela PUC-MG, começou a programar quando tinha 10 anos, foi programador gráfico na VirsaT, trabalhou em alguns projetos e jogos demos desenvolvidos em C++, C# e Java usando DirectX, OpenGL e XNA. Ministra cursos em conferências e universidades. Como SIBGRAPI, SBGAMES, Gamefest Brasil, UFMG, PUC-MG e UVA-RJ. Hoje é programador de jogos na Tectoy do Brasil. Atualmente é mestrando em Ciência da Computação na UFMG.

José Antonio Leal de Farias – é um desenvolvedor de jogos desde que comprou seu primeiro computador em 1985, quando tentava desenhar aliens em uma tela de 80×25 pixels. Após obter o bacharelado em Ciência da Computação, estabeleceu sua própria companhia de desenvolvimento de jogos em 1997, a Harcode Entertainment, e trabalhou em diversos projetos na Europa e nos Estados Unidos. Em 2004 recebeu o título de Microsoft Most Valuable Professional, por sua contribuição à comunidade de desenvolvedores de jogos no Brasil. Em 2006 criou a comunidade Sharpgames, voltada para o incentivo e a divulgação sobre a plataforma XNA.

Patryck Pabllo Borges de Oliveira – bacharel em Ciência da Computação pela UNIVALE – MG, participou do projeto do serious game USAID Island atuando como gestor e programador gráfico XNA. Em 2009 foi premiado no concurso de minijogos promovido pela Microsoft, revista Xbox 360 e pelo portal Sharpgames. Concluiu os cursos de Pós Graduação em Gestão de Sistemas de Informação pela Universidade Católica de Brasília e Desenvolvimento de Jogos Eletrônicos pelo Instituto Superior de Brasília. Atualmente é mestrando em Gestão do Conhecimento na UCB-DF e 3D Engine Programming na Faculdade Game Institute.

CategoriasLivros

ColoRotate – Sistema tridimensional para criar de paleta de cores

Olá galera, mais um utilitário que você não pode deixar de conhecer. Se voce tem alguma dificuldade em escolher cores para seu website,  ou algum jogo que nem eu. O site Color Rotate, te ajuda a encontrar as cores certas. Com ColoRotate, você pode trabalhar com cores em 3D, em tempo real, e de maneira que corresponde a cor como o processo da nossa mente poderá melhor entender.

ColoRotate tem uma interface intuitiva, que elimina a necessidade de memorizar ou anotar as combinações de cores e números. Na verdade, você pode percorrer todas abrindo no espaço tridimensional de cor e escolher (ou design) da paleta de cores que se adapta às suas necessidades. No processo, você pode descobrir as relações de cores que dão a seus projetos um equilíbrio estético que vai agradar ao olho mais discriminador.

Voce mostra a ele a cor principal que voce quer, ele mostra todas as cores relacionadas, sem fujir da tonalidade, ou criar contrastes entre uma e outra.

Acesse o site: http://www.colorotate.org/

CategoriasDicas, Notícias, Novidades

Mais de 10.000 acessos e 100 post ao mesmo tempo

Eai galera tudo bem? Venho por meio deste post agradecer a visita de todos, juntamente com os comentários, criticas, sugestões pois só assim posso crescer cada vez mais. Espero que todos estejam gostando do blog e gostaria de ouvir mais vocês para montar os próximos tutoriais.

Eu juntamente com alguns amigos estamos nos organizando e preparando um site de desenvolvimento de jogos, no qual vai conter informações e tutoriais sobre as mais diversas áreas como: modelagem 3D, programação em diversas linguagens, tutoriais de algumas engines, tutorias de como criar sua trilha sonora, sua textura no photoshop ou outro software gráfico, filosofia sobre os jogos, além de muitas outras novidades, tudo isso graças a vocês.

Só tenho a dizer obrigado e aproveitem o blog. Pois logo teremos novidades.

CategoriasDiversos, Notícias

[XNA] Componente Barra de Energia para seu jogo

Olá a todos, hoje esta passando meu tempo fazendo atividades do mestrado, mas não conseguia resolver meu problema, até que fui descansar. Mas geralmente nunca descanso, vou para frente do computador e fico melhorando meus códigos. E melhorando o código do meu TCC novamente, vi que seria muito legal criar um componente genérico para qualquer tipo de barra de energia, saúde, vida para qualquer jogo.

Então, depois de algumas horas quebrando a cabeça como poderia ser um componente deste tipo apesar de ter feito um tutorial de barra de energias aqui no blog, para quem não viu o tutorial clique aqui. Foi então que consegui pensar nas barras de energia que todos os jogos tem, e pensei em um meio genérico de montar elas e após várias horas com o computador travando consegui terminar.

Não vou postar o código aqui como fiz com os outros componentes pois este código esta grande, e é chato ficar organizando linha por linha de código no blog, pois quando se publica, sai tudo errado o código.

Componente:

  • Possui 7 sobrecargas do construtor, podendo passar referencia do jogo, quantidade de saúde, quantidade máxima de saúde, textura da caixa, textura da saúde, cores, flip na horizontal da imagem, etc.
  • Método para recuperar toda energia
  • Método para recuperar um máximo de energia até a barra de recuperação (estilo Street Fighter)
  • Método para remover da lista de componentes.
  • Metodo público para setar ou receber o valor atual da energia.

Imagens:

Como usar:

  1. Inclua o arquivo HealthBar.cs junto com suas outras classes de seu jogo
  2. Declare em seu jogo um objeto do tipo HealthBar, Ex: HealthBar healthBar.
  3. Inicialize o objeto passando como parametros (escolha uma das 7 sobrecargas)
  4. Adicione ele na sua coleção de componentes, Ex: Components.Add(healthBar);
  5. Pronto seu componente barra de saúde já esta funcionando em seu jogo, agora é só usar os métodos para ter controle.

Links:

  • Para fazer download somente do componente clique aqui.
  • Para fazer download do componente mais um exemplo de uso clique aqui.

Abraços pessoal espero que gostem.

[XNA] Componente Cronometro para seu jogo

Olá a todos, quando comecei a montar jogos sempre queria colocar algum cronometro para contar o tempo de jogo. Apesar de usarmos o XNA acabamos sempre tendo uma ou outra dúvida e no final não fazemos o cronometro. Então para você não se preocupar mais com isso, criei um componente chamado Chronometer que pode ser adicionado a qualquer jogo que possa fazer.

Segue código do cronometro:

using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
/// <summary>
/// Component cronometro para o seu jogo
/// </summary>
public class Chronometer : DrawableGameComponent
{
   #region Fields
   // Posição de centro do cronometro
   private Vector2 position;
   // Font para escrever o tempo
   private SpriteFont font;
   // Cor da font do tempo
   private Color color;
   // Tempo inicial
   private TimeSpan startTime;
   // Tempo final
   private TimeSpan finalTime;
   // Tempo total de execução do jogo
   private TimeSpan totalTime;
   // Tempo total do cronometro
   private TimeSpan time;
   // Variavel booleana do tempo, indica se esta parado ou não
   private bool stopped;
   // SpriteBatch para desenhar
   private SpriteBatch sBatch;
   #endregion

   #region Constructor
   /// <summary>
   /// Construtor do Cronometro
   /// </summary>
   /// <param name="game">Referência para o jogo que o chamou</param>
   /// <param name="centerPosition">Posicao do centro do texto</param>
   /// <param name="font">Font carregada</param>
   /// <param name="color">Cor da font</param>
   public Chronometer(Game game, Vector2 centerPosition, SpriteFont font, Color color)
      : base(game)
   {
      this.game = game;
      this.position = centerPosition;
      this.font = font;
      this.color = color;
      this.startTime = new TimeSpan();
      this.finalTime = new TimeSpan();
      this.totalTime = new TimeSpan();
      this.time = new TimeSpan();
      this.stopped = true;
      // Tenta receber a sprite batch do serviço caso esteja disponível
      sBatch = (SpriteBatch)game.Services.GetService(typeof(SpriteBatch));
      if (sBatch == null)
      {
         // Se o usuario não adicionou a sprite batch no serviço então criamos uma nova instância de sprite batch
         sBatch = new SpriteBatch(((GraphicsDeviceManager)Game.Services.GetService(typeof(IGraphicsDeviceManager))).GraphicsDevice);
      }
   }
   #endregion

   #region Update
   public override void Update(GameTime gameTime)
   {
      // Recebe o tempo passado do jogo
      this.totalTime += gameTime.ElapsedGameTime;
      if (!stopped) // Se o cronometro não esta parado, então somo o tempo
         this.finalTime += gameTime.ElapsedGameTime;
      // Atualiza o tempo do cronometro
      this.time = finalTime - startTime;
      base.Update(gameTime);
   }
   #endregion

   #region Draw
   public override void Draw(GameTime gameTime)
   {
      // Recebe o tamanho da escrita para calcular o centro
      Vector2 size = font.MeasureString(ToString());
      sBatch.Begin(SpriteBlendMode.AlphaBlend);
      // Escreve o cronometro no centro conforme a posição indicada no construtor
      sBatch.DrawString(font, ToString(), position - size / 2 , color);
      sBatch.End();
      base.Draw(gameTime);
   }
   #endregion

   #region Methods
   /// <summary>
   /// Inicia o cronometro, ou se estiver parado continua a contagem
   /// </summary>
   public void Start()
   {
      this.stopped = false;
      if (startTime == TimeSpan.Zero)
      {
         this.startTime = totalTime;
         this.finalTime = totalTime;
         this.time = new TimeSpan();
      }
   }
   /// <summary>
   /// Pausa o cronometro
   /// </summary>
   public void Stop()
   {
      this.stopped = true;
   }
   /// <summary>
   /// Reinicia a contagem do cronometro
   /// </summary>
   public void Restart()
   {
      this.stopped = false;
      this.startTime = totalTime;
      this.finalTime = totalTime;
      this.time = new TimeSpan();
   }
   /// <summary>
   /// Zera a contagem do cronometro
   /// </summary>
   public void Reset()
   {
       this.stopped = true;
       this.startTime = totalTime;
       this.finalTime = totalTime;
       this.time = new TimeSpan();
    }
    /// <summary>
    /// Método para tranformar o TimeSpan em String
    /// </summary>
    /// <returns>retorna o tempo em string</returns>
    public string ToString()
    {
       return time.ToString().Substring(0, 8);
    }
    #endregion
    #region Properties
    /// <summary>
    /// Posição central do cronometro
    /// </summary>
    public Vector2 Position
    {
       get { return this.position; }
       set { this.position = value; }
    }
    /// <summary>
    /// Tempo do cronometro
    /// </summary>
    public TimeSpan Time
    {
       get { return this.time; }
       set { this.time = value; }
    }
    #endregion
}

Modificações [02/02/2010]

  • Foi retirado a variável game da classe, por falta de utilidade.
  • Foi modificado a variável stoped pelo erro, o correto é stopped (2 ps)
  • Foi criado uma variável para armazenar a sprite batch
  • o construtor agora tenta receber a sprite batch de services caso não consiga ele cria uma instância nova de Spritebatch para o objeto.
  • Foi retirado do método Draw o recebimento do sprite batch, pois agora é executado uma unica vez durante a construção do objeto.

Para usar o componente em seu jogo:

  1. Inclua o arquivo Chronometer.cs junto com suas outras classes de seu jogo
  2. Declare em seu jogo um objeto do tipo Chronometer, Ex: Chronometer chronometer.
  3. Inicialize o objeto passando como parametros (Game game, Vector2 centerPosition, SpriteFont font, Color color)
  4. Adicione ele na sua coleção de componentes, Ex: Components.Add(chronometer);
  5. Pronto seu componente cronometro já esta funcionando em seu jogo, agora é só usar os métodos Start, Stop, Reset ou Restart para ter controle do cronometro.

Para fazer download de um exemplo usando o componente clique aqui.

Se você já sabe com usar clique aqui e abaixo só o componente.

Abraços, espero que seja util para vocês.

Game Developers Conference 2010 (GDC)

Um dos maiores eventos de desenvolvimento de jogos estará de volta em 2010! Veja aqui informações sobre o evento, a cidade de San Francisco e algumas curiosidades.

A GDC acontece no Moscone Center em São Francisco, Califórnia. Em termos de valores, não fica uma viagem barata para brasileiros (mesmo com a estabilização do dólar). No entando, se existe a possibilidade de ir, não perca esta oportunidade de aprender com grandes profissionais e aumentar sua rede de contatos. O Daniel Alves andou fazendo algumas sondagens de preços de passagens, e diz que os preços podemvariar de R$ 2800 a R$ 4000 (de São Paulo a San Francisco, com variadas escalas e tempo de vôo). É bom lembrar que quanto mais próximo ao dia do embarque, mais caras ficam as passagens. Em relação a hospedagem, os hoteis pertos do Moscone Center são ligeiramente caros, e vão de US$ 120 a US$ 250 pernoite, sendo que alguns tem quartos com duas camas, podendo assim ser divididos. Existem também alguns albergues na região, onde você pode conseguir quartos por valores perto de US$ 500 por semana.

Além de viagem e hospedagem, existe também o gasto com a entrada para o evento. A compra antecipada (este ano até 4 de Fevereiro 2010) garante um desconto de 35%. Existem vários passes, de diferentes acessos a certas partes do evento e, consequentemente, de diferentes preços.

Main Conference Pass – US$1400. Permite acesso às palestras, pavilhões de exposição, keynotes e eventos dos 3 últimos dias do evento (os tutoriais e workshops, além de alguns outros eventos, acontecem nos 2 primeiros dias);

GDC Mobile Pass  - US$1050. Passe especial para participantes focados em desenvolvimento para mobile;

Expo Pass – US$200. Passe apenas para os 3 dias de exposição. Sem acesso às palestras, keynotes, etc.

Todo ano aparecem e somem tipos de passes, então é importante ficar ligado no site oficial, e ao abrir as informações de passes, ler atentamente todas as possibilidades para encontrar a mais apropriada. Os preços do evento incluem café da manhã e almoço nos dias correspondentes.

Falando um pouco da conferência agora. A GDC é na verdade o conjunto de vários eventos simultâneos. Segunda e terça são voltados para negócios e profissionais. Envolvem vários ’summits’ (pequenos eventos), com palestras e atividades específicas a certas áreas do desenvolvimento de games. Por exemplo, a GDC Mobile, voltada para desenvolvimento de jogos para portáteis, Independent Game Summit, voltado para a comunidade de desenvolvedores independentes, etc. Acontecem também sessões de tutoriais e workshops de durações que vão de 1 hora até os 2 dias.

De quarta até sexta, a chamada “main conference” acontece. Nesses dias, a feira com os stands das empresas e universidades é aberta aos participantes. É muito interessante tirar um tempo para passear calmamente pela exposição. Em outro bloco, existe outra “expo” com stands – o Pavilhão de Carreira. Ali, é possivel conversar com representantes de RH, e em alguns casos até representantes das diferentes áreas das empresas.Ao mesmo tempo que existem os dois pavilhões de exposição e carreira (acredite, acontece tanta coisa ao mesmo tempo que é facil se sentir perdido), acontecem as palestras. São um volume monstruoso de palestras , geralmente com várias da mesma área (programação, audio, design gráfico, game design, etc) acontecendo simultaneamente. E acredite, vocÊ terá que escolher e não será facil.

Acontecem também keynotes (alguém importante dando sua visão), que eu recomendo (dependendo do palestrante). Eu tive a honra de participar da keynote do Ray Kurzweil sobre os proximos 50 anos da indústria de jogos. Além disso, todo ano tem o evento/festa de premiação da IGF (Independent Game Awards), que reconhece os melhores jogos independentes do ano e as premiações para os melhores jogos “mainstream” do ano – a Game Developer’s Choice Awards.

Além de tudo isso, existem diversas festas e eventos acontecento. Desde a tradicional festa da IGDA (International Game Developers Association), até diversas festas patrocinadas pelas grandes empresas como Microsoft, Sony, etc, e incluindo também um campeonato beneficiente de Pocker. Muito importante estar atendo à programação do evento para saber escolher o que quer fazer. A cidade de San Francisco oferece também entretenimento e lugares interessantes para visitar.

Dentro do Moscone Center costuma ser montada uma pequena loja oficial do evento, vendendo desde camisetas até livros, DVDs, camisas, bolsas, canetas, esqueiros e o que mais você possa imaginar. As coisas não são muito caras, vale a pena comprar algumas lembrancinhas pra fazer inveja aos seus colegas e amigos. Tem também todo ano uma espécie de jogo interno ao evento que qualquer um pode participar.

Informações:

  • site oficial: www.gdconf.com (o site costuma ser atualizado mais perto do final do ano, é bom ficar ligado)
  • Data: 9 a 13 Março 2009
  • Local: Moscone Center, San Francisco – CA

Referência do post: VertezPortus, http://www.articstudios.com.br/blogs/portus/, acessado em fevereiro de 2010.

CategoriasNotícias Tags:

[Reportagem] Gamemaníacos! (Jornal da Globo)

Mais uma antiga reportagem encontrada na rede, reportagem esta do Jornal da Globo exibida em 18 de abril de 2006. Fala sobre o os gamemaníacos! As pessoas que tem coleções de jogos e video games antigos e que não ligam nem um pouco para a nova geração de jogos. Segundo eles os jogos de hoje em dia não trazem muitos desafios. Vale a pena ver a reportagem.

Abraços, até a próxima.

CategoriasReportagem Tags:,

[Reportagem] Séries Games produzido pela TV Tem (Afiliada da Rede Globo em Sorocaba)

Olá galera, mais um série de reportagem sobre jogos, “Série Games” produzida pela equipe de jornalismo da TV TEM. São 5 reportagens que mostrarão toda a evolução do mundo dos videogemes.

Abraços, até a próxima.

CategoriasReportagem Tags:

[Novidades] Novo console brasileiro em desenvolvimento

Olá galera, os brasileiros estão entrando na onda da construção de consoles e isso é muito bom. Após a iniciativa da Tec Toy com o console Zeebo, agora vem chegando o Zipper.

O projeto: O Zipper foi idealizado em 20 de outubro de 2008 por Marcelo Antônio Oliveira Santos incialmente com o nome de PGC (PC Game console) e teve que ser cancelado por motivos tecnicos. Mais tarde, em 8 de janeiro de 2010 o projeto foi reativado, desta vez com o nome de Zipper. Desta vez o console além de ganhar um nome diferente, foi modificado para atualizar a sua proposta que agora passava a estar ultrapassada.

De início o console deixou de ser de 128 bits e passou a ser de apenas 64 bits, essa mudança foi necessária para que o Zipper pudesse atingir sua principal meta, agora era de criar um console totalmente produzido no Brasil  e que fosse além de leve e compacto, algo barato e que cada pessoa de baixa renda possa ter em casa. Usando o microcontrolador ATmega644 da Atmel essa meta para o console se torna mais fácil uma vez que este componente pode ser usado como GPU, CPU, Processador e memória economizando espaço e gasto com outras peças e tendo um ótimo rendimento tanto quando ao Custo x Benefício quanto no Tamanho x Capacidade.

Assim o console consegue atingir a qualidade gráfica de um SNES original com a praticidade de um video game portatil como o PSP, tecnologia totalmente brasileira e custo igual ao de um console pirateado isso para a primeira versão do console. O objetivo da equipe de produção é de atingir uma qualidade de 128 bits igual como a proposta no início, usando a tecnogia wirelles e outras tecnologias muito avançadas presentes no ramo atualmente, claro que isso para a versão final.

Como se não bastase a ousadia destes brasileitos que estão produzindo o console, sabe-se que já na primeira versão, o Zipper contará com joystick com forma nova e revolucionaria para evitar lesões e problemas causados por alguns destes joysticks atuais e também que o console  contará com  um super design inovador e muito bonito.

Mais informações sobre o projeto: http://zipper.noads.biz/

Abraços, t+

[TCC] Um Algoritmo Evolutivo para Adaptação das Estratégias dos NPCs em um Jogo de Ação

Olá galera, tudo bem? Hoje encontrei o arquivo do meu trabalho de conclusão de curso. Então vou colocar para download pois acredito que posso ser de pequena ou grande ajuda na busca de mais informações sobre desenvolvimento de jogos.

Titulo: Um Algoritmo Evolutivo para Adaptação das Estratégias dos NPCs em um Jogo de Ação

Resumo:

Durante este trabalho foi desenvolvido um Algoritmo Evolutivo e elaborado um jogo em que as estratégias adotadas pelos personagens não controlados pelo jogador se adaptam de acordo com as estratégias utilizadas pelo jogador a cada batalha. Desta forma  o  Algoritmo  Evolutivo  utilizado  tende  a  aumentar  a  atratividade  do  software. Para  a elaboração  deste  jogo  chamado  de “O  Último  Sobrevivente”,  foi  utilizada  a linguagem  C#  e  o  framework  XNA desenvolvido  pela  Microsoft.  Foi  realizada  uma pesquisa sobre a aplicação de Inteligência Artificial em jogos, mais especificamente, Algoritmos Evolutivos em jogos. O presente trabalho vem a contribuir com o estado da  arte,  onde  são poucas  as  publicações  de  aprendizagem  utilizando  Algoritmos Evolutivos aplicados a jogos em tempo real, sendo assim, o mesmo contribui com mais  um  estudo  de  caso.  Graças  ao  Algoritmo  Evolutivo  implementado,  o  jogo produzido mostrou adaptar-se às ações do jogador.

Palavras-chave: Inteligência   artificial,   jogos   eletrônicos,  videogames,   algoritmo evolutivo, aprendizagem.

Link para download clique aqui.

Abraços, espero que aproveitem a leitura, até a próxima.