FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

42

Transcript of FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Page 1: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
Page 2: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Mercado de jogos

“Segundo a PricewaterhouseCoopers, o mercado mundial dejogos digitais movimentou U$57 bilhões em 2010, enquanto o decinema, U$ 31.8 bilhões. Em 2011 o setor movimentou U$ 74bilhões, e as previsões indicam que deverá ultrapassar U$ 82bilhões em 2015. Em 2013, apenas o lançamento do jogo GTA V,que teve o custo de U$ 225 milhões, faturou U$ 800 milhões em24 horas, um recorde na história de produtos de entretenimento. Ojogo Angry Birds já foi instalado em 500 milhões de celulares. NoBrasil, estima-se que o mercado já esteja perto de U$ 3 bilhões.”

Fonte: Relatório final - GEDIGames 2014

Page 3: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Participação no mercado

Page 4: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Participação no mercado

Page 5: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Faturamento de empresas brasileiras

Page 6: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Áreas de aplicação

Jogos Educacionais

Advergames

Pesquisa

Simuladores

Entretenimento

Etc…

Page 7: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

O que são Game Engines?

Engines são “kits” para desenvolvimentos de jogos utilizados para aproveitar algumas características comuns e presentes em todos os games. As enginesnormalmente implementam física, renderização de imagens, interação com arquivos multimídia, partículas e etc. Elas funcionam como um motor do jogo (por isso o nome engine), sendo responsável por todas as funcionalidades de “baixo nível” que o jogo precisa, como por exemplo, o “refresh” da tela com base no FPS, reações de objetos físicos, carregamento de texturas e etc.

Page 8: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Game Engines para Linux

• LibGDX - Java

• Cocos2d-X - C++

• MonoGame – C#

Page 9: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Projeto Mono

O mono é um projeto open-sourceoriginalmente criado pela Novell e atualmente mantido pela Xamarin para criar um conjunto de ferramentas compatíveis com a plataforma .NET, incluindo, entre outras ferramentas, um compilador de C#, compatíveis com ambientes Linux, BSD, OS X, Windows, Solaris, Android e também consoles como Playstation 3, 4, Vita, Wii e Xbox 360.

Page 10: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Plataforma de Desenvolvimento

Page 11: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

O que é MonoGame?

Engine open-source baseada no OpenTK (OpenAL, OpenGL) para desenvolvimento de jogos em C# com uma API unificada que funciona da mesma forma em todas as plataformas suportadas (Android, Windows, Mac, Linux, iOS). Implementando a interface do Microsoft XNA, o que permite uma fácil portabilidade dos jogos desenvolvidos nativamente no framework.

Page 12: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Features

Multiplataforma (Android, iOS, Windows, Mac, Linux, Windows Phone, Playstation 3, 4 e Vita, Xbox 360, Raspberry Pi);

Utilização da OpenGL para gráficos 2D e 3D;

Conjunto de ferramentas de suporte;

Diversos livros e tutoriais na internet;

Forte apoio da comunidade.

Page 13: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Amplo suporte da comunidade

Diversos sites e fóruns voltados a temas específicos do

MonoGame e XNA:

monogame.net

programadoresdejogos.com

unidev.com.br

rbwhitaker.wikidot.com

Page 14: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Requisitos no Linux

MonoDevelop;

Mono MDK;

MonoGame;

Placa de vídeo compatível com OpenGL 2.0.

Comando para instalação dos requisitos no Ubuntu

Page 15: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Site MonoGame

Site com fórum, wiki,

documentação e acesso

ao repositório para com

o código fonte da

engine.

http://www.monogame.net

Page 16: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Jogos feitos pela comunidade

Page 17: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Vídeo

Page 18: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Renderização de Imagens

Page 19: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Renderização de Imagens

Antes de tratarmos deste assunto, conferir abaixo o significado de alguns jargões que utilizamos com frequência para gráficos em 2D:

Texturas

Sprites

Background

Tiles

Page 20: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Renderização de Imagens

Sistema de coordenadas de uma cena

Page 21: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Animação

Page 22: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Sistemas de Colisão

Page 23: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Colisão Bounding Box

Page 24: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Colisão Bounding Sphere

Page 25: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Colisão por Pixels

Page 26: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Scrolling

Page 27: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Técnica de Side Scrolling

Page 28: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Técnica de Parallax Scrolling

Page 29: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Vídeo

Page 30: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Arquitetura de um jogo

Ao se criar um projeto, são gerados dois arquivos:

Program.cs

Game1.cs

Page 31: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Arquitetura de um jogo

Código do Program.cs:

static void Main(string[] args)

{

using (Game1 game = new Game1())

{

game.Run();

}

}

Page 32: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Arquitetura de um jogo

Classe “Game”:

É a classe central da arquitetura

Tem, internamente, um game loop chamado a cada

1/60 de segundo (default, 60FPS)

Page 33: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Game1.cs

• public Game1() : Construtor – cria os objetos Graphics e Content

• Métodos chamados pela classe Game (“Eventos” do jogo)

• Initialize() : Inicializa recursos lógicos não gráficos

• LoadContent() : Utilizada para carregar recursos

• UnloadContent() : Chamada para liberar recursos

• Game Loop:

l Update(GameTime gameTime) : Onde se constroe a lógica do jogo (cálculos)

l Draw(GameTime gameTime) : Utilizado para carregar as rotinas de desenho em uma tela

Page 34: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Game Loop

Initialize() LoadContent()

Update() Draw()

UnloadContent()

Page 35: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Vídeo

Page 36: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Ferramentas Avançadas

Compactação de texturas:

ShoeBox - http://renderhjs.net/shoebox/

Editor de mapas com tiles:

Tiled - http://www.mapeditor.org/

Gerador automático de sonoplastia:

SFXr - http://www.drpetter.se/project_sfxr.html

Page 37: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Ferramentas Avançadas

Utilização de repositório Git:

Source Tree e Bitbucket - https://bitbucket.org/

Edição de áudio:

Audacity - http://web.audacityteam.org/

Composição de trilha sonora:

Linux MultiMedia Studio - https://lmms.io/

Edição de imagens:

Gimp - http://www.gimp.org/

Page 38: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Conclusão

Page 39: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Desvantagens

Requer conhecimentos (ou dedicação nos estudos)

no processo de desenvolvimento de jogos em

“baixo” nível (engine de média complexidade).

Page 40: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Vantagens

Simplifica o processo de desenvolvimento multiplataforma;

Boas APIs de física;

Debug em tempo real;

Muitos códigos de exemplo;

Destaque na comunidade;

Open-source.

Page 41: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Por onde começar

MonoGame Website

http://www.monogame.net/

http://www.monogame.net/documentation

Page 42: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame

Obrigado a todos!

Sinextra Game Studio

BelJogos