![Page 1: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/1.jpg)
![Page 2: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/3.jpg)
Participação no mercado
![Page 4: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/4.jpg)
Participação no mercado
![Page 5: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/5.jpg)
Faturamento de empresas brasileiras
![Page 6: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/6.jpg)
Áreas de aplicação
Jogos Educacionais
Advergames
Pesquisa
Simuladores
Entretenimento
Etc…
![Page 7: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/8.jpg)
Game Engines para Linux
• LibGDX - Java
• Cocos2d-X - C++
• MonoGame – C#
![Page 9: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/10.jpg)
Plataforma de Desenvolvimento
![Page 11: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/16.jpg)
Jogos feitos pela comunidade
![Page 17: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/17.jpg)
Vídeo
![Page 18: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/18.jpg)
Renderização de Imagens
![Page 19: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/20.jpg)
Renderização de Imagens
Sistema de coordenadas de uma cena
![Page 21: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/21.jpg)
Animação
![Page 22: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/22.jpg)
Sistemas de Colisão
![Page 23: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/23.jpg)
Colisão Bounding Box
![Page 24: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/24.jpg)
Colisão Bounding Sphere
![Page 25: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/25.jpg)
Colisão por Pixels
![Page 26: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/26.jpg)
Scrolling
![Page 27: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/27.jpg)
Técnica de Side Scrolling
![Page 28: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/28.jpg)
Técnica de Parallax Scrolling
![Page 29: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/29.jpg)
Vídeo
![Page 30: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/34.jpg)
Game Loop
Initialize() LoadContent()
Update() Draw()
UnloadContent()
![Page 35: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/35.jpg)
Vídeo
![Page 36: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/38.jpg)
Conclusão
![Page 39: FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042817/55a649981a28abb46d8b4571/html5/thumbnails/42.jpg)
Obrigado a todos!
Sinextra Game Studio
BelJogos