• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
XNA Framework
 

XNA Framework

on

  • 2,103 views

Presentation about the first version of the XNA Framework, a framework for rapidly develop games in .NET to run both on Windows and Xbox360

Presentation about the first version of the XNA Framework, a framework for rapidly develop games in .NET to run both on Windows and Xbox360

Statistics

Views

Total Views
2,103
Views on SlideShare
2,097
Embed Views
6

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 6

http://www.slideshare.net 6

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    XNA Framework XNA Framework Presentation Transcript

    • Nelson Correia, Sapo ncorreia@ncorreia.name http://weblogs.pontonetpt.com/ncorreia
    • iFactor; Shuggy
    • Os jogos actuais são bastante complexos   Fazer um jogo está apenas ao alcance de grandes (€€€) equipas  Produtores de jogos dificilmente aceitam novas ideias. Os jogos actuais são essencialmente: › Sequelas de outros › Adaptações de filmes ou séries de TV Nelson Correia
    • Abstrai o programador dos detalhes da  arquitectura Permite o foco na lógica do jogo  Permite a qualquer pessoa com paixão  por jogos e noções básicas de programação o desenvolvimento de um jogo Nelson Correia
    • Arquitectura   Content pipeline  Componentes do Jogo › Modelo Aplicacional, Gráficos, Input, Áudio, Math e Armazenamento de Dados Demos  Nelson Correia
    • XNA Game Studio Express XNA Framework Nelson Correia
    • Starterkits Code Content Games Components Extended Application Model Content Pipeline Framework Core Audio Input Math Storage Graphics Framework Direct3D XACT XInput XContent Platform Legenda: XNA Provides You Provide Community Nelson Correia
    • O que é?  › Pipeline de processamento de conteúdos Objectivos  › Permitir a utilização de qualquer ferramenta DCC › Separar o motor do jogo da dependência de conteúdos › Criar um sistema simples e unificado de produção de conteúdos Nelson Correia
    • Content Pipeline (design time) Recurso no Content Content Recurso Importer formato Processor Compiler compilado Importer original Formatos/Modelos Intermédios Legenda: Engine Advanced XNA Game DCC Vendors Developers Engines Framework Developers Nelson Correia
    • Game runtime Content Game Recurso Loader compilado Objects Legenda: Engine Advanced XNA Game DCC Vendors Developers Engines Framework Developers Nelson Correia
    • XNA MyGame Initialize LoadGraphicsContent Game Update Loop Draw UnloadGraphicsContent Nelson Correia
    • partial class MyGame : Microsoft.Xna.Framework.Game { public MyGame() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } protected override void Initialize() { ... } protected override void LoadGraphicsContent(bool loadAllContent) { ... } protected override void UnloadGraphicsContent(bool unloadAllContent) { ... } protected override void Update(GameTime gameTime) { ... } protected override void Draw(GameTime gameTime) { ... } } Nelson Correia
    • <<interface>> <<interface>> <<interface>> IDisposable IUpdateable IGameComponent IDrawable GameComponent <<interface>> Drawable GameComponent Nelson Correia
    • class Background : DrawableGameComponent { protected override void LoadGraphicsContent(bool loadAllContent) { texture = content.Load<Texture2D>(@quot;ContentTexturesstarsquot;); } protected override void Draw(GameTime gameTime) { spriteBatch.Begin(); spriteBatch.Draw(texture, GetTitleSafeArea(100), Color.White); spriteBatch.End(); } // … } Nelson Correia
    • Draw, Update, … GameScreen Game Manager Draw, Update, … Screen Collection Loading Main Game Screen Highscore Screen Game Over Screen Screen … Nelson Correia
    • Criação de recursos áudio com o XACT  (Microsoft Cross-Platform Audio Creation Tool) Nelson Correia
    • O que é?  › Ferramenta GUI para produção de conteúdos › API responsável por interpretar ficheiros XACT e reproduzi-los em resposta a eventos do jogo Todos os conteúdos áudio têm que estar  neste formato Nelson Correia
    • WAV Files XACT GUI Tool .wav .xap File XNA Content Files .xgs .xwb Content .xsb Pipeline Nelson Correia
    • public class MyGame : Microsoft.Xna.Framework.Game { protected override void Initialize() { audioEngine = new AudioEngine( quot;TestSounds.xgsquot; ); waveBank = new WaveBank( audioEngine, quot;TestWaveBank.xwbquot; ); soundBank = new SoundBank( audioEngine, quot;TestSoundBank.xsbquot; ); soundBank.PlayCue( “StartSoundquot; ); } protected override void Update( GameTime gameTime ) { audioEngine.Update(); } // … } Nelson Correia
    • Digital Analog Vibration Supported on Supported on Number Allowed on Input Device Buttons Controls Effects Windows Xbox 360 System Xbox 360 Controller 14 4 Yes Yes Yes 4 Keyboard > 100 0 No Yes Yes 1 Mouse 5 3 No Yes No 1 Nelson Correia
    • Ver estado em cada update   Actualizar de acordo com o input em cada momento  Possível utilização de reconhecimento de voz em jogos para o Windows Nelson Correia
    • Exemplo  void UpdateInputPlayerOne() { GamePadState currentState = GamePad.GetState(PlayerIndex.One); // Process input only if connected and button A is pressed. if (currentState.IsConnected && currentState.Buttons.A == ButtonState.Pressed) { vibrationAmount = MathHelper.Clamp(vibrationAmount + 0.05f, 0.0f, 1.0f); GamePad.SetVibration(PlayerIndex.One, vibrationAmount, vibrationAmount); } } Nelson Correia
    • Uma das componentes mais poderosas  da Framework  Fornece tipos e operações para manipulação de vectores e matrizes  Operações para: › Verificação de intersecções entre figuras geométricas › Rotação e translacção da câmara › Etc. Nelson Correia
    • Existem duas localizações:  › Title (game) storage – Executável e ficheiros de suporte ao jogo (meshes, shaders, textures, etc.) › User Storage – Espaço fornecido pelo jogador para dados do jogo (por ex. saves) Nelson Correia
    • Xbox 360  › Title Storage  Mesma localização do executável  Disponível através de StorageContainer.TitleLocation › User Storage  Disponibilizada pelo utilizador em runtime  Solicitada através de StorageDevice. BeginShowStorageDeviceGuide() Nelson Correia
    • Windows  › Title Storage  Mesma localização do executável  Disponível através de StorageContainer.TitleLocation › User Storage  %User_Documents_Folder%SavedGames <TitleName>Player<PlayerIndex>  Acessível através de StorageDevice.OpenContainer() Nelson Correia
    • Xbox 360   Subscrição Xbox Live  Membro XNA Creators Club  PC com XNA Game Studio Express Nelson Correia
    • Racing Game
    • Xna Developer Center  › http://msdn2.microsoft.com/en-us/xna/default.aspx XNA Team Blog  › http://blogs.msdn.com/xna/ Game Studio Express  › http://forums.xna.com/ › http://creators.xna.com/ Demos  › http://www.xnapost.com/xna_games.html Nelson Correia