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
Download

Apresentando o XNA