DESENVOLVIMENTO DE JOGOS 2D UTILIZANDO O FRAMEWORK MICROSOFT XNA Emanuel Maués [email protected] Quem sou eu Bacharelando em Ciência da Computação pelo Centro Universitário do Pará (CESUPA) Linha de Pesquisa do TCC voltada para o desenvolvimento de jogos utilizando o framework XNA Programador Java e C# Quem sou eu Pesquisador do Laboratório de Computação Natural do CESUPA (LCN), especificamente na área de desenvolvimento de jogos Quem sou eu Colaborador do Núcleo de Educação à Distância do CESUPA (NEAD), atuando como Game Designer Agenda Introdução Objetivos Motivações Apresentando o XNA Definição Histórico Comparativo entre versões Agenda Preparando o ambiente de desenvolvimento Requisitos Mínimos Microsoft Visual Studio Microsoft XNA Framework Requisitos Opcionais O quê XNA pode fazer por você Mecânica Interação do Jogador Gráficos Agenda Exemplos de jogos desenvolvidos Casos de Sucesso do XNA O futuro do XNA O seu futuro INTRODUÇÃO Objetivos Introdução Objetivos Demonstrar as motivações para utilizar essa ferramenta Demonstrar o que o XNA é Demonstrar o que o XNA pode fazer por você Introdução Objetivos Dar os primeiros passos na utilização do framework para desenvolvimento de jogos Introdução Objetivos Demonstrar como os próximos passos os quais podem ser dados para o desenvolvimento de jogos Introdução Objetivos Demonstrar alguns casos de sucesso INTRODUÇÃO Motivações Introdução Motivações Crescimento do desenvolvimento independente Introdução Motivações Distribuição de conteúdo online por “qualquer” pessoa Introdução Motivações Percepção das vantagens do videogame sobre outras mídias Introdução Motivações Competições de desenvolvimento de games Introdução Motivações Incentivos nacionais Apresentando o XNA Definição Apresentando o XNA Definição É um conjunto de ferramentas (um framework) o qual permite desenvolver, compilar e executar jogos Apresentando o XNA Definição O problema O desenvolvimento de games estando limitado às grandes empresas Apresentando o XNA Definição Soluções baratas, perfeitas para neófitos, porém complexas demais Apresentando o XNA Definição Ferramentas robustas, porém caras demais Apresentando o XNA Definição A Solução Liberdade para desenvolver sem qualquer encargo (exceto para Xbox) Apresentando o XNA Definição Abstrai conceitos enjoativos do desenvolvimento (threads) Apresentando o XNA Definição IDE “gratuita” Facilidade de desenvolvimento Apresentando o XNA Histórico 2004 Microsoft anuncia o lançamento do XNA 1.0 durante Game Developers Conference 2009 Apresentando o XNA Histórico “O coração do XNA é a escolha. Nenhum jogo atual é construído com apenas uma ferramenta, nem qualquer outro jogo futuro será. Ao criar um ambiente onde as inovações do software florescem e trabalham juntas, o XNA permitirá aos desenvolvedores redefinir o que é possível criar em games e dar aos jogadores a liberdade de buscar seus próprios caminhos.” J Allard no GDC 2004 Apresentando o XNA Histórico Apresentando o XNA Histórico 2006 Em uma apresentação no Gamefest, é lançado o XNA Game Studio Express Apresentando o XNA Histórico 2007 Novamente no Gamefest, é anunciado o XNA 2.0 Apresentando o XNA Histórico 2008 Surge a versão 3.0 do XNA Apresentando o XNA Histórico 2009 É lançada a versão XNA 3.1 PREPARANDO O AMBIENTE DE DESENVOLVIMENTO Requisitos Mínimos PREPARANDO O AMBIENTE Requisitos Mínimos Microsoft Visual C# Express & Microsoft XNA Framework XNA Game Studio Express PREPARANDO O AMBIENTE DE DESENVOLVIMENTO Requisitos Opcionais PREPARANDO O AMBIENTE Requisitos Opcionais Ferramentas de edição de imagens PREPARANDO O AMBIENTE Requisitos Opcionais Ferramentas de edição sonora PREPARANDO O AMBIENTE Requisitos Opcionais Ferramentas de edição de vídeo O QUÊ XNA PODE FAZER POR VOCÊ Mecânica O quê XNA pode fazer por você Mecânica GameComponent Uma interface que serve de modelo para criar componentes lógicos dentro de um jogo Exemplos: Colisão O quê XNA pode fazer por você Mecânica Ciclo de Vida de um GameComponent O quê XNA pode fazer por você Mecânica Drawable GameComponent Uma interface que serve de modelo para criar componentes gráficos dentro de um jogo Exemplo: sprites, fontes, etc. O quê XNA pode fazer por você Mecânica Ciclo de Vida de um DrawableGameComponent O quê XNA pode fazer por você Mecânica GameComponent Collection Uma classe que agrupa em um array várias instâncias da classe GameComponent ou Drawable GameComponent Exemplo: uma nave, um personagem, etc. O quê XNA pode fazer por você Mecânica GameTime Classe responsável por computar o tempo do jogo Atributos úteis: EllapsedGameTime : TimeSpan EllapsedRealTime : TimeSpan TotalEllapsedGameTim e : TimeSpan TotalEllapsedRealTime: TimeSpan O quê XNA pode fazer por você Gráficos O quê XNA pode fazer por você Gráficos Rectangle Forma geométrica multi-uso do XNA Exemplo de utilização: Frameskip O quê XNA pode fazer por você Gráficos Vector2 Abstrai o conceito de vetores dentro do XNA Exemplo de utilização: Balística O quê XNA pode fazer por você Gráficos Texture Permite ao usuário carregar uma textura para dentro do ambiente de desenvolvimento Exemplo de utilização: Personagens Cenários O quê XNA pode fazer por você Gráficos Color Classe usada para colorir texturas. Exemplos de utilização: Transparência Fade-in; Fade-out Colisão pixel-a-pixel O QUÊ XNA PODE FAZER POR VOCÊ Interação do Jogador O quê XNA pode fazer por você Interação do Jogador Keyboard Classe responsável por gerenciar todos os métodos e atributos que envolvem o teclado de um computador Métodos úteis: GetState() : KeyboardState O quê XNA pode fazer por você Interação do Jogador KeyboardState Classe que gerencia a interação do usuário com o teclado. Métodos úteis: GetPressedKeys() : Keys[] IsKeyDown(Keys key) : bool IsKeyUp(Keys key) O quê XNA pode fazer por você Interação do Jogador Keys Classe que representa uma tecla específica do teclado Atributos úteis: Keys : enum KeyState : bool O quê XNA pode fazer por você Interação do Jogador GamePad GamePadState GamePadButtons EXEMPLOS DE JOGOS DESENVOLVIDOS Projeto Hydra EXEMPLOS DE JOGOS DESENVOLVIDOS getPong EXEMPLOS DE JOGOS DESENVOLVIDOS Platformer Starter Kit CASOS DE SUCESSO DO XNA Casos de Sucesso City Rain Colosseum Megachile Pluto Carneyvale Showtime Dust: An Elysian Tail O FUTURO DO XNA O SEU FUTURO