A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução ao XNA e ao Game Developer Express José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional Comunidade SharpGames

Apresentações semelhantes


Apresentação em tema: "Introdução ao XNA e ao Game Developer Express José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional Comunidade SharpGames"— Transcrição da apresentação:

1 Introdução ao XNA e ao Game Developer Express José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional Comunidade SharpGames

2 Agenda Introdução Xbox Live Community Games XNA Challenge SharpGames XNA Game Studio Starter Kit XNA Framework Modelo de Aplicação; Content Pipeline Gráficos; Audio; Input Armazenamento Matemática

3

4 O que é XNA?

5 XNA Game Studio Express Desenhado com acadêmicos, hobistas e pequenos desenvolvedores de games Ideal para jogos casuais Nova plataforma para desenvolvimento de jogos baseado em.NET 3.0,.NET Compact Framework Extensão da IDE do Visual C# 2008 Grupo de bibliotecas multi-plataforma optimizada para jogos

6 XNA Framework O XNA Framework é uma plataforma de desenvolvimento de jogos baseada em.NET que pode ser usada para criar jogos para Windows e Xbox 360 Suporta as plataformas de jogos da Microsoft Foco no jogo, não na plataforma APIs consistentes e de fácil utilização

7 Instalação.NET 3.0 Visual Studio 2008 (Qualquer Versão) XNA Framework XNA Game Studio

8 Starter Kits Modifique os jogos e crie o seu próprio Um jogo completamente funcional Use como um começo para seus próprios jogos Acessado via “New Project…” Pressione F5 e divirta-se! Documentação e tutoriais Disponibilidade 2 jogos incluídos com XNA Game Studio Express Novos kits saem regularmente Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

9 Camadas do XNA Framework Plataforma CoreFramework ExtendedFramework Jogos XACTXINPUTXContent Direct3D GraphicsAudioInputMath Storage Application Model Content Pipeline Starter Kits CodeContent Components Legenda XNA Fornece Você Fornece Comunidade

10 Extended Framework

11 Modelo de Aplicação Mantenha-se focado no jogo e não em qual plataforma ele está rodando Configurado e rodando rapidamente As primeiras linhas de código já serão para seu jogo. Abstração de Plataforma Qual a melhor maneira de criar um game loop? Como eu crio e gerencio minha janela? Como eu sigo as melhores práticas para a plataforma? Game É o tipo principal de seu jogo Eventos de Load, Update e Draw Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

12 Modelo de Aplicação Crie componentes reusáveis que podem facilmente ser integrados ao seu jogo GameComponent, DrawableGameComponent Base para todos os componentes XNA O Autor escreve o Load, Update, e Draw Pode descobrir e interagir com outros componentes Game.Components Gerenciado em tempo de execução pelo jogo Grande suporte a ‘design time’ pelo IDE Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

13 Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps XNA Framework Content Pipeline Princípios de Design Liberdade de escolha Ferramenta de criação de conteúdo Game engines Menos código para a criação Mais tempo para a criação do jogo Forte integração entre código e conteúdo Build de código e de conteúdo unificados

14 XNA Framework Content Pipeline Importadores Conteúdo de jogo adicionado ao Visual Studio Processadores Conversões de tipo altamante tipadas Extensões de código gerenciado 3D File Formats 2D File Formats Material File Formats Audio File Formats.FBX.X.DDS.BMP.JPG.PNG.TGA.FX.XAP (XACT) ContentManager xnaLoader = new ContentManager(); myAsset = xnaLoader.Load ("MyAssetName");

15 Core Framework

16 Graphics Fornece recursos de renderização de baixo nível Construído sob o Direct3D 9 APIs atualizadas que seguem as regras do.NET Efeitos Recursos Lock/Unlock Vertex streams Recursos fornecidos Model, Mesh, Bones Texturas Efeitos e shaders Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

17 XNA Framework Effects

18

19 Audio É muito fácil tocar seus sons Construa seus pacotes de som usando a ferramenta XACT Adicionar sons Ajustar propriedades Construir bancos de sons Fácil integração para desenvolvedores Acesse-os via seus nomes lógicos Looping, streaming, e gerenciamento de memória Sem gerenciamento de buffer de baixo nível Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

20 Input Torna fácil a obtenção de dados de entrada Pronto para usar Sem inicialização Sem gerenciamento de estado Dispositivos Joystick do Xbox 360 Teclado Mouse (apenas no Windows) Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

21 Storage Fornece um jeito fácil para ler e salvar informações do jogo StorageContainer atua como um sistema de arquivos virtual Arquivos armazenados no local correto de cada plataforma Suporta mútiplos dispositivos de armazenamento e perfis no Xbox 360 Baseado em Streams, o que facilita a integração com o System.IO Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

22 Math Biblioteca de funções matemáticas para jogos Vector, Matrix, Quaternion, Plane, AABB, Sphere, Ray, Frustum, Curve Regra-da-mão-direita por default Fácil integração Testes de intersecção Facilitadores para movimentos Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

23 Criando Jogos para o Xbox 360

24 Pré-requisitos e Instalação Assinatura da Xbox live XNA Creator’s Club (US$99 por um ano) Instale o XNA Game launcher a partir da Xbox marketplace Compre o XNA Creaters Club a partir Xbox marketplace Para obter seu código de conexão, rode o XNA Game launcer de: Games  Demos and More no Xbox 360

25 Xbox 360 Development Experiência de desenvolvimento Project templates para jogos do Xbox 360 F5 faz o deploy para o console Remote debugging Breakpoints Watches Debug e Trace para o PC Sem Edit and Continue Debug Visualizers Platform CoreFramework ExtendedFramework Games XACTXINPUTXContentDirect3D GraphicsAudioInputMathStorage Application Model Content Pipeline Starter Kits CodeContent Comps

26 Criando um jogo

27 XNA 2D game “Rock Rain” Construção de um jogo simples O jogador deve guiar a nave evitando os asteróides É um jogo 2D simples, baseado em sprites

28 Construção de um jogo em XNA Basedo na forma como um jogo funciona Todo jogo tem algums comportamentos fundamentais: 1.Inicializa todos os recursos no início Inicializa todas as texturas, modelos, som, etc 2.Continuamente roda o Game Loop: 1.Atualiza a game engine Lê os controladores, atualiza o estado e a posição dos game elements 2.Desenha o ambiente do jogo renderiza os game elements na tela

29 Esqueleto de um jogo XNA partial class Game1 : Microsoft.Xna.Framework.Game { public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } protected override void LoadGraphicsContent(bool loadAllContent) { } protected override void Update(GameTime gameTime) { } protected override void Draw(GameTime gameTime) { } }

30 Inicialização do jogo LoadGraphicsContent é chamada quando seu jogo inicializa Ele cria a textura do queijo e carrega uma imagem nele Também cria um SpriteBatch para gerenciar o processo de renderização Texture2D cheeseTexture; SpriteBatch spriteBatch; protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { cheeseTexture = content.Load ("cheese"); spriteBatch = new SpriteBatch(graphics.GraphicsDevice); }

31 Usando o Content Pipeline O content pipeline gerencia os recursos Cada recurso recebe um nome O método Load do ContentManager fornece acesso ao recurso Note o uso de generics cheeseTexture = content.Load (“rockrain");

32 XNA Game Drawing protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.Black); // Desenha o Background spriteBatch.Begin(); spriteBatch.Draw(backgroundTexture,new Rectangle(0, 0, graphics.GraphicsDevice.DisplayMode.Width, graphics.GraphicsDevice.DisplayMode.Height),Color.LightGray); spriteBatch.End(); // sprites spriteBatch.Begin(SpriteBlendMode.AlphaBlend); base.Draw(gameTime); spriteBatch.End(); }

33 Update do Jogo protected override void Update() { foreach (GameComponent gc in Components) { if (gc is Meteor) { hasColision = ((Meteor)gc).CheckCollision(shipRectangle); if (hasColision) { audioComponent.PlayCue("explosion"); Start(); break; } UpdateComponents(); }

34 Leitura do Joystick GamePadState padState = GamePad.GetState(PlayerIndex.One); if (padState.IsConnected) { if (padState.DPad.Left == ButtonState.Pressed) { breadX--; } if (padState.DPad.Right == ButtonState.Pressed) { breadX++; } /// repetir para o eixo Y do pão }

35 Leitura analógica do Joystick int padXSpeed = 10; int padYSpeed = 10; GamePadState padState = GamePad.GetState(PlayerIndex.One); if (padState.IsConnected) { breadX += (int) (padState.ThumbSticks.Left.X * padXSpeed); breadY -= (int) (padState.ThumbSticks.Left.Y * padYSpeed); }

36 Xbox LIVE Arcade?? Xbox Live é o lugar para usuários que querem testar e comprar conteúdo no Xbox 360 Xbox Live Arcade contém conteúdo de jogos Alta Visibilidade em qualquer console (Aba ‘Games’) Integração com o Marketplace (Download, compra, licenças) Disponível para assinantes Silver & Gold Banner de promoção de novos títulos Diversos recursos para a retenção e re-play de jogos

37 Introdução a Xbox Live Arcade Usuários & receita continuam a crescer +80 jogos disponíveis atualmente Um ou mais títulos chegam por semana Melhor serviço de download de jogos em um console no mercado Novos Jogos Clássicos Jogos Independentes Conectado aos serviços da Live (MSN)

38 Como é um jogo da Xbox LIVE Arcade? Completa experiência de jogo Sem pedaços de jogos separados Não deve ter dependências Pequeno em Tamanho <150 MB (a maioria tem <50 MB) Jogável sem mídia física ou qualquer outra dependência Sem necessidade de manual de instruções “Baixar e jogar” Versão de testes limitada mas divertida Deve oferecer a opção de compra da versão completa Promoção de venda do jogo dentro do jogo é permitida Experiências de jogo associadas a Live Arcade Ranks globais Achievements & Gamerscore Convites entre jogos

39 ‘Aba’ da Xbox Live Arcade

40 Como os jogos chegam a Arcade Desenvolvedor Publisher ArcadePublishingTeam Gerência do Portfólio Microsoft 3PP Team

41 E os jogos da comunidade? Revisados pelo membros do Creator’s Club Critérios como violência, sexo, sangue, etc. Critérios Técnicos Formado EXCLUSIVAMENTE pela comunidade

42 Que tipo de games estamos procurando? Nós queremos jogos que …

43 … sejam atraentes “Baixar e jogar” “Divertido para toda a família” “Divertido para todas as idades” Jogos casuais

44 … suportem vários dispositivos Social em sua natureza Controladores mais atrativos Quebrar paradigmas

45 … inspirem Saúde física e mental Ensinem sobre o mundo real Faça você uma pessoa melhor Ajudar os outros

46 …unam as pessoas Jogos sociais Multiplayer Competitivo Cooperativo “Backseat driver” Party Games

47 … Jogos que funcionem entre plataformas

48 O que isso tudo significa para você? Primeiro, negócio é negócio: Se você tem um grande jogo, nos queremos vê-lo Compreendendo o valor de seu serviço para o cliente vai lhe ajudar a criar um melhor jogo para ele Novas áreas de interesse: Simples, Atrativos Suporte a vários tipos de controladores Temas e conteúdo inspirativos Social, Social, Social

49 Guia de Conceito Os 6 Pilares do que queremos em jogos Inovação Jogabilidade Visual Multiplayer & Social Plataformas Global

50 Jogabilidade Tem de caber em 150 MB! Idéias únicas “Baixar e jogar” Permitir pequenas seções de jogo ‘Planejado para a família INTEIRA Opções para crianças Dificuldade progressiva

51 Visual Este jogo merece estar no Xbox 360? Re-Design, não apenas um porte Exemplos: RoboBlitz Small Arms Jetpac Refuelled

52 Multiplayer Xbox LIVE & desenhado para poucos participantes “Join In Progress” Migração de Host Multiplayer Local (2+ em um console) Co-Op Experiências Sociais Offline gameplay & tracking

53 Apelo Global Planeje seu jogo com o mercado global em mente Localização Inglês, Frances, Italiano, Alemão, Espanhol, Japonês, Koreano, Chinês (tradicional), Português (pt-br opcional).

54 Guia de criação de conceito documentos de projeto Documentos de projeto contém Descrição mínima da jogabilidade Quantidade e variedade de exemplos de arte Screenshots é melhor, mas arte conceitual ajuda Evidência de diferenciação Como esse jogo é diferente de outros títulos semelhantes? O que exatamente “novas formas de jogar” significa? Suporte a PDLC não é, automaticamente, um diferencial

55 Dúvidas? José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional


Carregar ppt "Introdução ao XNA e ao Game Developer Express José Antonio “jalf” Leal de Farias Microsoft Most Valuable Professional Comunidade SharpGames"

Apresentações semelhantes


Anúncios Google